github.com/ethereum-optimism/optimism@v1.7.2/packages/contracts-ts/src/react.ts (about)

     1  import {
     2    useNetwork,
     3    useChainId,
     4    useContractRead,
     5    UseContractReadConfig,
     6    useContractWrite,
     7    Address,
     8    UseContractWriteConfig,
     9    useContractEvent,
    10    UseContractEventConfig,
    11  } from 'wagmi'
    12  import {
    13    ReadContractResult,
    14    WriteContractMode,
    15    PrepareWriteContractResult,
    16  } from 'wagmi/actions'
    17  
    18  /* eslint-disable */
    19  
    20  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    21  // AddressManager
    22  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    23  
    24  /**
    25   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F)
    26   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111)
    27   */
    28  export const addressManagerABI = [
    29    {
    30      type: 'event',
    31      anonymous: false,
    32      inputs: [
    33        { name: '_name', internalType: 'string', type: 'string', indexed: true },
    34        {
    35          name: '_newAddress',
    36          internalType: 'address',
    37          type: 'address',
    38          indexed: false,
    39        },
    40        {
    41          name: '_oldAddress',
    42          internalType: 'address',
    43          type: 'address',
    44          indexed: false,
    45        },
    46      ],
    47      name: 'AddressSet',
    48    },
    49    {
    50      type: 'event',
    51      anonymous: false,
    52      inputs: [
    53        {
    54          name: 'previousOwner',
    55          internalType: 'address',
    56          type: 'address',
    57          indexed: true,
    58        },
    59        {
    60          name: 'newOwner',
    61          internalType: 'address',
    62          type: 'address',
    63          indexed: true,
    64        },
    65      ],
    66      name: 'OwnershipTransferred',
    67    },
    68    {
    69      stateMutability: 'view',
    70      type: 'function',
    71      inputs: [{ name: '_name', internalType: 'string', type: 'string' }],
    72      name: 'getAddress',
    73      outputs: [{ name: '', internalType: 'address', type: 'address' }],
    74    },
    75    {
    76      stateMutability: 'view',
    77      type: 'function',
    78      inputs: [],
    79      name: 'owner',
    80      outputs: [{ name: '', internalType: 'address', type: 'address' }],
    81    },
    82    {
    83      stateMutability: 'nonpayable',
    84      type: 'function',
    85      inputs: [],
    86      name: 'renounceOwnership',
    87      outputs: [],
    88    },
    89    {
    90      stateMutability: 'nonpayable',
    91      type: 'function',
    92      inputs: [
    93        { name: '_name', internalType: 'string', type: 'string' },
    94        { name: '_address', internalType: 'address', type: 'address' },
    95      ],
    96      name: 'setAddress',
    97      outputs: [],
    98    },
    99    {
   100      stateMutability: 'nonpayable',
   101      type: 'function',
   102      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
   103      name: 'transferOwnership',
   104      outputs: [],
   105    },
   106  ] as const
   107  
   108  /**
   109   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F)
   110   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111)
   111   */
   112  export const addressManagerAddress = {
   113    1: '0xdE1FCfB0851916CA5101820A69b13a4E276bd81F',
   114    5: '0xa6f73589243a6A7a9023b1Fa0651b1d89c177111',
   115  } as const
   116  
   117  /**
   118   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F)
   119   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111)
   120   */
   121  export const addressManagerConfig = {
   122    address: addressManagerAddress,
   123    abi: addressManagerABI,
   124  } as const
   125  
   126  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   127  // AssetReceiver
   128  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   129  
   130  /**
   131   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
   132   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
   133   */
   134  export const assetReceiverABI = [
   135    {
   136      stateMutability: 'nonpayable',
   137      type: 'constructor',
   138      inputs: [{ name: '_owner', internalType: 'address', type: 'address' }],
   139    },
   140    {
   141      type: 'event',
   142      anonymous: false,
   143      inputs: [
   144        { name: 'user', internalType: 'address', type: 'address', indexed: true },
   145        {
   146          name: 'newOwner',
   147          internalType: 'address',
   148          type: 'address',
   149          indexed: true,
   150        },
   151      ],
   152      name: 'OwnerUpdated',
   153    },
   154    {
   155      type: 'event',
   156      anonymous: false,
   157      inputs: [
   158        { name: 'from', internalType: 'address', type: 'address', indexed: true },
   159        {
   160          name: 'amount',
   161          internalType: 'uint256',
   162          type: 'uint256',
   163          indexed: false,
   164        },
   165      ],
   166      name: 'ReceivedETH',
   167    },
   168    {
   169      type: 'event',
   170      anonymous: false,
   171      inputs: [
   172        {
   173          name: 'withdrawer',
   174          internalType: 'address',
   175          type: 'address',
   176          indexed: true,
   177        },
   178        {
   179          name: 'recipient',
   180          internalType: 'address',
   181          type: 'address',
   182          indexed: true,
   183        },
   184        {
   185          name: 'asset',
   186          internalType: 'address',
   187          type: 'address',
   188          indexed: true,
   189        },
   190        {
   191          name: 'amount',
   192          internalType: 'uint256',
   193          type: 'uint256',
   194          indexed: false,
   195        },
   196      ],
   197      name: 'WithdrewERC20',
   198    },
   199    {
   200      type: 'event',
   201      anonymous: false,
   202      inputs: [
   203        {
   204          name: 'withdrawer',
   205          internalType: 'address',
   206          type: 'address',
   207          indexed: true,
   208        },
   209        {
   210          name: 'recipient',
   211          internalType: 'address',
   212          type: 'address',
   213          indexed: true,
   214        },
   215        {
   216          name: 'asset',
   217          internalType: 'address',
   218          type: 'address',
   219          indexed: true,
   220        },
   221        { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false },
   222      ],
   223      name: 'WithdrewERC721',
   224    },
   225    {
   226      type: 'event',
   227      anonymous: false,
   228      inputs: [
   229        {
   230          name: 'withdrawer',
   231          internalType: 'address',
   232          type: 'address',
   233          indexed: true,
   234        },
   235        {
   236          name: 'recipient',
   237          internalType: 'address',
   238          type: 'address',
   239          indexed: true,
   240        },
   241        {
   242          name: 'amount',
   243          internalType: 'uint256',
   244          type: 'uint256',
   245          indexed: false,
   246        },
   247      ],
   248      name: 'WithdrewETH',
   249    },
   250    {
   251      stateMutability: 'payable',
   252      type: 'function',
   253      inputs: [
   254        { name: '_target', internalType: 'address', type: 'address' },
   255        { name: '_data', internalType: 'bytes', type: 'bytes' },
   256        { name: '_gas', internalType: 'uint256', type: 'uint256' },
   257        { name: '_value', internalType: 'uint256', type: 'uint256' },
   258      ],
   259      name: 'CALL',
   260      outputs: [
   261        { name: '', internalType: 'bool', type: 'bool' },
   262        { name: '', internalType: 'bytes', type: 'bytes' },
   263      ],
   264    },
   265    {
   266      stateMutability: 'payable',
   267      type: 'function',
   268      inputs: [
   269        { name: '_target', internalType: 'address', type: 'address' },
   270        { name: '_data', internalType: 'bytes', type: 'bytes' },
   271        { name: '_gas', internalType: 'uint256', type: 'uint256' },
   272      ],
   273      name: 'DELEGATECALL',
   274      outputs: [
   275        { name: '', internalType: 'bool', type: 'bool' },
   276        { name: '', internalType: 'bytes', type: 'bytes' },
   277      ],
   278    },
   279    {
   280      stateMutability: 'view',
   281      type: 'function',
   282      inputs: [],
   283      name: 'owner',
   284      outputs: [{ name: '', internalType: 'address', type: 'address' }],
   285    },
   286    {
   287      stateMutability: 'nonpayable',
   288      type: 'function',
   289      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
   290      name: 'setOwner',
   291      outputs: [],
   292    },
   293    {
   294      stateMutability: 'nonpayable',
   295      type: 'function',
   296      inputs: [
   297        { name: '_asset', internalType: 'contract ERC20', type: 'address' },
   298        { name: '_to', internalType: 'address', type: 'address' },
   299        { name: '_amount', internalType: 'uint256', type: 'uint256' },
   300      ],
   301      name: 'withdrawERC20',
   302      outputs: [],
   303    },
   304    {
   305      stateMutability: 'nonpayable',
   306      type: 'function',
   307      inputs: [
   308        { name: '_asset', internalType: 'contract ERC20', type: 'address' },
   309        { name: '_to', internalType: 'address', type: 'address' },
   310      ],
   311      name: 'withdrawERC20',
   312      outputs: [],
   313    },
   314    {
   315      stateMutability: 'nonpayable',
   316      type: 'function',
   317      inputs: [
   318        { name: '_asset', internalType: 'contract ERC721', type: 'address' },
   319        { name: '_to', internalType: 'address', type: 'address' },
   320        { name: '_id', internalType: 'uint256', type: 'uint256' },
   321      ],
   322      name: 'withdrawERC721',
   323      outputs: [],
   324    },
   325    {
   326      stateMutability: 'nonpayable',
   327      type: 'function',
   328      inputs: [
   329        { name: '_to', internalType: 'address payable', type: 'address' },
   330        { name: '_amount', internalType: 'uint256', type: 'uint256' },
   331      ],
   332      name: 'withdrawETH',
   333      outputs: [],
   334    },
   335    {
   336      stateMutability: 'nonpayable',
   337      type: 'function',
   338      inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }],
   339      name: 'withdrawETH',
   340      outputs: [],
   341    },
   342    { stateMutability: 'payable', type: 'receive' },
   343  ] as const
   344  
   345  /**
   346   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
   347   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
   348   */
   349  export const assetReceiverAddress = {
   350    1: '0x15DdA60616Ffca20371ED1659dBB78E888f65556',
   351    10: '0x15DdA60616Ffca20371ED1659dBB78E888f65556',
   352  } as const
   353  
   354  /**
   355   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
   356   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
   357   */
   358  export const assetReceiverConfig = {
   359    address: assetReceiverAddress,
   360    abi: assetReceiverABI,
   361  } as const
   362  
   363  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   364  // AttestationStation
   365  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   366  
   367  /**
   368   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
   369   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
   370   */
   371  export const attestationStationABI = [
   372    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
   373    {
   374      type: 'event',
   375      anonymous: false,
   376      inputs: [
   377        {
   378          name: 'creator',
   379          internalType: 'address',
   380          type: 'address',
   381          indexed: true,
   382        },
   383        {
   384          name: 'about',
   385          internalType: 'address',
   386          type: 'address',
   387          indexed: true,
   388        },
   389        { name: 'key', internalType: 'bytes32', type: 'bytes32', indexed: true },
   390        { name: 'val', internalType: 'bytes', type: 'bytes', indexed: false },
   391      ],
   392      name: 'AttestationCreated',
   393    },
   394    {
   395      stateMutability: 'nonpayable',
   396      type: 'function',
   397      inputs: [
   398        {
   399          name: '_attestations',
   400          internalType: 'struct AttestationStation.AttestationData[]',
   401          type: 'tuple[]',
   402          components: [
   403            { name: 'about', internalType: 'address', type: 'address' },
   404            { name: 'key', internalType: 'bytes32', type: 'bytes32' },
   405            { name: 'val', internalType: 'bytes', type: 'bytes' },
   406          ],
   407        },
   408      ],
   409      name: 'attest',
   410      outputs: [],
   411    },
   412    {
   413      stateMutability: 'nonpayable',
   414      type: 'function',
   415      inputs: [
   416        { name: '_about', internalType: 'address', type: 'address' },
   417        { name: '_key', internalType: 'bytes32', type: 'bytes32' },
   418        { name: '_val', internalType: 'bytes', type: 'bytes' },
   419      ],
   420      name: 'attest',
   421      outputs: [],
   422    },
   423    {
   424      stateMutability: 'view',
   425      type: 'function',
   426      inputs: [
   427        { name: '', internalType: 'address', type: 'address' },
   428        { name: '', internalType: 'address', type: 'address' },
   429        { name: '', internalType: 'bytes32', type: 'bytes32' },
   430      ],
   431      name: 'attestations',
   432      outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],
   433    },
   434    {
   435      stateMutability: 'view',
   436      type: 'function',
   437      inputs: [],
   438      name: 'version',
   439      outputs: [{ name: '', internalType: 'string', type: 'string' }],
   440    },
   441  ] as const
   442  
   443  /**
   444   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
   445   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
   446   */
   447  export const attestationStationAddress = {
   448    10: '0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77',
   449    420: '0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77',
   450  } as const
   451  
   452  /**
   453   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
   454   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
   455   */
   456  export const attestationStationConfig = {
   457    address: attestationStationAddress,
   458    abi: attestationStationABI,
   459  } as const
   460  
   461  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   462  // BaseFeeVault
   463  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   464  
   465  /**
   466   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019)
   467   */
   468  export const baseFeeVaultABI = [
   469    {
   470      stateMutability: 'nonpayable',
   471      type: 'constructor',
   472      inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }],
   473    },
   474    {
   475      type: 'event',
   476      anonymous: false,
   477      inputs: [
   478        {
   479          name: 'value',
   480          internalType: 'uint256',
   481          type: 'uint256',
   482          indexed: false,
   483        },
   484        { name: 'to', internalType: 'address', type: 'address', indexed: false },
   485        {
   486          name: 'from',
   487          internalType: 'address',
   488          type: 'address',
   489          indexed: false,
   490        },
   491      ],
   492      name: 'Withdrawal',
   493    },
   494    {
   495      stateMutability: 'view',
   496      type: 'function',
   497      inputs: [],
   498      name: 'MIN_WITHDRAWAL_AMOUNT',
   499      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
   500    },
   501    {
   502      stateMutability: 'view',
   503      type: 'function',
   504      inputs: [],
   505      name: 'RECIPIENT',
   506      outputs: [{ name: '', internalType: 'address', type: 'address' }],
   507    },
   508    {
   509      stateMutability: 'view',
   510      type: 'function',
   511      inputs: [],
   512      name: 'totalProcessed',
   513      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
   514    },
   515    {
   516      stateMutability: 'view',
   517      type: 'function',
   518      inputs: [],
   519      name: 'version',
   520      outputs: [{ name: '', internalType: 'string', type: 'string' }],
   521    },
   522    {
   523      stateMutability: 'nonpayable',
   524      type: 'function',
   525      inputs: [],
   526      name: 'withdraw',
   527      outputs: [],
   528    },
   529    { stateMutability: 'payable', type: 'receive' },
   530  ] as const
   531  
   532  /**
   533   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019)
   534   */
   535  export const baseFeeVaultAddress = {
   536    420: '0x4200000000000000000000000000000000000019',
   537  } as const
   538  
   539  /**
   540   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019)
   541   */
   542  export const baseFeeVaultConfig = {
   543    address: baseFeeVaultAddress,
   544    abi: baseFeeVaultABI,
   545  } as const
   546  
   547  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   548  // CheckBalanceHigh
   549  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   550  
   551  /**
   552   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F)
   553   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F)
   554   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9)
   555   */
   556  export const checkBalanceHighABI = [
   557    {
   558      type: 'event',
   559      anonymous: false,
   560      inputs: [
   561        {
   562          name: 'params',
   563          internalType: 'struct CheckBalanceHigh.Params',
   564          type: 'tuple',
   565          components: [
   566            { name: 'target', internalType: 'address', type: 'address' },
   567            { name: 'threshold', internalType: 'uint256', type: 'uint256' },
   568          ],
   569          indexed: false,
   570        },
   571      ],
   572      name: '_EventToExposeStructInABI__Params',
   573    },
   574    {
   575      stateMutability: 'view',
   576      type: 'function',
   577      inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }],
   578      name: 'check',
   579      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
   580    },
   581  ] as const
   582  
   583  /**
   584   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F)
   585   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F)
   586   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9)
   587   */
   588  export const checkBalanceHighAddress = {
   589    1: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F',
   590    5: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F',
   591    420: '0x5d7103853f12109A7d27F118e54BbC654ad847E9',
   592  } as const
   593  
   594  /**
   595   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F)
   596   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F)
   597   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9)
   598   */
   599  export const checkBalanceHighConfig = {
   600    address: checkBalanceHighAddress,
   601    abi: checkBalanceHighABI,
   602  } as const
   603  
   604  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   605  // CheckBalanceLow
   606  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   607  
   608  /**
   609   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640)
   610   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640)
   611   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474)
   612   */
   613  export const checkBalanceLowABI = [
   614    {
   615      type: 'event',
   616      anonymous: false,
   617      inputs: [
   618        {
   619          name: 'params',
   620          internalType: 'struct CheckBalanceLow.Params',
   621          type: 'tuple',
   622          components: [
   623            { name: 'target', internalType: 'address', type: 'address' },
   624            { name: 'threshold', internalType: 'uint256', type: 'uint256' },
   625          ],
   626          indexed: false,
   627        },
   628      ],
   629      name: '_EventToExposeStructInABI__Params',
   630    },
   631    {
   632      stateMutability: 'view',
   633      type: 'function',
   634      inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }],
   635      name: 'check',
   636      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
   637    },
   638  ] as const
   639  
   640  /**
   641   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640)
   642   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640)
   643   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474)
   644   */
   645  export const checkBalanceLowAddress = {
   646    1: '0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640',
   647    5: '0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640',
   648    420: '0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474',
   649  } as const
   650  
   651  /**
   652   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640)
   653   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640)
   654   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474)
   655   */
   656  export const checkBalanceLowConfig = {
   657    address: checkBalanceLowAddress,
   658    abi: checkBalanceLowABI,
   659  } as const
   660  
   661  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   662  // CheckGelatoLow
   663  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   664  
   665  /**
   666   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa)
   667   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa)
   668   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862)
   669   */
   670  export const checkGelatoLowABI = [
   671    {
   672      type: 'event',
   673      anonymous: false,
   674      inputs: [
   675        {
   676          name: 'params',
   677          internalType: 'struct CheckGelatoLow.Params',
   678          type: 'tuple',
   679          components: [
   680            { name: 'treasury', internalType: 'address', type: 'address' },
   681            { name: 'threshold', internalType: 'uint256', type: 'uint256' },
   682            { name: 'recipient', internalType: 'address', type: 'address' },
   683          ],
   684          indexed: false,
   685        },
   686      ],
   687      name: '_EventToExposeStructInABI__Params',
   688    },
   689    {
   690      stateMutability: 'view',
   691      type: 'function',
   692      inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }],
   693      name: 'check',
   694      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
   695    },
   696  ] as const
   697  
   698  /**
   699   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa)
   700   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa)
   701   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862)
   702   */
   703  export const checkGelatoLowAddress = {
   704    1: '0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa',
   705    5: '0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa',
   706    420: '0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862',
   707  } as const
   708  
   709  /**
   710   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa)
   711   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa)
   712   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862)
   713   */
   714  export const checkGelatoLowConfig = {
   715    address: checkGelatoLowAddress,
   716    abi: checkGelatoLowABI,
   717  } as const
   718  
   719  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   720  // CheckTrue
   721  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   722  
   723  /**
   724   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D)
   725   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D)
   726   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32)
   727   */
   728  export const checkTrueABI = [
   729    {
   730      stateMutability: 'pure',
   731      type: 'function',
   732      inputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],
   733      name: 'check',
   734      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
   735    },
   736  ] as const
   737  
   738  /**
   739   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D)
   740   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D)
   741   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32)
   742   */
   743  export const checkTrueAddress = {
   744    1: '0x5c741a38cb11424711231777D71689C458eE835D',
   745    5: '0x5c741a38cb11424711231777D71689C458eE835D',
   746    420: '0x47443D0C184e022F19BD1578F5bca6B8a9F58E32',
   747  } as const
   748  
   749  /**
   750   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D)
   751   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D)
   752   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32)
   753   */
   754  export const checkTrueConfig = {
   755    address: checkTrueAddress,
   756    abi: checkTrueABI,
   757  } as const
   758  
   759  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   760  // Drippie
   761  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   762  
   763  /**
   764   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
   765   */
   766  export const drippieABI = [
   767    {
   768      stateMutability: 'nonpayable',
   769      type: 'constructor',
   770      inputs: [{ name: '_owner', internalType: 'address', type: 'address' }],
   771    },
   772    {
   773      type: 'event',
   774      anonymous: false,
   775      inputs: [
   776        {
   777          name: 'nameref',
   778          internalType: 'string',
   779          type: 'string',
   780          indexed: true,
   781        },
   782        { name: 'name', internalType: 'string', type: 'string', indexed: false },
   783        {
   784          name: 'config',
   785          internalType: 'struct Drippie.DripConfig',
   786          type: 'tuple',
   787          components: [
   788            { name: 'reentrant', internalType: 'bool', type: 'bool' },
   789            { name: 'interval', internalType: 'uint256', type: 'uint256' },
   790            {
   791              name: 'dripcheck',
   792              internalType: 'contract IDripCheck',
   793              type: 'address',
   794            },
   795            { name: 'checkparams', internalType: 'bytes', type: 'bytes' },
   796            {
   797              name: 'actions',
   798              internalType: 'struct Drippie.DripAction[]',
   799              type: 'tuple[]',
   800              components: [
   801                {
   802                  name: 'target',
   803                  internalType: 'address payable',
   804                  type: 'address',
   805                },
   806                { name: 'data', internalType: 'bytes', type: 'bytes' },
   807                { name: 'value', internalType: 'uint256', type: 'uint256' },
   808              ],
   809            },
   810          ],
   811          indexed: false,
   812        },
   813      ],
   814      name: 'DripCreated',
   815    },
   816    {
   817      type: 'event',
   818      anonymous: false,
   819      inputs: [
   820        {
   821          name: 'nameref',
   822          internalType: 'string',
   823          type: 'string',
   824          indexed: true,
   825        },
   826        { name: 'name', internalType: 'string', type: 'string', indexed: false },
   827        {
   828          name: 'executor',
   829          internalType: 'address',
   830          type: 'address',
   831          indexed: false,
   832        },
   833        {
   834          name: 'timestamp',
   835          internalType: 'uint256',
   836          type: 'uint256',
   837          indexed: false,
   838        },
   839      ],
   840      name: 'DripExecuted',
   841    },
   842    {
   843      type: 'event',
   844      anonymous: false,
   845      inputs: [
   846        {
   847          name: 'nameref',
   848          internalType: 'string',
   849          type: 'string',
   850          indexed: true,
   851        },
   852        { name: 'name', internalType: 'string', type: 'string', indexed: false },
   853        {
   854          name: 'status',
   855          internalType: 'enum Drippie.DripStatus',
   856          type: 'uint8',
   857          indexed: false,
   858        },
   859      ],
   860      name: 'DripStatusUpdated',
   861    },
   862    {
   863      type: 'event',
   864      anonymous: false,
   865      inputs: [
   866        { name: 'user', internalType: 'address', type: 'address', indexed: true },
   867        {
   868          name: 'newOwner',
   869          internalType: 'address',
   870          type: 'address',
   871          indexed: true,
   872        },
   873      ],
   874      name: 'OwnerUpdated',
   875    },
   876    {
   877      type: 'event',
   878      anonymous: false,
   879      inputs: [
   880        { name: 'from', internalType: 'address', type: 'address', indexed: true },
   881        {
   882          name: 'amount',
   883          internalType: 'uint256',
   884          type: 'uint256',
   885          indexed: false,
   886        },
   887      ],
   888      name: 'ReceivedETH',
   889    },
   890    {
   891      type: 'event',
   892      anonymous: false,
   893      inputs: [
   894        {
   895          name: 'withdrawer',
   896          internalType: 'address',
   897          type: 'address',
   898          indexed: true,
   899        },
   900        {
   901          name: 'recipient',
   902          internalType: 'address',
   903          type: 'address',
   904          indexed: true,
   905        },
   906        {
   907          name: 'asset',
   908          internalType: 'address',
   909          type: 'address',
   910          indexed: true,
   911        },
   912        {
   913          name: 'amount',
   914          internalType: 'uint256',
   915          type: 'uint256',
   916          indexed: false,
   917        },
   918      ],
   919      name: 'WithdrewERC20',
   920    },
   921    {
   922      type: 'event',
   923      anonymous: false,
   924      inputs: [
   925        {
   926          name: 'withdrawer',
   927          internalType: 'address',
   928          type: 'address',
   929          indexed: true,
   930        },
   931        {
   932          name: 'recipient',
   933          internalType: 'address',
   934          type: 'address',
   935          indexed: true,
   936        },
   937        {
   938          name: 'asset',
   939          internalType: 'address',
   940          type: 'address',
   941          indexed: true,
   942        },
   943        { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false },
   944      ],
   945      name: 'WithdrewERC721',
   946    },
   947    {
   948      type: 'event',
   949      anonymous: false,
   950      inputs: [
   951        {
   952          name: 'withdrawer',
   953          internalType: 'address',
   954          type: 'address',
   955          indexed: true,
   956        },
   957        {
   958          name: 'recipient',
   959          internalType: 'address',
   960          type: 'address',
   961          indexed: true,
   962        },
   963        {
   964          name: 'amount',
   965          internalType: 'uint256',
   966          type: 'uint256',
   967          indexed: false,
   968        },
   969      ],
   970      name: 'WithdrewETH',
   971    },
   972    {
   973      stateMutability: 'payable',
   974      type: 'function',
   975      inputs: [
   976        { name: '_target', internalType: 'address', type: 'address' },
   977        { name: '_data', internalType: 'bytes', type: 'bytes' },
   978        { name: '_value', internalType: 'uint256', type: 'uint256' },
   979      ],
   980      name: 'CALL',
   981      outputs: [
   982        { name: '', internalType: 'bool', type: 'bool' },
   983        { name: '', internalType: 'bytes', type: 'bytes' },
   984      ],
   985    },
   986    {
   987      stateMutability: 'payable',
   988      type: 'function',
   989      inputs: [
   990        { name: '_target', internalType: 'address', type: 'address' },
   991        { name: '_data', internalType: 'bytes', type: 'bytes' },
   992      ],
   993      name: 'DELEGATECALL',
   994      outputs: [
   995        { name: '', internalType: 'bool', type: 'bool' },
   996        { name: '', internalType: 'bytes', type: 'bytes' },
   997      ],
   998    },
   999    {
  1000      stateMutability: 'nonpayable',
  1001      type: 'function',
  1002      inputs: [
  1003        { name: '_name', internalType: 'string', type: 'string' },
  1004        {
  1005          name: '_config',
  1006          internalType: 'struct Drippie.DripConfig',
  1007          type: 'tuple',
  1008          components: [
  1009            { name: 'reentrant', internalType: 'bool', type: 'bool' },
  1010            { name: 'interval', internalType: 'uint256', type: 'uint256' },
  1011            {
  1012              name: 'dripcheck',
  1013              internalType: 'contract IDripCheck',
  1014              type: 'address',
  1015            },
  1016            { name: 'checkparams', internalType: 'bytes', type: 'bytes' },
  1017            {
  1018              name: 'actions',
  1019              internalType: 'struct Drippie.DripAction[]',
  1020              type: 'tuple[]',
  1021              components: [
  1022                {
  1023                  name: 'target',
  1024                  internalType: 'address payable',
  1025                  type: 'address',
  1026                },
  1027                { name: 'data', internalType: 'bytes', type: 'bytes' },
  1028                { name: 'value', internalType: 'uint256', type: 'uint256' },
  1029              ],
  1030            },
  1031          ],
  1032        },
  1033      ],
  1034      name: 'create',
  1035      outputs: [],
  1036    },
  1037    {
  1038      stateMutability: 'nonpayable',
  1039      type: 'function',
  1040      inputs: [{ name: '_name', internalType: 'string', type: 'string' }],
  1041      name: 'drip',
  1042      outputs: [],
  1043    },
  1044    {
  1045      stateMutability: 'view',
  1046      type: 'function',
  1047      inputs: [{ name: '', internalType: 'string', type: 'string' }],
  1048      name: 'drips',
  1049      outputs: [
  1050        {
  1051          name: 'status',
  1052          internalType: 'enum Drippie.DripStatus',
  1053          type: 'uint8',
  1054        },
  1055        {
  1056          name: 'config',
  1057          internalType: 'struct Drippie.DripConfig',
  1058          type: 'tuple',
  1059          components: [
  1060            { name: 'reentrant', internalType: 'bool', type: 'bool' },
  1061            { name: 'interval', internalType: 'uint256', type: 'uint256' },
  1062            {
  1063              name: 'dripcheck',
  1064              internalType: 'contract IDripCheck',
  1065              type: 'address',
  1066            },
  1067            { name: 'checkparams', internalType: 'bytes', type: 'bytes' },
  1068            {
  1069              name: 'actions',
  1070              internalType: 'struct Drippie.DripAction[]',
  1071              type: 'tuple[]',
  1072              components: [
  1073                {
  1074                  name: 'target',
  1075                  internalType: 'address payable',
  1076                  type: 'address',
  1077                },
  1078                { name: 'data', internalType: 'bytes', type: 'bytes' },
  1079                { name: 'value', internalType: 'uint256', type: 'uint256' },
  1080              ],
  1081            },
  1082          ],
  1083        },
  1084        { name: 'last', internalType: 'uint256', type: 'uint256' },
  1085        { name: 'count', internalType: 'uint256', type: 'uint256' },
  1086      ],
  1087    },
  1088    {
  1089      stateMutability: 'view',
  1090      type: 'function',
  1091      inputs: [{ name: '_name', internalType: 'string', type: 'string' }],
  1092      name: 'executable',
  1093      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  1094    },
  1095    {
  1096      stateMutability: 'view',
  1097      type: 'function',
  1098      inputs: [],
  1099      name: 'owner',
  1100      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  1101    },
  1102    {
  1103      stateMutability: 'nonpayable',
  1104      type: 'function',
  1105      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
  1106      name: 'setOwner',
  1107      outputs: [],
  1108    },
  1109    {
  1110      stateMutability: 'nonpayable',
  1111      type: 'function',
  1112      inputs: [
  1113        { name: '_name', internalType: 'string', type: 'string' },
  1114        {
  1115          name: '_status',
  1116          internalType: 'enum Drippie.DripStatus',
  1117          type: 'uint8',
  1118        },
  1119      ],
  1120      name: 'status',
  1121      outputs: [],
  1122    },
  1123    {
  1124      stateMutability: 'nonpayable',
  1125      type: 'function',
  1126      inputs: [
  1127        { name: '_asset', internalType: 'contract ERC20', type: 'address' },
  1128        { name: '_to', internalType: 'address', type: 'address' },
  1129        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  1130      ],
  1131      name: 'withdrawERC20',
  1132      outputs: [],
  1133    },
  1134    {
  1135      stateMutability: 'nonpayable',
  1136      type: 'function',
  1137      inputs: [
  1138        { name: '_asset', internalType: 'contract ERC20', type: 'address' },
  1139        { name: '_to', internalType: 'address', type: 'address' },
  1140      ],
  1141      name: 'withdrawERC20',
  1142      outputs: [],
  1143    },
  1144    {
  1145      stateMutability: 'nonpayable',
  1146      type: 'function',
  1147      inputs: [
  1148        { name: '_asset', internalType: 'contract ERC721', type: 'address' },
  1149        { name: '_to', internalType: 'address', type: 'address' },
  1150        { name: '_id', internalType: 'uint256', type: 'uint256' },
  1151      ],
  1152      name: 'withdrawERC721',
  1153      outputs: [],
  1154    },
  1155    {
  1156      stateMutability: 'nonpayable',
  1157      type: 'function',
  1158      inputs: [
  1159        { name: '_to', internalType: 'address payable', type: 'address' },
  1160        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  1161      ],
  1162      name: 'withdrawETH',
  1163      outputs: [],
  1164    },
  1165    {
  1166      stateMutability: 'nonpayable',
  1167      type: 'function',
  1168      inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }],
  1169      name: 'withdrawETH',
  1170      outputs: [],
  1171    },
  1172    { stateMutability: 'payable', type: 'receive' },
  1173  ] as const
  1174  
  1175  /**
  1176   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
  1177   */
  1178  export const drippieAddress = {
  1179    1: '0x44b3A2a040057eBafC601A78647e805fd58B1f50',
  1180  } as const
  1181  
  1182  /**
  1183   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
  1184   */
  1185  export const drippieConfig = {
  1186    address: drippieAddress,
  1187    abi: drippieABI,
  1188  } as const
  1189  
  1190  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1191  // Drippie_goerli
  1192  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1193  
  1194  /**
  1195   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
  1196   */
  1197  export const drippieGoerliABI = [
  1198    {
  1199      stateMutability: 'nonpayable',
  1200      type: 'constructor',
  1201      inputs: [{ name: '_owner', internalType: 'address', type: 'address' }],
  1202    },
  1203    {
  1204      type: 'event',
  1205      anonymous: false,
  1206      inputs: [
  1207        {
  1208          name: 'nameref',
  1209          internalType: 'string',
  1210          type: 'string',
  1211          indexed: true,
  1212        },
  1213        { name: 'name', internalType: 'string', type: 'string', indexed: false },
  1214        {
  1215          name: 'config',
  1216          internalType: 'struct Drippie.DripConfig',
  1217          type: 'tuple',
  1218          components: [
  1219            { name: 'reentrant', internalType: 'bool', type: 'bool' },
  1220            { name: 'interval', internalType: 'uint256', type: 'uint256' },
  1221            {
  1222              name: 'dripcheck',
  1223              internalType: 'contract IDripCheck',
  1224              type: 'address',
  1225            },
  1226            { name: 'checkparams', internalType: 'bytes', type: 'bytes' },
  1227            {
  1228              name: 'actions',
  1229              internalType: 'struct Drippie.DripAction[]',
  1230              type: 'tuple[]',
  1231              components: [
  1232                {
  1233                  name: 'target',
  1234                  internalType: 'address payable',
  1235                  type: 'address',
  1236                },
  1237                { name: 'data', internalType: 'bytes', type: 'bytes' },
  1238                { name: 'value', internalType: 'uint256', type: 'uint256' },
  1239              ],
  1240            },
  1241          ],
  1242          indexed: false,
  1243        },
  1244      ],
  1245      name: 'DripCreated',
  1246    },
  1247    {
  1248      type: 'event',
  1249      anonymous: false,
  1250      inputs: [
  1251        {
  1252          name: 'nameref',
  1253          internalType: 'string',
  1254          type: 'string',
  1255          indexed: true,
  1256        },
  1257        { name: 'name', internalType: 'string', type: 'string', indexed: false },
  1258        {
  1259          name: 'executor',
  1260          internalType: 'address',
  1261          type: 'address',
  1262          indexed: false,
  1263        },
  1264        {
  1265          name: 'timestamp',
  1266          internalType: 'uint256',
  1267          type: 'uint256',
  1268          indexed: false,
  1269        },
  1270      ],
  1271      name: 'DripExecuted',
  1272    },
  1273    {
  1274      type: 'event',
  1275      anonymous: false,
  1276      inputs: [
  1277        {
  1278          name: 'nameref',
  1279          internalType: 'string',
  1280          type: 'string',
  1281          indexed: true,
  1282        },
  1283        { name: 'name', internalType: 'string', type: 'string', indexed: false },
  1284        {
  1285          name: 'status',
  1286          internalType: 'enum Drippie.DripStatus',
  1287          type: 'uint8',
  1288          indexed: false,
  1289        },
  1290      ],
  1291      name: 'DripStatusUpdated',
  1292    },
  1293    {
  1294      type: 'event',
  1295      anonymous: false,
  1296      inputs: [
  1297        { name: 'user', internalType: 'address', type: 'address', indexed: true },
  1298        {
  1299          name: 'newOwner',
  1300          internalType: 'address',
  1301          type: 'address',
  1302          indexed: true,
  1303        },
  1304      ],
  1305      name: 'OwnerUpdated',
  1306    },
  1307    {
  1308      type: 'event',
  1309      anonymous: false,
  1310      inputs: [
  1311        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  1312        {
  1313          name: 'amount',
  1314          internalType: 'uint256',
  1315          type: 'uint256',
  1316          indexed: false,
  1317        },
  1318      ],
  1319      name: 'ReceivedETH',
  1320    },
  1321    {
  1322      type: 'event',
  1323      anonymous: false,
  1324      inputs: [
  1325        {
  1326          name: 'withdrawer',
  1327          internalType: 'address',
  1328          type: 'address',
  1329          indexed: true,
  1330        },
  1331        {
  1332          name: 'recipient',
  1333          internalType: 'address',
  1334          type: 'address',
  1335          indexed: true,
  1336        },
  1337        {
  1338          name: 'asset',
  1339          internalType: 'address',
  1340          type: 'address',
  1341          indexed: true,
  1342        },
  1343        {
  1344          name: 'amount',
  1345          internalType: 'uint256',
  1346          type: 'uint256',
  1347          indexed: false,
  1348        },
  1349      ],
  1350      name: 'WithdrewERC20',
  1351    },
  1352    {
  1353      type: 'event',
  1354      anonymous: false,
  1355      inputs: [
  1356        {
  1357          name: 'withdrawer',
  1358          internalType: 'address',
  1359          type: 'address',
  1360          indexed: true,
  1361        },
  1362        {
  1363          name: 'recipient',
  1364          internalType: 'address',
  1365          type: 'address',
  1366          indexed: true,
  1367        },
  1368        {
  1369          name: 'asset',
  1370          internalType: 'address',
  1371          type: 'address',
  1372          indexed: true,
  1373        },
  1374        { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false },
  1375      ],
  1376      name: 'WithdrewERC721',
  1377    },
  1378    {
  1379      type: 'event',
  1380      anonymous: false,
  1381      inputs: [
  1382        {
  1383          name: 'withdrawer',
  1384          internalType: 'address',
  1385          type: 'address',
  1386          indexed: true,
  1387        },
  1388        {
  1389          name: 'recipient',
  1390          internalType: 'address',
  1391          type: 'address',
  1392          indexed: true,
  1393        },
  1394        {
  1395          name: 'amount',
  1396          internalType: 'uint256',
  1397          type: 'uint256',
  1398          indexed: false,
  1399        },
  1400      ],
  1401      name: 'WithdrewETH',
  1402    },
  1403    {
  1404      stateMutability: 'payable',
  1405      type: 'function',
  1406      inputs: [
  1407        { name: '_target', internalType: 'address', type: 'address' },
  1408        { name: '_data', internalType: 'bytes', type: 'bytes' },
  1409        { name: '_value', internalType: 'uint256', type: 'uint256' },
  1410      ],
  1411      name: 'CALL',
  1412      outputs: [
  1413        { name: '', internalType: 'bool', type: 'bool' },
  1414        { name: '', internalType: 'bytes', type: 'bytes' },
  1415      ],
  1416    },
  1417    {
  1418      stateMutability: 'payable',
  1419      type: 'function',
  1420      inputs: [
  1421        { name: '_target', internalType: 'address', type: 'address' },
  1422        { name: '_data', internalType: 'bytes', type: 'bytes' },
  1423      ],
  1424      name: 'DELEGATECALL',
  1425      outputs: [
  1426        { name: '', internalType: 'bool', type: 'bool' },
  1427        { name: '', internalType: 'bytes', type: 'bytes' },
  1428      ],
  1429    },
  1430    {
  1431      stateMutability: 'nonpayable',
  1432      type: 'function',
  1433      inputs: [
  1434        { name: '_name', internalType: 'string', type: 'string' },
  1435        {
  1436          name: '_config',
  1437          internalType: 'struct Drippie.DripConfig',
  1438          type: 'tuple',
  1439          components: [
  1440            { name: 'reentrant', internalType: 'bool', type: 'bool' },
  1441            { name: 'interval', internalType: 'uint256', type: 'uint256' },
  1442            {
  1443              name: 'dripcheck',
  1444              internalType: 'contract IDripCheck',
  1445              type: 'address',
  1446            },
  1447            { name: 'checkparams', internalType: 'bytes', type: 'bytes' },
  1448            {
  1449              name: 'actions',
  1450              internalType: 'struct Drippie.DripAction[]',
  1451              type: 'tuple[]',
  1452              components: [
  1453                {
  1454                  name: 'target',
  1455                  internalType: 'address payable',
  1456                  type: 'address',
  1457                },
  1458                { name: 'data', internalType: 'bytes', type: 'bytes' },
  1459                { name: 'value', internalType: 'uint256', type: 'uint256' },
  1460              ],
  1461            },
  1462          ],
  1463        },
  1464      ],
  1465      name: 'create',
  1466      outputs: [],
  1467    },
  1468    {
  1469      stateMutability: 'nonpayable',
  1470      type: 'function',
  1471      inputs: [{ name: '_name', internalType: 'string', type: 'string' }],
  1472      name: 'drip',
  1473      outputs: [],
  1474    },
  1475    {
  1476      stateMutability: 'view',
  1477      type: 'function',
  1478      inputs: [{ name: '', internalType: 'string', type: 'string' }],
  1479      name: 'drips',
  1480      outputs: [
  1481        {
  1482          name: 'status',
  1483          internalType: 'enum Drippie.DripStatus',
  1484          type: 'uint8',
  1485        },
  1486        {
  1487          name: 'config',
  1488          internalType: 'struct Drippie.DripConfig',
  1489          type: 'tuple',
  1490          components: [
  1491            { name: 'reentrant', internalType: 'bool', type: 'bool' },
  1492            { name: 'interval', internalType: 'uint256', type: 'uint256' },
  1493            {
  1494              name: 'dripcheck',
  1495              internalType: 'contract IDripCheck',
  1496              type: 'address',
  1497            },
  1498            { name: 'checkparams', internalType: 'bytes', type: 'bytes' },
  1499            {
  1500              name: 'actions',
  1501              internalType: 'struct Drippie.DripAction[]',
  1502              type: 'tuple[]',
  1503              components: [
  1504                {
  1505                  name: 'target',
  1506                  internalType: 'address payable',
  1507                  type: 'address',
  1508                },
  1509                { name: 'data', internalType: 'bytes', type: 'bytes' },
  1510                { name: 'value', internalType: 'uint256', type: 'uint256' },
  1511              ],
  1512            },
  1513          ],
  1514        },
  1515        { name: 'last', internalType: 'uint256', type: 'uint256' },
  1516        { name: 'count', internalType: 'uint256', type: 'uint256' },
  1517      ],
  1518    },
  1519    {
  1520      stateMutability: 'view',
  1521      type: 'function',
  1522      inputs: [{ name: '_name', internalType: 'string', type: 'string' }],
  1523      name: 'executable',
  1524      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  1525    },
  1526    {
  1527      stateMutability: 'view',
  1528      type: 'function',
  1529      inputs: [],
  1530      name: 'owner',
  1531      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  1532    },
  1533    {
  1534      stateMutability: 'nonpayable',
  1535      type: 'function',
  1536      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
  1537      name: 'setOwner',
  1538      outputs: [],
  1539    },
  1540    {
  1541      stateMutability: 'nonpayable',
  1542      type: 'function',
  1543      inputs: [
  1544        { name: '_name', internalType: 'string', type: 'string' },
  1545        {
  1546          name: '_status',
  1547          internalType: 'enum Drippie.DripStatus',
  1548          type: 'uint8',
  1549        },
  1550      ],
  1551      name: 'status',
  1552      outputs: [],
  1553    },
  1554    {
  1555      stateMutability: 'nonpayable',
  1556      type: 'function',
  1557      inputs: [
  1558        { name: '_asset', internalType: 'contract ERC20', type: 'address' },
  1559        { name: '_to', internalType: 'address', type: 'address' },
  1560        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  1561      ],
  1562      name: 'withdrawERC20',
  1563      outputs: [],
  1564    },
  1565    {
  1566      stateMutability: 'nonpayable',
  1567      type: 'function',
  1568      inputs: [
  1569        { name: '_asset', internalType: 'contract ERC20', type: 'address' },
  1570        { name: '_to', internalType: 'address', type: 'address' },
  1571      ],
  1572      name: 'withdrawERC20',
  1573      outputs: [],
  1574    },
  1575    {
  1576      stateMutability: 'nonpayable',
  1577      type: 'function',
  1578      inputs: [
  1579        { name: '_asset', internalType: 'contract ERC721', type: 'address' },
  1580        { name: '_to', internalType: 'address', type: 'address' },
  1581        { name: '_id', internalType: 'uint256', type: 'uint256' },
  1582      ],
  1583      name: 'withdrawERC721',
  1584      outputs: [],
  1585    },
  1586    {
  1587      stateMutability: 'nonpayable',
  1588      type: 'function',
  1589      inputs: [
  1590        { name: '_to', internalType: 'address payable', type: 'address' },
  1591        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  1592      ],
  1593      name: 'withdrawETH',
  1594      outputs: [],
  1595    },
  1596    {
  1597      stateMutability: 'nonpayable',
  1598      type: 'function',
  1599      inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }],
  1600      name: 'withdrawETH',
  1601      outputs: [],
  1602    },
  1603    { stateMutability: 'payable', type: 'receive' },
  1604  ] as const
  1605  
  1606  /**
  1607   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
  1608   */
  1609  export const drippieGoerliAddress = {
  1610    5: '0x44b3A2a040057eBafC601A78647e805fd58B1f50',
  1611  } as const
  1612  
  1613  /**
  1614   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
  1615   */
  1616  export const drippieGoerliConfig = {
  1617    address: drippieGoerliAddress,
  1618    abi: drippieGoerliABI,
  1619  } as const
  1620  
  1621  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1622  // Drippie_optimism-goerli
  1623  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1624  
  1625  /**
  1626   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86)
  1627   */
  1628  export const drippieOptimismGoerliABI = [
  1629    {
  1630      stateMutability: 'nonpayable',
  1631      type: 'constructor',
  1632      inputs: [{ name: '_owner', internalType: 'address', type: 'address' }],
  1633    },
  1634    {
  1635      type: 'event',
  1636      anonymous: false,
  1637      inputs: [
  1638        {
  1639          name: 'nameref',
  1640          internalType: 'string',
  1641          type: 'string',
  1642          indexed: true,
  1643        },
  1644        { name: 'name', internalType: 'string', type: 'string', indexed: false },
  1645        {
  1646          name: 'config',
  1647          internalType: 'struct Drippie.DripConfig',
  1648          type: 'tuple',
  1649          components: [
  1650            { name: 'interval', internalType: 'uint256', type: 'uint256' },
  1651            {
  1652              name: 'dripcheck',
  1653              internalType: 'contract IDripCheck',
  1654              type: 'address',
  1655            },
  1656            { name: 'checkparams', internalType: 'bytes', type: 'bytes' },
  1657            {
  1658              name: 'actions',
  1659              internalType: 'struct Drippie.DripAction[]',
  1660              type: 'tuple[]',
  1661              components: [
  1662                {
  1663                  name: 'target',
  1664                  internalType: 'address payable',
  1665                  type: 'address',
  1666                },
  1667                { name: 'data', internalType: 'bytes', type: 'bytes' },
  1668                { name: 'value', internalType: 'uint256', type: 'uint256' },
  1669              ],
  1670            },
  1671          ],
  1672          indexed: false,
  1673        },
  1674      ],
  1675      name: 'DripCreated',
  1676    },
  1677    {
  1678      type: 'event',
  1679      anonymous: false,
  1680      inputs: [
  1681        {
  1682          name: 'nameref',
  1683          internalType: 'string',
  1684          type: 'string',
  1685          indexed: true,
  1686        },
  1687        { name: 'name', internalType: 'string', type: 'string', indexed: false },
  1688        {
  1689          name: 'executor',
  1690          internalType: 'address',
  1691          type: 'address',
  1692          indexed: false,
  1693        },
  1694        {
  1695          name: 'timestamp',
  1696          internalType: 'uint256',
  1697          type: 'uint256',
  1698          indexed: false,
  1699        },
  1700      ],
  1701      name: 'DripExecuted',
  1702    },
  1703    {
  1704      type: 'event',
  1705      anonymous: false,
  1706      inputs: [
  1707        {
  1708          name: 'nameref',
  1709          internalType: 'string',
  1710          type: 'string',
  1711          indexed: true,
  1712        },
  1713        { name: 'name', internalType: 'string', type: 'string', indexed: false },
  1714        {
  1715          name: 'status',
  1716          internalType: 'enum Drippie.DripStatus',
  1717          type: 'uint8',
  1718          indexed: false,
  1719        },
  1720      ],
  1721      name: 'DripStatusUpdated',
  1722    },
  1723    {
  1724      type: 'event',
  1725      anonymous: false,
  1726      inputs: [
  1727        { name: 'user', internalType: 'address', type: 'address', indexed: true },
  1728        {
  1729          name: 'newOwner',
  1730          internalType: 'address',
  1731          type: 'address',
  1732          indexed: true,
  1733        },
  1734      ],
  1735      name: 'OwnerUpdated',
  1736    },
  1737    {
  1738      type: 'event',
  1739      anonymous: false,
  1740      inputs: [
  1741        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  1742        {
  1743          name: 'amount',
  1744          internalType: 'uint256',
  1745          type: 'uint256',
  1746          indexed: false,
  1747        },
  1748      ],
  1749      name: 'ReceivedETH',
  1750    },
  1751    {
  1752      type: 'event',
  1753      anonymous: false,
  1754      inputs: [
  1755        {
  1756          name: 'withdrawer',
  1757          internalType: 'address',
  1758          type: 'address',
  1759          indexed: true,
  1760        },
  1761        {
  1762          name: 'recipient',
  1763          internalType: 'address',
  1764          type: 'address',
  1765          indexed: true,
  1766        },
  1767        {
  1768          name: 'asset',
  1769          internalType: 'address',
  1770          type: 'address',
  1771          indexed: true,
  1772        },
  1773        {
  1774          name: 'amount',
  1775          internalType: 'uint256',
  1776          type: 'uint256',
  1777          indexed: false,
  1778        },
  1779      ],
  1780      name: 'WithdrewERC20',
  1781    },
  1782    {
  1783      type: 'event',
  1784      anonymous: false,
  1785      inputs: [
  1786        {
  1787          name: 'withdrawer',
  1788          internalType: 'address',
  1789          type: 'address',
  1790          indexed: true,
  1791        },
  1792        {
  1793          name: 'recipient',
  1794          internalType: 'address',
  1795          type: 'address',
  1796          indexed: true,
  1797        },
  1798        {
  1799          name: 'asset',
  1800          internalType: 'address',
  1801          type: 'address',
  1802          indexed: true,
  1803        },
  1804        { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false },
  1805      ],
  1806      name: 'WithdrewERC721',
  1807    },
  1808    {
  1809      type: 'event',
  1810      anonymous: false,
  1811      inputs: [
  1812        {
  1813          name: 'withdrawer',
  1814          internalType: 'address',
  1815          type: 'address',
  1816          indexed: true,
  1817        },
  1818        {
  1819          name: 'recipient',
  1820          internalType: 'address',
  1821          type: 'address',
  1822          indexed: true,
  1823        },
  1824        {
  1825          name: 'amount',
  1826          internalType: 'uint256',
  1827          type: 'uint256',
  1828          indexed: false,
  1829        },
  1830      ],
  1831      name: 'WithdrewETH',
  1832    },
  1833    {
  1834      stateMutability: 'payable',
  1835      type: 'function',
  1836      inputs: [
  1837        { name: '_target', internalType: 'address', type: 'address' },
  1838        { name: '_data', internalType: 'bytes', type: 'bytes' },
  1839        { name: '_gas', internalType: 'uint256', type: 'uint256' },
  1840        { name: '_value', internalType: 'uint256', type: 'uint256' },
  1841      ],
  1842      name: 'CALL',
  1843      outputs: [
  1844        { name: '', internalType: 'bool', type: 'bool' },
  1845        { name: '', internalType: 'bytes', type: 'bytes' },
  1846      ],
  1847    },
  1848    {
  1849      stateMutability: 'payable',
  1850      type: 'function',
  1851      inputs: [
  1852        { name: '_target', internalType: 'address', type: 'address' },
  1853        { name: '_data', internalType: 'bytes', type: 'bytes' },
  1854        { name: '_gas', internalType: 'uint256', type: 'uint256' },
  1855      ],
  1856      name: 'DELEGATECALL',
  1857      outputs: [
  1858        { name: '', internalType: 'bool', type: 'bool' },
  1859        { name: '', internalType: 'bytes', type: 'bytes' },
  1860      ],
  1861    },
  1862    {
  1863      stateMutability: 'nonpayable',
  1864      type: 'function',
  1865      inputs: [
  1866        { name: '_name', internalType: 'string', type: 'string' },
  1867        {
  1868          name: '_config',
  1869          internalType: 'struct Drippie.DripConfig',
  1870          type: 'tuple',
  1871          components: [
  1872            { name: 'interval', internalType: 'uint256', type: 'uint256' },
  1873            {
  1874              name: 'dripcheck',
  1875              internalType: 'contract IDripCheck',
  1876              type: 'address',
  1877            },
  1878            { name: 'checkparams', internalType: 'bytes', type: 'bytes' },
  1879            {
  1880              name: 'actions',
  1881              internalType: 'struct Drippie.DripAction[]',
  1882              type: 'tuple[]',
  1883              components: [
  1884                {
  1885                  name: 'target',
  1886                  internalType: 'address payable',
  1887                  type: 'address',
  1888                },
  1889                { name: 'data', internalType: 'bytes', type: 'bytes' },
  1890                { name: 'value', internalType: 'uint256', type: 'uint256' },
  1891              ],
  1892            },
  1893          ],
  1894        },
  1895      ],
  1896      name: 'create',
  1897      outputs: [],
  1898    },
  1899    {
  1900      stateMutability: 'nonpayable',
  1901      type: 'function',
  1902      inputs: [{ name: '_name', internalType: 'string', type: 'string' }],
  1903      name: 'drip',
  1904      outputs: [],
  1905    },
  1906    {
  1907      stateMutability: 'view',
  1908      type: 'function',
  1909      inputs: [{ name: '', internalType: 'string', type: 'string' }],
  1910      name: 'drips',
  1911      outputs: [
  1912        {
  1913          name: 'status',
  1914          internalType: 'enum Drippie.DripStatus',
  1915          type: 'uint8',
  1916        },
  1917        {
  1918          name: 'config',
  1919          internalType: 'struct Drippie.DripConfig',
  1920          type: 'tuple',
  1921          components: [
  1922            { name: 'interval', internalType: 'uint256', type: 'uint256' },
  1923            {
  1924              name: 'dripcheck',
  1925              internalType: 'contract IDripCheck',
  1926              type: 'address',
  1927            },
  1928            { name: 'checkparams', internalType: 'bytes', type: 'bytes' },
  1929            {
  1930              name: 'actions',
  1931              internalType: 'struct Drippie.DripAction[]',
  1932              type: 'tuple[]',
  1933              components: [
  1934                {
  1935                  name: 'target',
  1936                  internalType: 'address payable',
  1937                  type: 'address',
  1938                },
  1939                { name: 'data', internalType: 'bytes', type: 'bytes' },
  1940                { name: 'value', internalType: 'uint256', type: 'uint256' },
  1941              ],
  1942            },
  1943          ],
  1944        },
  1945        { name: 'last', internalType: 'uint256', type: 'uint256' },
  1946        { name: 'count', internalType: 'uint256', type: 'uint256' },
  1947      ],
  1948    },
  1949    {
  1950      stateMutability: 'view',
  1951      type: 'function',
  1952      inputs: [{ name: '_name', internalType: 'string', type: 'string' }],
  1953      name: 'executable',
  1954      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  1955    },
  1956    {
  1957      stateMutability: 'view',
  1958      type: 'function',
  1959      inputs: [],
  1960      name: 'owner',
  1961      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  1962    },
  1963    {
  1964      stateMutability: 'nonpayable',
  1965      type: 'function',
  1966      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
  1967      name: 'setOwner',
  1968      outputs: [],
  1969    },
  1970    {
  1971      stateMutability: 'nonpayable',
  1972      type: 'function',
  1973      inputs: [
  1974        { name: '_name', internalType: 'string', type: 'string' },
  1975        {
  1976          name: '_status',
  1977          internalType: 'enum Drippie.DripStatus',
  1978          type: 'uint8',
  1979        },
  1980      ],
  1981      name: 'status',
  1982      outputs: [],
  1983    },
  1984    {
  1985      stateMutability: 'nonpayable',
  1986      type: 'function',
  1987      inputs: [
  1988        { name: '_asset', internalType: 'contract ERC20', type: 'address' },
  1989        { name: '_to', internalType: 'address', type: 'address' },
  1990        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  1991      ],
  1992      name: 'withdrawERC20',
  1993      outputs: [],
  1994    },
  1995    {
  1996      stateMutability: 'nonpayable',
  1997      type: 'function',
  1998      inputs: [
  1999        { name: '_asset', internalType: 'contract ERC20', type: 'address' },
  2000        { name: '_to', internalType: 'address', type: 'address' },
  2001      ],
  2002      name: 'withdrawERC20',
  2003      outputs: [],
  2004    },
  2005    {
  2006      stateMutability: 'nonpayable',
  2007      type: 'function',
  2008      inputs: [
  2009        { name: '_asset', internalType: 'contract ERC721', type: 'address' },
  2010        { name: '_to', internalType: 'address', type: 'address' },
  2011        { name: '_id', internalType: 'uint256', type: 'uint256' },
  2012      ],
  2013      name: 'withdrawERC721',
  2014      outputs: [],
  2015    },
  2016    {
  2017      stateMutability: 'nonpayable',
  2018      type: 'function',
  2019      inputs: [
  2020        { name: '_to', internalType: 'address payable', type: 'address' },
  2021        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  2022      ],
  2023      name: 'withdrawETH',
  2024      outputs: [],
  2025    },
  2026    {
  2027      stateMutability: 'nonpayable',
  2028      type: 'function',
  2029      inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }],
  2030      name: 'withdrawETH',
  2031      outputs: [],
  2032    },
  2033    { stateMutability: 'payable', type: 'receive' },
  2034  ] as const
  2035  
  2036  /**
  2037   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86)
  2038   */
  2039  export const drippieOptimismGoerliAddress = {
  2040    420: '0x8D8d533C16D23847EB04EEB0925be8900Dd3af86',
  2041  } as const
  2042  
  2043  /**
  2044   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86)
  2045   */
  2046  export const drippieOptimismGoerliConfig = {
  2047    address: drippieOptimismGoerliAddress,
  2048    abi: drippieOptimismGoerliABI,
  2049  } as const
  2050  
  2051  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2052  // EAS
  2053  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2054  
  2055  /**
  2056   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4E0275Ea5a89e7a3c1B58411379D1a0eDdc5b088)
  2057   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5A633F1cc84B03F7588486CF2F386c102061E6e1)
  2058   */
  2059  export const easABI = [
  2060    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  2061    { type: 'error', inputs: [], name: 'AccessDenied' },
  2062    { type: 'error', inputs: [], name: 'AlreadyRevoked' },
  2063    { type: 'error', inputs: [], name: 'AlreadyRevokedOffchain' },
  2064    { type: 'error', inputs: [], name: 'AlreadyTimestamped' },
  2065    { type: 'error', inputs: [], name: 'InsufficientValue' },
  2066    { type: 'error', inputs: [], name: 'InvalidAttestation' },
  2067    { type: 'error', inputs: [], name: 'InvalidAttestations' },
  2068    { type: 'error', inputs: [], name: 'InvalidExpirationTime' },
  2069    { type: 'error', inputs: [], name: 'InvalidLength' },
  2070    { type: 'error', inputs: [], name: 'InvalidOffset' },
  2071    { type: 'error', inputs: [], name: 'InvalidRegistry' },
  2072    { type: 'error', inputs: [], name: 'InvalidRevocation' },
  2073    { type: 'error', inputs: [], name: 'InvalidRevocations' },
  2074    { type: 'error', inputs: [], name: 'InvalidSchema' },
  2075    { type: 'error', inputs: [], name: 'InvalidSignature' },
  2076    { type: 'error', inputs: [], name: 'InvalidVerifier' },
  2077    { type: 'error', inputs: [], name: 'Irrevocable' },
  2078    { type: 'error', inputs: [], name: 'NotFound' },
  2079    { type: 'error', inputs: [], name: 'NotPayable' },
  2080    { type: 'error', inputs: [], name: 'WrongSchema' },
  2081    {
  2082      type: 'event',
  2083      anonymous: false,
  2084      inputs: [
  2085        {
  2086          name: 'recipient',
  2087          internalType: 'address',
  2088          type: 'address',
  2089          indexed: true,
  2090        },
  2091        {
  2092          name: 'attester',
  2093          internalType: 'address',
  2094          type: 'address',
  2095          indexed: true,
  2096        },
  2097        { name: 'uid', internalType: 'bytes32', type: 'bytes32', indexed: false },
  2098        {
  2099          name: 'schema',
  2100          internalType: 'bytes32',
  2101          type: 'bytes32',
  2102          indexed: true,
  2103        },
  2104      ],
  2105      name: 'Attested',
  2106    },
  2107    {
  2108      type: 'event',
  2109      anonymous: false,
  2110      inputs: [
  2111        {
  2112          name: 'recipient',
  2113          internalType: 'address',
  2114          type: 'address',
  2115          indexed: true,
  2116        },
  2117        {
  2118          name: 'attester',
  2119          internalType: 'address',
  2120          type: 'address',
  2121          indexed: true,
  2122        },
  2123        { name: 'uid', internalType: 'bytes32', type: 'bytes32', indexed: false },
  2124        {
  2125          name: 'schema',
  2126          internalType: 'bytes32',
  2127          type: 'bytes32',
  2128          indexed: true,
  2129        },
  2130      ],
  2131      name: 'Revoked',
  2132    },
  2133    {
  2134      type: 'event',
  2135      anonymous: false,
  2136      inputs: [
  2137        {
  2138          name: 'revoker',
  2139          internalType: 'address',
  2140          type: 'address',
  2141          indexed: true,
  2142        },
  2143        { name: 'data', internalType: 'bytes32', type: 'bytes32', indexed: true },
  2144        {
  2145          name: 'timestamp',
  2146          internalType: 'uint64',
  2147          type: 'uint64',
  2148          indexed: true,
  2149        },
  2150      ],
  2151      name: 'RevokedOffchain',
  2152    },
  2153    {
  2154      type: 'event',
  2155      anonymous: false,
  2156      inputs: [
  2157        { name: 'data', internalType: 'bytes32', type: 'bytes32', indexed: true },
  2158        {
  2159          name: 'timestamp',
  2160          internalType: 'uint64',
  2161          type: 'uint64',
  2162          indexed: true,
  2163        },
  2164      ],
  2165      name: 'Timestamped',
  2166    },
  2167    {
  2168      stateMutability: 'payable',
  2169      type: 'function',
  2170      inputs: [
  2171        {
  2172          name: 'request',
  2173          internalType: 'struct AttestationRequest',
  2174          type: 'tuple',
  2175          components: [
  2176            { name: 'schema', internalType: 'bytes32', type: 'bytes32' },
  2177            {
  2178              name: 'data',
  2179              internalType: 'struct AttestationRequestData',
  2180              type: 'tuple',
  2181              components: [
  2182                { name: 'recipient', internalType: 'address', type: 'address' },
  2183                {
  2184                  name: 'expirationTime',
  2185                  internalType: 'uint64',
  2186                  type: 'uint64',
  2187                },
  2188                { name: 'revocable', internalType: 'bool', type: 'bool' },
  2189                { name: 'refUID', internalType: 'bytes32', type: 'bytes32' },
  2190                { name: 'data', internalType: 'bytes', type: 'bytes' },
  2191                { name: 'value', internalType: 'uint256', type: 'uint256' },
  2192              ],
  2193            },
  2194          ],
  2195        },
  2196      ],
  2197      name: 'attest',
  2198      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  2199    },
  2200    {
  2201      stateMutability: 'payable',
  2202      type: 'function',
  2203      inputs: [
  2204        {
  2205          name: 'delegatedRequest',
  2206          internalType: 'struct DelegatedAttestationRequest',
  2207          type: 'tuple',
  2208          components: [
  2209            { name: 'schema', internalType: 'bytes32', type: 'bytes32' },
  2210            {
  2211              name: 'data',
  2212              internalType: 'struct AttestationRequestData',
  2213              type: 'tuple',
  2214              components: [
  2215                { name: 'recipient', internalType: 'address', type: 'address' },
  2216                {
  2217                  name: 'expirationTime',
  2218                  internalType: 'uint64',
  2219                  type: 'uint64',
  2220                },
  2221                { name: 'revocable', internalType: 'bool', type: 'bool' },
  2222                { name: 'refUID', internalType: 'bytes32', type: 'bytes32' },
  2223                { name: 'data', internalType: 'bytes', type: 'bytes' },
  2224                { name: 'value', internalType: 'uint256', type: 'uint256' },
  2225              ],
  2226            },
  2227            {
  2228              name: 'signature',
  2229              internalType: 'struct EIP712Signature',
  2230              type: 'tuple',
  2231              components: [
  2232                { name: 'v', internalType: 'uint8', type: 'uint8' },
  2233                { name: 'r', internalType: 'bytes32', type: 'bytes32' },
  2234                { name: 's', internalType: 'bytes32', type: 'bytes32' },
  2235              ],
  2236            },
  2237            { name: 'attester', internalType: 'address', type: 'address' },
  2238          ],
  2239        },
  2240      ],
  2241      name: 'attestByDelegation',
  2242      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  2243    },
  2244    {
  2245      stateMutability: 'pure',
  2246      type: 'function',
  2247      inputs: [],
  2248      name: 'getAttestTypeHash',
  2249      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  2250    },
  2251    {
  2252      stateMutability: 'view',
  2253      type: 'function',
  2254      inputs: [{ name: 'uid', internalType: 'bytes32', type: 'bytes32' }],
  2255      name: 'getAttestation',
  2256      outputs: [
  2257        {
  2258          name: '',
  2259          internalType: 'struct Attestation',
  2260          type: 'tuple',
  2261          components: [
  2262            { name: 'uid', internalType: 'bytes32', type: 'bytes32' },
  2263            { name: 'schema', internalType: 'bytes32', type: 'bytes32' },
  2264            { name: 'time', internalType: 'uint64', type: 'uint64' },
  2265            { name: 'expirationTime', internalType: 'uint64', type: 'uint64' },
  2266            { name: 'revocationTime', internalType: 'uint64', type: 'uint64' },
  2267            { name: 'refUID', internalType: 'bytes32', type: 'bytes32' },
  2268            { name: 'recipient', internalType: 'address', type: 'address' },
  2269            { name: 'attester', internalType: 'address', type: 'address' },
  2270            { name: 'revocable', internalType: 'bool', type: 'bool' },
  2271            { name: 'data', internalType: 'bytes', type: 'bytes' },
  2272          ],
  2273        },
  2274      ],
  2275    },
  2276    {
  2277      stateMutability: 'view',
  2278      type: 'function',
  2279      inputs: [],
  2280      name: 'getDomainSeparator',
  2281      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  2282    },
  2283    {
  2284      stateMutability: 'view',
  2285      type: 'function',
  2286      inputs: [],
  2287      name: 'getName',
  2288      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  2289    },
  2290    {
  2291      stateMutability: 'view',
  2292      type: 'function',
  2293      inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
  2294      name: 'getNonce',
  2295      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2296    },
  2297    {
  2298      stateMutability: 'view',
  2299      type: 'function',
  2300      inputs: [
  2301        { name: 'revoker', internalType: 'address', type: 'address' },
  2302        { name: 'data', internalType: 'bytes32', type: 'bytes32' },
  2303      ],
  2304      name: 'getRevokeOffchain',
  2305      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2306    },
  2307    {
  2308      stateMutability: 'pure',
  2309      type: 'function',
  2310      inputs: [],
  2311      name: 'getRevokeTypeHash',
  2312      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  2313    },
  2314    {
  2315      stateMutability: 'pure',
  2316      type: 'function',
  2317      inputs: [],
  2318      name: 'getSchemaRegistry',
  2319      outputs: [
  2320        { name: '', internalType: 'contract ISchemaRegistry', type: 'address' },
  2321      ],
  2322    },
  2323    {
  2324      stateMutability: 'view',
  2325      type: 'function',
  2326      inputs: [{ name: 'data', internalType: 'bytes32', type: 'bytes32' }],
  2327      name: 'getTimestamp',
  2328      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2329    },
  2330    {
  2331      stateMutability: 'view',
  2332      type: 'function',
  2333      inputs: [{ name: 'uid', internalType: 'bytes32', type: 'bytes32' }],
  2334      name: 'isAttestationValid',
  2335      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  2336    },
  2337    {
  2338      stateMutability: 'payable',
  2339      type: 'function',
  2340      inputs: [
  2341        {
  2342          name: 'multiRequests',
  2343          internalType: 'struct MultiAttestationRequest[]',
  2344          type: 'tuple[]',
  2345          components: [
  2346            { name: 'schema', internalType: 'bytes32', type: 'bytes32' },
  2347            {
  2348              name: 'data',
  2349              internalType: 'struct AttestationRequestData[]',
  2350              type: 'tuple[]',
  2351              components: [
  2352                { name: 'recipient', internalType: 'address', type: 'address' },
  2353                {
  2354                  name: 'expirationTime',
  2355                  internalType: 'uint64',
  2356                  type: 'uint64',
  2357                },
  2358                { name: 'revocable', internalType: 'bool', type: 'bool' },
  2359                { name: 'refUID', internalType: 'bytes32', type: 'bytes32' },
  2360                { name: 'data', internalType: 'bytes', type: 'bytes' },
  2361                { name: 'value', internalType: 'uint256', type: 'uint256' },
  2362              ],
  2363            },
  2364          ],
  2365        },
  2366      ],
  2367      name: 'multiAttest',
  2368      outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
  2369    },
  2370    {
  2371      stateMutability: 'payable',
  2372      type: 'function',
  2373      inputs: [
  2374        {
  2375          name: 'multiDelegatedRequests',
  2376          internalType: 'struct MultiDelegatedAttestationRequest[]',
  2377          type: 'tuple[]',
  2378          components: [
  2379            { name: 'schema', internalType: 'bytes32', type: 'bytes32' },
  2380            {
  2381              name: 'data',
  2382              internalType: 'struct AttestationRequestData[]',
  2383              type: 'tuple[]',
  2384              components: [
  2385                { name: 'recipient', internalType: 'address', type: 'address' },
  2386                {
  2387                  name: 'expirationTime',
  2388                  internalType: 'uint64',
  2389                  type: 'uint64',
  2390                },
  2391                { name: 'revocable', internalType: 'bool', type: 'bool' },
  2392                { name: 'refUID', internalType: 'bytes32', type: 'bytes32' },
  2393                { name: 'data', internalType: 'bytes', type: 'bytes' },
  2394                { name: 'value', internalType: 'uint256', type: 'uint256' },
  2395              ],
  2396            },
  2397            {
  2398              name: 'signatures',
  2399              internalType: 'struct EIP712Signature[]',
  2400              type: 'tuple[]',
  2401              components: [
  2402                { name: 'v', internalType: 'uint8', type: 'uint8' },
  2403                { name: 'r', internalType: 'bytes32', type: 'bytes32' },
  2404                { name: 's', internalType: 'bytes32', type: 'bytes32' },
  2405              ],
  2406            },
  2407            { name: 'attester', internalType: 'address', type: 'address' },
  2408          ],
  2409        },
  2410      ],
  2411      name: 'multiAttestByDelegation',
  2412      outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
  2413    },
  2414    {
  2415      stateMutability: 'payable',
  2416      type: 'function',
  2417      inputs: [
  2418        {
  2419          name: 'multiRequests',
  2420          internalType: 'struct MultiRevocationRequest[]',
  2421          type: 'tuple[]',
  2422          components: [
  2423            { name: 'schema', internalType: 'bytes32', type: 'bytes32' },
  2424            {
  2425              name: 'data',
  2426              internalType: 'struct RevocationRequestData[]',
  2427              type: 'tuple[]',
  2428              components: [
  2429                { name: 'uid', internalType: 'bytes32', type: 'bytes32' },
  2430                { name: 'value', internalType: 'uint256', type: 'uint256' },
  2431              ],
  2432            },
  2433          ],
  2434        },
  2435      ],
  2436      name: 'multiRevoke',
  2437      outputs: [],
  2438    },
  2439    {
  2440      stateMutability: 'payable',
  2441      type: 'function',
  2442      inputs: [
  2443        {
  2444          name: 'multiDelegatedRequests',
  2445          internalType: 'struct MultiDelegatedRevocationRequest[]',
  2446          type: 'tuple[]',
  2447          components: [
  2448            { name: 'schema', internalType: 'bytes32', type: 'bytes32' },
  2449            {
  2450              name: 'data',
  2451              internalType: 'struct RevocationRequestData[]',
  2452              type: 'tuple[]',
  2453              components: [
  2454                { name: 'uid', internalType: 'bytes32', type: 'bytes32' },
  2455                { name: 'value', internalType: 'uint256', type: 'uint256' },
  2456              ],
  2457            },
  2458            {
  2459              name: 'signatures',
  2460              internalType: 'struct EIP712Signature[]',
  2461              type: 'tuple[]',
  2462              components: [
  2463                { name: 'v', internalType: 'uint8', type: 'uint8' },
  2464                { name: 'r', internalType: 'bytes32', type: 'bytes32' },
  2465                { name: 's', internalType: 'bytes32', type: 'bytes32' },
  2466              ],
  2467            },
  2468            { name: 'revoker', internalType: 'address', type: 'address' },
  2469          ],
  2470        },
  2471      ],
  2472      name: 'multiRevokeByDelegation',
  2473      outputs: [],
  2474    },
  2475    {
  2476      stateMutability: 'nonpayable',
  2477      type: 'function',
  2478      inputs: [{ name: 'data', internalType: 'bytes32[]', type: 'bytes32[]' }],
  2479      name: 'multiRevokeOffchain',
  2480      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2481    },
  2482    {
  2483      stateMutability: 'nonpayable',
  2484      type: 'function',
  2485      inputs: [{ name: 'data', internalType: 'bytes32[]', type: 'bytes32[]' }],
  2486      name: 'multiTimestamp',
  2487      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2488    },
  2489    {
  2490      stateMutability: 'payable',
  2491      type: 'function',
  2492      inputs: [
  2493        {
  2494          name: 'request',
  2495          internalType: 'struct RevocationRequest',
  2496          type: 'tuple',
  2497          components: [
  2498            { name: 'schema', internalType: 'bytes32', type: 'bytes32' },
  2499            {
  2500              name: 'data',
  2501              internalType: 'struct RevocationRequestData',
  2502              type: 'tuple',
  2503              components: [
  2504                { name: 'uid', internalType: 'bytes32', type: 'bytes32' },
  2505                { name: 'value', internalType: 'uint256', type: 'uint256' },
  2506              ],
  2507            },
  2508          ],
  2509        },
  2510      ],
  2511      name: 'revoke',
  2512      outputs: [],
  2513    },
  2514    {
  2515      stateMutability: 'payable',
  2516      type: 'function',
  2517      inputs: [
  2518        {
  2519          name: 'delegatedRequest',
  2520          internalType: 'struct DelegatedRevocationRequest',
  2521          type: 'tuple',
  2522          components: [
  2523            { name: 'schema', internalType: 'bytes32', type: 'bytes32' },
  2524            {
  2525              name: 'data',
  2526              internalType: 'struct RevocationRequestData',
  2527              type: 'tuple',
  2528              components: [
  2529                { name: 'uid', internalType: 'bytes32', type: 'bytes32' },
  2530                { name: 'value', internalType: 'uint256', type: 'uint256' },
  2531              ],
  2532            },
  2533            {
  2534              name: 'signature',
  2535              internalType: 'struct EIP712Signature',
  2536              type: 'tuple',
  2537              components: [
  2538                { name: 'v', internalType: 'uint8', type: 'uint8' },
  2539                { name: 'r', internalType: 'bytes32', type: 'bytes32' },
  2540                { name: 's', internalType: 'bytes32', type: 'bytes32' },
  2541              ],
  2542            },
  2543            { name: 'revoker', internalType: 'address', type: 'address' },
  2544          ],
  2545        },
  2546      ],
  2547      name: 'revokeByDelegation',
  2548      outputs: [],
  2549    },
  2550    {
  2551      stateMutability: 'nonpayable',
  2552      type: 'function',
  2553      inputs: [{ name: 'data', internalType: 'bytes32', type: 'bytes32' }],
  2554      name: 'revokeOffchain',
  2555      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2556    },
  2557    {
  2558      stateMutability: 'nonpayable',
  2559      type: 'function',
  2560      inputs: [{ name: 'data', internalType: 'bytes32', type: 'bytes32' }],
  2561      name: 'timestamp',
  2562      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2563    },
  2564    {
  2565      stateMutability: 'view',
  2566      type: 'function',
  2567      inputs: [],
  2568      name: 'version',
  2569      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  2570    },
  2571  ] as const
  2572  
  2573  /**
  2574   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4E0275Ea5a89e7a3c1B58411379D1a0eDdc5b088)
  2575   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5A633F1cc84B03F7588486CF2F386c102061E6e1)
  2576   */
  2577  export const easAddress = {
  2578    10: '0x4E0275Ea5a89e7a3c1B58411379D1a0eDdc5b088',
  2579    420: '0x5A633F1cc84B03F7588486CF2F386c102061E6e1',
  2580  } as const
  2581  
  2582  /**
  2583   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4E0275Ea5a89e7a3c1B58411379D1a0eDdc5b088)
  2584   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5A633F1cc84B03F7588486CF2F386c102061E6e1)
  2585   */
  2586  export const easConfig = { address: easAddress, abi: easABI } as const
  2587  
  2588  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2589  // GasPriceOracle
  2590  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2591  
  2592  /**
  2593   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F)
  2594   */
  2595  export const gasPriceOracleABI = [
  2596    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  2597    {
  2598      stateMutability: 'view',
  2599      type: 'function',
  2600      inputs: [],
  2601      name: 'baseFee',
  2602      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2603    },
  2604    {
  2605      stateMutability: 'pure',
  2606      type: 'function',
  2607      inputs: [],
  2608      name: 'decimals',
  2609      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2610    },
  2611    {
  2612      stateMutability: 'view',
  2613      type: 'function',
  2614      inputs: [],
  2615      name: 'gasPrice',
  2616      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2617    },
  2618    {
  2619      stateMutability: 'view',
  2620      type: 'function',
  2621      inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }],
  2622      name: 'getL1Fee',
  2623      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2624    },
  2625    {
  2626      stateMutability: 'view',
  2627      type: 'function',
  2628      inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }],
  2629      name: 'getL1GasUsed',
  2630      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2631    },
  2632    {
  2633      stateMutability: 'view',
  2634      type: 'function',
  2635      inputs: [],
  2636      name: 'l1BaseFee',
  2637      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2638    },
  2639    {
  2640      stateMutability: 'view',
  2641      type: 'function',
  2642      inputs: [],
  2643      name: 'overhead',
  2644      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2645    },
  2646    {
  2647      stateMutability: 'view',
  2648      type: 'function',
  2649      inputs: [],
  2650      name: 'scalar',
  2651      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2652    },
  2653    {
  2654      stateMutability: 'view',
  2655      type: 'function',
  2656      inputs: [],
  2657      name: 'version',
  2658      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  2659    },
  2660  ] as const
  2661  
  2662  /**
  2663   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F)
  2664   */
  2665  export const gasPriceOracleAddress = {
  2666    420: '0x420000000000000000000000000000000000000F',
  2667  } as const
  2668  
  2669  /**
  2670   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F)
  2671   */
  2672  export const gasPriceOracleConfig = {
  2673    address: gasPriceOracleAddress,
  2674    abi: gasPriceOracleABI,
  2675  } as const
  2676  
  2677  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2678  // L1Block
  2679  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2680  
  2681  /**
  2682   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015)
  2683   */
  2684  export const l1BlockABI = [
  2685    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  2686    {
  2687      stateMutability: 'view',
  2688      type: 'function',
  2689      inputs: [],
  2690      name: 'DEPOSITOR_ACCOUNT',
  2691      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  2692    },
  2693    {
  2694      stateMutability: 'view',
  2695      type: 'function',
  2696      inputs: [],
  2697      name: 'basefee',
  2698      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2699    },
  2700    {
  2701      stateMutability: 'view',
  2702      type: 'function',
  2703      inputs: [],
  2704      name: 'batcherHash',
  2705      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  2706    },
  2707    {
  2708      stateMutability: 'view',
  2709      type: 'function',
  2710      inputs: [],
  2711      name: 'hash',
  2712      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  2713    },
  2714    {
  2715      stateMutability: 'view',
  2716      type: 'function',
  2717      inputs: [],
  2718      name: 'l1FeeOverhead',
  2719      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2720    },
  2721    {
  2722      stateMutability: 'view',
  2723      type: 'function',
  2724      inputs: [],
  2725      name: 'l1FeeScalar',
  2726      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2727    },
  2728    {
  2729      stateMutability: 'view',
  2730      type: 'function',
  2731      inputs: [],
  2732      name: 'number',
  2733      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2734    },
  2735    {
  2736      stateMutability: 'view',
  2737      type: 'function',
  2738      inputs: [],
  2739      name: 'sequenceNumber',
  2740      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2741    },
  2742    {
  2743      stateMutability: 'nonpayable',
  2744      type: 'function',
  2745      inputs: [
  2746        { name: '_number', internalType: 'uint64', type: 'uint64' },
  2747        { name: '_timestamp', internalType: 'uint64', type: 'uint64' },
  2748        { name: '_basefee', internalType: 'uint256', type: 'uint256' },
  2749        { name: '_hash', internalType: 'bytes32', type: 'bytes32' },
  2750        { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' },
  2751        { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' },
  2752        { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' },
  2753        { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' },
  2754      ],
  2755      name: 'setL1BlockValues',
  2756      outputs: [],
  2757    },
  2758    {
  2759      stateMutability: 'view',
  2760      type: 'function',
  2761      inputs: [],
  2762      name: 'timestamp',
  2763      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2764    },
  2765    {
  2766      stateMutability: 'view',
  2767      type: 'function',
  2768      inputs: [],
  2769      name: 'version',
  2770      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  2771    },
  2772  ] as const
  2773  
  2774  /**
  2775   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015)
  2776   */
  2777  export const l1BlockAddress = {
  2778    420: '0x4200000000000000000000000000000000000015',
  2779  } as const
  2780  
  2781  /**
  2782   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015)
  2783   */
  2784  export const l1BlockConfig = {
  2785    address: l1BlockAddress,
  2786    abi: l1BlockABI,
  2787  } as const
  2788  
  2789  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2790  // L1CrossDomainMessenger
  2791  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2792  
  2793  /**
  2794   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1)
  2795   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294)
  2796   */
  2797  export const l1CrossDomainMessengerABI = [
  2798    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  2799    {
  2800      type: 'event',
  2801      anonymous: false,
  2802      inputs: [
  2803        {
  2804          name: 'msgHash',
  2805          internalType: 'bytes32',
  2806          type: 'bytes32',
  2807          indexed: true,
  2808        },
  2809      ],
  2810      name: 'FailedRelayedMessage',
  2811    },
  2812    {
  2813      type: 'event',
  2814      anonymous: false,
  2815      inputs: [
  2816        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  2817      ],
  2818      name: 'Initialized',
  2819    },
  2820    {
  2821      type: 'event',
  2822      anonymous: false,
  2823      inputs: [
  2824        {
  2825          name: 'msgHash',
  2826          internalType: 'bytes32',
  2827          type: 'bytes32',
  2828          indexed: true,
  2829        },
  2830      ],
  2831      name: 'RelayedMessage',
  2832    },
  2833    {
  2834      type: 'event',
  2835      anonymous: false,
  2836      inputs: [
  2837        {
  2838          name: 'target',
  2839          internalType: 'address',
  2840          type: 'address',
  2841          indexed: true,
  2842        },
  2843        {
  2844          name: 'sender',
  2845          internalType: 'address',
  2846          type: 'address',
  2847          indexed: false,
  2848        },
  2849        { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false },
  2850        {
  2851          name: 'messageNonce',
  2852          internalType: 'uint256',
  2853          type: 'uint256',
  2854          indexed: false,
  2855        },
  2856        {
  2857          name: 'gasLimit',
  2858          internalType: 'uint256',
  2859          type: 'uint256',
  2860          indexed: false,
  2861        },
  2862      ],
  2863      name: 'SentMessage',
  2864    },
  2865    {
  2866      type: 'event',
  2867      anonymous: false,
  2868      inputs: [
  2869        {
  2870          name: 'sender',
  2871          internalType: 'address',
  2872          type: 'address',
  2873          indexed: true,
  2874        },
  2875        {
  2876          name: 'value',
  2877          internalType: 'uint256',
  2878          type: 'uint256',
  2879          indexed: false,
  2880        },
  2881      ],
  2882      name: 'SentMessageExtension1',
  2883    },
  2884    {
  2885      stateMutability: 'view',
  2886      type: 'function',
  2887      inputs: [],
  2888      name: 'MESSAGE_VERSION',
  2889      outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }],
  2890    },
  2891    {
  2892      stateMutability: 'view',
  2893      type: 'function',
  2894      inputs: [],
  2895      name: 'MIN_GAS_CALLDATA_OVERHEAD',
  2896      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2897    },
  2898    {
  2899      stateMutability: 'view',
  2900      type: 'function',
  2901      inputs: [],
  2902      name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR',
  2903      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2904    },
  2905    {
  2906      stateMutability: 'view',
  2907      type: 'function',
  2908      inputs: [],
  2909      name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR',
  2910      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2911    },
  2912    {
  2913      stateMutability: 'view',
  2914      type: 'function',
  2915      inputs: [],
  2916      name: 'OTHER_MESSENGER',
  2917      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  2918    },
  2919    {
  2920      stateMutability: 'view',
  2921      type: 'function',
  2922      inputs: [],
  2923      name: 'RELAY_CALL_OVERHEAD',
  2924      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2925    },
  2926    {
  2927      stateMutability: 'view',
  2928      type: 'function',
  2929      inputs: [],
  2930      name: 'RELAY_CONSTANT_OVERHEAD',
  2931      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2932    },
  2933    {
  2934      stateMutability: 'view',
  2935      type: 'function',
  2936      inputs: [],
  2937      name: 'RELAY_GAS_CHECK_BUFFER',
  2938      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2939    },
  2940    {
  2941      stateMutability: 'view',
  2942      type: 'function',
  2943      inputs: [],
  2944      name: 'RELAY_RESERVED_GAS',
  2945      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2946    },
  2947    {
  2948      stateMutability: 'pure',
  2949      type: 'function',
  2950      inputs: [
  2951        { name: '_message', internalType: 'bytes', type: 'bytes' },
  2952        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  2953      ],
  2954      name: 'baseGas',
  2955      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  2956    },
  2957    {
  2958      stateMutability: 'view',
  2959      type: 'function',
  2960      inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  2961      name: 'failedMessages',
  2962      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  2963    },
  2964    {
  2965      stateMutability: 'nonpayable',
  2966      type: 'function',
  2967      inputs: [
  2968        {
  2969          name: '_portal',
  2970          internalType: 'contract OptimismPortal',
  2971          type: 'address',
  2972        },
  2973      ],
  2974      name: 'initialize',
  2975      outputs: [],
  2976    },
  2977    {
  2978      stateMutability: 'view',
  2979      type: 'function',
  2980      inputs: [],
  2981      name: 'messageNonce',
  2982      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  2983    },
  2984    {
  2985      stateMutability: 'view',
  2986      type: 'function',
  2987      inputs: [],
  2988      name: 'portal',
  2989      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  2990    },
  2991    {
  2992      stateMutability: 'payable',
  2993      type: 'function',
  2994      inputs: [
  2995        { name: '_nonce', internalType: 'uint256', type: 'uint256' },
  2996        { name: '_sender', internalType: 'address', type: 'address' },
  2997        { name: '_target', internalType: 'address', type: 'address' },
  2998        { name: '_value', internalType: 'uint256', type: 'uint256' },
  2999        { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' },
  3000        { name: '_message', internalType: 'bytes', type: 'bytes' },
  3001      ],
  3002      name: 'relayMessage',
  3003      outputs: [],
  3004    },
  3005    {
  3006      stateMutability: 'payable',
  3007      type: 'function',
  3008      inputs: [
  3009        { name: '_target', internalType: 'address', type: 'address' },
  3010        { name: '_message', internalType: 'bytes', type: 'bytes' },
  3011        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3012      ],
  3013      name: 'sendMessage',
  3014      outputs: [],
  3015    },
  3016    {
  3017      stateMutability: 'view',
  3018      type: 'function',
  3019      inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  3020      name: 'successfulMessages',
  3021      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  3022    },
  3023    {
  3024      stateMutability: 'view',
  3025      type: 'function',
  3026      inputs: [],
  3027      name: 'version',
  3028      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  3029    },
  3030    {
  3031      stateMutability: 'view',
  3032      type: 'function',
  3033      inputs: [],
  3034      name: 'xDomainMessageSender',
  3035      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  3036    },
  3037  ] as const
  3038  
  3039  /**
  3040   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1)
  3041   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294)
  3042   */
  3043  export const l1CrossDomainMessengerAddress = {
  3044    1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1',
  3045    5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294',
  3046  } as const
  3047  
  3048  /**
  3049   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1)
  3050   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294)
  3051   */
  3052  export const l1CrossDomainMessengerConfig = {
  3053    address: l1CrossDomainMessengerAddress,
  3054    abi: l1CrossDomainMessengerABI,
  3055  } as const
  3056  
  3057  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3058  // L1ERC721Bridge
  3059  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3060  
  3061  /**
  3062   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D)
  3063   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9)
  3064   */
  3065  export const l1Erc721BridgeABI = [
  3066    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  3067    {
  3068      type: 'event',
  3069      anonymous: false,
  3070      inputs: [
  3071        {
  3072          name: 'localToken',
  3073          internalType: 'address',
  3074          type: 'address',
  3075          indexed: true,
  3076        },
  3077        {
  3078          name: 'remoteToken',
  3079          internalType: 'address',
  3080          type: 'address',
  3081          indexed: true,
  3082        },
  3083        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  3084        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  3085        {
  3086          name: 'tokenId',
  3087          internalType: 'uint256',
  3088          type: 'uint256',
  3089          indexed: false,
  3090        },
  3091        {
  3092          name: 'extraData',
  3093          internalType: 'bytes',
  3094          type: 'bytes',
  3095          indexed: false,
  3096        },
  3097      ],
  3098      name: 'ERC721BridgeFinalized',
  3099    },
  3100    {
  3101      type: 'event',
  3102      anonymous: false,
  3103      inputs: [
  3104        {
  3105          name: 'localToken',
  3106          internalType: 'address',
  3107          type: 'address',
  3108          indexed: true,
  3109        },
  3110        {
  3111          name: 'remoteToken',
  3112          internalType: 'address',
  3113          type: 'address',
  3114          indexed: true,
  3115        },
  3116        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  3117        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  3118        {
  3119          name: 'tokenId',
  3120          internalType: 'uint256',
  3121          type: 'uint256',
  3122          indexed: false,
  3123        },
  3124        {
  3125          name: 'extraData',
  3126          internalType: 'bytes',
  3127          type: 'bytes',
  3128          indexed: false,
  3129        },
  3130      ],
  3131      name: 'ERC721BridgeInitiated',
  3132    },
  3133    {
  3134      type: 'event',
  3135      anonymous: false,
  3136      inputs: [
  3137        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  3138      ],
  3139      name: 'Initialized',
  3140    },
  3141    {
  3142      stateMutability: 'nonpayable',
  3143      type: 'function',
  3144      inputs: [
  3145        { name: '_localToken', internalType: 'address', type: 'address' },
  3146        { name: '_remoteToken', internalType: 'address', type: 'address' },
  3147        { name: '_tokenId', internalType: 'uint256', type: 'uint256' },
  3148        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3149        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3150      ],
  3151      name: 'bridgeERC721',
  3152      outputs: [],
  3153    },
  3154    {
  3155      stateMutability: 'nonpayable',
  3156      type: 'function',
  3157      inputs: [
  3158        { name: '_localToken', internalType: 'address', type: 'address' },
  3159        { name: '_remoteToken', internalType: 'address', type: 'address' },
  3160        { name: '_to', internalType: 'address', type: 'address' },
  3161        { name: '_tokenId', internalType: 'uint256', type: 'uint256' },
  3162        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3163        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3164      ],
  3165      name: 'bridgeERC721To',
  3166      outputs: [],
  3167    },
  3168    {
  3169      stateMutability: 'view',
  3170      type: 'function',
  3171      inputs: [
  3172        { name: '', internalType: 'address', type: 'address' },
  3173        { name: '', internalType: 'address', type: 'address' },
  3174        { name: '', internalType: 'uint256', type: 'uint256' },
  3175      ],
  3176      name: 'deposits',
  3177      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  3178    },
  3179    {
  3180      stateMutability: 'nonpayable',
  3181      type: 'function',
  3182      inputs: [
  3183        { name: '_localToken', internalType: 'address', type: 'address' },
  3184        { name: '_remoteToken', internalType: 'address', type: 'address' },
  3185        { name: '_from', internalType: 'address', type: 'address' },
  3186        { name: '_to', internalType: 'address', type: 'address' },
  3187        { name: '_tokenId', internalType: 'uint256', type: 'uint256' },
  3188        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3189      ],
  3190      name: 'finalizeBridgeERC721',
  3191      outputs: [],
  3192    },
  3193    {
  3194      stateMutability: 'nonpayable',
  3195      type: 'function',
  3196      inputs: [
  3197        {
  3198          name: '_messenger',
  3199          internalType: 'contract CrossDomainMessenger',
  3200          type: 'address',
  3201        },
  3202      ],
  3203      name: 'initialize',
  3204      outputs: [],
  3205    },
  3206    {
  3207      stateMutability: 'view',
  3208      type: 'function',
  3209      inputs: [],
  3210      name: 'messenger',
  3211      outputs: [
  3212        {
  3213          name: '',
  3214          internalType: 'contract CrossDomainMessenger',
  3215          type: 'address',
  3216        },
  3217      ],
  3218    },
  3219    {
  3220      stateMutability: 'view',
  3221      type: 'function',
  3222      inputs: [],
  3223      name: 'otherBridge',
  3224      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  3225    },
  3226    {
  3227      stateMutability: 'view',
  3228      type: 'function',
  3229      inputs: [],
  3230      name: 'version',
  3231      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  3232    },
  3233  ] as const
  3234  
  3235  /**
  3236   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D)
  3237   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9)
  3238   */
  3239  export const l1Erc721BridgeAddress = {
  3240    1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D',
  3241    5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9',
  3242  } as const
  3243  
  3244  /**
  3245   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D)
  3246   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9)
  3247   */
  3248  export const l1Erc721BridgeConfig = {
  3249    address: l1Erc721BridgeAddress,
  3250    abi: l1Erc721BridgeABI,
  3251  } as const
  3252  
  3253  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3254  // L1FeeVault
  3255  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3256  
  3257  /**
  3258   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a)
  3259   */
  3260  export const l1FeeVaultABI = [
  3261    {
  3262      stateMutability: 'nonpayable',
  3263      type: 'constructor',
  3264      inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }],
  3265    },
  3266    {
  3267      type: 'event',
  3268      anonymous: false,
  3269      inputs: [
  3270        {
  3271          name: 'value',
  3272          internalType: 'uint256',
  3273          type: 'uint256',
  3274          indexed: false,
  3275        },
  3276        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  3277        {
  3278          name: 'from',
  3279          internalType: 'address',
  3280          type: 'address',
  3281          indexed: false,
  3282        },
  3283      ],
  3284      name: 'Withdrawal',
  3285    },
  3286    {
  3287      stateMutability: 'view',
  3288      type: 'function',
  3289      inputs: [],
  3290      name: 'MIN_WITHDRAWAL_AMOUNT',
  3291      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  3292    },
  3293    {
  3294      stateMutability: 'view',
  3295      type: 'function',
  3296      inputs: [],
  3297      name: 'RECIPIENT',
  3298      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  3299    },
  3300    {
  3301      stateMutability: 'view',
  3302      type: 'function',
  3303      inputs: [],
  3304      name: 'totalProcessed',
  3305      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  3306    },
  3307    {
  3308      stateMutability: 'view',
  3309      type: 'function',
  3310      inputs: [],
  3311      name: 'version',
  3312      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  3313    },
  3314    {
  3315      stateMutability: 'nonpayable',
  3316      type: 'function',
  3317      inputs: [],
  3318      name: 'withdraw',
  3319      outputs: [],
  3320    },
  3321    { stateMutability: 'payable', type: 'receive' },
  3322  ] as const
  3323  
  3324  /**
  3325   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a)
  3326   */
  3327  export const l1FeeVaultAddress = {
  3328    420: '0x420000000000000000000000000000000000001A',
  3329  } as const
  3330  
  3331  /**
  3332   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a)
  3333   */
  3334  export const l1FeeVaultConfig = {
  3335    address: l1FeeVaultAddress,
  3336    abi: l1FeeVaultABI,
  3337  } as const
  3338  
  3339  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3340  // L1StandardBridge
  3341  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3342  
  3343  /**
  3344   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1)
  3345   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8)
  3346   */
  3347  export const l1StandardBridgeABI = [
  3348    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  3349    {
  3350      type: 'event',
  3351      anonymous: false,
  3352      inputs: [
  3353        {
  3354          name: 'localToken',
  3355          internalType: 'address',
  3356          type: 'address',
  3357          indexed: true,
  3358        },
  3359        {
  3360          name: 'remoteToken',
  3361          internalType: 'address',
  3362          type: 'address',
  3363          indexed: true,
  3364        },
  3365        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  3366        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  3367        {
  3368          name: 'amount',
  3369          internalType: 'uint256',
  3370          type: 'uint256',
  3371          indexed: false,
  3372        },
  3373        {
  3374          name: 'extraData',
  3375          internalType: 'bytes',
  3376          type: 'bytes',
  3377          indexed: false,
  3378        },
  3379      ],
  3380      name: 'ERC20BridgeFinalized',
  3381    },
  3382    {
  3383      type: 'event',
  3384      anonymous: false,
  3385      inputs: [
  3386        {
  3387          name: 'localToken',
  3388          internalType: 'address',
  3389          type: 'address',
  3390          indexed: true,
  3391        },
  3392        {
  3393          name: 'remoteToken',
  3394          internalType: 'address',
  3395          type: 'address',
  3396          indexed: true,
  3397        },
  3398        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  3399        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  3400        {
  3401          name: 'amount',
  3402          internalType: 'uint256',
  3403          type: 'uint256',
  3404          indexed: false,
  3405        },
  3406        {
  3407          name: 'extraData',
  3408          internalType: 'bytes',
  3409          type: 'bytes',
  3410          indexed: false,
  3411        },
  3412      ],
  3413      name: 'ERC20BridgeInitiated',
  3414    },
  3415    {
  3416      type: 'event',
  3417      anonymous: false,
  3418      inputs: [
  3419        {
  3420          name: 'l1Token',
  3421          internalType: 'address',
  3422          type: 'address',
  3423          indexed: true,
  3424        },
  3425        {
  3426          name: 'l2Token',
  3427          internalType: 'address',
  3428          type: 'address',
  3429          indexed: true,
  3430        },
  3431        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  3432        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  3433        {
  3434          name: 'amount',
  3435          internalType: 'uint256',
  3436          type: 'uint256',
  3437          indexed: false,
  3438        },
  3439        {
  3440          name: 'extraData',
  3441          internalType: 'bytes',
  3442          type: 'bytes',
  3443          indexed: false,
  3444        },
  3445      ],
  3446      name: 'ERC20DepositInitiated',
  3447    },
  3448    {
  3449      type: 'event',
  3450      anonymous: false,
  3451      inputs: [
  3452        {
  3453          name: 'l1Token',
  3454          internalType: 'address',
  3455          type: 'address',
  3456          indexed: true,
  3457        },
  3458        {
  3459          name: 'l2Token',
  3460          internalType: 'address',
  3461          type: 'address',
  3462          indexed: true,
  3463        },
  3464        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  3465        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  3466        {
  3467          name: 'amount',
  3468          internalType: 'uint256',
  3469          type: 'uint256',
  3470          indexed: false,
  3471        },
  3472        {
  3473          name: 'extraData',
  3474          internalType: 'bytes',
  3475          type: 'bytes',
  3476          indexed: false,
  3477        },
  3478      ],
  3479      name: 'ERC20WithdrawalFinalized',
  3480    },
  3481    {
  3482      type: 'event',
  3483      anonymous: false,
  3484      inputs: [
  3485        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  3486        { name: 'to', internalType: 'address', type: 'address', indexed: true },
  3487        {
  3488          name: 'amount',
  3489          internalType: 'uint256',
  3490          type: 'uint256',
  3491          indexed: false,
  3492        },
  3493        {
  3494          name: 'extraData',
  3495          internalType: 'bytes',
  3496          type: 'bytes',
  3497          indexed: false,
  3498        },
  3499      ],
  3500      name: 'ETHBridgeFinalized',
  3501    },
  3502    {
  3503      type: 'event',
  3504      anonymous: false,
  3505      inputs: [
  3506        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  3507        { name: 'to', internalType: 'address', type: 'address', indexed: true },
  3508        {
  3509          name: 'amount',
  3510          internalType: 'uint256',
  3511          type: 'uint256',
  3512          indexed: false,
  3513        },
  3514        {
  3515          name: 'extraData',
  3516          internalType: 'bytes',
  3517          type: 'bytes',
  3518          indexed: false,
  3519        },
  3520      ],
  3521      name: 'ETHBridgeInitiated',
  3522    },
  3523    {
  3524      type: 'event',
  3525      anonymous: false,
  3526      inputs: [
  3527        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  3528        { name: 'to', internalType: 'address', type: 'address', indexed: true },
  3529        {
  3530          name: 'amount',
  3531          internalType: 'uint256',
  3532          type: 'uint256',
  3533          indexed: false,
  3534        },
  3535        {
  3536          name: 'extraData',
  3537          internalType: 'bytes',
  3538          type: 'bytes',
  3539          indexed: false,
  3540        },
  3541      ],
  3542      name: 'ETHDepositInitiated',
  3543    },
  3544    {
  3545      type: 'event',
  3546      anonymous: false,
  3547      inputs: [
  3548        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  3549        { name: 'to', internalType: 'address', type: 'address', indexed: true },
  3550        {
  3551          name: 'amount',
  3552          internalType: 'uint256',
  3553          type: 'uint256',
  3554          indexed: false,
  3555        },
  3556        {
  3557          name: 'extraData',
  3558          internalType: 'bytes',
  3559          type: 'bytes',
  3560          indexed: false,
  3561        },
  3562      ],
  3563      name: 'ETHWithdrawalFinalized',
  3564    },
  3565    {
  3566      type: 'event',
  3567      anonymous: false,
  3568      inputs: [
  3569        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  3570      ],
  3571      name: 'Initialized',
  3572    },
  3573    {
  3574      stateMutability: 'nonpayable',
  3575      type: 'function',
  3576      inputs: [
  3577        { name: '_localToken', internalType: 'address', type: 'address' },
  3578        { name: '_remoteToken', internalType: 'address', type: 'address' },
  3579        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  3580        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3581        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3582      ],
  3583      name: 'bridgeERC20',
  3584      outputs: [],
  3585    },
  3586    {
  3587      stateMutability: 'nonpayable',
  3588      type: 'function',
  3589      inputs: [
  3590        { name: '_localToken', internalType: 'address', type: 'address' },
  3591        { name: '_remoteToken', internalType: 'address', type: 'address' },
  3592        { name: '_to', internalType: 'address', type: 'address' },
  3593        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  3594        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3595        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3596      ],
  3597      name: 'bridgeERC20To',
  3598      outputs: [],
  3599    },
  3600    {
  3601      stateMutability: 'payable',
  3602      type: 'function',
  3603      inputs: [
  3604        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3605        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3606      ],
  3607      name: 'bridgeETH',
  3608      outputs: [],
  3609    },
  3610    {
  3611      stateMutability: 'payable',
  3612      type: 'function',
  3613      inputs: [
  3614        { name: '_to', internalType: 'address', type: 'address' },
  3615        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3616        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3617      ],
  3618      name: 'bridgeETHTo',
  3619      outputs: [],
  3620    },
  3621    {
  3622      stateMutability: 'nonpayable',
  3623      type: 'function',
  3624      inputs: [
  3625        { name: '_l1Token', internalType: 'address', type: 'address' },
  3626        { name: '_l2Token', internalType: 'address', type: 'address' },
  3627        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  3628        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3629        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3630      ],
  3631      name: 'depositERC20',
  3632      outputs: [],
  3633    },
  3634    {
  3635      stateMutability: 'nonpayable',
  3636      type: 'function',
  3637      inputs: [
  3638        { name: '_l1Token', internalType: 'address', type: 'address' },
  3639        { name: '_l2Token', internalType: 'address', type: 'address' },
  3640        { name: '_to', internalType: 'address', type: 'address' },
  3641        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  3642        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3643        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3644      ],
  3645      name: 'depositERC20To',
  3646      outputs: [],
  3647    },
  3648    {
  3649      stateMutability: 'payable',
  3650      type: 'function',
  3651      inputs: [
  3652        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3653        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3654      ],
  3655      name: 'depositETH',
  3656      outputs: [],
  3657    },
  3658    {
  3659      stateMutability: 'payable',
  3660      type: 'function',
  3661      inputs: [
  3662        { name: '_to', internalType: 'address', type: 'address' },
  3663        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3664        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3665      ],
  3666      name: 'depositETHTo',
  3667      outputs: [],
  3668    },
  3669    {
  3670      stateMutability: 'view',
  3671      type: 'function',
  3672      inputs: [
  3673        { name: '', internalType: 'address', type: 'address' },
  3674        { name: '', internalType: 'address', type: 'address' },
  3675      ],
  3676      name: 'deposits',
  3677      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  3678    },
  3679    {
  3680      stateMutability: 'nonpayable',
  3681      type: 'function',
  3682      inputs: [
  3683        { name: '_localToken', internalType: 'address', type: 'address' },
  3684        { name: '_remoteToken', internalType: 'address', type: 'address' },
  3685        { name: '_from', internalType: 'address', type: 'address' },
  3686        { name: '_to', internalType: 'address', type: 'address' },
  3687        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  3688        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3689      ],
  3690      name: 'finalizeBridgeERC20',
  3691      outputs: [],
  3692    },
  3693    {
  3694      stateMutability: 'payable',
  3695      type: 'function',
  3696      inputs: [
  3697        { name: '_from', internalType: 'address', type: 'address' },
  3698        { name: '_to', internalType: 'address', type: 'address' },
  3699        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  3700        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3701      ],
  3702      name: 'finalizeBridgeETH',
  3703      outputs: [],
  3704    },
  3705    {
  3706      stateMutability: 'nonpayable',
  3707      type: 'function',
  3708      inputs: [
  3709        { name: '_l1Token', internalType: 'address', type: 'address' },
  3710        { name: '_l2Token', internalType: 'address', type: 'address' },
  3711        { name: '_from', internalType: 'address', type: 'address' },
  3712        { name: '_to', internalType: 'address', type: 'address' },
  3713        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  3714        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3715      ],
  3716      name: 'finalizeERC20Withdrawal',
  3717      outputs: [],
  3718    },
  3719    {
  3720      stateMutability: 'payable',
  3721      type: 'function',
  3722      inputs: [
  3723        { name: '_from', internalType: 'address', type: 'address' },
  3724        { name: '_to', internalType: 'address', type: 'address' },
  3725        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  3726        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  3727      ],
  3728      name: 'finalizeETHWithdrawal',
  3729      outputs: [],
  3730    },
  3731    {
  3732      stateMutability: 'nonpayable',
  3733      type: 'function',
  3734      inputs: [
  3735        {
  3736          name: '_messenger',
  3737          internalType: 'contract CrossDomainMessenger',
  3738          type: 'address',
  3739        },
  3740      ],
  3741      name: 'initialize',
  3742      outputs: [],
  3743    },
  3744    {
  3745      stateMutability: 'view',
  3746      type: 'function',
  3747      inputs: [],
  3748      name: 'l2TokenBridge',
  3749      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  3750    },
  3751    {
  3752      stateMutability: 'view',
  3753      type: 'function',
  3754      inputs: [],
  3755      name: 'messenger',
  3756      outputs: [
  3757        {
  3758          name: '',
  3759          internalType: 'contract CrossDomainMessenger',
  3760          type: 'address',
  3761        },
  3762      ],
  3763    },
  3764    {
  3765      stateMutability: 'view',
  3766      type: 'function',
  3767      inputs: [],
  3768      name: 'otherBridge',
  3769      outputs: [
  3770        { name: '', internalType: 'contract StandardBridge', type: 'address' },
  3771      ],
  3772    },
  3773    {
  3774      stateMutability: 'view',
  3775      type: 'function',
  3776      inputs: [],
  3777      name: 'version',
  3778      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  3779    },
  3780    { stateMutability: 'payable', type: 'receive' },
  3781  ] as const
  3782  
  3783  /**
  3784   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1)
  3785   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8)
  3786   */
  3787  export const l1StandardBridgeAddress = {
  3788    1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1',
  3789    5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8',
  3790  } as const
  3791  
  3792  /**
  3793   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1)
  3794   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8)
  3795   */
  3796  export const l1StandardBridgeConfig = {
  3797    address: l1StandardBridgeAddress,
  3798    abi: l1StandardBridgeABI,
  3799  } as const
  3800  
  3801  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3802  // L2CrossDomainMessenger
  3803  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3804  
  3805  /**
  3806   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007)
  3807   */
  3808  export const l2CrossDomainMessengerABI = [
  3809    {
  3810      stateMutability: 'nonpayable',
  3811      type: 'constructor',
  3812      inputs: [
  3813        {
  3814          name: '_l1CrossDomainMessenger',
  3815          internalType: 'address',
  3816          type: 'address',
  3817        },
  3818      ],
  3819    },
  3820    {
  3821      type: 'event',
  3822      anonymous: false,
  3823      inputs: [
  3824        {
  3825          name: 'msgHash',
  3826          internalType: 'bytes32',
  3827          type: 'bytes32',
  3828          indexed: true,
  3829        },
  3830      ],
  3831      name: 'FailedRelayedMessage',
  3832    },
  3833    {
  3834      type: 'event',
  3835      anonymous: false,
  3836      inputs: [
  3837        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  3838      ],
  3839      name: 'Initialized',
  3840    },
  3841    {
  3842      type: 'event',
  3843      anonymous: false,
  3844      inputs: [
  3845        {
  3846          name: 'msgHash',
  3847          internalType: 'bytes32',
  3848          type: 'bytes32',
  3849          indexed: true,
  3850        },
  3851      ],
  3852      name: 'RelayedMessage',
  3853    },
  3854    {
  3855      type: 'event',
  3856      anonymous: false,
  3857      inputs: [
  3858        {
  3859          name: 'target',
  3860          internalType: 'address',
  3861          type: 'address',
  3862          indexed: true,
  3863        },
  3864        {
  3865          name: 'sender',
  3866          internalType: 'address',
  3867          type: 'address',
  3868          indexed: false,
  3869        },
  3870        { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false },
  3871        {
  3872          name: 'messageNonce',
  3873          internalType: 'uint256',
  3874          type: 'uint256',
  3875          indexed: false,
  3876        },
  3877        {
  3878          name: 'gasLimit',
  3879          internalType: 'uint256',
  3880          type: 'uint256',
  3881          indexed: false,
  3882        },
  3883      ],
  3884      name: 'SentMessage',
  3885    },
  3886    {
  3887      type: 'event',
  3888      anonymous: false,
  3889      inputs: [
  3890        {
  3891          name: 'sender',
  3892          internalType: 'address',
  3893          type: 'address',
  3894          indexed: true,
  3895        },
  3896        {
  3897          name: 'value',
  3898          internalType: 'uint256',
  3899          type: 'uint256',
  3900          indexed: false,
  3901        },
  3902      ],
  3903      name: 'SentMessageExtension1',
  3904    },
  3905    {
  3906      stateMutability: 'view',
  3907      type: 'function',
  3908      inputs: [],
  3909      name: 'MESSAGE_VERSION',
  3910      outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }],
  3911    },
  3912    {
  3913      stateMutability: 'view',
  3914      type: 'function',
  3915      inputs: [],
  3916      name: 'MIN_GAS_CALLDATA_OVERHEAD',
  3917      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  3918    },
  3919    {
  3920      stateMutability: 'view',
  3921      type: 'function',
  3922      inputs: [],
  3923      name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR',
  3924      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  3925    },
  3926    {
  3927      stateMutability: 'view',
  3928      type: 'function',
  3929      inputs: [],
  3930      name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR',
  3931      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  3932    },
  3933    {
  3934      stateMutability: 'view',
  3935      type: 'function',
  3936      inputs: [],
  3937      name: 'OTHER_MESSENGER',
  3938      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  3939    },
  3940    {
  3941      stateMutability: 'view',
  3942      type: 'function',
  3943      inputs: [],
  3944      name: 'RELAY_CALL_OVERHEAD',
  3945      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  3946    },
  3947    {
  3948      stateMutability: 'view',
  3949      type: 'function',
  3950      inputs: [],
  3951      name: 'RELAY_CONSTANT_OVERHEAD',
  3952      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  3953    },
  3954    {
  3955      stateMutability: 'view',
  3956      type: 'function',
  3957      inputs: [],
  3958      name: 'RELAY_GAS_CHECK_BUFFER',
  3959      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  3960    },
  3961    {
  3962      stateMutability: 'view',
  3963      type: 'function',
  3964      inputs: [],
  3965      name: 'RELAY_RESERVED_GAS',
  3966      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  3967    },
  3968    {
  3969      stateMutability: 'pure',
  3970      type: 'function',
  3971      inputs: [
  3972        { name: '_message', internalType: 'bytes', type: 'bytes' },
  3973        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  3974      ],
  3975      name: 'baseGas',
  3976      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  3977    },
  3978    {
  3979      stateMutability: 'view',
  3980      type: 'function',
  3981      inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  3982      name: 'failedMessages',
  3983      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  3984    },
  3985    {
  3986      stateMutability: 'nonpayable',
  3987      type: 'function',
  3988      inputs: [],
  3989      name: 'initialize',
  3990      outputs: [],
  3991    },
  3992    {
  3993      stateMutability: 'view',
  3994      type: 'function',
  3995      inputs: [],
  3996      name: 'l1CrossDomainMessenger',
  3997      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  3998    },
  3999    {
  4000      stateMutability: 'view',
  4001      type: 'function',
  4002      inputs: [],
  4003      name: 'messageNonce',
  4004      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4005    },
  4006    {
  4007      stateMutability: 'payable',
  4008      type: 'function',
  4009      inputs: [
  4010        { name: '_nonce', internalType: 'uint256', type: 'uint256' },
  4011        { name: '_sender', internalType: 'address', type: 'address' },
  4012        { name: '_target', internalType: 'address', type: 'address' },
  4013        { name: '_value', internalType: 'uint256', type: 'uint256' },
  4014        { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' },
  4015        { name: '_message', internalType: 'bytes', type: 'bytes' },
  4016      ],
  4017      name: 'relayMessage',
  4018      outputs: [],
  4019    },
  4020    {
  4021      stateMutability: 'payable',
  4022      type: 'function',
  4023      inputs: [
  4024        { name: '_target', internalType: 'address', type: 'address' },
  4025        { name: '_message', internalType: 'bytes', type: 'bytes' },
  4026        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  4027      ],
  4028      name: 'sendMessage',
  4029      outputs: [],
  4030    },
  4031    {
  4032      stateMutability: 'view',
  4033      type: 'function',
  4034      inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  4035      name: 'successfulMessages',
  4036      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  4037    },
  4038    {
  4039      stateMutability: 'view',
  4040      type: 'function',
  4041      inputs: [],
  4042      name: 'version',
  4043      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  4044    },
  4045    {
  4046      stateMutability: 'view',
  4047      type: 'function',
  4048      inputs: [],
  4049      name: 'xDomainMessageSender',
  4050      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  4051    },
  4052  ] as const
  4053  
  4054  /**
  4055   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007)
  4056   */
  4057  export const l2CrossDomainMessengerAddress = {
  4058    420: '0x4200000000000000000000000000000000000007',
  4059  } as const
  4060  
  4061  /**
  4062   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007)
  4063   */
  4064  export const l2CrossDomainMessengerConfig = {
  4065    address: l2CrossDomainMessengerAddress,
  4066    abi: l2CrossDomainMessengerABI,
  4067  } as const
  4068  
  4069  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4070  // L2ERC721Bridge
  4071  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4072  
  4073  /**
  4074   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014)
  4075   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014)
  4076   */
  4077  export const l2Erc721BridgeABI = [
  4078    {
  4079      stateMutability: 'nonpayable',
  4080      type: 'constructor',
  4081      inputs: [
  4082        { name: '_messenger', internalType: 'address', type: 'address' },
  4083        { name: '_otherBridge', internalType: 'address', type: 'address' },
  4084      ],
  4085    },
  4086    {
  4087      type: 'event',
  4088      anonymous: false,
  4089      inputs: [
  4090        {
  4091          name: 'localToken',
  4092          internalType: 'address',
  4093          type: 'address',
  4094          indexed: true,
  4095        },
  4096        {
  4097          name: 'remoteToken',
  4098          internalType: 'address',
  4099          type: 'address',
  4100          indexed: true,
  4101        },
  4102        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  4103        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  4104        {
  4105          name: 'tokenId',
  4106          internalType: 'uint256',
  4107          type: 'uint256',
  4108          indexed: false,
  4109        },
  4110        {
  4111          name: 'extraData',
  4112          internalType: 'bytes',
  4113          type: 'bytes',
  4114          indexed: false,
  4115        },
  4116      ],
  4117      name: 'ERC721BridgeFinalized',
  4118    },
  4119    {
  4120      type: 'event',
  4121      anonymous: false,
  4122      inputs: [
  4123        {
  4124          name: 'localToken',
  4125          internalType: 'address',
  4126          type: 'address',
  4127          indexed: true,
  4128        },
  4129        {
  4130          name: 'remoteToken',
  4131          internalType: 'address',
  4132          type: 'address',
  4133          indexed: true,
  4134        },
  4135        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  4136        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  4137        {
  4138          name: 'tokenId',
  4139          internalType: 'uint256',
  4140          type: 'uint256',
  4141          indexed: false,
  4142        },
  4143        {
  4144          name: 'extraData',
  4145          internalType: 'bytes',
  4146          type: 'bytes',
  4147          indexed: false,
  4148        },
  4149      ],
  4150      name: 'ERC721BridgeInitiated',
  4151    },
  4152    {
  4153      stateMutability: 'nonpayable',
  4154      type: 'function',
  4155      inputs: [
  4156        { name: '_localToken', internalType: 'address', type: 'address' },
  4157        { name: '_remoteToken', internalType: 'address', type: 'address' },
  4158        { name: '_tokenId', internalType: 'uint256', type: 'uint256' },
  4159        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  4160        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4161      ],
  4162      name: 'bridgeERC721',
  4163      outputs: [],
  4164    },
  4165    {
  4166      stateMutability: 'nonpayable',
  4167      type: 'function',
  4168      inputs: [
  4169        { name: '_localToken', internalType: 'address', type: 'address' },
  4170        { name: '_remoteToken', internalType: 'address', type: 'address' },
  4171        { name: '_to', internalType: 'address', type: 'address' },
  4172        { name: '_tokenId', internalType: 'uint256', type: 'uint256' },
  4173        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  4174        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4175      ],
  4176      name: 'bridgeERC721To',
  4177      outputs: [],
  4178    },
  4179    {
  4180      stateMutability: 'nonpayable',
  4181      type: 'function',
  4182      inputs: [
  4183        { name: '_localToken', internalType: 'address', type: 'address' },
  4184        { name: '_remoteToken', internalType: 'address', type: 'address' },
  4185        { name: '_from', internalType: 'address', type: 'address' },
  4186        { name: '_to', internalType: 'address', type: 'address' },
  4187        { name: '_tokenId', internalType: 'uint256', type: 'uint256' },
  4188        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4189      ],
  4190      name: 'finalizeBridgeERC721',
  4191      outputs: [],
  4192    },
  4193    {
  4194      stateMutability: 'view',
  4195      type: 'function',
  4196      inputs: [],
  4197      name: 'messenger',
  4198      outputs: [
  4199        {
  4200          name: '',
  4201          internalType: 'contract CrossDomainMessenger',
  4202          type: 'address',
  4203        },
  4204      ],
  4205    },
  4206    {
  4207      stateMutability: 'view',
  4208      type: 'function',
  4209      inputs: [],
  4210      name: 'otherBridge',
  4211      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  4212    },
  4213    {
  4214      stateMutability: 'view',
  4215      type: 'function',
  4216      inputs: [],
  4217      name: 'version',
  4218      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  4219    },
  4220  ] as const
  4221  
  4222  /**
  4223   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014)
  4224   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014)
  4225   */
  4226  export const l2Erc721BridgeAddress = {
  4227    10: '0x4200000000000000000000000000000000000014',
  4228    420: '0x4200000000000000000000000000000000000014',
  4229  } as const
  4230  
  4231  /**
  4232   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014)
  4233   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014)
  4234   */
  4235  export const l2Erc721BridgeConfig = {
  4236    address: l2Erc721BridgeAddress,
  4237    abi: l2Erc721BridgeABI,
  4238  } as const
  4239  
  4240  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4241  // L2OutputOracle
  4242  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4243  
  4244  /**
  4245   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27)
  4246   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0)
  4247   */
  4248  export const l2OutputOracleABI = [
  4249    {
  4250      stateMutability: 'nonpayable',
  4251      type: 'constructor',
  4252      inputs: [
  4253        { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' },
  4254        { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' },
  4255        {
  4256          name: '_finalizationPeriodSeconds',
  4257          internalType: 'uint256',
  4258          type: 'uint256',
  4259        },
  4260      ],
  4261    },
  4262    {
  4263      type: 'event',
  4264      anonymous: false,
  4265      inputs: [
  4266        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  4267      ],
  4268      name: 'Initialized',
  4269    },
  4270    {
  4271      type: 'event',
  4272      anonymous: false,
  4273      inputs: [
  4274        {
  4275          name: 'outputRoot',
  4276          internalType: 'bytes32',
  4277          type: 'bytes32',
  4278          indexed: true,
  4279        },
  4280        {
  4281          name: 'l2OutputIndex',
  4282          internalType: 'uint256',
  4283          type: 'uint256',
  4284          indexed: true,
  4285        },
  4286        {
  4287          name: 'l2BlockNumber',
  4288          internalType: 'uint256',
  4289          type: 'uint256',
  4290          indexed: true,
  4291        },
  4292        {
  4293          name: 'l1Timestamp',
  4294          internalType: 'uint256',
  4295          type: 'uint256',
  4296          indexed: false,
  4297        },
  4298      ],
  4299      name: 'OutputProposed',
  4300    },
  4301    {
  4302      type: 'event',
  4303      anonymous: false,
  4304      inputs: [
  4305        {
  4306          name: 'prevNextOutputIndex',
  4307          internalType: 'uint256',
  4308          type: 'uint256',
  4309          indexed: true,
  4310        },
  4311        {
  4312          name: 'newNextOutputIndex',
  4313          internalType: 'uint256',
  4314          type: 'uint256',
  4315          indexed: true,
  4316        },
  4317      ],
  4318      name: 'OutputsDeleted',
  4319    },
  4320    {
  4321      stateMutability: 'view',
  4322      type: 'function',
  4323      inputs: [],
  4324      name: 'challenger',
  4325      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  4326    },
  4327    {
  4328      stateMutability: 'view',
  4329      type: 'function',
  4330      inputs: [
  4331        { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' },
  4332      ],
  4333      name: 'computeL2Timestamp',
  4334      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4335    },
  4336    {
  4337      stateMutability: 'nonpayable',
  4338      type: 'function',
  4339      inputs: [
  4340        { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' },
  4341      ],
  4342      name: 'deleteL2Outputs',
  4343      outputs: [],
  4344    },
  4345    {
  4346      stateMutability: 'view',
  4347      type: 'function',
  4348      inputs: [],
  4349      name: 'finalizationPeriodSeconds',
  4350      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4351    },
  4352    {
  4353      stateMutability: 'view',
  4354      type: 'function',
  4355      inputs: [
  4356        { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' },
  4357      ],
  4358      name: 'getL2Output',
  4359      outputs: [
  4360        {
  4361          name: '',
  4362          internalType: 'struct Types.OutputProposal',
  4363          type: 'tuple',
  4364          components: [
  4365            { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' },
  4366            { name: 'timestamp', internalType: 'uint128', type: 'uint128' },
  4367            { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' },
  4368          ],
  4369        },
  4370      ],
  4371    },
  4372    {
  4373      stateMutability: 'view',
  4374      type: 'function',
  4375      inputs: [
  4376        { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' },
  4377      ],
  4378      name: 'getL2OutputAfter',
  4379      outputs: [
  4380        {
  4381          name: '',
  4382          internalType: 'struct Types.OutputProposal',
  4383          type: 'tuple',
  4384          components: [
  4385            { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' },
  4386            { name: 'timestamp', internalType: 'uint128', type: 'uint128' },
  4387            { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' },
  4388          ],
  4389        },
  4390      ],
  4391    },
  4392    {
  4393      stateMutability: 'view',
  4394      type: 'function',
  4395      inputs: [
  4396        { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' },
  4397      ],
  4398      name: 'getL2OutputIndexAfter',
  4399      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4400    },
  4401    {
  4402      stateMutability: 'nonpayable',
  4403      type: 'function',
  4404      inputs: [
  4405        {
  4406          name: '_startingBlockNumber',
  4407          internalType: 'uint256',
  4408          type: 'uint256',
  4409        },
  4410        { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' },
  4411        { name: '_proposer', internalType: 'address', type: 'address' },
  4412        { name: '_challenger', internalType: 'address', type: 'address' },
  4413      ],
  4414      name: 'initialize',
  4415      outputs: [],
  4416    },
  4417    {
  4418      stateMutability: 'view',
  4419      type: 'function',
  4420      inputs: [],
  4421      name: 'l2BlockTime',
  4422      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4423    },
  4424    {
  4425      stateMutability: 'view',
  4426      type: 'function',
  4427      inputs: [],
  4428      name: 'latestBlockNumber',
  4429      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4430    },
  4431    {
  4432      stateMutability: 'view',
  4433      type: 'function',
  4434      inputs: [],
  4435      name: 'latestOutputIndex',
  4436      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4437    },
  4438    {
  4439      stateMutability: 'view',
  4440      type: 'function',
  4441      inputs: [],
  4442      name: 'nextBlockNumber',
  4443      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4444    },
  4445    {
  4446      stateMutability: 'view',
  4447      type: 'function',
  4448      inputs: [],
  4449      name: 'nextOutputIndex',
  4450      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4451    },
  4452    {
  4453      stateMutability: 'payable',
  4454      type: 'function',
  4455      inputs: [
  4456        { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' },
  4457        { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' },
  4458        { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' },
  4459        { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' },
  4460      ],
  4461      name: 'proposeL2Output',
  4462      outputs: [],
  4463    },
  4464    {
  4465      stateMutability: 'view',
  4466      type: 'function',
  4467      inputs: [],
  4468      name: 'proposer',
  4469      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  4470    },
  4471    {
  4472      stateMutability: 'view',
  4473      type: 'function',
  4474      inputs: [],
  4475      name: 'startingBlockNumber',
  4476      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4477    },
  4478    {
  4479      stateMutability: 'view',
  4480      type: 'function',
  4481      inputs: [],
  4482      name: 'startingTimestamp',
  4483      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4484    },
  4485    {
  4486      stateMutability: 'view',
  4487      type: 'function',
  4488      inputs: [],
  4489      name: 'submissionInterval',
  4490      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4491    },
  4492    {
  4493      stateMutability: 'view',
  4494      type: 'function',
  4495      inputs: [],
  4496      name: 'version',
  4497      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  4498    },
  4499  ] as const
  4500  
  4501  /**
  4502   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27)
  4503   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0)
  4504   */
  4505  export const l2OutputOracleAddress = {
  4506    1: '0xdfe97868233d1aa22e815a266982f2cf17685a27',
  4507    5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0',
  4508  } as const
  4509  
  4510  /**
  4511   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27)
  4512   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0)
  4513   */
  4514  export const l2OutputOracleConfig = {
  4515    address: l2OutputOracleAddress,
  4516    abi: l2OutputOracleABI,
  4517  } as const
  4518  
  4519  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4520  // L2StandardBridge
  4521  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4522  
  4523  /**
  4524   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010)
  4525   */
  4526  export const l2StandardBridgeABI = [
  4527    {
  4528      stateMutability: 'nonpayable',
  4529      type: 'constructor',
  4530      inputs: [
  4531        {
  4532          name: '_otherBridge',
  4533          internalType: 'address payable',
  4534          type: 'address',
  4535        },
  4536      ],
  4537    },
  4538    {
  4539      type: 'event',
  4540      anonymous: false,
  4541      inputs: [
  4542        {
  4543          name: 'l1Token',
  4544          internalType: 'address',
  4545          type: 'address',
  4546          indexed: true,
  4547        },
  4548        {
  4549          name: 'l2Token',
  4550          internalType: 'address',
  4551          type: 'address',
  4552          indexed: true,
  4553        },
  4554        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  4555        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  4556        {
  4557          name: 'amount',
  4558          internalType: 'uint256',
  4559          type: 'uint256',
  4560          indexed: false,
  4561        },
  4562        {
  4563          name: 'extraData',
  4564          internalType: 'bytes',
  4565          type: 'bytes',
  4566          indexed: false,
  4567        },
  4568      ],
  4569      name: 'DepositFinalized',
  4570    },
  4571    {
  4572      type: 'event',
  4573      anonymous: false,
  4574      inputs: [
  4575        {
  4576          name: 'localToken',
  4577          internalType: 'address',
  4578          type: 'address',
  4579          indexed: true,
  4580        },
  4581        {
  4582          name: 'remoteToken',
  4583          internalType: 'address',
  4584          type: 'address',
  4585          indexed: true,
  4586        },
  4587        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  4588        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  4589        {
  4590          name: 'amount',
  4591          internalType: 'uint256',
  4592          type: 'uint256',
  4593          indexed: false,
  4594        },
  4595        {
  4596          name: 'extraData',
  4597          internalType: 'bytes',
  4598          type: 'bytes',
  4599          indexed: false,
  4600        },
  4601      ],
  4602      name: 'ERC20BridgeFinalized',
  4603    },
  4604    {
  4605      type: 'event',
  4606      anonymous: false,
  4607      inputs: [
  4608        {
  4609          name: 'localToken',
  4610          internalType: 'address',
  4611          type: 'address',
  4612          indexed: true,
  4613        },
  4614        {
  4615          name: 'remoteToken',
  4616          internalType: 'address',
  4617          type: 'address',
  4618          indexed: true,
  4619        },
  4620        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  4621        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  4622        {
  4623          name: 'amount',
  4624          internalType: 'uint256',
  4625          type: 'uint256',
  4626          indexed: false,
  4627        },
  4628        {
  4629          name: 'extraData',
  4630          internalType: 'bytes',
  4631          type: 'bytes',
  4632          indexed: false,
  4633        },
  4634      ],
  4635      name: 'ERC20BridgeInitiated',
  4636    },
  4637    {
  4638      type: 'event',
  4639      anonymous: false,
  4640      inputs: [
  4641        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  4642        { name: 'to', internalType: 'address', type: 'address', indexed: true },
  4643        {
  4644          name: 'amount',
  4645          internalType: 'uint256',
  4646          type: 'uint256',
  4647          indexed: false,
  4648        },
  4649        {
  4650          name: 'extraData',
  4651          internalType: 'bytes',
  4652          type: 'bytes',
  4653          indexed: false,
  4654        },
  4655      ],
  4656      name: 'ETHBridgeFinalized',
  4657    },
  4658    {
  4659      type: 'event',
  4660      anonymous: false,
  4661      inputs: [
  4662        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  4663        { name: 'to', internalType: 'address', type: 'address', indexed: true },
  4664        {
  4665          name: 'amount',
  4666          internalType: 'uint256',
  4667          type: 'uint256',
  4668          indexed: false,
  4669        },
  4670        {
  4671          name: 'extraData',
  4672          internalType: 'bytes',
  4673          type: 'bytes',
  4674          indexed: false,
  4675        },
  4676      ],
  4677      name: 'ETHBridgeInitiated',
  4678    },
  4679    {
  4680      type: 'event',
  4681      anonymous: false,
  4682      inputs: [
  4683        {
  4684          name: 'l1Token',
  4685          internalType: 'address',
  4686          type: 'address',
  4687          indexed: true,
  4688        },
  4689        {
  4690          name: 'l2Token',
  4691          internalType: 'address',
  4692          type: 'address',
  4693          indexed: true,
  4694        },
  4695        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  4696        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  4697        {
  4698          name: 'amount',
  4699          internalType: 'uint256',
  4700          type: 'uint256',
  4701          indexed: false,
  4702        },
  4703        {
  4704          name: 'extraData',
  4705          internalType: 'bytes',
  4706          type: 'bytes',
  4707          indexed: false,
  4708        },
  4709      ],
  4710      name: 'WithdrawalInitiated',
  4711    },
  4712    {
  4713      stateMutability: 'view',
  4714      type: 'function',
  4715      inputs: [],
  4716      name: 'OTHER_BRIDGE',
  4717      outputs: [
  4718        { name: '', internalType: 'contract StandardBridge', type: 'address' },
  4719      ],
  4720    },
  4721    {
  4722      stateMutability: 'nonpayable',
  4723      type: 'function',
  4724      inputs: [
  4725        { name: '_localToken', internalType: 'address', type: 'address' },
  4726        { name: '_remoteToken', internalType: 'address', type: 'address' },
  4727        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  4728        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  4729        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4730      ],
  4731      name: 'bridgeERC20',
  4732      outputs: [],
  4733    },
  4734    {
  4735      stateMutability: 'nonpayable',
  4736      type: 'function',
  4737      inputs: [
  4738        { name: '_localToken', internalType: 'address', type: 'address' },
  4739        { name: '_remoteToken', internalType: 'address', type: 'address' },
  4740        { name: '_to', internalType: 'address', type: 'address' },
  4741        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  4742        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  4743        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4744      ],
  4745      name: 'bridgeERC20To',
  4746      outputs: [],
  4747    },
  4748    {
  4749      stateMutability: 'payable',
  4750      type: 'function',
  4751      inputs: [
  4752        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  4753        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4754      ],
  4755      name: 'bridgeETH',
  4756      outputs: [],
  4757    },
  4758    {
  4759      stateMutability: 'payable',
  4760      type: 'function',
  4761      inputs: [
  4762        { name: '_to', internalType: 'address', type: 'address' },
  4763        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  4764        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4765      ],
  4766      name: 'bridgeETHTo',
  4767      outputs: [],
  4768    },
  4769    {
  4770      stateMutability: 'view',
  4771      type: 'function',
  4772      inputs: [
  4773        { name: '', internalType: 'address', type: 'address' },
  4774        { name: '', internalType: 'address', type: 'address' },
  4775      ],
  4776      name: 'deposits',
  4777      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4778    },
  4779    {
  4780      stateMutability: 'nonpayable',
  4781      type: 'function',
  4782      inputs: [
  4783        { name: '_localToken', internalType: 'address', type: 'address' },
  4784        { name: '_remoteToken', internalType: 'address', type: 'address' },
  4785        { name: '_from', internalType: 'address', type: 'address' },
  4786        { name: '_to', internalType: 'address', type: 'address' },
  4787        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  4788        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4789      ],
  4790      name: 'finalizeBridgeERC20',
  4791      outputs: [],
  4792    },
  4793    {
  4794      stateMutability: 'payable',
  4795      type: 'function',
  4796      inputs: [
  4797        { name: '_from', internalType: 'address', type: 'address' },
  4798        { name: '_to', internalType: 'address', type: 'address' },
  4799        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  4800        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4801      ],
  4802      name: 'finalizeBridgeETH',
  4803      outputs: [],
  4804    },
  4805    {
  4806      stateMutability: 'payable',
  4807      type: 'function',
  4808      inputs: [
  4809        { name: '_l1Token', internalType: 'address', type: 'address' },
  4810        { name: '_l2Token', internalType: 'address', type: 'address' },
  4811        { name: '_from', internalType: 'address', type: 'address' },
  4812        { name: '_to', internalType: 'address', type: 'address' },
  4813        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  4814        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4815      ],
  4816      name: 'finalizeDeposit',
  4817      outputs: [],
  4818    },
  4819    {
  4820      stateMutability: 'view',
  4821      type: 'function',
  4822      inputs: [],
  4823      name: 'l1TokenBridge',
  4824      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  4825    },
  4826    {
  4827      stateMutability: 'view',
  4828      type: 'function',
  4829      inputs: [],
  4830      name: 'messenger',
  4831      outputs: [
  4832        {
  4833          name: '',
  4834          internalType: 'contract CrossDomainMessenger',
  4835          type: 'address',
  4836        },
  4837      ],
  4838    },
  4839    {
  4840      stateMutability: 'view',
  4841      type: 'function',
  4842      inputs: [],
  4843      name: 'version',
  4844      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  4845    },
  4846    {
  4847      stateMutability: 'payable',
  4848      type: 'function',
  4849      inputs: [
  4850        { name: '_l2Token', internalType: 'address', type: 'address' },
  4851        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  4852        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  4853        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4854      ],
  4855      name: 'withdraw',
  4856      outputs: [],
  4857    },
  4858    {
  4859      stateMutability: 'payable',
  4860      type: 'function',
  4861      inputs: [
  4862        { name: '_l2Token', internalType: 'address', type: 'address' },
  4863        { name: '_to', internalType: 'address', type: 'address' },
  4864        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  4865        { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' },
  4866        { name: '_extraData', internalType: 'bytes', type: 'bytes' },
  4867      ],
  4868      name: 'withdrawTo',
  4869      outputs: [],
  4870    },
  4871    { stateMutability: 'payable', type: 'receive' },
  4872  ] as const
  4873  
  4874  /**
  4875   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010)
  4876   */
  4877  export const l2StandardBridgeAddress = {
  4878    420: '0x4200000000000000000000000000000000000010',
  4879  } as const
  4880  
  4881  /**
  4882   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010)
  4883   */
  4884  export const l2StandardBridgeConfig = {
  4885    address: l2StandardBridgeAddress,
  4886    abi: l2StandardBridgeABI,
  4887  } as const
  4888  
  4889  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4890  // L2ToL1MessagePasser
  4891  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4892  
  4893  /**
  4894   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016)
  4895   */
  4896  export const l2ToL1MessagePasserABI = [
  4897    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  4898    {
  4899      type: 'event',
  4900      anonymous: false,
  4901      inputs: [
  4902        {
  4903          name: 'nonce',
  4904          internalType: 'uint256',
  4905          type: 'uint256',
  4906          indexed: true,
  4907        },
  4908        {
  4909          name: 'sender',
  4910          internalType: 'address',
  4911          type: 'address',
  4912          indexed: true,
  4913        },
  4914        {
  4915          name: 'target',
  4916          internalType: 'address',
  4917          type: 'address',
  4918          indexed: true,
  4919        },
  4920        {
  4921          name: 'value',
  4922          internalType: 'uint256',
  4923          type: 'uint256',
  4924          indexed: false,
  4925        },
  4926        {
  4927          name: 'gasLimit',
  4928          internalType: 'uint256',
  4929          type: 'uint256',
  4930          indexed: false,
  4931        },
  4932        { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
  4933        {
  4934          name: 'withdrawalHash',
  4935          internalType: 'bytes32',
  4936          type: 'bytes32',
  4937          indexed: false,
  4938        },
  4939      ],
  4940      name: 'MessagePassed',
  4941    },
  4942    {
  4943      type: 'event',
  4944      anonymous: false,
  4945      inputs: [
  4946        {
  4947          name: 'amount',
  4948          internalType: 'uint256',
  4949          type: 'uint256',
  4950          indexed: true,
  4951        },
  4952      ],
  4953      name: 'WithdrawerBalanceBurnt',
  4954    },
  4955    {
  4956      stateMutability: 'view',
  4957      type: 'function',
  4958      inputs: [],
  4959      name: 'MESSAGE_VERSION',
  4960      outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }],
  4961    },
  4962    {
  4963      stateMutability: 'nonpayable',
  4964      type: 'function',
  4965      inputs: [],
  4966      name: 'burn',
  4967      outputs: [],
  4968    },
  4969    {
  4970      stateMutability: 'payable',
  4971      type: 'function',
  4972      inputs: [
  4973        { name: '_target', internalType: 'address', type: 'address' },
  4974        { name: '_gasLimit', internalType: 'uint256', type: 'uint256' },
  4975        { name: '_data', internalType: 'bytes', type: 'bytes' },
  4976      ],
  4977      name: 'initiateWithdrawal',
  4978      outputs: [],
  4979    },
  4980    {
  4981      stateMutability: 'view',
  4982      type: 'function',
  4983      inputs: [],
  4984      name: 'messageNonce',
  4985      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  4986    },
  4987    {
  4988      stateMutability: 'view',
  4989      type: 'function',
  4990      inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  4991      name: 'sentMessages',
  4992      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  4993    },
  4994    {
  4995      stateMutability: 'view',
  4996      type: 'function',
  4997      inputs: [],
  4998      name: 'version',
  4999      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  5000    },
  5001    { stateMutability: 'payable', type: 'receive' },
  5002  ] as const
  5003  
  5004  /**
  5005   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016)
  5006   */
  5007  export const l2ToL1MessagePasserAddress = {
  5008    420: '0x4200000000000000000000000000000000000016',
  5009  } as const
  5010  
  5011  /**
  5012   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016)
  5013   */
  5014  export const l2ToL1MessagePasserConfig = {
  5015    address: l2ToL1MessagePasserAddress,
  5016    abi: l2ToL1MessagePasserABI,
  5017  } as const
  5018  
  5019  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5020  // MintManager
  5021  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5022  
  5023  /**
  5024   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005)
  5025   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76)
  5026   */
  5027  export const mintManagerABI = [
  5028    {
  5029      stateMutability: 'nonpayable',
  5030      type: 'constructor',
  5031      inputs: [
  5032        { name: '_upgrader', internalType: 'address', type: 'address' },
  5033        { name: '_governanceToken', internalType: 'address', type: 'address' },
  5034      ],
  5035    },
  5036    {
  5037      type: 'event',
  5038      anonymous: false,
  5039      inputs: [
  5040        {
  5041          name: 'previousOwner',
  5042          internalType: 'address',
  5043          type: 'address',
  5044          indexed: true,
  5045        },
  5046        {
  5047          name: 'newOwner',
  5048          internalType: 'address',
  5049          type: 'address',
  5050          indexed: true,
  5051        },
  5052      ],
  5053      name: 'OwnershipTransferred',
  5054    },
  5055    {
  5056      stateMutability: 'view',
  5057      type: 'function',
  5058      inputs: [],
  5059      name: 'DENOMINATOR',
  5060      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  5061    },
  5062    {
  5063      stateMutability: 'view',
  5064      type: 'function',
  5065      inputs: [],
  5066      name: 'MINT_CAP',
  5067      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  5068    },
  5069    {
  5070      stateMutability: 'view',
  5071      type: 'function',
  5072      inputs: [],
  5073      name: 'MINT_PERIOD',
  5074      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  5075    },
  5076    {
  5077      stateMutability: 'view',
  5078      type: 'function',
  5079      inputs: [],
  5080      name: 'governanceToken',
  5081      outputs: [
  5082        { name: '', internalType: 'contract GovernanceToken', type: 'address' },
  5083      ],
  5084    },
  5085    {
  5086      stateMutability: 'nonpayable',
  5087      type: 'function',
  5088      inputs: [
  5089        { name: '_account', internalType: 'address', type: 'address' },
  5090        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  5091      ],
  5092      name: 'mint',
  5093      outputs: [],
  5094    },
  5095    {
  5096      stateMutability: 'view',
  5097      type: 'function',
  5098      inputs: [],
  5099      name: 'mintPermittedAfter',
  5100      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  5101    },
  5102    {
  5103      stateMutability: 'view',
  5104      type: 'function',
  5105      inputs: [],
  5106      name: 'owner',
  5107      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5108    },
  5109    {
  5110      stateMutability: 'nonpayable',
  5111      type: 'function',
  5112      inputs: [],
  5113      name: 'renounceOwnership',
  5114      outputs: [],
  5115    },
  5116    {
  5117      stateMutability: 'nonpayable',
  5118      type: 'function',
  5119      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
  5120      name: 'transferOwnership',
  5121      outputs: [],
  5122    },
  5123    {
  5124      stateMutability: 'nonpayable',
  5125      type: 'function',
  5126      inputs: [
  5127        { name: '_newMintManager', internalType: 'address', type: 'address' },
  5128      ],
  5129      name: 'upgrade',
  5130      outputs: [],
  5131    },
  5132  ] as const
  5133  
  5134  /**
  5135   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005)
  5136   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76)
  5137   */
  5138  export const mintManagerAddress = {
  5139    10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005',
  5140    420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76',
  5141  } as const
  5142  
  5143  /**
  5144   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005)
  5145   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76)
  5146   */
  5147  export const mintManagerConfig = {
  5148    address: mintManagerAddress,
  5149    abi: mintManagerABI,
  5150  } as const
  5151  
  5152  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5153  // OptimismMintableERC20Factory
  5154  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5155  
  5156  /**
  5157   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012)
  5158   */
  5159  export const optimismMintableErc20FactoryABI = [
  5160    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  5161    {
  5162      type: 'event',
  5163      anonymous: false,
  5164      inputs: [
  5165        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  5166      ],
  5167      name: 'Initialized',
  5168    },
  5169    {
  5170      type: 'event',
  5171      anonymous: false,
  5172      inputs: [
  5173        {
  5174          name: 'localToken',
  5175          internalType: 'address',
  5176          type: 'address',
  5177          indexed: true,
  5178        },
  5179        {
  5180          name: 'remoteToken',
  5181          internalType: 'address',
  5182          type: 'address',
  5183          indexed: true,
  5184        },
  5185        {
  5186          name: 'deployer',
  5187          internalType: 'address',
  5188          type: 'address',
  5189          indexed: false,
  5190        },
  5191      ],
  5192      name: 'OptimismMintableERC20Created',
  5193    },
  5194    {
  5195      type: 'event',
  5196      anonymous: false,
  5197      inputs: [
  5198        {
  5199          name: 'remoteToken',
  5200          internalType: 'address',
  5201          type: 'address',
  5202          indexed: true,
  5203        },
  5204        {
  5205          name: 'localToken',
  5206          internalType: 'address',
  5207          type: 'address',
  5208          indexed: true,
  5209        },
  5210      ],
  5211      name: 'StandardL2TokenCreated',
  5212    },
  5213    {
  5214      stateMutability: 'view',
  5215      type: 'function',
  5216      inputs: [],
  5217      name: 'bridge',
  5218      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5219    },
  5220    {
  5221      stateMutability: 'nonpayable',
  5222      type: 'function',
  5223      inputs: [
  5224        { name: '_remoteToken', internalType: 'address', type: 'address' },
  5225        { name: '_name', internalType: 'string', type: 'string' },
  5226        { name: '_symbol', internalType: 'string', type: 'string' },
  5227      ],
  5228      name: 'createOptimismMintableERC20',
  5229      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5230    },
  5231    {
  5232      stateMutability: 'nonpayable',
  5233      type: 'function',
  5234      inputs: [
  5235        { name: '_remoteToken', internalType: 'address', type: 'address' },
  5236        { name: '_name', internalType: 'string', type: 'string' },
  5237        { name: '_symbol', internalType: 'string', type: 'string' },
  5238        { name: '_decimals', internalType: 'uint8', type: 'uint8' },
  5239      ],
  5240      name: 'createOptimismMintableERC20WithDecimals',
  5241      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5242    },
  5243    {
  5244      stateMutability: 'nonpayable',
  5245      type: 'function',
  5246      inputs: [
  5247        { name: '_remoteToken', internalType: 'address', type: 'address' },
  5248        { name: '_name', internalType: 'string', type: 'string' },
  5249        { name: '_symbol', internalType: 'string', type: 'string' },
  5250      ],
  5251      name: 'createStandardL2Token',
  5252      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5253    },
  5254    {
  5255      stateMutability: 'nonpayable',
  5256      type: 'function',
  5257      inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }],
  5258      name: 'initialize',
  5259      outputs: [],
  5260    },
  5261    {
  5262      stateMutability: 'view',
  5263      type: 'function',
  5264      inputs: [],
  5265      name: 'version',
  5266      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  5267    },
  5268  ] as const
  5269  
  5270  /**
  5271   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012)
  5272   */
  5273  export const optimismMintableErc20FactoryAddress = {
  5274    1: '0x4200000000000000000000000000000000000012',
  5275  } as const
  5276  
  5277  /**
  5278   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012)
  5279   */
  5280  export const optimismMintableErc20FactoryConfig = {
  5281    address: optimismMintableErc20FactoryAddress,
  5282    abi: optimismMintableErc20FactoryABI,
  5283  } as const
  5284  
  5285  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5286  // OptimismMintableERC20Factory_goerli
  5287  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5288  
  5289  /**
  5290   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012)
  5291   */
  5292  export const optimismMintableErc20FactoryGoerliABI = [
  5293    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  5294    {
  5295      type: 'event',
  5296      anonymous: false,
  5297      inputs: [
  5298        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  5299      ],
  5300      name: 'Initialized',
  5301    },
  5302    {
  5303      type: 'event',
  5304      anonymous: false,
  5305      inputs: [
  5306        {
  5307          name: 'localToken',
  5308          internalType: 'address',
  5309          type: 'address',
  5310          indexed: true,
  5311        },
  5312        {
  5313          name: 'remoteToken',
  5314          internalType: 'address',
  5315          type: 'address',
  5316          indexed: true,
  5317        },
  5318        {
  5319          name: 'deployer',
  5320          internalType: 'address',
  5321          type: 'address',
  5322          indexed: false,
  5323        },
  5324      ],
  5325      name: 'OptimismMintableERC20Created',
  5326    },
  5327    {
  5328      type: 'event',
  5329      anonymous: false,
  5330      inputs: [
  5331        {
  5332          name: 'remoteToken',
  5333          internalType: 'address',
  5334          type: 'address',
  5335          indexed: true,
  5336        },
  5337        {
  5338          name: 'localToken',
  5339          internalType: 'address',
  5340          type: 'address',
  5341          indexed: true,
  5342        },
  5343      ],
  5344      name: 'StandardL2TokenCreated',
  5345    },
  5346    {
  5347      stateMutability: 'view',
  5348      type: 'function',
  5349      inputs: [],
  5350      name: 'bridge',
  5351      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5352    },
  5353    {
  5354      stateMutability: 'nonpayable',
  5355      type: 'function',
  5356      inputs: [
  5357        { name: '_remoteToken', internalType: 'address', type: 'address' },
  5358        { name: '_name', internalType: 'string', type: 'string' },
  5359        { name: '_symbol', internalType: 'string', type: 'string' },
  5360      ],
  5361      name: 'createOptimismMintableERC20',
  5362      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5363    },
  5364    {
  5365      stateMutability: 'nonpayable',
  5366      type: 'function',
  5367      inputs: [
  5368        { name: '_remoteToken', internalType: 'address', type: 'address' },
  5369        { name: '_name', internalType: 'string', type: 'string' },
  5370        { name: '_symbol', internalType: 'string', type: 'string' },
  5371        { name: '_decimals', internalType: 'uint8', type: 'uint8' },
  5372      ],
  5373      name: 'createOptimismMintableERC20WithDecimals',
  5374      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5375    },
  5376    {
  5377      stateMutability: 'nonpayable',
  5378      type: 'function',
  5379      inputs: [
  5380        { name: '_remoteToken', internalType: 'address', type: 'address' },
  5381        { name: '_name', internalType: 'string', type: 'string' },
  5382        { name: '_symbol', internalType: 'string', type: 'string' },
  5383      ],
  5384      name: 'createStandardL2Token',
  5385      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5386    },
  5387    {
  5388      stateMutability: 'nonpayable',
  5389      type: 'function',
  5390      inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }],
  5391      name: 'initialize',
  5392      outputs: [],
  5393    },
  5394    {
  5395      stateMutability: 'view',
  5396      type: 'function',
  5397      inputs: [],
  5398      name: 'version',
  5399      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  5400    },
  5401  ] as const
  5402  
  5403  /**
  5404   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012)
  5405   */
  5406  export const optimismMintableErc20FactoryGoerliAddress = {
  5407    5: '0x4200000000000000000000000000000000000012',
  5408  } as const
  5409  
  5410  /**
  5411   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012)
  5412   */
  5413  export const optimismMintableErc20FactoryGoerliConfig = {
  5414    address: optimismMintableErc20FactoryGoerliAddress,
  5415    abi: optimismMintableErc20FactoryGoerliABI,
  5416  } as const
  5417  
  5418  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5419  // OptimismMintableERC20Factory_optimism-goerli
  5420  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5421  
  5422  /**
  5423   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012)
  5424   */
  5425  export const optimismMintableErc20FactoryOptimismGoerliABI = [
  5426    {
  5427      stateMutability: 'nonpayable',
  5428      type: 'constructor',
  5429      inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }],
  5430    },
  5431    {
  5432      type: 'event',
  5433      anonymous: false,
  5434      inputs: [
  5435        {
  5436          name: 'localToken',
  5437          internalType: 'address',
  5438          type: 'address',
  5439          indexed: true,
  5440        },
  5441        {
  5442          name: 'remoteToken',
  5443          internalType: 'address',
  5444          type: 'address',
  5445          indexed: true,
  5446        },
  5447        {
  5448          name: 'deployer',
  5449          internalType: 'address',
  5450          type: 'address',
  5451          indexed: false,
  5452        },
  5453      ],
  5454      name: 'OptimismMintableERC20Created',
  5455    },
  5456    {
  5457      type: 'event',
  5458      anonymous: false,
  5459      inputs: [
  5460        {
  5461          name: 'remoteToken',
  5462          internalType: 'address',
  5463          type: 'address',
  5464          indexed: true,
  5465        },
  5466        {
  5467          name: 'localToken',
  5468          internalType: 'address',
  5469          type: 'address',
  5470          indexed: true,
  5471        },
  5472      ],
  5473      name: 'StandardL2TokenCreated',
  5474    },
  5475    {
  5476      stateMutability: 'view',
  5477      type: 'function',
  5478      inputs: [],
  5479      name: 'BRIDGE',
  5480      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5481    },
  5482    {
  5483      stateMutability: 'nonpayable',
  5484      type: 'function',
  5485      inputs: [
  5486        { name: '_remoteToken', internalType: 'address', type: 'address' },
  5487        { name: '_name', internalType: 'string', type: 'string' },
  5488        { name: '_symbol', internalType: 'string', type: 'string' },
  5489      ],
  5490      name: 'createOptimismMintableERC20',
  5491      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5492    },
  5493    {
  5494      stateMutability: 'nonpayable',
  5495      type: 'function',
  5496      inputs: [
  5497        { name: '_remoteToken', internalType: 'address', type: 'address' },
  5498        { name: '_name', internalType: 'string', type: 'string' },
  5499        { name: '_symbol', internalType: 'string', type: 'string' },
  5500      ],
  5501      name: 'createStandardL2Token',
  5502      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5503    },
  5504    {
  5505      stateMutability: 'view',
  5506      type: 'function',
  5507      inputs: [],
  5508      name: 'version',
  5509      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  5510    },
  5511  ] as const
  5512  
  5513  /**
  5514   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012)
  5515   */
  5516  export const optimismMintableErc20FactoryOptimismGoerliAddress = {
  5517    420: '0x4200000000000000000000000000000000000012',
  5518  } as const
  5519  
  5520  /**
  5521   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012)
  5522   */
  5523  export const optimismMintableErc20FactoryOptimismGoerliConfig = {
  5524    address: optimismMintableErc20FactoryOptimismGoerliAddress,
  5525    abi: optimismMintableErc20FactoryOptimismGoerliABI,
  5526  } as const
  5527  
  5528  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5529  // OptimismMintableERC721Factory
  5530  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5531  
  5532  /**
  5533   * [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017)
  5534   */
  5535  export const optimismMintableErc721FactoryABI = [
  5536    {
  5537      stateMutability: 'nonpayable',
  5538      type: 'constructor',
  5539      inputs: [
  5540        { name: '_bridge', internalType: 'address', type: 'address' },
  5541        { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' },
  5542      ],
  5543    },
  5544    {
  5545      type: 'event',
  5546      anonymous: false,
  5547      inputs: [
  5548        {
  5549          name: 'localToken',
  5550          internalType: 'address',
  5551          type: 'address',
  5552          indexed: true,
  5553        },
  5554        {
  5555          name: 'remoteToken',
  5556          internalType: 'address',
  5557          type: 'address',
  5558          indexed: true,
  5559        },
  5560        {
  5561          name: 'deployer',
  5562          internalType: 'address',
  5563          type: 'address',
  5564          indexed: false,
  5565        },
  5566      ],
  5567      name: 'OptimismMintableERC721Created',
  5568    },
  5569    {
  5570      stateMutability: 'view',
  5571      type: 'function',
  5572      inputs: [],
  5573      name: 'bridge',
  5574      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5575    },
  5576    {
  5577      stateMutability: 'nonpayable',
  5578      type: 'function',
  5579      inputs: [
  5580        { name: '_remoteToken', internalType: 'address', type: 'address' },
  5581        { name: '_name', internalType: 'string', type: 'string' },
  5582        { name: '_symbol', internalType: 'string', type: 'string' },
  5583      ],
  5584      name: 'createOptimismMintableERC721',
  5585      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5586    },
  5587    {
  5588      stateMutability: 'view',
  5589      type: 'function',
  5590      inputs: [{ name: '', internalType: 'address', type: 'address' }],
  5591      name: 'isOptimismMintableERC721',
  5592      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  5593    },
  5594    {
  5595      stateMutability: 'view',
  5596      type: 'function',
  5597      inputs: [],
  5598      name: 'remoteChainId',
  5599      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  5600    },
  5601    {
  5602      stateMutability: 'view',
  5603      type: 'function',
  5604      inputs: [],
  5605      name: 'version',
  5606      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  5607    },
  5608  ] as const
  5609  
  5610  /**
  5611   * [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017)
  5612   */
  5613  export const optimismMintableErc721FactoryAddress = {
  5614    10: '0x4200000000000000000000000000000000000017',
  5615  } as const
  5616  
  5617  /**
  5618   * [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017)
  5619   */
  5620  export const optimismMintableErc721FactoryConfig = {
  5621    address: optimismMintableErc721FactoryAddress,
  5622    abi: optimismMintableErc721FactoryABI,
  5623  } as const
  5624  
  5625  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5626  // OptimismMintableERC721Factory_optimism-goerli
  5627  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5628  
  5629  /**
  5630   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017)
  5631   */
  5632  export const optimismMintableErc721FactoryOptimismGoerliABI = [
  5633    {
  5634      stateMutability: 'nonpayable',
  5635      type: 'constructor',
  5636      inputs: [
  5637        { name: '_bridge', internalType: 'address', type: 'address' },
  5638        { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' },
  5639      ],
  5640    },
  5641    {
  5642      type: 'event',
  5643      anonymous: false,
  5644      inputs: [
  5645        {
  5646          name: 'localToken',
  5647          internalType: 'address',
  5648          type: 'address',
  5649          indexed: true,
  5650        },
  5651        {
  5652          name: 'remoteToken',
  5653          internalType: 'address',
  5654          type: 'address',
  5655          indexed: true,
  5656        },
  5657        {
  5658          name: 'deployer',
  5659          internalType: 'address',
  5660          type: 'address',
  5661          indexed: false,
  5662        },
  5663      ],
  5664      name: 'OptimismMintableERC721Created',
  5665    },
  5666    {
  5667      stateMutability: 'view',
  5668      type: 'function',
  5669      inputs: [],
  5670      name: 'BRIDGE',
  5671      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5672    },
  5673    {
  5674      stateMutability: 'view',
  5675      type: 'function',
  5676      inputs: [],
  5677      name: 'REMOTE_CHAIN_ID',
  5678      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  5679    },
  5680    {
  5681      stateMutability: 'nonpayable',
  5682      type: 'function',
  5683      inputs: [
  5684        { name: '_remoteToken', internalType: 'address', type: 'address' },
  5685        { name: '_name', internalType: 'string', type: 'string' },
  5686        { name: '_symbol', internalType: 'string', type: 'string' },
  5687      ],
  5688      name: 'createOptimismMintableERC721',
  5689      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5690    },
  5691    {
  5692      stateMutability: 'view',
  5693      type: 'function',
  5694      inputs: [{ name: '', internalType: 'address', type: 'address' }],
  5695      name: 'isOptimismMintableERC721',
  5696      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  5697    },
  5698    {
  5699      stateMutability: 'view',
  5700      type: 'function',
  5701      inputs: [],
  5702      name: 'version',
  5703      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  5704    },
  5705  ] as const
  5706  
  5707  /**
  5708   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017)
  5709   */
  5710  export const optimismMintableErc721FactoryOptimismGoerliAddress = {
  5711    420: '0x4200000000000000000000000000000000000017',
  5712  } as const
  5713  
  5714  /**
  5715   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017)
  5716   */
  5717  export const optimismMintableErc721FactoryOptimismGoerliConfig = {
  5718    address: optimismMintableErc721FactoryOptimismGoerliAddress,
  5719    abi: optimismMintableErc721FactoryOptimismGoerliABI,
  5720  } as const
  5721  
  5722  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5723  // OptimismPortal
  5724  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5725  
  5726  /**
  5727   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed)
  5728   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383)
  5729   */
  5730  export const optimismPortalABI = [
  5731    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  5732    {
  5733      type: 'event',
  5734      anonymous: false,
  5735      inputs: [
  5736        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  5737      ],
  5738      name: 'Initialized',
  5739    },
  5740    {
  5741      type: 'event',
  5742      anonymous: false,
  5743      inputs: [
  5744        {
  5745          name: 'account',
  5746          internalType: 'address',
  5747          type: 'address',
  5748          indexed: false,
  5749        },
  5750      ],
  5751      name: 'Paused',
  5752    },
  5753    {
  5754      type: 'event',
  5755      anonymous: false,
  5756      inputs: [
  5757        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  5758        { name: 'to', internalType: 'address', type: 'address', indexed: true },
  5759        {
  5760          name: 'version',
  5761          internalType: 'uint256',
  5762          type: 'uint256',
  5763          indexed: true,
  5764        },
  5765        {
  5766          name: 'opaqueData',
  5767          internalType: 'bytes',
  5768          type: 'bytes',
  5769          indexed: false,
  5770        },
  5771      ],
  5772      name: 'TransactionDeposited',
  5773    },
  5774    {
  5775      type: 'event',
  5776      anonymous: false,
  5777      inputs: [
  5778        {
  5779          name: 'account',
  5780          internalType: 'address',
  5781          type: 'address',
  5782          indexed: false,
  5783        },
  5784      ],
  5785      name: 'Unpaused',
  5786    },
  5787    {
  5788      type: 'event',
  5789      anonymous: false,
  5790      inputs: [
  5791        {
  5792          name: 'withdrawalHash',
  5793          internalType: 'bytes32',
  5794          type: 'bytes32',
  5795          indexed: true,
  5796        },
  5797        { name: 'success', internalType: 'bool', type: 'bool', indexed: false },
  5798      ],
  5799      name: 'WithdrawalFinalized',
  5800    },
  5801    {
  5802      type: 'event',
  5803      anonymous: false,
  5804      inputs: [
  5805        {
  5806          name: 'withdrawalHash',
  5807          internalType: 'bytes32',
  5808          type: 'bytes32',
  5809          indexed: true,
  5810        },
  5811        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  5812        { name: 'to', internalType: 'address', type: 'address', indexed: true },
  5813      ],
  5814      name: 'WithdrawalProven',
  5815    },
  5816    {
  5817      stateMutability: 'payable',
  5818      type: 'function',
  5819      inputs: [
  5820        { name: '_to', internalType: 'address', type: 'address' },
  5821        { name: '_value', internalType: 'uint256', type: 'uint256' },
  5822        { name: '_gasLimit', internalType: 'uint64', type: 'uint64' },
  5823        { name: '_isCreation', internalType: 'bool', type: 'bool' },
  5824        { name: '_data', internalType: 'bytes', type: 'bytes' },
  5825      ],
  5826      name: 'depositTransaction',
  5827      outputs: [],
  5828    },
  5829    {
  5830      stateMutability: 'payable',
  5831      type: 'function',
  5832      inputs: [],
  5833      name: 'donateETH',
  5834      outputs: [],
  5835    },
  5836    {
  5837      stateMutability: 'nonpayable',
  5838      type: 'function',
  5839      inputs: [
  5840        {
  5841          name: '_tx',
  5842          internalType: 'struct Types.WithdrawalTransaction',
  5843          type: 'tuple',
  5844          components: [
  5845            { name: 'nonce', internalType: 'uint256', type: 'uint256' },
  5846            { name: 'sender', internalType: 'address', type: 'address' },
  5847            { name: 'target', internalType: 'address', type: 'address' },
  5848            { name: 'value', internalType: 'uint256', type: 'uint256' },
  5849            { name: 'gasLimit', internalType: 'uint256', type: 'uint256' },
  5850            { name: 'data', internalType: 'bytes', type: 'bytes' },
  5851          ],
  5852        },
  5853      ],
  5854      name: 'finalizeWithdrawalTransaction',
  5855      outputs: [],
  5856    },
  5857    {
  5858      stateMutability: 'view',
  5859      type: 'function',
  5860      inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  5861      name: 'finalizedWithdrawals',
  5862      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  5863    },
  5864    {
  5865      stateMutability: 'view',
  5866      type: 'function',
  5867      inputs: [],
  5868      name: 'guardian',
  5869      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5870    },
  5871    {
  5872      stateMutability: 'nonpayable',
  5873      type: 'function',
  5874      inputs: [
  5875        {
  5876          name: '_l2Oracle',
  5877          internalType: 'contract L2OutputOracle',
  5878          type: 'address',
  5879        },
  5880        { name: '_guardian', internalType: 'address', type: 'address' },
  5881        {
  5882          name: '_systemConfig',
  5883          internalType: 'contract SystemConfig',
  5884          type: 'address',
  5885        },
  5886        { name: '_paused', internalType: 'bool', type: 'bool' },
  5887      ],
  5888      name: 'initialize',
  5889      outputs: [],
  5890    },
  5891    {
  5892      stateMutability: 'view',
  5893      type: 'function',
  5894      inputs: [
  5895        { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' },
  5896      ],
  5897      name: 'isOutputFinalized',
  5898      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  5899    },
  5900    {
  5901      stateMutability: 'view',
  5902      type: 'function',
  5903      inputs: [],
  5904      name: 'l2Oracle',
  5905      outputs: [
  5906        { name: '', internalType: 'contract L2OutputOracle', type: 'address' },
  5907      ],
  5908    },
  5909    {
  5910      stateMutability: 'view',
  5911      type: 'function',
  5912      inputs: [],
  5913      name: 'l2Sender',
  5914      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  5915    },
  5916    {
  5917      stateMutability: 'pure',
  5918      type: 'function',
  5919      inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }],
  5920      name: 'minimumGasLimit',
  5921      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  5922    },
  5923    {
  5924      stateMutability: 'view',
  5925      type: 'function',
  5926      inputs: [],
  5927      name: 'params',
  5928      outputs: [
  5929        { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' },
  5930        { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' },
  5931        { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' },
  5932      ],
  5933    },
  5934    {
  5935      stateMutability: 'nonpayable',
  5936      type: 'function',
  5937      inputs: [],
  5938      name: 'pause',
  5939      outputs: [],
  5940    },
  5941    {
  5942      stateMutability: 'view',
  5943      type: 'function',
  5944      inputs: [],
  5945      name: 'paused',
  5946      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  5947    },
  5948    {
  5949      stateMutability: 'nonpayable',
  5950      type: 'function',
  5951      inputs: [
  5952        {
  5953          name: '_tx',
  5954          internalType: 'struct Types.WithdrawalTransaction',
  5955          type: 'tuple',
  5956          components: [
  5957            { name: 'nonce', internalType: 'uint256', type: 'uint256' },
  5958            { name: 'sender', internalType: 'address', type: 'address' },
  5959            { name: 'target', internalType: 'address', type: 'address' },
  5960            { name: 'value', internalType: 'uint256', type: 'uint256' },
  5961            { name: 'gasLimit', internalType: 'uint256', type: 'uint256' },
  5962            { name: 'data', internalType: 'bytes', type: 'bytes' },
  5963          ],
  5964        },
  5965        { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' },
  5966        {
  5967          name: '_outputRootProof',
  5968          internalType: 'struct Types.OutputRootProof',
  5969          type: 'tuple',
  5970          components: [
  5971            { name: 'version', internalType: 'bytes32', type: 'bytes32' },
  5972            { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' },
  5973            {
  5974              name: 'messagePasserStorageRoot',
  5975              internalType: 'bytes32',
  5976              type: 'bytes32',
  5977            },
  5978            { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' },
  5979          ],
  5980        },
  5981        { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' },
  5982      ],
  5983      name: 'proveWithdrawalTransaction',
  5984      outputs: [],
  5985    },
  5986    {
  5987      stateMutability: 'view',
  5988      type: 'function',
  5989      inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  5990      name: 'provenWithdrawals',
  5991      outputs: [
  5992        { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' },
  5993        { name: 'timestamp', internalType: 'uint128', type: 'uint128' },
  5994        { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' },
  5995      ],
  5996    },
  5997    {
  5998      stateMutability: 'view',
  5999      type: 'function',
  6000      inputs: [],
  6001      name: 'systemConfig',
  6002      outputs: [
  6003        { name: '', internalType: 'contract SystemConfig', type: 'address' },
  6004      ],
  6005    },
  6006    {
  6007      stateMutability: 'nonpayable',
  6008      type: 'function',
  6009      inputs: [],
  6010      name: 'unpause',
  6011      outputs: [],
  6012    },
  6013    {
  6014      stateMutability: 'view',
  6015      type: 'function',
  6016      inputs: [],
  6017      name: 'version',
  6018      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  6019    },
  6020    { stateMutability: 'payable', type: 'receive' },
  6021  ] as const
  6022  
  6023  /**
  6024   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed)
  6025   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383)
  6026   */
  6027  export const optimismPortalAddress = {
  6028    1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',
  6029    5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383',
  6030  } as const
  6031  
  6032  /**
  6033   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed)
  6034   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383)
  6035   */
  6036  export const optimismPortalConfig = {
  6037    address: optimismPortalAddress,
  6038    abi: optimismPortalABI,
  6039  } as const
  6040  
  6041  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6042  // Optimist
  6043  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6044  
  6045  /**
  6046   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
  6047   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
  6048   */
  6049  export const optimistABI = [
  6050    {
  6051      stateMutability: 'nonpayable',
  6052      type: 'constructor',
  6053      inputs: [
  6054        { name: '_name', internalType: 'string', type: 'string' },
  6055        { name: '_symbol', internalType: 'string', type: 'string' },
  6056        { name: '_baseURIAttestor', internalType: 'address', type: 'address' },
  6057        {
  6058          name: '_attestationStation',
  6059          internalType: 'contract AttestationStation',
  6060          type: 'address',
  6061        },
  6062        {
  6063          name: '_optimistAllowlist',
  6064          internalType: 'contract OptimistAllowlist',
  6065          type: 'address',
  6066        },
  6067      ],
  6068    },
  6069    {
  6070      type: 'event',
  6071      anonymous: false,
  6072      inputs: [
  6073        {
  6074          name: 'owner',
  6075          internalType: 'address',
  6076          type: 'address',
  6077          indexed: true,
  6078        },
  6079        {
  6080          name: 'approved',
  6081          internalType: 'address',
  6082          type: 'address',
  6083          indexed: true,
  6084        },
  6085        {
  6086          name: 'tokenId',
  6087          internalType: 'uint256',
  6088          type: 'uint256',
  6089          indexed: true,
  6090        },
  6091      ],
  6092      name: 'Approval',
  6093    },
  6094    {
  6095      type: 'event',
  6096      anonymous: false,
  6097      inputs: [
  6098        {
  6099          name: 'owner',
  6100          internalType: 'address',
  6101          type: 'address',
  6102          indexed: true,
  6103        },
  6104        {
  6105          name: 'operator',
  6106          internalType: 'address',
  6107          type: 'address',
  6108          indexed: true,
  6109        },
  6110        { name: 'approved', internalType: 'bool', type: 'bool', indexed: false },
  6111      ],
  6112      name: 'ApprovalForAll',
  6113    },
  6114    {
  6115      type: 'event',
  6116      anonymous: false,
  6117      inputs: [
  6118        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  6119      ],
  6120      name: 'Initialized',
  6121    },
  6122    {
  6123      type: 'event',
  6124      anonymous: false,
  6125      inputs: [
  6126        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  6127        { name: 'to', internalType: 'address', type: 'address', indexed: true },
  6128        {
  6129          name: 'tokenId',
  6130          internalType: 'uint256',
  6131          type: 'uint256',
  6132          indexed: true,
  6133        },
  6134      ],
  6135      name: 'Transfer',
  6136    },
  6137    {
  6138      stateMutability: 'view',
  6139      type: 'function',
  6140      inputs: [],
  6141      name: 'ATTESTATION_STATION',
  6142      outputs: [
  6143        {
  6144          name: '',
  6145          internalType: 'contract AttestationStation',
  6146          type: 'address',
  6147        },
  6148      ],
  6149    },
  6150    {
  6151      stateMutability: 'view',
  6152      type: 'function',
  6153      inputs: [],
  6154      name: 'BASE_URI_ATTESTATION_KEY',
  6155      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  6156    },
  6157    {
  6158      stateMutability: 'view',
  6159      type: 'function',
  6160      inputs: [],
  6161      name: 'BASE_URI_ATTESTOR',
  6162      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  6163    },
  6164    {
  6165      stateMutability: 'view',
  6166      type: 'function',
  6167      inputs: [],
  6168      name: 'OPTIMIST_ALLOWLIST',
  6169      outputs: [
  6170        { name: '', internalType: 'contract OptimistAllowlist', type: 'address' },
  6171      ],
  6172    },
  6173    {
  6174      stateMutability: 'pure',
  6175      type: 'function',
  6176      inputs: [
  6177        { name: '', internalType: 'address', type: 'address' },
  6178        { name: '', internalType: 'uint256', type: 'uint256' },
  6179      ],
  6180      name: 'approve',
  6181      outputs: [],
  6182    },
  6183    {
  6184      stateMutability: 'view',
  6185      type: 'function',
  6186      inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],
  6187      name: 'balanceOf',
  6188      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  6189    },
  6190    {
  6191      stateMutability: 'view',
  6192      type: 'function',
  6193      inputs: [],
  6194      name: 'baseURI',
  6195      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  6196    },
  6197    {
  6198      stateMutability: 'nonpayable',
  6199      type: 'function',
  6200      inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],
  6201      name: 'burn',
  6202      outputs: [],
  6203    },
  6204    {
  6205      stateMutability: 'view',
  6206      type: 'function',
  6207      inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],
  6208      name: 'getApproved',
  6209      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  6210    },
  6211    {
  6212      stateMutability: 'nonpayable',
  6213      type: 'function',
  6214      inputs: [
  6215        { name: '_name', internalType: 'string', type: 'string' },
  6216        { name: '_symbol', internalType: 'string', type: 'string' },
  6217      ],
  6218      name: 'initialize',
  6219      outputs: [],
  6220    },
  6221    {
  6222      stateMutability: 'view',
  6223      type: 'function',
  6224      inputs: [
  6225        { name: 'owner', internalType: 'address', type: 'address' },
  6226        { name: 'operator', internalType: 'address', type: 'address' },
  6227      ],
  6228      name: 'isApprovedForAll',
  6229      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  6230    },
  6231    {
  6232      stateMutability: 'view',
  6233      type: 'function',
  6234      inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }],
  6235      name: 'isOnAllowList',
  6236      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  6237    },
  6238    {
  6239      stateMutability: 'nonpayable',
  6240      type: 'function',
  6241      inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }],
  6242      name: 'mint',
  6243      outputs: [],
  6244    },
  6245    {
  6246      stateMutability: 'view',
  6247      type: 'function',
  6248      inputs: [],
  6249      name: 'name',
  6250      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  6251    },
  6252    {
  6253      stateMutability: 'view',
  6254      type: 'function',
  6255      inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }],
  6256      name: 'ownerOf',
  6257      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  6258    },
  6259    {
  6260      stateMutability: 'nonpayable',
  6261      type: 'function',
  6262      inputs: [
  6263        { name: 'from', internalType: 'address', type: 'address' },
  6264        { name: 'to', internalType: 'address', type: 'address' },
  6265        { name: 'tokenId', internalType: 'uint256', type: 'uint256' },
  6266      ],
  6267      name: 'safeTransferFrom',
  6268      outputs: [],
  6269    },
  6270    {
  6271      stateMutability: 'nonpayable',
  6272      type: 'function',
  6273      inputs: [
  6274        { name: 'from', internalType: 'address', type: 'address' },
  6275        { name: 'to', internalType: 'address', type: 'address' },
  6276        { name: 'tokenId', internalType: 'uint256', type: 'uint256' },
  6277        { name: 'data', internalType: 'bytes', type: 'bytes' },
  6278      ],
  6279      name: 'safeTransferFrom',
  6280      outputs: [],
  6281    },
  6282    {
  6283      stateMutability: 'nonpayable',
  6284      type: 'function',
  6285      inputs: [
  6286        { name: '', internalType: 'address', type: 'address' },
  6287        { name: '', internalType: 'bool', type: 'bool' },
  6288      ],
  6289      name: 'setApprovalForAll',
  6290      outputs: [],
  6291    },
  6292    {
  6293      stateMutability: 'view',
  6294      type: 'function',
  6295      inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
  6296      name: 'supportsInterface',
  6297      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  6298    },
  6299    {
  6300      stateMutability: 'view',
  6301      type: 'function',
  6302      inputs: [],
  6303      name: 'symbol',
  6304      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  6305    },
  6306    {
  6307      stateMutability: 'pure',
  6308      type: 'function',
  6309      inputs: [{ name: '_owner', internalType: 'address', type: 'address' }],
  6310      name: 'tokenIdOfAddress',
  6311      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  6312    },
  6313    {
  6314      stateMutability: 'view',
  6315      type: 'function',
  6316      inputs: [{ name: '_tokenId', internalType: 'uint256', type: 'uint256' }],
  6317      name: 'tokenURI',
  6318      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  6319    },
  6320    {
  6321      stateMutability: 'nonpayable',
  6322      type: 'function',
  6323      inputs: [
  6324        { name: 'from', internalType: 'address', type: 'address' },
  6325        { name: 'to', internalType: 'address', type: 'address' },
  6326        { name: 'tokenId', internalType: 'uint256', type: 'uint256' },
  6327      ],
  6328      name: 'transferFrom',
  6329      outputs: [],
  6330    },
  6331    {
  6332      stateMutability: 'view',
  6333      type: 'function',
  6334      inputs: [],
  6335      name: 'version',
  6336      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  6337    },
  6338  ] as const
  6339  
  6340  /**
  6341   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
  6342   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
  6343   */
  6344  export const optimistAddress = {
  6345    10: '0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5',
  6346    420: '0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5',
  6347  } as const
  6348  
  6349  /**
  6350   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
  6351   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
  6352   */
  6353  export const optimistConfig = {
  6354    address: optimistAddress,
  6355    abi: optimistABI,
  6356  } as const
  6357  
  6358  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6359  // OptimistAllowlist
  6360  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6361  
  6362  /**
  6363   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180)
  6364   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180)
  6365   */
  6366  export const optimistAllowlistABI = [
  6367    {
  6368      stateMutability: 'nonpayable',
  6369      type: 'constructor',
  6370      inputs: [
  6371        {
  6372          name: '_attestationStation',
  6373          internalType: 'contract AttestationStation',
  6374          type: 'address',
  6375        },
  6376        { name: '_allowlistAttestor', internalType: 'address', type: 'address' },
  6377        {
  6378          name: '_coinbaseQuestAttestor',
  6379          internalType: 'address',
  6380          type: 'address',
  6381        },
  6382        { name: '_optimistInviter', internalType: 'address', type: 'address' },
  6383      ],
  6384    },
  6385    {
  6386      stateMutability: 'view',
  6387      type: 'function',
  6388      inputs: [],
  6389      name: 'ALLOWLIST_ATTESTOR',
  6390      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  6391    },
  6392    {
  6393      stateMutability: 'view',
  6394      type: 'function',
  6395      inputs: [],
  6396      name: 'ATTESTATION_STATION',
  6397      outputs: [
  6398        {
  6399          name: '',
  6400          internalType: 'contract AttestationStation',
  6401          type: 'address',
  6402        },
  6403      ],
  6404    },
  6405    {
  6406      stateMutability: 'view',
  6407      type: 'function',
  6408      inputs: [],
  6409      name: 'COINBASE_QUEST_ATTESTOR',
  6410      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  6411    },
  6412    {
  6413      stateMutability: 'view',
  6414      type: 'function',
  6415      inputs: [],
  6416      name: 'COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY',
  6417      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  6418    },
  6419    {
  6420      stateMutability: 'view',
  6421      type: 'function',
  6422      inputs: [],
  6423      name: 'OPTIMIST_CAN_MINT_ATTESTATION_KEY',
  6424      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  6425    },
  6426    {
  6427      stateMutability: 'view',
  6428      type: 'function',
  6429      inputs: [],
  6430      name: 'OPTIMIST_INVITER',
  6431      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  6432    },
  6433    {
  6434      stateMutability: 'view',
  6435      type: 'function',
  6436      inputs: [{ name: '_claimer', internalType: 'address', type: 'address' }],
  6437      name: 'isAllowedToMint',
  6438      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  6439    },
  6440    {
  6441      stateMutability: 'view',
  6442      type: 'function',
  6443      inputs: [],
  6444      name: 'version',
  6445      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  6446    },
  6447  ] as const
  6448  
  6449  /**
  6450   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180)
  6451   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180)
  6452   */
  6453  export const optimistAllowlistAddress = {
  6454    10: '0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180',
  6455    420: '0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180',
  6456  } as const
  6457  
  6458  /**
  6459   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180)
  6460   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180)
  6461   */
  6462  export const optimistAllowlistConfig = {
  6463    address: optimistAllowlistAddress,
  6464    abi: optimistAllowlistABI,
  6465  } as const
  6466  
  6467  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6468  // OptimistInviter
  6469  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6470  
  6471  /**
  6472   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
  6473   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
  6474   */
  6475  export const optimistInviterABI = [
  6476    {
  6477      stateMutability: 'nonpayable',
  6478      type: 'constructor',
  6479      inputs: [
  6480        { name: '_inviteGranter', internalType: 'address', type: 'address' },
  6481        {
  6482          name: '_attestationStation',
  6483          internalType: 'contract AttestationStation',
  6484          type: 'address',
  6485        },
  6486      ],
  6487    },
  6488    {
  6489      type: 'event',
  6490      anonymous: false,
  6491      inputs: [
  6492        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  6493      ],
  6494      name: 'Initialized',
  6495    },
  6496    {
  6497      type: 'event',
  6498      anonymous: false,
  6499      inputs: [
  6500        {
  6501          name: 'issuer',
  6502          internalType: 'address',
  6503          type: 'address',
  6504          indexed: true,
  6505        },
  6506        {
  6507          name: 'claimer',
  6508          internalType: 'address',
  6509          type: 'address',
  6510          indexed: true,
  6511        },
  6512      ],
  6513      name: 'InviteClaimed',
  6514    },
  6515    {
  6516      stateMutability: 'view',
  6517      type: 'function',
  6518      inputs: [],
  6519      name: 'ATTESTATION_STATION',
  6520      outputs: [
  6521        {
  6522          name: '',
  6523          internalType: 'contract AttestationStation',
  6524          type: 'address',
  6525        },
  6526      ],
  6527    },
  6528    {
  6529      stateMutability: 'view',
  6530      type: 'function',
  6531      inputs: [],
  6532      name: 'CAN_INVITE_ATTESTATION_KEY',
  6533      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  6534    },
  6535    {
  6536      stateMutability: 'view',
  6537      type: 'function',
  6538      inputs: [],
  6539      name: 'CLAIMABLE_INVITE_TYPEHASH',
  6540      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  6541    },
  6542    {
  6543      stateMutability: 'view',
  6544      type: 'function',
  6545      inputs: [],
  6546      name: 'EIP712_VERSION',
  6547      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  6548    },
  6549    {
  6550      stateMutability: 'view',
  6551      type: 'function',
  6552      inputs: [],
  6553      name: 'INVITE_GRANTER',
  6554      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  6555    },
  6556    {
  6557      stateMutability: 'view',
  6558      type: 'function',
  6559      inputs: [],
  6560      name: 'MIN_COMMITMENT_PERIOD',
  6561      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  6562    },
  6563    {
  6564      stateMutability: 'nonpayable',
  6565      type: 'function',
  6566      inputs: [
  6567        { name: '_claimer', internalType: 'address', type: 'address' },
  6568        {
  6569          name: '_claimableInvite',
  6570          internalType: 'struct OptimistInviter.ClaimableInvite',
  6571          type: 'tuple',
  6572          components: [
  6573            { name: 'issuer', internalType: 'address', type: 'address' },
  6574            { name: 'nonce', internalType: 'bytes32', type: 'bytes32' },
  6575          ],
  6576        },
  6577        { name: '_signature', internalType: 'bytes', type: 'bytes' },
  6578      ],
  6579      name: 'claimInvite',
  6580      outputs: [],
  6581    },
  6582    {
  6583      stateMutability: 'nonpayable',
  6584      type: 'function',
  6585      inputs: [{ name: '_commitment', internalType: 'bytes32', type: 'bytes32' }],
  6586      name: 'commitInvite',
  6587      outputs: [],
  6588    },
  6589    {
  6590      stateMutability: 'view',
  6591      type: 'function',
  6592      inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  6593      name: 'commitmentTimestamps',
  6594      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  6595    },
  6596    {
  6597      stateMutability: 'nonpayable',
  6598      type: 'function',
  6599      inputs: [{ name: '_name', internalType: 'string', type: 'string' }],
  6600      name: 'initialize',
  6601      outputs: [],
  6602    },
  6603    {
  6604      stateMutability: 'view',
  6605      type: 'function',
  6606      inputs: [{ name: '', internalType: 'address', type: 'address' }],
  6607      name: 'inviteCounts',
  6608      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  6609    },
  6610    {
  6611      stateMutability: 'nonpayable',
  6612      type: 'function',
  6613      inputs: [
  6614        { name: '_accounts', internalType: 'address[]', type: 'address[]' },
  6615        { name: '_inviteCount', internalType: 'uint256', type: 'uint256' },
  6616      ],
  6617      name: 'setInviteCounts',
  6618      outputs: [],
  6619    },
  6620    {
  6621      stateMutability: 'view',
  6622      type: 'function',
  6623      inputs: [
  6624        { name: '', internalType: 'address', type: 'address' },
  6625        { name: '', internalType: 'bytes32', type: 'bytes32' },
  6626      ],
  6627      name: 'usedNonces',
  6628      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  6629    },
  6630    {
  6631      stateMutability: 'view',
  6632      type: 'function',
  6633      inputs: [],
  6634      name: 'version',
  6635      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  6636    },
  6637  ] as const
  6638  
  6639  /**
  6640   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
  6641   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
  6642   */
  6643  export const optimistInviterAddress = {
  6644    10: '0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929',
  6645    420: '0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929',
  6646  } as const
  6647  
  6648  /**
  6649   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
  6650   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
  6651   */
  6652  export const optimistInviterConfig = {
  6653    address: optimistInviterAddress,
  6654    abi: optimistInviterABI,
  6655  } as const
  6656  
  6657  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6658  // PortalSender
  6659  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6660  
  6661  /**
  6662   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210)
  6663   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4)
  6664   */
  6665  export const portalSenderABI = [
  6666    {
  6667      stateMutability: 'nonpayable',
  6668      type: 'constructor',
  6669      inputs: [
  6670        {
  6671          name: '_portal',
  6672          internalType: 'contract OptimismPortal',
  6673          type: 'address',
  6674        },
  6675      ],
  6676    },
  6677    {
  6678      stateMutability: 'view',
  6679      type: 'function',
  6680      inputs: [],
  6681      name: 'PORTAL',
  6682      outputs: [
  6683        { name: '', internalType: 'contract OptimismPortal', type: 'address' },
  6684      ],
  6685    },
  6686    {
  6687      stateMutability: 'nonpayable',
  6688      type: 'function',
  6689      inputs: [],
  6690      name: 'donate',
  6691      outputs: [],
  6692    },
  6693  ] as const
  6694  
  6695  /**
  6696   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210)
  6697   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4)
  6698   */
  6699  export const portalSenderAddress = {
  6700    1: '0x0A893d9576b9cFD9EF78595963dc973238E78210',
  6701    5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4',
  6702  } as const
  6703  
  6704  /**
  6705   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210)
  6706   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4)
  6707   */
  6708  export const portalSenderConfig = {
  6709    address: portalSenderAddress,
  6710    abi: portalSenderABI,
  6711  } as const
  6712  
  6713  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6714  // ProtocolVersions
  6715  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6716  
  6717  /**
  6718   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x0C24F5098774aA366827D667494e9F889f7cFc08)
  6719   */
  6720  export const protocolVersionsABI = [
  6721    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  6722    {
  6723      type: 'event',
  6724      anonymous: false,
  6725      inputs: [
  6726        {
  6727          name: 'version',
  6728          internalType: 'uint256',
  6729          type: 'uint256',
  6730          indexed: true,
  6731        },
  6732        {
  6733          name: 'updateType',
  6734          internalType: 'enum ProtocolVersions.UpdateType',
  6735          type: 'uint8',
  6736          indexed: true,
  6737        },
  6738        { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
  6739      ],
  6740      name: 'ConfigUpdate',
  6741    },
  6742    {
  6743      type: 'event',
  6744      anonymous: false,
  6745      inputs: [
  6746        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  6747      ],
  6748      name: 'Initialized',
  6749    },
  6750    {
  6751      type: 'event',
  6752      anonymous: false,
  6753      inputs: [
  6754        {
  6755          name: 'previousOwner',
  6756          internalType: 'address',
  6757          type: 'address',
  6758          indexed: true,
  6759        },
  6760        {
  6761          name: 'newOwner',
  6762          internalType: 'address',
  6763          type: 'address',
  6764          indexed: true,
  6765        },
  6766      ],
  6767      name: 'OwnershipTransferred',
  6768    },
  6769    {
  6770      stateMutability: 'view',
  6771      type: 'function',
  6772      inputs: [],
  6773      name: 'RECOMMENDED_SLOT',
  6774      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  6775    },
  6776    {
  6777      stateMutability: 'view',
  6778      type: 'function',
  6779      inputs: [],
  6780      name: 'REQUIRED_SLOT',
  6781      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  6782    },
  6783    {
  6784      stateMutability: 'nonpayable',
  6785      type: 'function',
  6786      inputs: [
  6787        { name: '_owner', internalType: 'address', type: 'address' },
  6788        { name: '_required', internalType: 'ProtocolVersion', type: 'uint256' },
  6789        {
  6790          name: '_recommended',
  6791          internalType: 'ProtocolVersion',
  6792          type: 'uint256',
  6793        },
  6794      ],
  6795      name: 'initialize',
  6796      outputs: [],
  6797    },
  6798    {
  6799      stateMutability: 'view',
  6800      type: 'function',
  6801      inputs: [],
  6802      name: 'owner',
  6803      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  6804    },
  6805    {
  6806      stateMutability: 'view',
  6807      type: 'function',
  6808      inputs: [],
  6809      name: 'recommended',
  6810      outputs: [
  6811        { name: 'out_', internalType: 'ProtocolVersion', type: 'uint256' },
  6812      ],
  6813    },
  6814    {
  6815      stateMutability: 'nonpayable',
  6816      type: 'function',
  6817      inputs: [],
  6818      name: 'renounceOwnership',
  6819      outputs: [],
  6820    },
  6821    {
  6822      stateMutability: 'view',
  6823      type: 'function',
  6824      inputs: [],
  6825      name: 'required',
  6826      outputs: [
  6827        { name: 'out_', internalType: 'ProtocolVersion', type: 'uint256' },
  6828      ],
  6829    },
  6830    {
  6831      stateMutability: 'nonpayable',
  6832      type: 'function',
  6833      inputs: [
  6834        {
  6835          name: '_recommended',
  6836          internalType: 'ProtocolVersion',
  6837          type: 'uint256',
  6838        },
  6839      ],
  6840      name: 'setRecommended',
  6841      outputs: [],
  6842    },
  6843    {
  6844      stateMutability: 'nonpayable',
  6845      type: 'function',
  6846      inputs: [
  6847        { name: '_required', internalType: 'ProtocolVersion', type: 'uint256' },
  6848      ],
  6849      name: 'setRequired',
  6850      outputs: [],
  6851    },
  6852    {
  6853      stateMutability: 'nonpayable',
  6854      type: 'function',
  6855      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
  6856      name: 'transferOwnership',
  6857      outputs: [],
  6858    },
  6859    {
  6860      stateMutability: 'view',
  6861      type: 'function',
  6862      inputs: [],
  6863      name: 'version',
  6864      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  6865    },
  6866  ] as const
  6867  
  6868  /**
  6869   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x0C24F5098774aA366827D667494e9F889f7cFc08)
  6870   */
  6871  export const protocolVersionsAddress = {
  6872    5: '0x0C24F5098774aA366827D667494e9F889f7cFc08',
  6873  } as const
  6874  
  6875  /**
  6876   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x0C24F5098774aA366827D667494e9F889f7cFc08)
  6877   */
  6878  export const protocolVersionsConfig = {
  6879    address: protocolVersionsAddress,
  6880    abi: protocolVersionsABI,
  6881  } as const
  6882  
  6883  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6884  // ProxyAdmin
  6885  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6886  
  6887  /**
  6888   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018)
  6889   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018)
  6890   */
  6891  export const proxyAdminABI = [
  6892    {
  6893      stateMutability: 'nonpayable',
  6894      type: 'constructor',
  6895      inputs: [{ name: '_owner', internalType: 'address', type: 'address' }],
  6896    },
  6897    {
  6898      type: 'event',
  6899      anonymous: false,
  6900      inputs: [
  6901        {
  6902          name: 'previousOwner',
  6903          internalType: 'address',
  6904          type: 'address',
  6905          indexed: true,
  6906        },
  6907        {
  6908          name: 'newOwner',
  6909          internalType: 'address',
  6910          type: 'address',
  6911          indexed: true,
  6912        },
  6913      ],
  6914      name: 'OwnershipTransferred',
  6915    },
  6916    {
  6917      stateMutability: 'view',
  6918      type: 'function',
  6919      inputs: [],
  6920      name: 'addressManager',
  6921      outputs: [
  6922        { name: '', internalType: 'contract AddressManager', type: 'address' },
  6923      ],
  6924    },
  6925    {
  6926      stateMutability: 'nonpayable',
  6927      type: 'function',
  6928      inputs: [
  6929        { name: '_proxy', internalType: 'address payable', type: 'address' },
  6930        { name: '_newAdmin', internalType: 'address', type: 'address' },
  6931      ],
  6932      name: 'changeProxyAdmin',
  6933      outputs: [],
  6934    },
  6935    {
  6936      stateMutability: 'view',
  6937      type: 'function',
  6938      inputs: [
  6939        { name: '_proxy', internalType: 'address payable', type: 'address' },
  6940      ],
  6941      name: 'getProxyAdmin',
  6942      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  6943    },
  6944    {
  6945      stateMutability: 'view',
  6946      type: 'function',
  6947      inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }],
  6948      name: 'getProxyImplementation',
  6949      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  6950    },
  6951    {
  6952      stateMutability: 'view',
  6953      type: 'function',
  6954      inputs: [{ name: '', internalType: 'address', type: 'address' }],
  6955      name: 'implementationName',
  6956      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  6957    },
  6958    {
  6959      stateMutability: 'view',
  6960      type: 'function',
  6961      inputs: [],
  6962      name: 'isUpgrading',
  6963      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  6964    },
  6965    {
  6966      stateMutability: 'view',
  6967      type: 'function',
  6968      inputs: [],
  6969      name: 'owner',
  6970      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  6971    },
  6972    {
  6973      stateMutability: 'view',
  6974      type: 'function',
  6975      inputs: [{ name: '', internalType: 'address', type: 'address' }],
  6976      name: 'proxyType',
  6977      outputs: [
  6978        { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' },
  6979      ],
  6980    },
  6981    {
  6982      stateMutability: 'nonpayable',
  6983      type: 'function',
  6984      inputs: [],
  6985      name: 'renounceOwnership',
  6986      outputs: [],
  6987    },
  6988    {
  6989      stateMutability: 'nonpayable',
  6990      type: 'function',
  6991      inputs: [
  6992        { name: '_name', internalType: 'string', type: 'string' },
  6993        { name: '_address', internalType: 'address', type: 'address' },
  6994      ],
  6995      name: 'setAddress',
  6996      outputs: [],
  6997    },
  6998    {
  6999      stateMutability: 'nonpayable',
  7000      type: 'function',
  7001      inputs: [
  7002        {
  7003          name: '_address',
  7004          internalType: 'contract AddressManager',
  7005          type: 'address',
  7006        },
  7007      ],
  7008      name: 'setAddressManager',
  7009      outputs: [],
  7010    },
  7011    {
  7012      stateMutability: 'nonpayable',
  7013      type: 'function',
  7014      inputs: [
  7015        { name: '_address', internalType: 'address', type: 'address' },
  7016        { name: '_name', internalType: 'string', type: 'string' },
  7017      ],
  7018      name: 'setImplementationName',
  7019      outputs: [],
  7020    },
  7021    {
  7022      stateMutability: 'nonpayable',
  7023      type: 'function',
  7024      inputs: [
  7025        { name: '_address', internalType: 'address', type: 'address' },
  7026        {
  7027          name: '_type',
  7028          internalType: 'enum ProxyAdmin.ProxyType',
  7029          type: 'uint8',
  7030        },
  7031      ],
  7032      name: 'setProxyType',
  7033      outputs: [],
  7034    },
  7035    {
  7036      stateMutability: 'nonpayable',
  7037      type: 'function',
  7038      inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }],
  7039      name: 'setUpgrading',
  7040      outputs: [],
  7041    },
  7042    {
  7043      stateMutability: 'nonpayable',
  7044      type: 'function',
  7045      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
  7046      name: 'transferOwnership',
  7047      outputs: [],
  7048    },
  7049    {
  7050      stateMutability: 'nonpayable',
  7051      type: 'function',
  7052      inputs: [
  7053        { name: '_proxy', internalType: 'address payable', type: 'address' },
  7054        { name: '_implementation', internalType: 'address', type: 'address' },
  7055      ],
  7056      name: 'upgrade',
  7057      outputs: [],
  7058    },
  7059    {
  7060      stateMutability: 'payable',
  7061      type: 'function',
  7062      inputs: [
  7063        { name: '_proxy', internalType: 'address payable', type: 'address' },
  7064        { name: '_implementation', internalType: 'address', type: 'address' },
  7065        { name: '_data', internalType: 'bytes', type: 'bytes' },
  7066      ],
  7067      name: 'upgradeAndCall',
  7068      outputs: [],
  7069    },
  7070  ] as const
  7071  
  7072  /**
  7073   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018)
  7074   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018)
  7075   */
  7076  export const proxyAdminAddress = {
  7077    1: '0x4200000000000000000000000000000000000018',
  7078    5: '0x4200000000000000000000000000000000000018',
  7079  } as const
  7080  
  7081  /**
  7082   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018)
  7083   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018)
  7084   */
  7085  export const proxyAdminConfig = {
  7086    address: proxyAdminAddress,
  7087    abi: proxyAdminABI,
  7088  } as const
  7089  
  7090  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7091  // SchemaRegistry
  7092  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7093  
  7094  /**
  7095   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x6232208d66bAc2305b46b4Cb6BCB3857B298DF13)
  7096   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2545fa928d5d278cA75Fd47306e4a89096ff6403)
  7097   */
  7098  export const schemaRegistryABI = [
  7099    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  7100    { type: 'error', inputs: [], name: 'AlreadyExists' },
  7101    {
  7102      type: 'event',
  7103      anonymous: false,
  7104      inputs: [
  7105        { name: 'uid', internalType: 'bytes32', type: 'bytes32', indexed: true },
  7106        {
  7107          name: 'registerer',
  7108          internalType: 'address',
  7109          type: 'address',
  7110          indexed: false,
  7111        },
  7112      ],
  7113      name: 'Registered',
  7114    },
  7115    {
  7116      stateMutability: 'view',
  7117      type: 'function',
  7118      inputs: [{ name: 'uid', internalType: 'bytes32', type: 'bytes32' }],
  7119      name: 'getSchema',
  7120      outputs: [
  7121        {
  7122          name: '',
  7123          internalType: 'struct SchemaRecord',
  7124          type: 'tuple',
  7125          components: [
  7126            { name: 'uid', internalType: 'bytes32', type: 'bytes32' },
  7127            {
  7128              name: 'resolver',
  7129              internalType: 'contract ISchemaResolver',
  7130              type: 'address',
  7131            },
  7132            { name: 'revocable', internalType: 'bool', type: 'bool' },
  7133            { name: 'schema', internalType: 'string', type: 'string' },
  7134          ],
  7135        },
  7136      ],
  7137    },
  7138    {
  7139      stateMutability: 'nonpayable',
  7140      type: 'function',
  7141      inputs: [
  7142        { name: 'schema', internalType: 'string', type: 'string' },
  7143        {
  7144          name: 'resolver',
  7145          internalType: 'contract ISchemaResolver',
  7146          type: 'address',
  7147        },
  7148        { name: 'revocable', internalType: 'bool', type: 'bool' },
  7149      ],
  7150      name: 'register',
  7151      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  7152    },
  7153    {
  7154      stateMutability: 'view',
  7155      type: 'function',
  7156      inputs: [],
  7157      name: 'version',
  7158      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  7159    },
  7160  ] as const
  7161  
  7162  /**
  7163   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x6232208d66bAc2305b46b4Cb6BCB3857B298DF13)
  7164   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2545fa928d5d278cA75Fd47306e4a89096ff6403)
  7165   */
  7166  export const schemaRegistryAddress = {
  7167    10: '0x6232208d66bAc2305b46b4Cb6BCB3857B298DF13',
  7168    420: '0x2545fa928d5d278cA75Fd47306e4a89096ff6403',
  7169  } as const
  7170  
  7171  /**
  7172   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x6232208d66bAc2305b46b4Cb6BCB3857B298DF13)
  7173   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2545fa928d5d278cA75Fd47306e4a89096ff6403)
  7174   */
  7175  export const schemaRegistryConfig = {
  7176    address: schemaRegistryAddress,
  7177    abi: schemaRegistryABI,
  7178  } as const
  7179  
  7180  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7181  // SequencerFeeVault
  7182  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7183  
  7184  /**
  7185   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011)
  7186   */
  7187  export const sequencerFeeVaultABI = [
  7188    {
  7189      stateMutability: 'nonpayable',
  7190      type: 'constructor',
  7191      inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }],
  7192    },
  7193    {
  7194      type: 'event',
  7195      anonymous: false,
  7196      inputs: [
  7197        {
  7198          name: 'value',
  7199          internalType: 'uint256',
  7200          type: 'uint256',
  7201          indexed: false,
  7202        },
  7203        { name: 'to', internalType: 'address', type: 'address', indexed: false },
  7204        {
  7205          name: 'from',
  7206          internalType: 'address',
  7207          type: 'address',
  7208          indexed: false,
  7209        },
  7210      ],
  7211      name: 'Withdrawal',
  7212    },
  7213    {
  7214      stateMutability: 'view',
  7215      type: 'function',
  7216      inputs: [],
  7217      name: 'MIN_WITHDRAWAL_AMOUNT',
  7218      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  7219    },
  7220    {
  7221      stateMutability: 'view',
  7222      type: 'function',
  7223      inputs: [],
  7224      name: 'RECIPIENT',
  7225      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  7226    },
  7227    {
  7228      stateMutability: 'view',
  7229      type: 'function',
  7230      inputs: [],
  7231      name: 'l1FeeWallet',
  7232      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  7233    },
  7234    {
  7235      stateMutability: 'view',
  7236      type: 'function',
  7237      inputs: [],
  7238      name: 'totalProcessed',
  7239      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  7240    },
  7241    {
  7242      stateMutability: 'view',
  7243      type: 'function',
  7244      inputs: [],
  7245      name: 'version',
  7246      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  7247    },
  7248    {
  7249      stateMutability: 'nonpayable',
  7250      type: 'function',
  7251      inputs: [],
  7252      name: 'withdraw',
  7253      outputs: [],
  7254    },
  7255    { stateMutability: 'payable', type: 'receive' },
  7256  ] as const
  7257  
  7258  /**
  7259   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011)
  7260   */
  7261  export const sequencerFeeVaultAddress = {
  7262    420: '0x4200000000000000000000000000000000000011',
  7263  } as const
  7264  
  7265  /**
  7266   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011)
  7267   */
  7268  export const sequencerFeeVaultConfig = {
  7269    address: sequencerFeeVaultAddress,
  7270    abi: sequencerFeeVaultABI,
  7271  } as const
  7272  
  7273  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7274  // SystemConfig
  7275  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7276  
  7277  /**
  7278   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290)
  7279   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60)
  7280   */
  7281  export const systemConfigABI = [
  7282    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  7283    {
  7284      type: 'event',
  7285      anonymous: false,
  7286      inputs: [
  7287        {
  7288          name: 'version',
  7289          internalType: 'uint256',
  7290          type: 'uint256',
  7291          indexed: true,
  7292        },
  7293        {
  7294          name: 'updateType',
  7295          internalType: 'enum SystemConfig.UpdateType',
  7296          type: 'uint8',
  7297          indexed: true,
  7298        },
  7299        { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
  7300      ],
  7301      name: 'ConfigUpdate',
  7302    },
  7303    {
  7304      type: 'event',
  7305      anonymous: false,
  7306      inputs: [
  7307        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  7308      ],
  7309      name: 'Initialized',
  7310    },
  7311    {
  7312      type: 'event',
  7313      anonymous: false,
  7314      inputs: [
  7315        {
  7316          name: 'previousOwner',
  7317          internalType: 'address',
  7318          type: 'address',
  7319          indexed: true,
  7320        },
  7321        {
  7322          name: 'newOwner',
  7323          internalType: 'address',
  7324          type: 'address',
  7325          indexed: true,
  7326        },
  7327      ],
  7328      name: 'OwnershipTransferred',
  7329    },
  7330    {
  7331      stateMutability: 'view',
  7332      type: 'function',
  7333      inputs: [],
  7334      name: 'BATCH_INBOX_SLOT',
  7335      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  7336    },
  7337    {
  7338      stateMutability: 'view',
  7339      type: 'function',
  7340      inputs: [],
  7341      name: 'L1_CROSS_DOMAIN_MESSENGER_SLOT',
  7342      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  7343    },
  7344    {
  7345      stateMutability: 'view',
  7346      type: 'function',
  7347      inputs: [],
  7348      name: 'L1_ERC_721_BRIDGE_SLOT',
  7349      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  7350    },
  7351    {
  7352      stateMutability: 'view',
  7353      type: 'function',
  7354      inputs: [],
  7355      name: 'L1_STANDARD_BRIDGE_SLOT',
  7356      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  7357    },
  7358    {
  7359      stateMutability: 'view',
  7360      type: 'function',
  7361      inputs: [],
  7362      name: 'L2_OUTPUT_ORACLE_SLOT',
  7363      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  7364    },
  7365    {
  7366      stateMutability: 'view',
  7367      type: 'function',
  7368      inputs: [],
  7369      name: 'OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT',
  7370      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  7371    },
  7372    {
  7373      stateMutability: 'view',
  7374      type: 'function',
  7375      inputs: [],
  7376      name: 'OPTIMISM_PORTAL_SLOT',
  7377      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  7378    },
  7379    {
  7380      stateMutability: 'view',
  7381      type: 'function',
  7382      inputs: [],
  7383      name: 'UNSAFE_BLOCK_SIGNER_SLOT',
  7384      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  7385    },
  7386    {
  7387      stateMutability: 'view',
  7388      type: 'function',
  7389      inputs: [],
  7390      name: 'batchInbox',
  7391      outputs: [{ name: 'addr_', internalType: 'address', type: 'address' }],
  7392    },
  7393    {
  7394      stateMutability: 'view',
  7395      type: 'function',
  7396      inputs: [],
  7397      name: 'batcherHash',
  7398      outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
  7399    },
  7400    {
  7401      stateMutability: 'view',
  7402      type: 'function',
  7403      inputs: [],
  7404      name: 'gasLimit',
  7405      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  7406    },
  7407    {
  7408      stateMutability: 'nonpayable',
  7409      type: 'function',
  7410      inputs: [
  7411        { name: '_owner', internalType: 'address', type: 'address' },
  7412        { name: '_overhead', internalType: 'uint256', type: 'uint256' },
  7413        { name: '_scalar', internalType: 'uint256', type: 'uint256' },
  7414        { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' },
  7415        { name: '_gasLimit', internalType: 'uint64', type: 'uint64' },
  7416        { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' },
  7417        {
  7418          name: '_config',
  7419          internalType: 'struct ResourceMetering.ResourceConfig',
  7420          type: 'tuple',
  7421          components: [
  7422            { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' },
  7423            {
  7424              name: 'elasticityMultiplier',
  7425              internalType: 'uint8',
  7426              type: 'uint8',
  7427            },
  7428            {
  7429              name: 'baseFeeMaxChangeDenominator',
  7430              internalType: 'uint8',
  7431              type: 'uint8',
  7432            },
  7433            { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' },
  7434            { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' },
  7435            { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' },
  7436          ],
  7437        },
  7438        { name: '_startBlock', internalType: 'uint256', type: 'uint256' },
  7439        { name: '_batchInbox', internalType: 'address', type: 'address' },
  7440        {
  7441          name: '_addresses',
  7442          internalType: 'struct SystemConfig.Addresses',
  7443          type: 'tuple',
  7444          components: [
  7445            {
  7446              name: 'l1CrossDomainMessenger',
  7447              internalType: 'address',
  7448              type: 'address',
  7449            },
  7450            { name: 'l1ERC721Bridge', internalType: 'address', type: 'address' },
  7451            {
  7452              name: 'l1StandardBridge',
  7453              internalType: 'address',
  7454              type: 'address',
  7455            },
  7456            { name: 'l2OutputOracle', internalType: 'address', type: 'address' },
  7457            { name: 'optimismPortal', internalType: 'address', type: 'address' },
  7458            {
  7459              name: 'optimismMintableERC20Factory',
  7460              internalType: 'address',
  7461              type: 'address',
  7462            },
  7463          ],
  7464        },
  7465      ],
  7466      name: 'initialize',
  7467      outputs: [],
  7468    },
  7469    {
  7470      stateMutability: 'view',
  7471      type: 'function',
  7472      inputs: [],
  7473      name: 'l1CrossDomainMessenger',
  7474      outputs: [{ name: 'addr_', internalType: 'address', type: 'address' }],
  7475    },
  7476    {
  7477      stateMutability: 'view',
  7478      type: 'function',
  7479      inputs: [],
  7480      name: 'l1ERC721Bridge',
  7481      outputs: [{ name: 'addr_', internalType: 'address', type: 'address' }],
  7482    },
  7483    {
  7484      stateMutability: 'view',
  7485      type: 'function',
  7486      inputs: [],
  7487      name: 'l1StandardBridge',
  7488      outputs: [{ name: 'addr_', internalType: 'address', type: 'address' }],
  7489    },
  7490    {
  7491      stateMutability: 'view',
  7492      type: 'function',
  7493      inputs: [],
  7494      name: 'l2OutputOracle',
  7495      outputs: [{ name: 'addr_', internalType: 'address', type: 'address' }],
  7496    },
  7497    {
  7498      stateMutability: 'view',
  7499      type: 'function',
  7500      inputs: [],
  7501      name: 'minimumGasLimit',
  7502      outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }],
  7503    },
  7504    {
  7505      stateMutability: 'view',
  7506      type: 'function',
  7507      inputs: [],
  7508      name: 'optimismMintableERC20Factory',
  7509      outputs: [{ name: 'addr_', internalType: 'address', type: 'address' }],
  7510    },
  7511    {
  7512      stateMutability: 'view',
  7513      type: 'function',
  7514      inputs: [],
  7515      name: 'optimismPortal',
  7516      outputs: [{ name: 'addr_', internalType: 'address', type: 'address' }],
  7517    },
  7518    {
  7519      stateMutability: 'view',
  7520      type: 'function',
  7521      inputs: [],
  7522      name: 'overhead',
  7523      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  7524    },
  7525    {
  7526      stateMutability: 'view',
  7527      type: 'function',
  7528      inputs: [],
  7529      name: 'owner',
  7530      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  7531    },
  7532    {
  7533      stateMutability: 'nonpayable',
  7534      type: 'function',
  7535      inputs: [],
  7536      name: 'renounceOwnership',
  7537      outputs: [],
  7538    },
  7539    {
  7540      stateMutability: 'view',
  7541      type: 'function',
  7542      inputs: [],
  7543      name: 'resourceConfig',
  7544      outputs: [
  7545        {
  7546          name: '',
  7547          internalType: 'struct ResourceMetering.ResourceConfig',
  7548          type: 'tuple',
  7549          components: [
  7550            { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' },
  7551            {
  7552              name: 'elasticityMultiplier',
  7553              internalType: 'uint8',
  7554              type: 'uint8',
  7555            },
  7556            {
  7557              name: 'baseFeeMaxChangeDenominator',
  7558              internalType: 'uint8',
  7559              type: 'uint8',
  7560            },
  7561            { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' },
  7562            { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' },
  7563            { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' },
  7564          ],
  7565        },
  7566      ],
  7567    },
  7568    {
  7569      stateMutability: 'view',
  7570      type: 'function',
  7571      inputs: [],
  7572      name: 'scalar',
  7573      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  7574    },
  7575    {
  7576      stateMutability: 'nonpayable',
  7577      type: 'function',
  7578      inputs: [
  7579        { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' },
  7580      ],
  7581      name: 'setBatcherHash',
  7582      outputs: [],
  7583    },
  7584    {
  7585      stateMutability: 'nonpayable',
  7586      type: 'function',
  7587      inputs: [
  7588        { name: '_overhead', internalType: 'uint256', type: 'uint256' },
  7589        { name: '_scalar', internalType: 'uint256', type: 'uint256' },
  7590      ],
  7591      name: 'setGasConfig',
  7592      outputs: [],
  7593    },
  7594    {
  7595      stateMutability: 'nonpayable',
  7596      type: 'function',
  7597      inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }],
  7598      name: 'setGasLimit',
  7599      outputs: [],
  7600    },
  7601    {
  7602      stateMutability: 'nonpayable',
  7603      type: 'function',
  7604      inputs: [
  7605        {
  7606          name: '_config',
  7607          internalType: 'struct ResourceMetering.ResourceConfig',
  7608          type: 'tuple',
  7609          components: [
  7610            { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' },
  7611            {
  7612              name: 'elasticityMultiplier',
  7613              internalType: 'uint8',
  7614              type: 'uint8',
  7615            },
  7616            {
  7617              name: 'baseFeeMaxChangeDenominator',
  7618              internalType: 'uint8',
  7619              type: 'uint8',
  7620            },
  7621            { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' },
  7622            { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' },
  7623            { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' },
  7624          ],
  7625        },
  7626      ],
  7627      name: 'setResourceConfig',
  7628      outputs: [],
  7629    },
  7630    {
  7631      stateMutability: 'nonpayable',
  7632      type: 'function',
  7633      inputs: [
  7634        { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' },
  7635      ],
  7636      name: 'setUnsafeBlockSigner',
  7637      outputs: [],
  7638    },
  7639    {
  7640      stateMutability: 'view',
  7641      type: 'function',
  7642      inputs: [],
  7643      name: 'startBlock',
  7644      outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
  7645    },
  7646    {
  7647      stateMutability: 'nonpayable',
  7648      type: 'function',
  7649      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
  7650      name: 'transferOwnership',
  7651      outputs: [],
  7652    },
  7653    {
  7654      stateMutability: 'view',
  7655      type: 'function',
  7656      inputs: [],
  7657      name: 'unsafeBlockSigner',
  7658      outputs: [{ name: 'addr_', internalType: 'address', type: 'address' }],
  7659    },
  7660    {
  7661      stateMutability: 'view',
  7662      type: 'function',
  7663      inputs: [],
  7664      name: 'version',
  7665      outputs: [{ name: '', internalType: 'string', type: 'string' }],
  7666    },
  7667  ] as const
  7668  
  7669  /**
  7670   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290)
  7671   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60)
  7672   */
  7673  export const systemConfigAddress = {
  7674    1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290',
  7675    5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60',
  7676  } as const
  7677  
  7678  /**
  7679   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290)
  7680   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60)
  7681   */
  7682  export const systemConfigConfig = {
  7683    address: systemConfigAddress,
  7684    abi: systemConfigABI,
  7685  } as const
  7686  
  7687  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7688  // SystemDictator
  7689  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7690  
  7691  /**
  7692   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB)
  7693   */
  7694  export const systemDictatorABI = [
  7695    { stateMutability: 'nonpayable', type: 'constructor', inputs: [] },
  7696    {
  7697      type: 'event',
  7698      anonymous: false,
  7699      inputs: [
  7700        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  7701      ],
  7702      name: 'Initialized',
  7703    },
  7704    {
  7705      type: 'event',
  7706      anonymous: false,
  7707      inputs: [
  7708        {
  7709          name: 'previousOwner',
  7710          internalType: 'address',
  7711          type: 'address',
  7712          indexed: true,
  7713        },
  7714        {
  7715          name: 'newOwner',
  7716          internalType: 'address',
  7717          type: 'address',
  7718          indexed: true,
  7719        },
  7720      ],
  7721      name: 'OwnershipTransferred',
  7722    },
  7723    {
  7724      stateMutability: 'view',
  7725      type: 'function',
  7726      inputs: [],
  7727      name: 'EXIT_1_NO_RETURN_STEP',
  7728      outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
  7729    },
  7730    {
  7731      stateMutability: 'view',
  7732      type: 'function',
  7733      inputs: [],
  7734      name: 'PROXY_TRANSFER_STEP',
  7735      outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
  7736    },
  7737    {
  7738      stateMutability: 'view',
  7739      type: 'function',
  7740      inputs: [],
  7741      name: 'config',
  7742      outputs: [
  7743        {
  7744          name: 'globalConfig',
  7745          internalType: 'struct SystemDictator.GlobalConfig',
  7746          type: 'tuple',
  7747          components: [
  7748            {
  7749              name: 'addressManager',
  7750              internalType: 'contract AddressManager',
  7751              type: 'address',
  7752            },
  7753            {
  7754              name: 'proxyAdmin',
  7755              internalType: 'contract ProxyAdmin',
  7756              type: 'address',
  7757            },
  7758            { name: 'controller', internalType: 'address', type: 'address' },
  7759            { name: 'finalOwner', internalType: 'address', type: 'address' },
  7760          ],
  7761        },
  7762        {
  7763          name: 'proxyAddressConfig',
  7764          internalType: 'struct SystemDictator.ProxyAddressConfig',
  7765          type: 'tuple',
  7766          components: [
  7767            {
  7768              name: 'l2OutputOracleProxy',
  7769              internalType: 'address',
  7770              type: 'address',
  7771            },
  7772            {
  7773              name: 'optimismPortalProxy',
  7774              internalType: 'address',
  7775              type: 'address',
  7776            },
  7777            {
  7778              name: 'l1CrossDomainMessengerProxy',
  7779              internalType: 'address',
  7780              type: 'address',
  7781            },
  7782            {
  7783              name: 'l1StandardBridgeProxy',
  7784              internalType: 'address',
  7785              type: 'address',
  7786            },
  7787            {
  7788              name: 'optimismMintableERC20FactoryProxy',
  7789              internalType: 'address',
  7790              type: 'address',
  7791            },
  7792            {
  7793              name: 'l1ERC721BridgeProxy',
  7794              internalType: 'address',
  7795              type: 'address',
  7796            },
  7797            {
  7798              name: 'systemConfigProxy',
  7799              internalType: 'address',
  7800              type: 'address',
  7801            },
  7802          ],
  7803        },
  7804        {
  7805          name: 'implementationAddressConfig',
  7806          internalType: 'struct SystemDictator.ImplementationAddressConfig',
  7807          type: 'tuple',
  7808          components: [
  7809            {
  7810              name: 'l2OutputOracleImpl',
  7811              internalType: 'contract L2OutputOracle',
  7812              type: 'address',
  7813            },
  7814            {
  7815              name: 'optimismPortalImpl',
  7816              internalType: 'contract OptimismPortal',
  7817              type: 'address',
  7818            },
  7819            {
  7820              name: 'l1CrossDomainMessengerImpl',
  7821              internalType: 'contract L1CrossDomainMessenger',
  7822              type: 'address',
  7823            },
  7824            {
  7825              name: 'l1StandardBridgeImpl',
  7826              internalType: 'contract L1StandardBridge',
  7827              type: 'address',
  7828            },
  7829            {
  7830              name: 'optimismMintableERC20FactoryImpl',
  7831              internalType: 'contract OptimismMintableERC20Factory',
  7832              type: 'address',
  7833            },
  7834            {
  7835              name: 'l1ERC721BridgeImpl',
  7836              internalType: 'contract L1ERC721Bridge',
  7837              type: 'address',
  7838            },
  7839            {
  7840              name: 'portalSenderImpl',
  7841              internalType: 'contract PortalSender',
  7842              type: 'address',
  7843            },
  7844            {
  7845              name: 'systemConfigImpl',
  7846              internalType: 'contract SystemConfig',
  7847              type: 'address',
  7848            },
  7849          ],
  7850        },
  7851        {
  7852          name: 'systemConfigConfig',
  7853          internalType: 'struct SystemDictator.SystemConfigConfig',
  7854          type: 'tuple',
  7855          components: [
  7856            { name: 'owner', internalType: 'address', type: 'address' },
  7857            { name: 'overhead', internalType: 'uint256', type: 'uint256' },
  7858            { name: 'scalar', internalType: 'uint256', type: 'uint256' },
  7859            { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' },
  7860            { name: 'gasLimit', internalType: 'uint64', type: 'uint64' },
  7861            {
  7862              name: 'unsafeBlockSigner',
  7863              internalType: 'address',
  7864              type: 'address',
  7865            },
  7866            {
  7867              name: 'resourceConfig',
  7868              internalType: 'struct ResourceMetering.ResourceConfig',
  7869              type: 'tuple',
  7870              components: [
  7871                {
  7872                  name: 'maxResourceLimit',
  7873                  internalType: 'uint32',
  7874                  type: 'uint32',
  7875                },
  7876                {
  7877                  name: 'elasticityMultiplier',
  7878                  internalType: 'uint8',
  7879                  type: 'uint8',
  7880                },
  7881                {
  7882                  name: 'baseFeeMaxChangeDenominator',
  7883                  internalType: 'uint8',
  7884                  type: 'uint8',
  7885                },
  7886                {
  7887                  name: 'minimumBaseFee',
  7888                  internalType: 'uint32',
  7889                  type: 'uint32',
  7890                },
  7891                {
  7892                  name: 'systemTxMaxGas',
  7893                  internalType: 'uint32',
  7894                  type: 'uint32',
  7895                },
  7896                {
  7897                  name: 'maximumBaseFee',
  7898                  internalType: 'uint128',
  7899                  type: 'uint128',
  7900                },
  7901              ],
  7902            },
  7903          ],
  7904        },
  7905      ],
  7906    },
  7907    {
  7908      stateMutability: 'view',
  7909      type: 'function',
  7910      inputs: [],
  7911      name: 'currentStep',
  7912      outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
  7913    },
  7914    {
  7915      stateMutability: 'view',
  7916      type: 'function',
  7917      inputs: [],
  7918      name: 'dynamicConfigSet',
  7919      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  7920    },
  7921    {
  7922      stateMutability: 'nonpayable',
  7923      type: 'function',
  7924      inputs: [],
  7925      name: 'exit1',
  7926      outputs: [],
  7927    },
  7928    {
  7929      stateMutability: 'view',
  7930      type: 'function',
  7931      inputs: [],
  7932      name: 'exited',
  7933      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  7934    },
  7935    {
  7936      stateMutability: 'nonpayable',
  7937      type: 'function',
  7938      inputs: [],
  7939      name: 'finalize',
  7940      outputs: [],
  7941    },
  7942    {
  7943      stateMutability: 'view',
  7944      type: 'function',
  7945      inputs: [],
  7946      name: 'finalized',
  7947      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  7948    },
  7949    {
  7950      stateMutability: 'nonpayable',
  7951      type: 'function',
  7952      inputs: [
  7953        {
  7954          name: '_config',
  7955          internalType: 'struct SystemDictator.DeployConfig',
  7956          type: 'tuple',
  7957          components: [
  7958            {
  7959              name: 'globalConfig',
  7960              internalType: 'struct SystemDictator.GlobalConfig',
  7961              type: 'tuple',
  7962              components: [
  7963                {
  7964                  name: 'addressManager',
  7965                  internalType: 'contract AddressManager',
  7966                  type: 'address',
  7967                },
  7968                {
  7969                  name: 'proxyAdmin',
  7970                  internalType: 'contract ProxyAdmin',
  7971                  type: 'address',
  7972                },
  7973                { name: 'controller', internalType: 'address', type: 'address' },
  7974                { name: 'finalOwner', internalType: 'address', type: 'address' },
  7975              ],
  7976            },
  7977            {
  7978              name: 'proxyAddressConfig',
  7979              internalType: 'struct SystemDictator.ProxyAddressConfig',
  7980              type: 'tuple',
  7981              components: [
  7982                {
  7983                  name: 'l2OutputOracleProxy',
  7984                  internalType: 'address',
  7985                  type: 'address',
  7986                },
  7987                {
  7988                  name: 'optimismPortalProxy',
  7989                  internalType: 'address',
  7990                  type: 'address',
  7991                },
  7992                {
  7993                  name: 'l1CrossDomainMessengerProxy',
  7994                  internalType: 'address',
  7995                  type: 'address',
  7996                },
  7997                {
  7998                  name: 'l1StandardBridgeProxy',
  7999                  internalType: 'address',
  8000                  type: 'address',
  8001                },
  8002                {
  8003                  name: 'optimismMintableERC20FactoryProxy',
  8004                  internalType: 'address',
  8005                  type: 'address',
  8006                },
  8007                {
  8008                  name: 'l1ERC721BridgeProxy',
  8009                  internalType: 'address',
  8010                  type: 'address',
  8011                },
  8012                {
  8013                  name: 'systemConfigProxy',
  8014                  internalType: 'address',
  8015                  type: 'address',
  8016                },
  8017              ],
  8018            },
  8019            {
  8020              name: 'implementationAddressConfig',
  8021              internalType: 'struct SystemDictator.ImplementationAddressConfig',
  8022              type: 'tuple',
  8023              components: [
  8024                {
  8025                  name: 'l2OutputOracleImpl',
  8026                  internalType: 'contract L2OutputOracle',
  8027                  type: 'address',
  8028                },
  8029                {
  8030                  name: 'optimismPortalImpl',
  8031                  internalType: 'contract OptimismPortal',
  8032                  type: 'address',
  8033                },
  8034                {
  8035                  name: 'l1CrossDomainMessengerImpl',
  8036                  internalType: 'contract L1CrossDomainMessenger',
  8037                  type: 'address',
  8038                },
  8039                {
  8040                  name: 'l1StandardBridgeImpl',
  8041                  internalType: 'contract L1StandardBridge',
  8042                  type: 'address',
  8043                },
  8044                {
  8045                  name: 'optimismMintableERC20FactoryImpl',
  8046                  internalType: 'contract OptimismMintableERC20Factory',
  8047                  type: 'address',
  8048                },
  8049                {
  8050                  name: 'l1ERC721BridgeImpl',
  8051                  internalType: 'contract L1ERC721Bridge',
  8052                  type: 'address',
  8053                },
  8054                {
  8055                  name: 'portalSenderImpl',
  8056                  internalType: 'contract PortalSender',
  8057                  type: 'address',
  8058                },
  8059                {
  8060                  name: 'systemConfigImpl',
  8061                  internalType: 'contract SystemConfig',
  8062                  type: 'address',
  8063                },
  8064              ],
  8065            },
  8066            {
  8067              name: 'systemConfigConfig',
  8068              internalType: 'struct SystemDictator.SystemConfigConfig',
  8069              type: 'tuple',
  8070              components: [
  8071                { name: 'owner', internalType: 'address', type: 'address' },
  8072                { name: 'overhead', internalType: 'uint256', type: 'uint256' },
  8073                { name: 'scalar', internalType: 'uint256', type: 'uint256' },
  8074                { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' },
  8075                { name: 'gasLimit', internalType: 'uint64', type: 'uint64' },
  8076                {
  8077                  name: 'unsafeBlockSigner',
  8078                  internalType: 'address',
  8079                  type: 'address',
  8080                },
  8081                {
  8082                  name: 'resourceConfig',
  8083                  internalType: 'struct ResourceMetering.ResourceConfig',
  8084                  type: 'tuple',
  8085                  components: [
  8086                    {
  8087                      name: 'maxResourceLimit',
  8088                      internalType: 'uint32',
  8089                      type: 'uint32',
  8090                    },
  8091                    {
  8092                      name: 'elasticityMultiplier',
  8093                      internalType: 'uint8',
  8094                      type: 'uint8',
  8095                    },
  8096                    {
  8097                      name: 'baseFeeMaxChangeDenominator',
  8098                      internalType: 'uint8',
  8099                      type: 'uint8',
  8100                    },
  8101                    {
  8102                      name: 'minimumBaseFee',
  8103                      internalType: 'uint32',
  8104                      type: 'uint32',
  8105                    },
  8106                    {
  8107                      name: 'systemTxMaxGas',
  8108                      internalType: 'uint32',
  8109                      type: 'uint32',
  8110                    },
  8111                    {
  8112                      name: 'maximumBaseFee',
  8113                      internalType: 'uint128',
  8114                      type: 'uint128',
  8115                    },
  8116                  ],
  8117                },
  8118              ],
  8119            },
  8120          ],
  8121        },
  8122      ],
  8123      name: 'initialize',
  8124      outputs: [],
  8125    },
  8126    {
  8127      stateMutability: 'view',
  8128      type: 'function',
  8129      inputs: [],
  8130      name: 'l2OutputOracleDynamicConfig',
  8131      outputs: [
  8132        {
  8133          name: 'l2OutputOracleStartingBlockNumber',
  8134          internalType: 'uint256',
  8135          type: 'uint256',
  8136        },
  8137        {
  8138          name: 'l2OutputOracleStartingTimestamp',
  8139          internalType: 'uint256',
  8140          type: 'uint256',
  8141        },
  8142      ],
  8143    },
  8144    {
  8145      stateMutability: 'view',
  8146      type: 'function',
  8147      inputs: [],
  8148      name: 'oldL1CrossDomainMessenger',
  8149      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  8150    },
  8151    {
  8152      stateMutability: 'view',
  8153      type: 'function',
  8154      inputs: [],
  8155      name: 'optimismPortalDynamicConfig',
  8156      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  8157    },
  8158    {
  8159      stateMutability: 'view',
  8160      type: 'function',
  8161      inputs: [],
  8162      name: 'owner',
  8163      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  8164    },
  8165    {
  8166      stateMutability: 'nonpayable',
  8167      type: 'function',
  8168      inputs: [],
  8169      name: 'phase1',
  8170      outputs: [],
  8171    },
  8172    {
  8173      stateMutability: 'nonpayable',
  8174      type: 'function',
  8175      inputs: [],
  8176      name: 'phase2',
  8177      outputs: [],
  8178    },
  8179    {
  8180      stateMutability: 'nonpayable',
  8181      type: 'function',
  8182      inputs: [],
  8183      name: 'renounceOwnership',
  8184      outputs: [],
  8185    },
  8186    {
  8187      stateMutability: 'nonpayable',
  8188      type: 'function',
  8189      inputs: [],
  8190      name: 'step1',
  8191      outputs: [],
  8192    },
  8193    {
  8194      stateMutability: 'nonpayable',
  8195      type: 'function',
  8196      inputs: [],
  8197      name: 'step2',
  8198      outputs: [],
  8199    },
  8200    {
  8201      stateMutability: 'nonpayable',
  8202      type: 'function',
  8203      inputs: [],
  8204      name: 'step3',
  8205      outputs: [],
  8206    },
  8207    {
  8208      stateMutability: 'nonpayable',
  8209      type: 'function',
  8210      inputs: [],
  8211      name: 'step4',
  8212      outputs: [],
  8213    },
  8214    {
  8215      stateMutability: 'nonpayable',
  8216      type: 'function',
  8217      inputs: [],
  8218      name: 'step5',
  8219      outputs: [],
  8220    },
  8221    {
  8222      stateMutability: 'nonpayable',
  8223      type: 'function',
  8224      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
  8225      name: 'transferOwnership',
  8226      outputs: [],
  8227    },
  8228    {
  8229      stateMutability: 'nonpayable',
  8230      type: 'function',
  8231      inputs: [
  8232        {
  8233          name: '_l2OutputOracleDynamicConfig',
  8234          internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig',
  8235          type: 'tuple',
  8236          components: [
  8237            {
  8238              name: 'l2OutputOracleStartingBlockNumber',
  8239              internalType: 'uint256',
  8240              type: 'uint256',
  8241            },
  8242            {
  8243              name: 'l2OutputOracleStartingTimestamp',
  8244              internalType: 'uint256',
  8245              type: 'uint256',
  8246            },
  8247          ],
  8248        },
  8249        {
  8250          name: '_optimismPortalDynamicConfig',
  8251          internalType: 'bool',
  8252          type: 'bool',
  8253        },
  8254      ],
  8255      name: 'updateDynamicConfig',
  8256      outputs: [],
  8257    },
  8258  ] as const
  8259  
  8260  /**
  8261   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB)
  8262   */
  8263  export const systemDictatorAddress = {
  8264    1: '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB',
  8265  } as const
  8266  
  8267  /**
  8268   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB)
  8269   */
  8270  export const systemDictatorConfig = {
  8271    address: systemDictatorAddress,
  8272    abi: systemDictatorABI,
  8273  } as const
  8274  
  8275  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8276  // SystemDictator_goerli
  8277  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8278  
  8279  /**
  8280   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971)
  8281   */
  8282  export const systemDictatorGoerliABI = [
  8283    {
  8284      type: 'event',
  8285      anonymous: false,
  8286      inputs: [
  8287        { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
  8288      ],
  8289      name: 'Initialized',
  8290    },
  8291    {
  8292      type: 'event',
  8293      anonymous: false,
  8294      inputs: [
  8295        {
  8296          name: 'previousOwner',
  8297          internalType: 'address',
  8298          type: 'address',
  8299          indexed: true,
  8300        },
  8301        {
  8302          name: 'newOwner',
  8303          internalType: 'address',
  8304          type: 'address',
  8305          indexed: true,
  8306        },
  8307      ],
  8308      name: 'OwnershipTransferred',
  8309    },
  8310    {
  8311      stateMutability: 'view',
  8312      type: 'function',
  8313      inputs: [],
  8314      name: 'EXIT_1_NO_RETURN_STEP',
  8315      outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
  8316    },
  8317    {
  8318      stateMutability: 'view',
  8319      type: 'function',
  8320      inputs: [],
  8321      name: 'PROXY_TRANSFER_STEP',
  8322      outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
  8323    },
  8324    {
  8325      stateMutability: 'view',
  8326      type: 'function',
  8327      inputs: [],
  8328      name: 'config',
  8329      outputs: [
  8330        {
  8331          name: 'globalConfig',
  8332          internalType: 'struct SystemDictator.GlobalConfig',
  8333          type: 'tuple',
  8334          components: [
  8335            {
  8336              name: 'addressManager',
  8337              internalType: 'contract AddressManager',
  8338              type: 'address',
  8339            },
  8340            {
  8341              name: 'proxyAdmin',
  8342              internalType: 'contract ProxyAdmin',
  8343              type: 'address',
  8344            },
  8345            { name: 'controller', internalType: 'address', type: 'address' },
  8346            { name: 'finalOwner', internalType: 'address', type: 'address' },
  8347          ],
  8348        },
  8349        {
  8350          name: 'proxyAddressConfig',
  8351          internalType: 'struct SystemDictator.ProxyAddressConfig',
  8352          type: 'tuple',
  8353          components: [
  8354            {
  8355              name: 'l2OutputOracleProxy',
  8356              internalType: 'address',
  8357              type: 'address',
  8358            },
  8359            {
  8360              name: 'optimismPortalProxy',
  8361              internalType: 'address',
  8362              type: 'address',
  8363            },
  8364            {
  8365              name: 'l1CrossDomainMessengerProxy',
  8366              internalType: 'address',
  8367              type: 'address',
  8368            },
  8369            {
  8370              name: 'l1StandardBridgeProxy',
  8371              internalType: 'address',
  8372              type: 'address',
  8373            },
  8374            {
  8375              name: 'optimismMintableERC20FactoryProxy',
  8376              internalType: 'address',
  8377              type: 'address',
  8378            },
  8379            {
  8380              name: 'l1ERC721BridgeProxy',
  8381              internalType: 'address',
  8382              type: 'address',
  8383            },
  8384            {
  8385              name: 'systemConfigProxy',
  8386              internalType: 'address',
  8387              type: 'address',
  8388            },
  8389          ],
  8390        },
  8391        {
  8392          name: 'implementationAddressConfig',
  8393          internalType: 'struct SystemDictator.ImplementationAddressConfig',
  8394          type: 'tuple',
  8395          components: [
  8396            {
  8397              name: 'l2OutputOracleImpl',
  8398              internalType: 'contract L2OutputOracle',
  8399              type: 'address',
  8400            },
  8401            {
  8402              name: 'optimismPortalImpl',
  8403              internalType: 'contract OptimismPortal',
  8404              type: 'address',
  8405            },
  8406            {
  8407              name: 'l1CrossDomainMessengerImpl',
  8408              internalType: 'contract L1CrossDomainMessenger',
  8409              type: 'address',
  8410            },
  8411            {
  8412              name: 'l1StandardBridgeImpl',
  8413              internalType: 'contract L1StandardBridge',
  8414              type: 'address',
  8415            },
  8416            {
  8417              name: 'optimismMintableERC20FactoryImpl',
  8418              internalType: 'contract OptimismMintableERC20Factory',
  8419              type: 'address',
  8420            },
  8421            {
  8422              name: 'l1ERC721BridgeImpl',
  8423              internalType: 'contract L1ERC721Bridge',
  8424              type: 'address',
  8425            },
  8426            {
  8427              name: 'portalSenderImpl',
  8428              internalType: 'contract PortalSender',
  8429              type: 'address',
  8430            },
  8431            {
  8432              name: 'systemConfigImpl',
  8433              internalType: 'contract SystemConfig',
  8434              type: 'address',
  8435            },
  8436          ],
  8437        },
  8438        {
  8439          name: 'systemConfigConfig',
  8440          internalType: 'struct SystemDictator.SystemConfigConfig',
  8441          type: 'tuple',
  8442          components: [
  8443            { name: 'owner', internalType: 'address', type: 'address' },
  8444            { name: 'overhead', internalType: 'uint256', type: 'uint256' },
  8445            { name: 'scalar', internalType: 'uint256', type: 'uint256' },
  8446            { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' },
  8447            { name: 'gasLimit', internalType: 'uint64', type: 'uint64' },
  8448            {
  8449              name: 'unsafeBlockSigner',
  8450              internalType: 'address',
  8451              type: 'address',
  8452            },
  8453          ],
  8454        },
  8455      ],
  8456    },
  8457    {
  8458      stateMutability: 'view',
  8459      type: 'function',
  8460      inputs: [],
  8461      name: 'currentStep',
  8462      outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
  8463    },
  8464    {
  8465      stateMutability: 'view',
  8466      type: 'function',
  8467      inputs: [],
  8468      name: 'dynamicConfigSet',
  8469      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  8470    },
  8471    {
  8472      stateMutability: 'nonpayable',
  8473      type: 'function',
  8474      inputs: [],
  8475      name: 'exit1',
  8476      outputs: [],
  8477    },
  8478    {
  8479      stateMutability: 'nonpayable',
  8480      type: 'function',
  8481      inputs: [],
  8482      name: 'finalize',
  8483      outputs: [],
  8484    },
  8485    {
  8486      stateMutability: 'view',
  8487      type: 'function',
  8488      inputs: [],
  8489      name: 'finalized',
  8490      outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
  8491    },
  8492    {
  8493      stateMutability: 'nonpayable',
  8494      type: 'function',
  8495      inputs: [
  8496        {
  8497          name: '_config',
  8498          internalType: 'struct SystemDictator.DeployConfig',
  8499          type: 'tuple',
  8500          components: [
  8501            {
  8502              name: 'globalConfig',
  8503              internalType: 'struct SystemDictator.GlobalConfig',
  8504              type: 'tuple',
  8505              components: [
  8506                {
  8507                  name: 'addressManager',
  8508                  internalType: 'contract AddressManager',
  8509                  type: 'address',
  8510                },
  8511                {
  8512                  name: 'proxyAdmin',
  8513                  internalType: 'contract ProxyAdmin',
  8514                  type: 'address',
  8515                },
  8516                { name: 'controller', internalType: 'address', type: 'address' },
  8517                { name: 'finalOwner', internalType: 'address', type: 'address' },
  8518              ],
  8519            },
  8520            {
  8521              name: 'proxyAddressConfig',
  8522              internalType: 'struct SystemDictator.ProxyAddressConfig',
  8523              type: 'tuple',
  8524              components: [
  8525                {
  8526                  name: 'l2OutputOracleProxy',
  8527                  internalType: 'address',
  8528                  type: 'address',
  8529                },
  8530                {
  8531                  name: 'optimismPortalProxy',
  8532                  internalType: 'address',
  8533                  type: 'address',
  8534                },
  8535                {
  8536                  name: 'l1CrossDomainMessengerProxy',
  8537                  internalType: 'address',
  8538                  type: 'address',
  8539                },
  8540                {
  8541                  name: 'l1StandardBridgeProxy',
  8542                  internalType: 'address',
  8543                  type: 'address',
  8544                },
  8545                {
  8546                  name: 'optimismMintableERC20FactoryProxy',
  8547                  internalType: 'address',
  8548                  type: 'address',
  8549                },
  8550                {
  8551                  name: 'l1ERC721BridgeProxy',
  8552                  internalType: 'address',
  8553                  type: 'address',
  8554                },
  8555                {
  8556                  name: 'systemConfigProxy',
  8557                  internalType: 'address',
  8558                  type: 'address',
  8559                },
  8560              ],
  8561            },
  8562            {
  8563              name: 'implementationAddressConfig',
  8564              internalType: 'struct SystemDictator.ImplementationAddressConfig',
  8565              type: 'tuple',
  8566              components: [
  8567                {
  8568                  name: 'l2OutputOracleImpl',
  8569                  internalType: 'contract L2OutputOracle',
  8570                  type: 'address',
  8571                },
  8572                {
  8573                  name: 'optimismPortalImpl',
  8574                  internalType: 'contract OptimismPortal',
  8575                  type: 'address',
  8576                },
  8577                {
  8578                  name: 'l1CrossDomainMessengerImpl',
  8579                  internalType: 'contract L1CrossDomainMessenger',
  8580                  type: 'address',
  8581                },
  8582                {
  8583                  name: 'l1StandardBridgeImpl',
  8584                  internalType: 'contract L1StandardBridge',
  8585                  type: 'address',
  8586                },
  8587                {
  8588                  name: 'optimismMintableERC20FactoryImpl',
  8589                  internalType: 'contract OptimismMintableERC20Factory',
  8590                  type: 'address',
  8591                },
  8592                {
  8593                  name: 'l1ERC721BridgeImpl',
  8594                  internalType: 'contract L1ERC721Bridge',
  8595                  type: 'address',
  8596                },
  8597                {
  8598                  name: 'portalSenderImpl',
  8599                  internalType: 'contract PortalSender',
  8600                  type: 'address',
  8601                },
  8602                {
  8603                  name: 'systemConfigImpl',
  8604                  internalType: 'contract SystemConfig',
  8605                  type: 'address',
  8606                },
  8607              ],
  8608            },
  8609            {
  8610              name: 'systemConfigConfig',
  8611              internalType: 'struct SystemDictator.SystemConfigConfig',
  8612              type: 'tuple',
  8613              components: [
  8614                { name: 'owner', internalType: 'address', type: 'address' },
  8615                { name: 'overhead', internalType: 'uint256', type: 'uint256' },
  8616                { name: 'scalar', internalType: 'uint256', type: 'uint256' },
  8617                { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' },
  8618                { name: 'gasLimit', internalType: 'uint64', type: 'uint64' },
  8619                {
  8620                  name: 'unsafeBlockSigner',
  8621                  internalType: 'address',
  8622                  type: 'address',
  8623                },
  8624              ],
  8625            },
  8626          ],
  8627        },
  8628      ],
  8629      name: 'initialize',
  8630      outputs: [],
  8631    },
  8632    {
  8633      stateMutability: 'view',
  8634      type: 'function',
  8635      inputs: [],
  8636      name: 'l2OutputOracleDynamicConfig',
  8637      outputs: [
  8638        {
  8639          name: 'l2OutputOracleStartingBlockNumber',
  8640          internalType: 'uint256',
  8641          type: 'uint256',
  8642        },
  8643        {
  8644          name: 'l2OutputOracleStartingTimestamp',
  8645          internalType: 'uint256',
  8646          type: 'uint256',
  8647        },
  8648      ],
  8649    },
  8650    {
  8651      stateMutability: 'view',
  8652      type: 'function',
  8653      inputs: [],
  8654      name: 'oldL1CrossDomainMessenger',
  8655      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  8656    },
  8657    {
  8658      stateMutability: 'view',
  8659      type: 'function',
  8660      inputs: [],
  8661      name: 'owner',
  8662      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  8663    },
  8664    {
  8665      stateMutability: 'nonpayable',
  8666      type: 'function',
  8667      inputs: [],
  8668      name: 'renounceOwnership',
  8669      outputs: [],
  8670    },
  8671    {
  8672      stateMutability: 'nonpayable',
  8673      type: 'function',
  8674      inputs: [],
  8675      name: 'step1',
  8676      outputs: [],
  8677    },
  8678    {
  8679      stateMutability: 'nonpayable',
  8680      type: 'function',
  8681      inputs: [],
  8682      name: 'step2',
  8683      outputs: [],
  8684    },
  8685    {
  8686      stateMutability: 'nonpayable',
  8687      type: 'function',
  8688      inputs: [],
  8689      name: 'step3',
  8690      outputs: [],
  8691    },
  8692    {
  8693      stateMutability: 'nonpayable',
  8694      type: 'function',
  8695      inputs: [],
  8696      name: 'step4',
  8697      outputs: [],
  8698    },
  8699    {
  8700      stateMutability: 'nonpayable',
  8701      type: 'function',
  8702      inputs: [],
  8703      name: 'step5',
  8704      outputs: [],
  8705    },
  8706    {
  8707      stateMutability: 'nonpayable',
  8708      type: 'function',
  8709      inputs: [],
  8710      name: 'step6',
  8711      outputs: [],
  8712    },
  8713    {
  8714      stateMutability: 'nonpayable',
  8715      type: 'function',
  8716      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
  8717      name: 'transferOwnership',
  8718      outputs: [],
  8719    },
  8720    {
  8721      stateMutability: 'nonpayable',
  8722      type: 'function',
  8723      inputs: [
  8724        {
  8725          name: '_l2OutputOracleDynamicConfig',
  8726          internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig',
  8727          type: 'tuple',
  8728          components: [
  8729            {
  8730              name: 'l2OutputOracleStartingBlockNumber',
  8731              internalType: 'uint256',
  8732              type: 'uint256',
  8733            },
  8734            {
  8735              name: 'l2OutputOracleStartingTimestamp',
  8736              internalType: 'uint256',
  8737              type: 'uint256',
  8738            },
  8739          ],
  8740        },
  8741      ],
  8742      name: 'updateL2OutputOracleDynamicConfig',
  8743      outputs: [],
  8744    },
  8745  ] as const
  8746  
  8747  /**
  8748   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971)
  8749   */
  8750  export const systemDictatorGoerliAddress = {
  8751    5: '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971',
  8752  } as const
  8753  
  8754  /**
  8755   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971)
  8756   */
  8757  export const systemDictatorGoerliConfig = {
  8758    address: systemDictatorGoerliAddress,
  8759    abi: systemDictatorGoerliABI,
  8760  } as const
  8761  
  8762  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8763  // TeleportrWithdrawer
  8764  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8765  
  8766  /**
  8767   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007)
  8768   */
  8769  export const teleportrWithdrawerABI = [
  8770    {
  8771      stateMutability: 'nonpayable',
  8772      type: 'constructor',
  8773      inputs: [{ name: '_owner', internalType: 'address', type: 'address' }],
  8774    },
  8775    {
  8776      type: 'event',
  8777      anonymous: false,
  8778      inputs: [
  8779        { name: 'user', internalType: 'address', type: 'address', indexed: true },
  8780        {
  8781          name: 'newOwner',
  8782          internalType: 'address',
  8783          type: 'address',
  8784          indexed: true,
  8785        },
  8786      ],
  8787      name: 'OwnerUpdated',
  8788    },
  8789    {
  8790      type: 'event',
  8791      anonymous: false,
  8792      inputs: [
  8793        { name: 'from', internalType: 'address', type: 'address', indexed: true },
  8794        {
  8795          name: 'amount',
  8796          internalType: 'uint256',
  8797          type: 'uint256',
  8798          indexed: false,
  8799        },
  8800      ],
  8801      name: 'ReceivedETH',
  8802    },
  8803    {
  8804      type: 'event',
  8805      anonymous: false,
  8806      inputs: [
  8807        {
  8808          name: 'withdrawer',
  8809          internalType: 'address',
  8810          type: 'address',
  8811          indexed: true,
  8812        },
  8813        {
  8814          name: 'recipient',
  8815          internalType: 'address',
  8816          type: 'address',
  8817          indexed: true,
  8818        },
  8819        {
  8820          name: 'asset',
  8821          internalType: 'address',
  8822          type: 'address',
  8823          indexed: true,
  8824        },
  8825        {
  8826          name: 'amount',
  8827          internalType: 'uint256',
  8828          type: 'uint256',
  8829          indexed: false,
  8830        },
  8831      ],
  8832      name: 'WithdrewERC20',
  8833    },
  8834    {
  8835      type: 'event',
  8836      anonymous: false,
  8837      inputs: [
  8838        {
  8839          name: 'withdrawer',
  8840          internalType: 'address',
  8841          type: 'address',
  8842          indexed: true,
  8843        },
  8844        {
  8845          name: 'recipient',
  8846          internalType: 'address',
  8847          type: 'address',
  8848          indexed: true,
  8849        },
  8850        {
  8851          name: 'asset',
  8852          internalType: 'address',
  8853          type: 'address',
  8854          indexed: true,
  8855        },
  8856        { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false },
  8857      ],
  8858      name: 'WithdrewERC721',
  8859    },
  8860    {
  8861      type: 'event',
  8862      anonymous: false,
  8863      inputs: [
  8864        {
  8865          name: 'withdrawer',
  8866          internalType: 'address',
  8867          type: 'address',
  8868          indexed: true,
  8869        },
  8870        {
  8871          name: 'recipient',
  8872          internalType: 'address',
  8873          type: 'address',
  8874          indexed: true,
  8875        },
  8876        {
  8877          name: 'amount',
  8878          internalType: 'uint256',
  8879          type: 'uint256',
  8880          indexed: false,
  8881        },
  8882      ],
  8883      name: 'WithdrewETH',
  8884    },
  8885    {
  8886      stateMutability: 'payable',
  8887      type: 'function',
  8888      inputs: [
  8889        { name: '_target', internalType: 'address', type: 'address' },
  8890        { name: '_data', internalType: 'bytes', type: 'bytes' },
  8891        { name: '_gas', internalType: 'uint256', type: 'uint256' },
  8892        { name: '_value', internalType: 'uint256', type: 'uint256' },
  8893      ],
  8894      name: 'CALL',
  8895      outputs: [
  8896        { name: '', internalType: 'bool', type: 'bool' },
  8897        { name: '', internalType: 'bytes', type: 'bytes' },
  8898      ],
  8899    },
  8900    {
  8901      stateMutability: 'payable',
  8902      type: 'function',
  8903      inputs: [
  8904        { name: '_target', internalType: 'address', type: 'address' },
  8905        { name: '_data', internalType: 'bytes', type: 'bytes' },
  8906        { name: '_gas', internalType: 'uint256', type: 'uint256' },
  8907      ],
  8908      name: 'DELEGATECALL',
  8909      outputs: [
  8910        { name: '', internalType: 'bool', type: 'bool' },
  8911        { name: '', internalType: 'bytes', type: 'bytes' },
  8912      ],
  8913    },
  8914    {
  8915      stateMutability: 'view',
  8916      type: 'function',
  8917      inputs: [],
  8918      name: 'data',
  8919      outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }],
  8920    },
  8921    {
  8922      stateMutability: 'view',
  8923      type: 'function',
  8924      inputs: [],
  8925      name: 'owner',
  8926      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  8927    },
  8928    {
  8929      stateMutability: 'view',
  8930      type: 'function',
  8931      inputs: [],
  8932      name: 'recipient',
  8933      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  8934    },
  8935    {
  8936      stateMutability: 'nonpayable',
  8937      type: 'function',
  8938      inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }],
  8939      name: 'setData',
  8940      outputs: [],
  8941    },
  8942    {
  8943      stateMutability: 'nonpayable',
  8944      type: 'function',
  8945      inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
  8946      name: 'setOwner',
  8947      outputs: [],
  8948    },
  8949    {
  8950      stateMutability: 'nonpayable',
  8951      type: 'function',
  8952      inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }],
  8953      name: 'setRecipient',
  8954      outputs: [],
  8955    },
  8956    {
  8957      stateMutability: 'nonpayable',
  8958      type: 'function',
  8959      inputs: [{ name: '_teleportr', internalType: 'address', type: 'address' }],
  8960      name: 'setTeleportr',
  8961      outputs: [],
  8962    },
  8963    {
  8964      stateMutability: 'view',
  8965      type: 'function',
  8966      inputs: [],
  8967      name: 'teleportr',
  8968      outputs: [{ name: '', internalType: 'address', type: 'address' }],
  8969    },
  8970    {
  8971      stateMutability: 'nonpayable',
  8972      type: 'function',
  8973      inputs: [
  8974        { name: '_asset', internalType: 'contract ERC20', type: 'address' },
  8975        { name: '_to', internalType: 'address', type: 'address' },
  8976        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  8977      ],
  8978      name: 'withdrawERC20',
  8979      outputs: [],
  8980    },
  8981    {
  8982      stateMutability: 'nonpayable',
  8983      type: 'function',
  8984      inputs: [
  8985        { name: '_asset', internalType: 'contract ERC20', type: 'address' },
  8986        { name: '_to', internalType: 'address', type: 'address' },
  8987      ],
  8988      name: 'withdrawERC20',
  8989      outputs: [],
  8990    },
  8991    {
  8992      stateMutability: 'nonpayable',
  8993      type: 'function',
  8994      inputs: [
  8995        { name: '_asset', internalType: 'contract ERC721', type: 'address' },
  8996        { name: '_to', internalType: 'address', type: 'address' },
  8997        { name: '_id', internalType: 'uint256', type: 'uint256' },
  8998      ],
  8999      name: 'withdrawERC721',
  9000      outputs: [],
  9001    },
  9002    {
  9003      stateMutability: 'nonpayable',
  9004      type: 'function',
  9005      inputs: [
  9006        { name: '_to', internalType: 'address payable', type: 'address' },
  9007        { name: '_amount', internalType: 'uint256', type: 'uint256' },
  9008      ],
  9009      name: 'withdrawETH',
  9010      outputs: [],
  9011    },
  9012    {
  9013      stateMutability: 'nonpayable',
  9014      type: 'function',
  9015      inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }],
  9016      name: 'withdrawETH',
  9017      outputs: [],
  9018    },
  9019    {
  9020      stateMutability: 'nonpayable',
  9021      type: 'function',
  9022      inputs: [],
  9023      name: 'withdrawFromTeleportr',
  9024      outputs: [],
  9025    },
  9026    { stateMutability: 'payable', type: 'receive' },
  9027  ] as const
  9028  
  9029  /**
  9030   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007)
  9031   */
  9032  export const teleportrWithdrawerAddress = {
  9033    1: '0x78A25524D90E3D0596558fb43789bD800a5c3007',
  9034  } as const
  9035  
  9036  /**
  9037   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007)
  9038   */
  9039  export const teleportrWithdrawerConfig = {
  9040    address: teleportrWithdrawerAddress,
  9041    abi: teleportrWithdrawerABI,
  9042  } as const
  9043  
  9044  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9045  // eslintIgnore
  9046  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9047  
  9048  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9049  // React
  9050  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9051  
  9052  /**
  9053   * Wraps __{@link useContractRead}__ with `abi` set to __{@link addressManagerABI}__.
  9054   *
  9055   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F)
  9056   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111)
  9057   */
  9058  export function useAddressManagerRead<
  9059    TFunctionName extends string,
  9060    TSelectData = ReadContractResult<typeof addressManagerABI, TFunctionName>
  9061  >(
  9062    config: Omit<
  9063      UseContractReadConfig<typeof addressManagerABI, TFunctionName, TSelectData>,
  9064      'abi' | 'address'
  9065    > & { chainId?: keyof typeof addressManagerAddress } = {} as any
  9066  ) {
  9067    const { chain } = useNetwork()
  9068    const defaultChainId = useChainId()
  9069    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9070    return useContractRead({
  9071      abi: addressManagerABI,
  9072      address:
  9073        addressManagerAddress[chainId as keyof typeof addressManagerAddress],
  9074      ...config,
  9075    } as UseContractReadConfig<typeof addressManagerABI, TFunctionName, TSelectData>)
  9076  }
  9077  
  9078  /**
  9079   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__.
  9080   *
  9081   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F)
  9082   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111)
  9083   */
  9084  export function useAddressManagerWrite<
  9085    TFunctionName extends string,
  9086    TMode extends WriteContractMode = undefined,
  9087    TChainId extends number = keyof typeof addressManagerAddress
  9088  >(
  9089    config: TMode extends 'prepared'
  9090      ? UseContractWriteConfig<
  9091          PrepareWriteContractResult<
  9092            typeof addressManagerABI,
  9093            string
  9094          >['request']['abi'],
  9095          TFunctionName,
  9096          TMode
  9097        > & { address?: Address; chainId?: TChainId }
  9098      : UseContractWriteConfig<typeof addressManagerABI, TFunctionName, TMode> & {
  9099          abi?: never
  9100          address?: never
  9101          chainId?: TChainId
  9102        } = {} as any
  9103  ) {
  9104    const { chain } = useNetwork()
  9105    const defaultChainId = useChainId()
  9106    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9107    return useContractWrite<typeof addressManagerABI, TFunctionName, TMode>({
  9108      abi: addressManagerABI,
  9109      address:
  9110        addressManagerAddress[chainId as keyof typeof addressManagerAddress],
  9111      ...config,
  9112    } as any)
  9113  }
  9114  
  9115  /**
  9116   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__.
  9117   *
  9118   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F)
  9119   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111)
  9120   */
  9121  export function useAddressManagerEvent<TEventName extends string>(
  9122    config: Omit<
  9123      UseContractEventConfig<typeof addressManagerABI, TEventName>,
  9124      'abi' | 'address'
  9125    > & { chainId?: keyof typeof addressManagerAddress } = {} as any
  9126  ) {
  9127    const { chain } = useNetwork()
  9128    const defaultChainId = useChainId()
  9129    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9130    return useContractEvent({
  9131      abi: addressManagerABI,
  9132      address:
  9133        addressManagerAddress[chainId as keyof typeof addressManagerAddress],
  9134      ...config,
  9135    } as UseContractEventConfig<typeof addressManagerABI, TEventName>)
  9136  }
  9137  
  9138  /**
  9139   * Wraps __{@link useContractRead}__ with `abi` set to __{@link assetReceiverABI}__.
  9140   *
  9141   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
  9142   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
  9143   */
  9144  export function useAssetReceiverRead<
  9145    TFunctionName extends string,
  9146    TSelectData = ReadContractResult<typeof assetReceiverABI, TFunctionName>
  9147  >(
  9148    config: Omit<
  9149      UseContractReadConfig<typeof assetReceiverABI, TFunctionName, TSelectData>,
  9150      'abi' | 'address'
  9151    > & { chainId?: keyof typeof assetReceiverAddress } = {} as any
  9152  ) {
  9153    const { chain } = useNetwork()
  9154    const defaultChainId = useChainId()
  9155    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9156    return useContractRead({
  9157      abi: assetReceiverABI,
  9158      address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress],
  9159      ...config,
  9160    } as UseContractReadConfig<typeof assetReceiverABI, TFunctionName, TSelectData>)
  9161  }
  9162  
  9163  /**
  9164   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link assetReceiverABI}__.
  9165   *
  9166   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
  9167   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
  9168   */
  9169  export function useAssetReceiverWrite<
  9170    TFunctionName extends string,
  9171    TMode extends WriteContractMode = undefined,
  9172    TChainId extends number = keyof typeof assetReceiverAddress
  9173  >(
  9174    config: TMode extends 'prepared'
  9175      ? UseContractWriteConfig<
  9176          PrepareWriteContractResult<
  9177            typeof assetReceiverABI,
  9178            string
  9179          >['request']['abi'],
  9180          TFunctionName,
  9181          TMode
  9182        > & { address?: Address; chainId?: TChainId }
  9183      : UseContractWriteConfig<typeof assetReceiverABI, TFunctionName, TMode> & {
  9184          abi?: never
  9185          address?: never
  9186          chainId?: TChainId
  9187        } = {} as any
  9188  ) {
  9189    const { chain } = useNetwork()
  9190    const defaultChainId = useChainId()
  9191    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9192    return useContractWrite<typeof assetReceiverABI, TFunctionName, TMode>({
  9193      abi: assetReceiverABI,
  9194      address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress],
  9195      ...config,
  9196    } as any)
  9197  }
  9198  
  9199  /**
  9200   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link assetReceiverABI}__.
  9201   *
  9202   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
  9203   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556)
  9204   */
  9205  export function useAssetReceiverEvent<TEventName extends string>(
  9206    config: Omit<
  9207      UseContractEventConfig<typeof assetReceiverABI, TEventName>,
  9208      'abi' | 'address'
  9209    > & { chainId?: keyof typeof assetReceiverAddress } = {} as any
  9210  ) {
  9211    const { chain } = useNetwork()
  9212    const defaultChainId = useChainId()
  9213    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9214    return useContractEvent({
  9215      abi: assetReceiverABI,
  9216      address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress],
  9217      ...config,
  9218    } as UseContractEventConfig<typeof assetReceiverABI, TEventName>)
  9219  }
  9220  
  9221  /**
  9222   * Wraps __{@link useContractRead}__ with `abi` set to __{@link attestationStationABI}__.
  9223   *
  9224   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
  9225   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
  9226   */
  9227  export function useAttestationStationRead<
  9228    TFunctionName extends string,
  9229    TSelectData = ReadContractResult<typeof attestationStationABI, TFunctionName>
  9230  >(
  9231    config: Omit<
  9232      UseContractReadConfig<
  9233        typeof attestationStationABI,
  9234        TFunctionName,
  9235        TSelectData
  9236      >,
  9237      'abi' | 'address'
  9238    > & { chainId?: keyof typeof attestationStationAddress } = {} as any
  9239  ) {
  9240    const { chain } = useNetwork()
  9241    const defaultChainId = useChainId()
  9242    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9243    return useContractRead({
  9244      abi: attestationStationABI,
  9245      address:
  9246        attestationStationAddress[
  9247          chainId as keyof typeof attestationStationAddress
  9248        ],
  9249      ...config,
  9250    } as UseContractReadConfig<typeof attestationStationABI, TFunctionName, TSelectData>)
  9251  }
  9252  
  9253  /**
  9254   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link attestationStationABI}__.
  9255   *
  9256   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
  9257   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
  9258   */
  9259  export function useAttestationStationWrite<
  9260    TFunctionName extends string,
  9261    TMode extends WriteContractMode = undefined,
  9262    TChainId extends number = keyof typeof attestationStationAddress
  9263  >(
  9264    config: TMode extends 'prepared'
  9265      ? UseContractWriteConfig<
  9266          PrepareWriteContractResult<
  9267            typeof attestationStationABI,
  9268            string
  9269          >['request']['abi'],
  9270          TFunctionName,
  9271          TMode
  9272        > & { address?: Address; chainId?: TChainId }
  9273      : UseContractWriteConfig<
  9274          typeof attestationStationABI,
  9275          TFunctionName,
  9276          TMode
  9277        > & {
  9278          abi?: never
  9279          address?: never
  9280          chainId?: TChainId
  9281        } = {} as any
  9282  ) {
  9283    const { chain } = useNetwork()
  9284    const defaultChainId = useChainId()
  9285    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9286    return useContractWrite<typeof attestationStationABI, TFunctionName, TMode>({
  9287      abi: attestationStationABI,
  9288      address:
  9289        attestationStationAddress[
  9290          chainId as keyof typeof attestationStationAddress
  9291        ],
  9292      ...config,
  9293    } as any)
  9294  }
  9295  
  9296  /**
  9297   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link attestationStationABI}__.
  9298   *
  9299   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
  9300   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77)
  9301   */
  9302  export function useAttestationStationEvent<TEventName extends string>(
  9303    config: Omit<
  9304      UseContractEventConfig<typeof attestationStationABI, TEventName>,
  9305      'abi' | 'address'
  9306    > & { chainId?: keyof typeof attestationStationAddress } = {} as any
  9307  ) {
  9308    const { chain } = useNetwork()
  9309    const defaultChainId = useChainId()
  9310    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9311    return useContractEvent({
  9312      abi: attestationStationABI,
  9313      address:
  9314        attestationStationAddress[
  9315          chainId as keyof typeof attestationStationAddress
  9316        ],
  9317      ...config,
  9318    } as UseContractEventConfig<typeof attestationStationABI, TEventName>)
  9319  }
  9320  
  9321  /**
  9322   * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__.
  9323   *
  9324   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019)
  9325   */
  9326  export function useBaseFeeVaultRead<
  9327    TFunctionName extends string,
  9328    TSelectData = ReadContractResult<typeof baseFeeVaultABI, TFunctionName>
  9329  >(
  9330    config: Omit<
  9331      UseContractReadConfig<typeof baseFeeVaultABI, TFunctionName, TSelectData>,
  9332      'abi' | 'address'
  9333    > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any
  9334  ) {
  9335    return useContractRead({
  9336      abi: baseFeeVaultABI,
  9337      address: baseFeeVaultAddress[420],
  9338      ...config,
  9339    } as UseContractReadConfig<typeof baseFeeVaultABI, TFunctionName, TSelectData>)
  9340  }
  9341  
  9342  /**
  9343   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__.
  9344   *
  9345   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019)
  9346   */
  9347  export function useBaseFeeVaultWrite<
  9348    TFunctionName extends string,
  9349    TMode extends WriteContractMode = undefined,
  9350    TChainId extends number = keyof typeof baseFeeVaultAddress
  9351  >(
  9352    config: TMode extends 'prepared'
  9353      ? UseContractWriteConfig<
  9354          PrepareWriteContractResult<
  9355            typeof baseFeeVaultABI,
  9356            string
  9357          >['request']['abi'],
  9358          TFunctionName,
  9359          TMode
  9360        > & { address?: Address; chainId?: TChainId }
  9361      : UseContractWriteConfig<typeof baseFeeVaultABI, TFunctionName, TMode> & {
  9362          abi?: never
  9363          address?: never
  9364          chainId?: TChainId
  9365        } = {} as any
  9366  ) {
  9367    return useContractWrite<typeof baseFeeVaultABI, TFunctionName, TMode>({
  9368      abi: baseFeeVaultABI,
  9369      address: baseFeeVaultAddress[420],
  9370      ...config,
  9371    } as any)
  9372  }
  9373  
  9374  /**
  9375   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link baseFeeVaultABI}__.
  9376   *
  9377   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019)
  9378   */
  9379  export function useBaseFeeVaultEvent<TEventName extends string>(
  9380    config: Omit<
  9381      UseContractEventConfig<typeof baseFeeVaultABI, TEventName>,
  9382      'abi' | 'address'
  9383    > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any
  9384  ) {
  9385    return useContractEvent({
  9386      abi: baseFeeVaultABI,
  9387      address: baseFeeVaultAddress[420],
  9388      ...config,
  9389    } as UseContractEventConfig<typeof baseFeeVaultABI, TEventName>)
  9390  }
  9391  
  9392  /**
  9393   * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkBalanceHighABI}__.
  9394   *
  9395   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F)
  9396   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F)
  9397   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9)
  9398   */
  9399  export function useCheckBalanceHighRead<
  9400    TFunctionName extends string,
  9401    TSelectData = ReadContractResult<typeof checkBalanceHighABI, TFunctionName>
  9402  >(
  9403    config: Omit<
  9404      UseContractReadConfig<
  9405        typeof checkBalanceHighABI,
  9406        TFunctionName,
  9407        TSelectData
  9408      >,
  9409      'abi' | 'address'
  9410    > & { chainId?: keyof typeof checkBalanceHighAddress } = {} as any
  9411  ) {
  9412    const { chain } = useNetwork()
  9413    const defaultChainId = useChainId()
  9414    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9415    return useContractRead({
  9416      abi: checkBalanceHighABI,
  9417      address:
  9418        checkBalanceHighAddress[chainId as keyof typeof checkBalanceHighAddress],
  9419      ...config,
  9420    } as UseContractReadConfig<typeof checkBalanceHighABI, TFunctionName, TSelectData>)
  9421  }
  9422  
  9423  /**
  9424   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link checkBalanceHighABI}__.
  9425   *
  9426   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F)
  9427   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F)
  9428   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9)
  9429   */
  9430  export function useCheckBalanceHighEvent<TEventName extends string>(
  9431    config: Omit<
  9432      UseContractEventConfig<typeof checkBalanceHighABI, TEventName>,
  9433      'abi' | 'address'
  9434    > & { chainId?: keyof typeof checkBalanceHighAddress } = {} as any
  9435  ) {
  9436    const { chain } = useNetwork()
  9437    const defaultChainId = useChainId()
  9438    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9439    return useContractEvent({
  9440      abi: checkBalanceHighABI,
  9441      address:
  9442        checkBalanceHighAddress[chainId as keyof typeof checkBalanceHighAddress],
  9443      ...config,
  9444    } as UseContractEventConfig<typeof checkBalanceHighABI, TEventName>)
  9445  }
  9446  
  9447  /**
  9448   * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkBalanceLowABI}__.
  9449   *
  9450   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640)
  9451   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640)
  9452   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474)
  9453   */
  9454  export function useCheckBalanceLowRead<
  9455    TFunctionName extends string,
  9456    TSelectData = ReadContractResult<typeof checkBalanceLowABI, TFunctionName>
  9457  >(
  9458    config: Omit<
  9459      UseContractReadConfig<
  9460        typeof checkBalanceLowABI,
  9461        TFunctionName,
  9462        TSelectData
  9463      >,
  9464      'abi' | 'address'
  9465    > & { chainId?: keyof typeof checkBalanceLowAddress } = {} as any
  9466  ) {
  9467    const { chain } = useNetwork()
  9468    const defaultChainId = useChainId()
  9469    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9470    return useContractRead({
  9471      abi: checkBalanceLowABI,
  9472      address:
  9473        checkBalanceLowAddress[chainId as keyof typeof checkBalanceLowAddress],
  9474      ...config,
  9475    } as UseContractReadConfig<typeof checkBalanceLowABI, TFunctionName, TSelectData>)
  9476  }
  9477  
  9478  /**
  9479   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link checkBalanceLowABI}__.
  9480   *
  9481   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640)
  9482   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640)
  9483   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474)
  9484   */
  9485  export function useCheckBalanceLowEvent<TEventName extends string>(
  9486    config: Omit<
  9487      UseContractEventConfig<typeof checkBalanceLowABI, TEventName>,
  9488      'abi' | 'address'
  9489    > & { chainId?: keyof typeof checkBalanceLowAddress } = {} as any
  9490  ) {
  9491    const { chain } = useNetwork()
  9492    const defaultChainId = useChainId()
  9493    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9494    return useContractEvent({
  9495      abi: checkBalanceLowABI,
  9496      address:
  9497        checkBalanceLowAddress[chainId as keyof typeof checkBalanceLowAddress],
  9498      ...config,
  9499    } as UseContractEventConfig<typeof checkBalanceLowABI, TEventName>)
  9500  }
  9501  
  9502  /**
  9503   * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkGelatoLowABI}__.
  9504   *
  9505   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa)
  9506   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa)
  9507   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862)
  9508   */
  9509  export function useCheckGelatoLowRead<
  9510    TFunctionName extends string,
  9511    TSelectData = ReadContractResult<typeof checkGelatoLowABI, TFunctionName>
  9512  >(
  9513    config: Omit<
  9514      UseContractReadConfig<typeof checkGelatoLowABI, TFunctionName, TSelectData>,
  9515      'abi' | 'address'
  9516    > & { chainId?: keyof typeof checkGelatoLowAddress } = {} as any
  9517  ) {
  9518    const { chain } = useNetwork()
  9519    const defaultChainId = useChainId()
  9520    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9521    return useContractRead({
  9522      abi: checkGelatoLowABI,
  9523      address:
  9524        checkGelatoLowAddress[chainId as keyof typeof checkGelatoLowAddress],
  9525      ...config,
  9526    } as UseContractReadConfig<typeof checkGelatoLowABI, TFunctionName, TSelectData>)
  9527  }
  9528  
  9529  /**
  9530   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link checkGelatoLowABI}__.
  9531   *
  9532   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa)
  9533   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa)
  9534   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862)
  9535   */
  9536  export function useCheckGelatoLowEvent<TEventName extends string>(
  9537    config: Omit<
  9538      UseContractEventConfig<typeof checkGelatoLowABI, TEventName>,
  9539      'abi' | 'address'
  9540    > & { chainId?: keyof typeof checkGelatoLowAddress } = {} as any
  9541  ) {
  9542    const { chain } = useNetwork()
  9543    const defaultChainId = useChainId()
  9544    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9545    return useContractEvent({
  9546      abi: checkGelatoLowABI,
  9547      address:
  9548        checkGelatoLowAddress[chainId as keyof typeof checkGelatoLowAddress],
  9549      ...config,
  9550    } as UseContractEventConfig<typeof checkGelatoLowABI, TEventName>)
  9551  }
  9552  
  9553  /**
  9554   * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkTrueABI}__.
  9555   *
  9556   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D)
  9557   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D)
  9558   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32)
  9559   */
  9560  export function useCheckTrueRead<
  9561    TFunctionName extends string,
  9562    TSelectData = ReadContractResult<typeof checkTrueABI, TFunctionName>
  9563  >(
  9564    config: Omit<
  9565      UseContractReadConfig<typeof checkTrueABI, TFunctionName, TSelectData>,
  9566      'abi' | 'address'
  9567    > & { chainId?: keyof typeof checkTrueAddress } = {} as any
  9568  ) {
  9569    const { chain } = useNetwork()
  9570    const defaultChainId = useChainId()
  9571    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9572    return useContractRead({
  9573      abi: checkTrueABI,
  9574      address: checkTrueAddress[chainId as keyof typeof checkTrueAddress],
  9575      ...config,
  9576    } as UseContractReadConfig<typeof checkTrueABI, TFunctionName, TSelectData>)
  9577  }
  9578  
  9579  /**
  9580   * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieABI}__.
  9581   *
  9582   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
  9583   */
  9584  export function useDrippieRead<
  9585    TFunctionName extends string,
  9586    TSelectData = ReadContractResult<typeof drippieABI, TFunctionName>
  9587  >(
  9588    config: Omit<
  9589      UseContractReadConfig<typeof drippieABI, TFunctionName, TSelectData>,
  9590      'abi' | 'address'
  9591    > & { chainId?: keyof typeof drippieAddress } = {} as any
  9592  ) {
  9593    return useContractRead({
  9594      abi: drippieABI,
  9595      address: drippieAddress[1],
  9596      ...config,
  9597    } as UseContractReadConfig<typeof drippieABI, TFunctionName, TSelectData>)
  9598  }
  9599  
  9600  /**
  9601   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieABI}__.
  9602   *
  9603   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
  9604   */
  9605  export function useDrippieWrite<
  9606    TFunctionName extends string,
  9607    TMode extends WriteContractMode = undefined,
  9608    TChainId extends number = keyof typeof drippieAddress
  9609  >(
  9610    config: TMode extends 'prepared'
  9611      ? UseContractWriteConfig<
  9612          PrepareWriteContractResult<typeof drippieABI, string>['request']['abi'],
  9613          TFunctionName,
  9614          TMode
  9615        > & { address?: Address; chainId?: TChainId }
  9616      : UseContractWriteConfig<typeof drippieABI, TFunctionName, TMode> & {
  9617          abi?: never
  9618          address?: never
  9619          chainId?: TChainId
  9620        } = {} as any
  9621  ) {
  9622    return useContractWrite<typeof drippieABI, TFunctionName, TMode>({
  9623      abi: drippieABI,
  9624      address: drippieAddress[1],
  9625      ...config,
  9626    } as any)
  9627  }
  9628  
  9629  /**
  9630   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieABI}__.
  9631   *
  9632   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
  9633   */
  9634  export function useDrippieEvent<TEventName extends string>(
  9635    config: Omit<
  9636      UseContractEventConfig<typeof drippieABI, TEventName>,
  9637      'abi' | 'address'
  9638    > & { chainId?: keyof typeof drippieAddress } = {} as any
  9639  ) {
  9640    return useContractEvent({
  9641      abi: drippieABI,
  9642      address: drippieAddress[1],
  9643      ...config,
  9644    } as UseContractEventConfig<typeof drippieABI, TEventName>)
  9645  }
  9646  
  9647  /**
  9648   * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieGoerliABI}__.
  9649   *
  9650   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
  9651   */
  9652  export function useDrippieGoerliRead<
  9653    TFunctionName extends string,
  9654    TSelectData = ReadContractResult<typeof drippieGoerliABI, TFunctionName>
  9655  >(
  9656    config: Omit<
  9657      UseContractReadConfig<typeof drippieGoerliABI, TFunctionName, TSelectData>,
  9658      'abi' | 'address'
  9659    > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any
  9660  ) {
  9661    return useContractRead({
  9662      abi: drippieGoerliABI,
  9663      address: drippieGoerliAddress[5],
  9664      ...config,
  9665    } as UseContractReadConfig<typeof drippieGoerliABI, TFunctionName, TSelectData>)
  9666  }
  9667  
  9668  /**
  9669   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__.
  9670   *
  9671   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
  9672   */
  9673  export function useDrippieGoerliWrite<
  9674    TFunctionName extends string,
  9675    TMode extends WriteContractMode = undefined,
  9676    TChainId extends number = keyof typeof drippieGoerliAddress
  9677  >(
  9678    config: TMode extends 'prepared'
  9679      ? UseContractWriteConfig<
  9680          PrepareWriteContractResult<
  9681            typeof drippieGoerliABI,
  9682            string
  9683          >['request']['abi'],
  9684          TFunctionName,
  9685          TMode
  9686        > & { address?: Address; chainId?: TChainId }
  9687      : UseContractWriteConfig<typeof drippieGoerliABI, TFunctionName, TMode> & {
  9688          abi?: never
  9689          address?: never
  9690          chainId?: TChainId
  9691        } = {} as any
  9692  ) {
  9693    return useContractWrite<typeof drippieGoerliABI, TFunctionName, TMode>({
  9694      abi: drippieGoerliABI,
  9695      address: drippieGoerliAddress[5],
  9696      ...config,
  9697    } as any)
  9698  }
  9699  
  9700  /**
  9701   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieGoerliABI}__.
  9702   *
  9703   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50)
  9704   */
  9705  export function useDrippieGoerliEvent<TEventName extends string>(
  9706    config: Omit<
  9707      UseContractEventConfig<typeof drippieGoerliABI, TEventName>,
  9708      'abi' | 'address'
  9709    > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any
  9710  ) {
  9711    return useContractEvent({
  9712      abi: drippieGoerliABI,
  9713      address: drippieGoerliAddress[5],
  9714      ...config,
  9715    } as UseContractEventConfig<typeof drippieGoerliABI, TEventName>)
  9716  }
  9717  
  9718  /**
  9719   * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieOptimismGoerliABI}__.
  9720   *
  9721   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86)
  9722   */
  9723  export function useDrippieOptimismGoerliRead<
  9724    TFunctionName extends string,
  9725    TSelectData = ReadContractResult<
  9726      typeof drippieOptimismGoerliABI,
  9727      TFunctionName
  9728    >
  9729  >(
  9730    config: Omit<
  9731      UseContractReadConfig<
  9732        typeof drippieOptimismGoerliABI,
  9733        TFunctionName,
  9734        TSelectData
  9735      >,
  9736      'abi' | 'address'
  9737    > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any
  9738  ) {
  9739    return useContractRead({
  9740      abi: drippieOptimismGoerliABI,
  9741      address: drippieOptimismGoerliAddress[420],
  9742      ...config,
  9743    } as UseContractReadConfig<typeof drippieOptimismGoerliABI, TFunctionName, TSelectData>)
  9744  }
  9745  
  9746  /**
  9747   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__.
  9748   *
  9749   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86)
  9750   */
  9751  export function useDrippieOptimismGoerliWrite<
  9752    TFunctionName extends string,
  9753    TMode extends WriteContractMode = undefined,
  9754    TChainId extends number = keyof typeof drippieOptimismGoerliAddress
  9755  >(
  9756    config: TMode extends 'prepared'
  9757      ? UseContractWriteConfig<
  9758          PrepareWriteContractResult<
  9759            typeof drippieOptimismGoerliABI,
  9760            string
  9761          >['request']['abi'],
  9762          TFunctionName,
  9763          TMode
  9764        > & { address?: Address; chainId?: TChainId }
  9765      : UseContractWriteConfig<
  9766          typeof drippieOptimismGoerliABI,
  9767          TFunctionName,
  9768          TMode
  9769        > & {
  9770          abi?: never
  9771          address?: never
  9772          chainId?: TChainId
  9773        } = {} as any
  9774  ) {
  9775    return useContractWrite<
  9776      typeof drippieOptimismGoerliABI,
  9777      TFunctionName,
  9778      TMode
  9779    >({
  9780      abi: drippieOptimismGoerliABI,
  9781      address: drippieOptimismGoerliAddress[420],
  9782      ...config,
  9783    } as any)
  9784  }
  9785  
  9786  /**
  9787   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieOptimismGoerliABI}__.
  9788   *
  9789   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86)
  9790   */
  9791  export function useDrippieOptimismGoerliEvent<TEventName extends string>(
  9792    config: Omit<
  9793      UseContractEventConfig<typeof drippieOptimismGoerliABI, TEventName>,
  9794      'abi' | 'address'
  9795    > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any
  9796  ) {
  9797    return useContractEvent({
  9798      abi: drippieOptimismGoerliABI,
  9799      address: drippieOptimismGoerliAddress[420],
  9800      ...config,
  9801    } as UseContractEventConfig<typeof drippieOptimismGoerliABI, TEventName>)
  9802  }
  9803  
  9804  /**
  9805   * Wraps __{@link useContractRead}__ with `abi` set to __{@link easABI}__.
  9806   *
  9807   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4E0275Ea5a89e7a3c1B58411379D1a0eDdc5b088)
  9808   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5A633F1cc84B03F7588486CF2F386c102061E6e1)
  9809   */
  9810  export function useEasRead<
  9811    TFunctionName extends string,
  9812    TSelectData = ReadContractResult<typeof easABI, TFunctionName>
  9813  >(
  9814    config: Omit<
  9815      UseContractReadConfig<typeof easABI, TFunctionName, TSelectData>,
  9816      'abi' | 'address'
  9817    > & { chainId?: keyof typeof easAddress } = {} as any
  9818  ) {
  9819    const { chain } = useNetwork()
  9820    const defaultChainId = useChainId()
  9821    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9822    return useContractRead({
  9823      abi: easABI,
  9824      address: easAddress[chainId as keyof typeof easAddress],
  9825      ...config,
  9826    } as UseContractReadConfig<typeof easABI, TFunctionName, TSelectData>)
  9827  }
  9828  
  9829  /**
  9830   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link easABI}__.
  9831   *
  9832   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4E0275Ea5a89e7a3c1B58411379D1a0eDdc5b088)
  9833   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5A633F1cc84B03F7588486CF2F386c102061E6e1)
  9834   */
  9835  export function useEasWrite<
  9836    TFunctionName extends string,
  9837    TMode extends WriteContractMode = undefined,
  9838    TChainId extends number = keyof typeof easAddress
  9839  >(
  9840    config: TMode extends 'prepared'
  9841      ? UseContractWriteConfig<
  9842          PrepareWriteContractResult<typeof easABI, string>['request']['abi'],
  9843          TFunctionName,
  9844          TMode
  9845        > & { address?: Address; chainId?: TChainId }
  9846      : UseContractWriteConfig<typeof easABI, TFunctionName, TMode> & {
  9847          abi?: never
  9848          address?: never
  9849          chainId?: TChainId
  9850        } = {} as any
  9851  ) {
  9852    const { chain } = useNetwork()
  9853    const defaultChainId = useChainId()
  9854    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9855    return useContractWrite<typeof easABI, TFunctionName, TMode>({
  9856      abi: easABI,
  9857      address: easAddress[chainId as keyof typeof easAddress],
  9858      ...config,
  9859    } as any)
  9860  }
  9861  
  9862  /**
  9863   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link easABI}__.
  9864   *
  9865   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4E0275Ea5a89e7a3c1B58411379D1a0eDdc5b088)
  9866   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5A633F1cc84B03F7588486CF2F386c102061E6e1)
  9867   */
  9868  export function useEasEvent<TEventName extends string>(
  9869    config: Omit<
  9870      UseContractEventConfig<typeof easABI, TEventName>,
  9871      'abi' | 'address'
  9872    > & { chainId?: keyof typeof easAddress } = {} as any
  9873  ) {
  9874    const { chain } = useNetwork()
  9875    const defaultChainId = useChainId()
  9876    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9877    return useContractEvent({
  9878      abi: easABI,
  9879      address: easAddress[chainId as keyof typeof easAddress],
  9880      ...config,
  9881    } as UseContractEventConfig<typeof easABI, TEventName>)
  9882  }
  9883  
  9884  /**
  9885   * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__.
  9886   *
  9887   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F)
  9888   */
  9889  export function useGasPriceOracleRead<
  9890    TFunctionName extends string,
  9891    TSelectData = ReadContractResult<typeof gasPriceOracleABI, TFunctionName>
  9892  >(
  9893    config: Omit<
  9894      UseContractReadConfig<typeof gasPriceOracleABI, TFunctionName, TSelectData>,
  9895      'abi' | 'address'
  9896    > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any
  9897  ) {
  9898    return useContractRead({
  9899      abi: gasPriceOracleABI,
  9900      address: gasPriceOracleAddress[420],
  9901      ...config,
  9902    } as UseContractReadConfig<typeof gasPriceOracleABI, TFunctionName, TSelectData>)
  9903  }
  9904  
  9905  /**
  9906   * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__.
  9907   *
  9908   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015)
  9909   */
  9910  export function useL1BlockRead<
  9911    TFunctionName extends string,
  9912    TSelectData = ReadContractResult<typeof l1BlockABI, TFunctionName>
  9913  >(
  9914    config: Omit<
  9915      UseContractReadConfig<typeof l1BlockABI, TFunctionName, TSelectData>,
  9916      'abi' | 'address'
  9917    > & { chainId?: keyof typeof l1BlockAddress } = {} as any
  9918  ) {
  9919    return useContractRead({
  9920      abi: l1BlockABI,
  9921      address: l1BlockAddress[420],
  9922      ...config,
  9923    } as UseContractReadConfig<typeof l1BlockABI, TFunctionName, TSelectData>)
  9924  }
  9925  
  9926  /**
  9927   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1BlockABI}__.
  9928   *
  9929   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015)
  9930   */
  9931  export function useL1BlockWrite<
  9932    TFunctionName extends string,
  9933    TMode extends WriteContractMode = undefined,
  9934    TChainId extends number = keyof typeof l1BlockAddress
  9935  >(
  9936    config: TMode extends 'prepared'
  9937      ? UseContractWriteConfig<
  9938          PrepareWriteContractResult<typeof l1BlockABI, string>['request']['abi'],
  9939          TFunctionName,
  9940          TMode
  9941        > & { address?: Address; chainId?: TChainId }
  9942      : UseContractWriteConfig<typeof l1BlockABI, TFunctionName, TMode> & {
  9943          abi?: never
  9944          address?: never
  9945          chainId?: TChainId
  9946        } = {} as any
  9947  ) {
  9948    return useContractWrite<typeof l1BlockABI, TFunctionName, TMode>({
  9949      abi: l1BlockABI,
  9950      address: l1BlockAddress[420],
  9951      ...config,
  9952    } as any)
  9953  }
  9954  
  9955  /**
  9956   * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__.
  9957   *
  9958   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1)
  9959   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294)
  9960   */
  9961  export function useL1CrossDomainMessengerRead<
  9962    TFunctionName extends string,
  9963    TSelectData = ReadContractResult<
  9964      typeof l1CrossDomainMessengerABI,
  9965      TFunctionName
  9966    >
  9967  >(
  9968    config: Omit<
  9969      UseContractReadConfig<
  9970        typeof l1CrossDomainMessengerABI,
  9971        TFunctionName,
  9972        TSelectData
  9973      >,
  9974      'abi' | 'address'
  9975    > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any
  9976  ) {
  9977    const { chain } = useNetwork()
  9978    const defaultChainId = useChainId()
  9979    const chainId = config.chainId ?? chain?.id ?? defaultChainId
  9980    return useContractRead({
  9981      abi: l1CrossDomainMessengerABI,
  9982      address:
  9983        l1CrossDomainMessengerAddress[
  9984          chainId as keyof typeof l1CrossDomainMessengerAddress
  9985        ],
  9986      ...config,
  9987    } as UseContractReadConfig<typeof l1CrossDomainMessengerABI, TFunctionName, TSelectData>)
  9988  }
  9989  
  9990  /**
  9991   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__.
  9992   *
  9993   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1)
  9994   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294)
  9995   */
  9996  export function useL1CrossDomainMessengerWrite<
  9997    TFunctionName extends string,
  9998    TMode extends WriteContractMode = undefined,
  9999    TChainId extends number = keyof typeof l1CrossDomainMessengerAddress
 10000  >(
 10001    config: TMode extends 'prepared'
 10002      ? UseContractWriteConfig<
 10003          PrepareWriteContractResult<
 10004            typeof l1CrossDomainMessengerABI,
 10005            string
 10006          >['request']['abi'],
 10007          TFunctionName,
 10008          TMode
 10009        > & { address?: Address; chainId?: TChainId }
 10010      : UseContractWriteConfig<
 10011          typeof l1CrossDomainMessengerABI,
 10012          TFunctionName,
 10013          TMode
 10014        > & {
 10015          abi?: never
 10016          address?: never
 10017          chainId?: TChainId
 10018        } = {} as any
 10019  ) {
 10020    const { chain } = useNetwork()
 10021    const defaultChainId = useChainId()
 10022    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10023    return useContractWrite<
 10024      typeof l1CrossDomainMessengerABI,
 10025      TFunctionName,
 10026      TMode
 10027    >({
 10028      abi: l1CrossDomainMessengerABI,
 10029      address:
 10030        l1CrossDomainMessengerAddress[
 10031          chainId as keyof typeof l1CrossDomainMessengerAddress
 10032        ],
 10033      ...config,
 10034    } as any)
 10035  }
 10036  
 10037  /**
 10038   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__.
 10039   *
 10040   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1)
 10041   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294)
 10042   */
 10043  export function useL1CrossDomainMessengerEvent<TEventName extends string>(
 10044    config: Omit<
 10045      UseContractEventConfig<typeof l1CrossDomainMessengerABI, TEventName>,
 10046      'abi' | 'address'
 10047    > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any
 10048  ) {
 10049    const { chain } = useNetwork()
 10050    const defaultChainId = useChainId()
 10051    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10052    return useContractEvent({
 10053      abi: l1CrossDomainMessengerABI,
 10054      address:
 10055        l1CrossDomainMessengerAddress[
 10056          chainId as keyof typeof l1CrossDomainMessengerAddress
 10057        ],
 10058      ...config,
 10059    } as UseContractEventConfig<typeof l1CrossDomainMessengerABI, TEventName>)
 10060  }
 10061  
 10062  /**
 10063   * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__.
 10064   *
 10065   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D)
 10066   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9)
 10067   */
 10068  export function useL1Erc721BridgeRead<
 10069    TFunctionName extends string,
 10070    TSelectData = ReadContractResult<typeof l1Erc721BridgeABI, TFunctionName>
 10071  >(
 10072    config: Omit<
 10073      UseContractReadConfig<typeof l1Erc721BridgeABI, TFunctionName, TSelectData>,
 10074      'abi' | 'address'
 10075    > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any
 10076  ) {
 10077    const { chain } = useNetwork()
 10078    const defaultChainId = useChainId()
 10079    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10080    return useContractRead({
 10081      abi: l1Erc721BridgeABI,
 10082      address:
 10083        l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress],
 10084      ...config,
 10085    } as UseContractReadConfig<typeof l1Erc721BridgeABI, TFunctionName, TSelectData>)
 10086  }
 10087  
 10088  /**
 10089   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__.
 10090   *
 10091   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D)
 10092   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9)
 10093   */
 10094  export function useL1Erc721BridgeWrite<
 10095    TFunctionName extends string,
 10096    TMode extends WriteContractMode = undefined,
 10097    TChainId extends number = keyof typeof l1Erc721BridgeAddress
 10098  >(
 10099    config: TMode extends 'prepared'
 10100      ? UseContractWriteConfig<
 10101          PrepareWriteContractResult<
 10102            typeof l1Erc721BridgeABI,
 10103            string
 10104          >['request']['abi'],
 10105          TFunctionName,
 10106          TMode
 10107        > & { address?: Address; chainId?: TChainId }
 10108      : UseContractWriteConfig<typeof l1Erc721BridgeABI, TFunctionName, TMode> & {
 10109          abi?: never
 10110          address?: never
 10111          chainId?: TChainId
 10112        } = {} as any
 10113  ) {
 10114    const { chain } = useNetwork()
 10115    const defaultChainId = useChainId()
 10116    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10117    return useContractWrite<typeof l1Erc721BridgeABI, TFunctionName, TMode>({
 10118      abi: l1Erc721BridgeABI,
 10119      address:
 10120        l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress],
 10121      ...config,
 10122    } as any)
 10123  }
 10124  
 10125  /**
 10126   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__.
 10127   *
 10128   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D)
 10129   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9)
 10130   */
 10131  export function useL1Erc721BridgeEvent<TEventName extends string>(
 10132    config: Omit<
 10133      UseContractEventConfig<typeof l1Erc721BridgeABI, TEventName>,
 10134      'abi' | 'address'
 10135    > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any
 10136  ) {
 10137    const { chain } = useNetwork()
 10138    const defaultChainId = useChainId()
 10139    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10140    return useContractEvent({
 10141      abi: l1Erc721BridgeABI,
 10142      address:
 10143        l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress],
 10144      ...config,
 10145    } as UseContractEventConfig<typeof l1Erc721BridgeABI, TEventName>)
 10146  }
 10147  
 10148  /**
 10149   * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__.
 10150   *
 10151   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a)
 10152   */
 10153  export function useL1FeeVaultRead<
 10154    TFunctionName extends string,
 10155    TSelectData = ReadContractResult<typeof l1FeeVaultABI, TFunctionName>
 10156  >(
 10157    config: Omit<
 10158      UseContractReadConfig<typeof l1FeeVaultABI, TFunctionName, TSelectData>,
 10159      'abi' | 'address'
 10160    > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any
 10161  ) {
 10162    return useContractRead({
 10163      abi: l1FeeVaultABI,
 10164      address: l1FeeVaultAddress[420],
 10165      ...config,
 10166    } as UseContractReadConfig<typeof l1FeeVaultABI, TFunctionName, TSelectData>)
 10167  }
 10168  
 10169  /**
 10170   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__.
 10171   *
 10172   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a)
 10173   */
 10174  export function useL1FeeVaultWrite<
 10175    TFunctionName extends string,
 10176    TMode extends WriteContractMode = undefined,
 10177    TChainId extends number = keyof typeof l1FeeVaultAddress
 10178  >(
 10179    config: TMode extends 'prepared'
 10180      ? UseContractWriteConfig<
 10181          PrepareWriteContractResult<
 10182            typeof l1FeeVaultABI,
 10183            string
 10184          >['request']['abi'],
 10185          TFunctionName,
 10186          TMode
 10187        > & { address?: Address; chainId?: TChainId }
 10188      : UseContractWriteConfig<typeof l1FeeVaultABI, TFunctionName, TMode> & {
 10189          abi?: never
 10190          address?: never
 10191          chainId?: TChainId
 10192        } = {} as any
 10193  ) {
 10194    return useContractWrite<typeof l1FeeVaultABI, TFunctionName, TMode>({
 10195      abi: l1FeeVaultABI,
 10196      address: l1FeeVaultAddress[420],
 10197      ...config,
 10198    } as any)
 10199  }
 10200  
 10201  /**
 10202   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1FeeVaultABI}__.
 10203   *
 10204   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a)
 10205   */
 10206  export function useL1FeeVaultEvent<TEventName extends string>(
 10207    config: Omit<
 10208      UseContractEventConfig<typeof l1FeeVaultABI, TEventName>,
 10209      'abi' | 'address'
 10210    > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any
 10211  ) {
 10212    return useContractEvent({
 10213      abi: l1FeeVaultABI,
 10214      address: l1FeeVaultAddress[420],
 10215      ...config,
 10216    } as UseContractEventConfig<typeof l1FeeVaultABI, TEventName>)
 10217  }
 10218  
 10219  /**
 10220   * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__.
 10221   *
 10222   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1)
 10223   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8)
 10224   */
 10225  export function useL1StandardBridgeRead<
 10226    TFunctionName extends string,
 10227    TSelectData = ReadContractResult<typeof l1StandardBridgeABI, TFunctionName>
 10228  >(
 10229    config: Omit<
 10230      UseContractReadConfig<
 10231        typeof l1StandardBridgeABI,
 10232        TFunctionName,
 10233        TSelectData
 10234      >,
 10235      'abi' | 'address'
 10236    > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any
 10237  ) {
 10238    const { chain } = useNetwork()
 10239    const defaultChainId = useChainId()
 10240    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10241    return useContractRead({
 10242      abi: l1StandardBridgeABI,
 10243      address:
 10244        l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress],
 10245      ...config,
 10246    } as UseContractReadConfig<typeof l1StandardBridgeABI, TFunctionName, TSelectData>)
 10247  }
 10248  
 10249  /**
 10250   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__.
 10251   *
 10252   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1)
 10253   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8)
 10254   */
 10255  export function useL1StandardBridgeWrite<
 10256    TFunctionName extends string,
 10257    TMode extends WriteContractMode = undefined,
 10258    TChainId extends number = keyof typeof l1StandardBridgeAddress
 10259  >(
 10260    config: TMode extends 'prepared'
 10261      ? UseContractWriteConfig<
 10262          PrepareWriteContractResult<
 10263            typeof l1StandardBridgeABI,
 10264            string
 10265          >['request']['abi'],
 10266          TFunctionName,
 10267          TMode
 10268        > & { address?: Address; chainId?: TChainId }
 10269      : UseContractWriteConfig<
 10270          typeof l1StandardBridgeABI,
 10271          TFunctionName,
 10272          TMode
 10273        > & {
 10274          abi?: never
 10275          address?: never
 10276          chainId?: TChainId
 10277        } = {} as any
 10278  ) {
 10279    const { chain } = useNetwork()
 10280    const defaultChainId = useChainId()
 10281    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10282    return useContractWrite<typeof l1StandardBridgeABI, TFunctionName, TMode>({
 10283      abi: l1StandardBridgeABI,
 10284      address:
 10285        l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress],
 10286      ...config,
 10287    } as any)
 10288  }
 10289  
 10290  /**
 10291   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__.
 10292   *
 10293   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1)
 10294   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8)
 10295   */
 10296  export function useL1StandardBridgeEvent<TEventName extends string>(
 10297    config: Omit<
 10298      UseContractEventConfig<typeof l1StandardBridgeABI, TEventName>,
 10299      'abi' | 'address'
 10300    > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any
 10301  ) {
 10302    const { chain } = useNetwork()
 10303    const defaultChainId = useChainId()
 10304    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10305    return useContractEvent({
 10306      abi: l1StandardBridgeABI,
 10307      address:
 10308        l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress],
 10309      ...config,
 10310    } as UseContractEventConfig<typeof l1StandardBridgeABI, TEventName>)
 10311  }
 10312  
 10313  /**
 10314   * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__.
 10315   *
 10316   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007)
 10317   */
 10318  export function useL2CrossDomainMessengerRead<
 10319    TFunctionName extends string,
 10320    TSelectData = ReadContractResult<
 10321      typeof l2CrossDomainMessengerABI,
 10322      TFunctionName
 10323    >
 10324  >(
 10325    config: Omit<
 10326      UseContractReadConfig<
 10327        typeof l2CrossDomainMessengerABI,
 10328        TFunctionName,
 10329        TSelectData
 10330      >,
 10331      'abi' | 'address'
 10332    > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any
 10333  ) {
 10334    return useContractRead({
 10335      abi: l2CrossDomainMessengerABI,
 10336      address: l2CrossDomainMessengerAddress[420],
 10337      ...config,
 10338    } as UseContractReadConfig<typeof l2CrossDomainMessengerABI, TFunctionName, TSelectData>)
 10339  }
 10340  
 10341  /**
 10342   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__.
 10343   *
 10344   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007)
 10345   */
 10346  export function useL2CrossDomainMessengerWrite<
 10347    TFunctionName extends string,
 10348    TMode extends WriteContractMode = undefined,
 10349    TChainId extends number = keyof typeof l2CrossDomainMessengerAddress
 10350  >(
 10351    config: TMode extends 'prepared'
 10352      ? UseContractWriteConfig<
 10353          PrepareWriteContractResult<
 10354            typeof l2CrossDomainMessengerABI,
 10355            string
 10356          >['request']['abi'],
 10357          TFunctionName,
 10358          TMode
 10359        > & { address?: Address; chainId?: TChainId }
 10360      : UseContractWriteConfig<
 10361          typeof l2CrossDomainMessengerABI,
 10362          TFunctionName,
 10363          TMode
 10364        > & {
 10365          abi?: never
 10366          address?: never
 10367          chainId?: TChainId
 10368        } = {} as any
 10369  ) {
 10370    return useContractWrite<
 10371      typeof l2CrossDomainMessengerABI,
 10372      TFunctionName,
 10373      TMode
 10374    >({
 10375      abi: l2CrossDomainMessengerABI,
 10376      address: l2CrossDomainMessengerAddress[420],
 10377      ...config,
 10378    } as any)
 10379  }
 10380  
 10381  /**
 10382   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__.
 10383   *
 10384   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007)
 10385   */
 10386  export function useL2CrossDomainMessengerEvent<TEventName extends string>(
 10387    config: Omit<
 10388      UseContractEventConfig<typeof l2CrossDomainMessengerABI, TEventName>,
 10389      'abi' | 'address'
 10390    > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any
 10391  ) {
 10392    return useContractEvent({
 10393      abi: l2CrossDomainMessengerABI,
 10394      address: l2CrossDomainMessengerAddress[420],
 10395      ...config,
 10396    } as UseContractEventConfig<typeof l2CrossDomainMessengerABI, TEventName>)
 10397  }
 10398  
 10399  /**
 10400   * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__.
 10401   *
 10402   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014)
 10403   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014)
 10404   */
 10405  export function useL2Erc721BridgeRead<
 10406    TFunctionName extends string,
 10407    TSelectData = ReadContractResult<typeof l2Erc721BridgeABI, TFunctionName>
 10408  >(
 10409    config: Omit<
 10410      UseContractReadConfig<typeof l2Erc721BridgeABI, TFunctionName, TSelectData>,
 10411      'abi' | 'address'
 10412    > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any
 10413  ) {
 10414    const { chain } = useNetwork()
 10415    const defaultChainId = useChainId()
 10416    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10417    return useContractRead({
 10418      abi: l2Erc721BridgeABI,
 10419      address:
 10420        l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress],
 10421      ...config,
 10422    } as UseContractReadConfig<typeof l2Erc721BridgeABI, TFunctionName, TSelectData>)
 10423  }
 10424  
 10425  /**
 10426   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__.
 10427   *
 10428   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014)
 10429   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014)
 10430   */
 10431  export function useL2Erc721BridgeWrite<
 10432    TFunctionName extends string,
 10433    TMode extends WriteContractMode = undefined,
 10434    TChainId extends number = keyof typeof l2Erc721BridgeAddress
 10435  >(
 10436    config: TMode extends 'prepared'
 10437      ? UseContractWriteConfig<
 10438          PrepareWriteContractResult<
 10439            typeof l2Erc721BridgeABI,
 10440            string
 10441          >['request']['abi'],
 10442          TFunctionName,
 10443          TMode
 10444        > & { address?: Address; chainId?: TChainId }
 10445      : UseContractWriteConfig<typeof l2Erc721BridgeABI, TFunctionName, TMode> & {
 10446          abi?: never
 10447          address?: never
 10448          chainId?: TChainId
 10449        } = {} as any
 10450  ) {
 10451    const { chain } = useNetwork()
 10452    const defaultChainId = useChainId()
 10453    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10454    return useContractWrite<typeof l2Erc721BridgeABI, TFunctionName, TMode>({
 10455      abi: l2Erc721BridgeABI,
 10456      address:
 10457        l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress],
 10458      ...config,
 10459    } as any)
 10460  }
 10461  
 10462  /**
 10463   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__.
 10464   *
 10465   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014)
 10466   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014)
 10467   */
 10468  export function useL2Erc721BridgeEvent<TEventName extends string>(
 10469    config: Omit<
 10470      UseContractEventConfig<typeof l2Erc721BridgeABI, TEventName>,
 10471      'abi' | 'address'
 10472    > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any
 10473  ) {
 10474    const { chain } = useNetwork()
 10475    const defaultChainId = useChainId()
 10476    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10477    return useContractEvent({
 10478      abi: l2Erc721BridgeABI,
 10479      address:
 10480        l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress],
 10481      ...config,
 10482    } as UseContractEventConfig<typeof l2Erc721BridgeABI, TEventName>)
 10483  }
 10484  
 10485  /**
 10486   * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__.
 10487   *
 10488   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27)
 10489   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0)
 10490   */
 10491  export function useL2OutputOracleRead<
 10492    TFunctionName extends string,
 10493    TSelectData = ReadContractResult<typeof l2OutputOracleABI, TFunctionName>
 10494  >(
 10495    config: Omit<
 10496      UseContractReadConfig<typeof l2OutputOracleABI, TFunctionName, TSelectData>,
 10497      'abi' | 'address'
 10498    > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any
 10499  ) {
 10500    const { chain } = useNetwork()
 10501    const defaultChainId = useChainId()
 10502    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10503    return useContractRead({
 10504      abi: l2OutputOracleABI,
 10505      address:
 10506        l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress],
 10507      ...config,
 10508    } as UseContractReadConfig<typeof l2OutputOracleABI, TFunctionName, TSelectData>)
 10509  }
 10510  
 10511  /**
 10512   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__.
 10513   *
 10514   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27)
 10515   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0)
 10516   */
 10517  export function useL2OutputOracleWrite<
 10518    TFunctionName extends string,
 10519    TMode extends WriteContractMode = undefined,
 10520    TChainId extends number = keyof typeof l2OutputOracleAddress
 10521  >(
 10522    config: TMode extends 'prepared'
 10523      ? UseContractWriteConfig<
 10524          PrepareWriteContractResult<
 10525            typeof l2OutputOracleABI,
 10526            string
 10527          >['request']['abi'],
 10528          TFunctionName,
 10529          TMode
 10530        > & { address?: Address; chainId?: TChainId }
 10531      : UseContractWriteConfig<typeof l2OutputOracleABI, TFunctionName, TMode> & {
 10532          abi?: never
 10533          address?: never
 10534          chainId?: TChainId
 10535        } = {} as any
 10536  ) {
 10537    const { chain } = useNetwork()
 10538    const defaultChainId = useChainId()
 10539    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10540    return useContractWrite<typeof l2OutputOracleABI, TFunctionName, TMode>({
 10541      abi: l2OutputOracleABI,
 10542      address:
 10543        l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress],
 10544      ...config,
 10545    } as any)
 10546  }
 10547  
 10548  /**
 10549   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__.
 10550   *
 10551   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27)
 10552   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0)
 10553   */
 10554  export function useL2OutputOracleEvent<TEventName extends string>(
 10555    config: Omit<
 10556      UseContractEventConfig<typeof l2OutputOracleABI, TEventName>,
 10557      'abi' | 'address'
 10558    > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any
 10559  ) {
 10560    const { chain } = useNetwork()
 10561    const defaultChainId = useChainId()
 10562    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10563    return useContractEvent({
 10564      abi: l2OutputOracleABI,
 10565      address:
 10566        l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress],
 10567      ...config,
 10568    } as UseContractEventConfig<typeof l2OutputOracleABI, TEventName>)
 10569  }
 10570  
 10571  /**
 10572   * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2StandardBridgeABI}__.
 10573   *
 10574   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010)
 10575   */
 10576  export function useL2StandardBridgeRead<
 10577    TFunctionName extends string,
 10578    TSelectData = ReadContractResult<typeof l2StandardBridgeABI, TFunctionName>
 10579  >(
 10580    config: Omit<
 10581      UseContractReadConfig<
 10582        typeof l2StandardBridgeABI,
 10583        TFunctionName,
 10584        TSelectData
 10585      >,
 10586      'abi' | 'address'
 10587    > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any
 10588  ) {
 10589    return useContractRead({
 10590      abi: l2StandardBridgeABI,
 10591      address: l2StandardBridgeAddress[420],
 10592      ...config,
 10593    } as UseContractReadConfig<typeof l2StandardBridgeABI, TFunctionName, TSelectData>)
 10594  }
 10595  
 10596  /**
 10597   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__.
 10598   *
 10599   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010)
 10600   */
 10601  export function useL2StandardBridgeWrite<
 10602    TFunctionName extends string,
 10603    TMode extends WriteContractMode = undefined,
 10604    TChainId extends number = keyof typeof l2StandardBridgeAddress
 10605  >(
 10606    config: TMode extends 'prepared'
 10607      ? UseContractWriteConfig<
 10608          PrepareWriteContractResult<
 10609            typeof l2StandardBridgeABI,
 10610            string
 10611          >['request']['abi'],
 10612          TFunctionName,
 10613          TMode
 10614        > & { address?: Address; chainId?: TChainId }
 10615      : UseContractWriteConfig<
 10616          typeof l2StandardBridgeABI,
 10617          TFunctionName,
 10618          TMode
 10619        > & {
 10620          abi?: never
 10621          address?: never
 10622          chainId?: TChainId
 10623        } = {} as any
 10624  ) {
 10625    return useContractWrite<typeof l2StandardBridgeABI, TFunctionName, TMode>({
 10626      abi: l2StandardBridgeABI,
 10627      address: l2StandardBridgeAddress[420],
 10628      ...config,
 10629    } as any)
 10630  }
 10631  
 10632  /**
 10633   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2StandardBridgeABI}__.
 10634   *
 10635   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010)
 10636   */
 10637  export function useL2StandardBridgeEvent<TEventName extends string>(
 10638    config: Omit<
 10639      UseContractEventConfig<typeof l2StandardBridgeABI, TEventName>,
 10640      'abi' | 'address'
 10641    > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any
 10642  ) {
 10643    return useContractEvent({
 10644      abi: l2StandardBridgeABI,
 10645      address: l2StandardBridgeAddress[420],
 10646      ...config,
 10647    } as UseContractEventConfig<typeof l2StandardBridgeABI, TEventName>)
 10648  }
 10649  
 10650  /**
 10651   * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__.
 10652   *
 10653   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016)
 10654   */
 10655  export function useL2ToL1MessagePasserRead<
 10656    TFunctionName extends string,
 10657    TSelectData = ReadContractResult<typeof l2ToL1MessagePasserABI, TFunctionName>
 10658  >(
 10659    config: Omit<
 10660      UseContractReadConfig<
 10661        typeof l2ToL1MessagePasserABI,
 10662        TFunctionName,
 10663        TSelectData
 10664      >,
 10665      'abi' | 'address'
 10666    > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any
 10667  ) {
 10668    return useContractRead({
 10669      abi: l2ToL1MessagePasserABI,
 10670      address: l2ToL1MessagePasserAddress[420],
 10671      ...config,
 10672    } as UseContractReadConfig<typeof l2ToL1MessagePasserABI, TFunctionName, TSelectData>)
 10673  }
 10674  
 10675  /**
 10676   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__.
 10677   *
 10678   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016)
 10679   */
 10680  export function useL2ToL1MessagePasserWrite<
 10681    TFunctionName extends string,
 10682    TMode extends WriteContractMode = undefined,
 10683    TChainId extends number = keyof typeof l2ToL1MessagePasserAddress
 10684  >(
 10685    config: TMode extends 'prepared'
 10686      ? UseContractWriteConfig<
 10687          PrepareWriteContractResult<
 10688            typeof l2ToL1MessagePasserABI,
 10689            string
 10690          >['request']['abi'],
 10691          TFunctionName,
 10692          TMode
 10693        > & { address?: Address; chainId?: TChainId }
 10694      : UseContractWriteConfig<
 10695          typeof l2ToL1MessagePasserABI,
 10696          TFunctionName,
 10697          TMode
 10698        > & {
 10699          abi?: never
 10700          address?: never
 10701          chainId?: TChainId
 10702        } = {} as any
 10703  ) {
 10704    return useContractWrite<typeof l2ToL1MessagePasserABI, TFunctionName, TMode>({
 10705      abi: l2ToL1MessagePasserABI,
 10706      address: l2ToL1MessagePasserAddress[420],
 10707      ...config,
 10708    } as any)
 10709  }
 10710  
 10711  /**
 10712   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__.
 10713   *
 10714   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016)
 10715   */
 10716  export function useL2ToL1MessagePasserEvent<TEventName extends string>(
 10717    config: Omit<
 10718      UseContractEventConfig<typeof l2ToL1MessagePasserABI, TEventName>,
 10719      'abi' | 'address'
 10720    > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any
 10721  ) {
 10722    return useContractEvent({
 10723      abi: l2ToL1MessagePasserABI,
 10724      address: l2ToL1MessagePasserAddress[420],
 10725      ...config,
 10726    } as UseContractEventConfig<typeof l2ToL1MessagePasserABI, TEventName>)
 10727  }
 10728  
 10729  /**
 10730   * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__.
 10731   *
 10732   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005)
 10733   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76)
 10734   */
 10735  export function useMintManagerRead<
 10736    TFunctionName extends string,
 10737    TSelectData = ReadContractResult<typeof mintManagerABI, TFunctionName>
 10738  >(
 10739    config: Omit<
 10740      UseContractReadConfig<typeof mintManagerABI, TFunctionName, TSelectData>,
 10741      'abi' | 'address'
 10742    > & { chainId?: keyof typeof mintManagerAddress } = {} as any
 10743  ) {
 10744    const { chain } = useNetwork()
 10745    const defaultChainId = useChainId()
 10746    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10747    return useContractRead({
 10748      abi: mintManagerABI,
 10749      address: mintManagerAddress[chainId as keyof typeof mintManagerAddress],
 10750      ...config,
 10751    } as UseContractReadConfig<typeof mintManagerABI, TFunctionName, TSelectData>)
 10752  }
 10753  
 10754  /**
 10755   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__.
 10756   *
 10757   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005)
 10758   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76)
 10759   */
 10760  export function useMintManagerWrite<
 10761    TFunctionName extends string,
 10762    TMode extends WriteContractMode = undefined,
 10763    TChainId extends number = keyof typeof mintManagerAddress
 10764  >(
 10765    config: TMode extends 'prepared'
 10766      ? UseContractWriteConfig<
 10767          PrepareWriteContractResult<
 10768            typeof mintManagerABI,
 10769            string
 10770          >['request']['abi'],
 10771          TFunctionName,
 10772          TMode
 10773        > & { address?: Address; chainId?: TChainId }
 10774      : UseContractWriteConfig<typeof mintManagerABI, TFunctionName, TMode> & {
 10775          abi?: never
 10776          address?: never
 10777          chainId?: TChainId
 10778        } = {} as any
 10779  ) {
 10780    const { chain } = useNetwork()
 10781    const defaultChainId = useChainId()
 10782    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10783    return useContractWrite<typeof mintManagerABI, TFunctionName, TMode>({
 10784      abi: mintManagerABI,
 10785      address: mintManagerAddress[chainId as keyof typeof mintManagerAddress],
 10786      ...config,
 10787    } as any)
 10788  }
 10789  
 10790  /**
 10791   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link mintManagerABI}__.
 10792   *
 10793   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005)
 10794   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76)
 10795   */
 10796  export function useMintManagerEvent<TEventName extends string>(
 10797    config: Omit<
 10798      UseContractEventConfig<typeof mintManagerABI, TEventName>,
 10799      'abi' | 'address'
 10800    > & { chainId?: keyof typeof mintManagerAddress } = {} as any
 10801  ) {
 10802    const { chain } = useNetwork()
 10803    const defaultChainId = useChainId()
 10804    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 10805    return useContractEvent({
 10806      abi: mintManagerABI,
 10807      address: mintManagerAddress[chainId as keyof typeof mintManagerAddress],
 10808      ...config,
 10809    } as UseContractEventConfig<typeof mintManagerABI, TEventName>)
 10810  }
 10811  
 10812  /**
 10813   * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__.
 10814   *
 10815   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012)
 10816   */
 10817  export function useOptimismMintableErc20FactoryRead<
 10818    TFunctionName extends string,
 10819    TSelectData = ReadContractResult<
 10820      typeof optimismMintableErc20FactoryABI,
 10821      TFunctionName
 10822    >
 10823  >(
 10824    config: Omit<
 10825      UseContractReadConfig<
 10826        typeof optimismMintableErc20FactoryABI,
 10827        TFunctionName,
 10828        TSelectData
 10829      >,
 10830      'abi' | 'address'
 10831    > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any
 10832  ) {
 10833    return useContractRead({
 10834      abi: optimismMintableErc20FactoryABI,
 10835      address: optimismMintableErc20FactoryAddress[1],
 10836      ...config,
 10837    } as UseContractReadConfig<typeof optimismMintableErc20FactoryABI, TFunctionName, TSelectData>)
 10838  }
 10839  
 10840  /**
 10841   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__.
 10842   *
 10843   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012)
 10844   */
 10845  export function useOptimismMintableErc20FactoryWrite<
 10846    TFunctionName extends string,
 10847    TMode extends WriteContractMode = undefined,
 10848    TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress
 10849  >(
 10850    config: TMode extends 'prepared'
 10851      ? UseContractWriteConfig<
 10852          PrepareWriteContractResult<
 10853            typeof optimismMintableErc20FactoryABI,
 10854            string
 10855          >['request']['abi'],
 10856          TFunctionName,
 10857          TMode
 10858        > & { address?: Address; chainId?: TChainId }
 10859      : UseContractWriteConfig<
 10860          typeof optimismMintableErc20FactoryABI,
 10861          TFunctionName,
 10862          TMode
 10863        > & {
 10864          abi?: never
 10865          address?: never
 10866          chainId?: TChainId
 10867        } = {} as any
 10868  ) {
 10869    return useContractWrite<
 10870      typeof optimismMintableErc20FactoryABI,
 10871      TFunctionName,
 10872      TMode
 10873    >({
 10874      abi: optimismMintableErc20FactoryABI,
 10875      address: optimismMintableErc20FactoryAddress[1],
 10876      ...config,
 10877    } as any)
 10878  }
 10879  
 10880  /**
 10881   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__.
 10882   *
 10883   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012)
 10884   */
 10885  export function useOptimismMintableErc20FactoryEvent<TEventName extends string>(
 10886    config: Omit<
 10887      UseContractEventConfig<typeof optimismMintableErc20FactoryABI, TEventName>,
 10888      'abi' | 'address'
 10889    > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any
 10890  ) {
 10891    return useContractEvent({
 10892      abi: optimismMintableErc20FactoryABI,
 10893      address: optimismMintableErc20FactoryAddress[1],
 10894      ...config,
 10895    } as UseContractEventConfig<typeof optimismMintableErc20FactoryABI, TEventName>)
 10896  }
 10897  
 10898  /**
 10899   * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryGoerliABI}__.
 10900   *
 10901   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012)
 10902   */
 10903  export function useOptimismMintableErc20FactoryGoerliRead<
 10904    TFunctionName extends string,
 10905    TSelectData = ReadContractResult<
 10906      typeof optimismMintableErc20FactoryGoerliABI,
 10907      TFunctionName
 10908    >
 10909  >(
 10910    config: Omit<
 10911      UseContractReadConfig<
 10912        typeof optimismMintableErc20FactoryGoerliABI,
 10913        TFunctionName,
 10914        TSelectData
 10915      >,
 10916      'abi' | 'address'
 10917    > & {
 10918      chainId?: keyof typeof optimismMintableErc20FactoryGoerliAddress
 10919    } = {} as any
 10920  ) {
 10921    return useContractRead({
 10922      abi: optimismMintableErc20FactoryGoerliABI,
 10923      address: optimismMintableErc20FactoryGoerliAddress[5],
 10924      ...config,
 10925    } as UseContractReadConfig<typeof optimismMintableErc20FactoryGoerliABI, TFunctionName, TSelectData>)
 10926  }
 10927  
 10928  /**
 10929   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryGoerliABI}__.
 10930   *
 10931   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012)
 10932   */
 10933  export function useOptimismMintableErc20FactoryGoerliWrite<
 10934    TFunctionName extends string,
 10935    TMode extends WriteContractMode = undefined,
 10936    TChainId extends number = keyof typeof optimismMintableErc20FactoryGoerliAddress
 10937  >(
 10938    config: TMode extends 'prepared'
 10939      ? UseContractWriteConfig<
 10940          PrepareWriteContractResult<
 10941            typeof optimismMintableErc20FactoryGoerliABI,
 10942            string
 10943          >['request']['abi'],
 10944          TFunctionName,
 10945          TMode
 10946        > & { address?: Address; chainId?: TChainId }
 10947      : UseContractWriteConfig<
 10948          typeof optimismMintableErc20FactoryGoerliABI,
 10949          TFunctionName,
 10950          TMode
 10951        > & {
 10952          abi?: never
 10953          address?: never
 10954          chainId?: TChainId
 10955        } = {} as any
 10956  ) {
 10957    return useContractWrite<
 10958      typeof optimismMintableErc20FactoryGoerliABI,
 10959      TFunctionName,
 10960      TMode
 10961    >({
 10962      abi: optimismMintableErc20FactoryGoerliABI,
 10963      address: optimismMintableErc20FactoryGoerliAddress[5],
 10964      ...config,
 10965    } as any)
 10966  }
 10967  
 10968  /**
 10969   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryGoerliABI}__.
 10970   *
 10971   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012)
 10972   */
 10973  export function useOptimismMintableErc20FactoryGoerliEvent<
 10974    TEventName extends string
 10975  >(
 10976    config: Omit<
 10977      UseContractEventConfig<
 10978        typeof optimismMintableErc20FactoryGoerliABI,
 10979        TEventName
 10980      >,
 10981      'abi' | 'address'
 10982    > & {
 10983      chainId?: keyof typeof optimismMintableErc20FactoryGoerliAddress
 10984    } = {} as any
 10985  ) {
 10986    return useContractEvent({
 10987      abi: optimismMintableErc20FactoryGoerliABI,
 10988      address: optimismMintableErc20FactoryGoerliAddress[5],
 10989      ...config,
 10990    } as UseContractEventConfig<typeof optimismMintableErc20FactoryGoerliABI, TEventName>)
 10991  }
 10992  
 10993  /**
 10994   * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryOptimismGoerliABI}__.
 10995   *
 10996   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012)
 10997   */
 10998  export function useOptimismMintableErc20FactoryOptimismGoerliRead<
 10999    TFunctionName extends string,
 11000    TSelectData = ReadContractResult<
 11001      typeof optimismMintableErc20FactoryOptimismGoerliABI,
 11002      TFunctionName
 11003    >
 11004  >(
 11005    config: Omit<
 11006      UseContractReadConfig<
 11007        typeof optimismMintableErc20FactoryOptimismGoerliABI,
 11008        TFunctionName,
 11009        TSelectData
 11010      >,
 11011      'abi' | 'address'
 11012    > & {
 11013      chainId?: keyof typeof optimismMintableErc20FactoryOptimismGoerliAddress
 11014    } = {} as any
 11015  ) {
 11016    return useContractRead({
 11017      abi: optimismMintableErc20FactoryOptimismGoerliABI,
 11018      address: optimismMintableErc20FactoryOptimismGoerliAddress[420],
 11019      ...config,
 11020    } as UseContractReadConfig<typeof optimismMintableErc20FactoryOptimismGoerliABI, TFunctionName, TSelectData>)
 11021  }
 11022  
 11023  /**
 11024   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryOptimismGoerliABI}__.
 11025   *
 11026   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012)
 11027   */
 11028  export function useOptimismMintableErc20FactoryOptimismGoerliWrite<
 11029    TFunctionName extends string,
 11030    TMode extends WriteContractMode = undefined,
 11031    TChainId extends number = keyof typeof optimismMintableErc20FactoryOptimismGoerliAddress
 11032  >(
 11033    config: TMode extends 'prepared'
 11034      ? UseContractWriteConfig<
 11035          PrepareWriteContractResult<
 11036            typeof optimismMintableErc20FactoryOptimismGoerliABI,
 11037            string
 11038          >['request']['abi'],
 11039          TFunctionName,
 11040          TMode
 11041        > & { address?: Address; chainId?: TChainId }
 11042      : UseContractWriteConfig<
 11043          typeof optimismMintableErc20FactoryOptimismGoerliABI,
 11044          TFunctionName,
 11045          TMode
 11046        > & {
 11047          abi?: never
 11048          address?: never
 11049          chainId?: TChainId
 11050        } = {} as any
 11051  ) {
 11052    return useContractWrite<
 11053      typeof optimismMintableErc20FactoryOptimismGoerliABI,
 11054      TFunctionName,
 11055      TMode
 11056    >({
 11057      abi: optimismMintableErc20FactoryOptimismGoerliABI,
 11058      address: optimismMintableErc20FactoryOptimismGoerliAddress[420],
 11059      ...config,
 11060    } as any)
 11061  }
 11062  
 11063  /**
 11064   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryOptimismGoerliABI}__.
 11065   *
 11066   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012)
 11067   */
 11068  export function useOptimismMintableErc20FactoryOptimismGoerliEvent<
 11069    TEventName extends string
 11070  >(
 11071    config: Omit<
 11072      UseContractEventConfig<
 11073        typeof optimismMintableErc20FactoryOptimismGoerliABI,
 11074        TEventName
 11075      >,
 11076      'abi' | 'address'
 11077    > & {
 11078      chainId?: keyof typeof optimismMintableErc20FactoryOptimismGoerliAddress
 11079    } = {} as any
 11080  ) {
 11081    return useContractEvent({
 11082      abi: optimismMintableErc20FactoryOptimismGoerliABI,
 11083      address: optimismMintableErc20FactoryOptimismGoerliAddress[420],
 11084      ...config,
 11085    } as UseContractEventConfig<typeof optimismMintableErc20FactoryOptimismGoerliABI, TEventName>)
 11086  }
 11087  
 11088  /**
 11089   * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__.
 11090   *
 11091   * [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017)
 11092   */
 11093  export function useOptimismMintableErc721FactoryRead<
 11094    TFunctionName extends string,
 11095    TSelectData = ReadContractResult<
 11096      typeof optimismMintableErc721FactoryABI,
 11097      TFunctionName
 11098    >
 11099  >(
 11100    config: Omit<
 11101      UseContractReadConfig<
 11102        typeof optimismMintableErc721FactoryABI,
 11103        TFunctionName,
 11104        TSelectData
 11105      >,
 11106      'abi' | 'address'
 11107    > & {
 11108      chainId?: keyof typeof optimismMintableErc721FactoryAddress
 11109    } = {} as any
 11110  ) {
 11111    return useContractRead({
 11112      abi: optimismMintableErc721FactoryABI,
 11113      address: optimismMintableErc721FactoryAddress[10],
 11114      ...config,
 11115    } as UseContractReadConfig<typeof optimismMintableErc721FactoryABI, TFunctionName, TSelectData>)
 11116  }
 11117  
 11118  /**
 11119   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__.
 11120   *
 11121   * [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017)
 11122   */
 11123  export function useOptimismMintableErc721FactoryWrite<
 11124    TFunctionName extends string,
 11125    TMode extends WriteContractMode = undefined,
 11126    TChainId extends number = keyof typeof optimismMintableErc721FactoryAddress
 11127  >(
 11128    config: TMode extends 'prepared'
 11129      ? UseContractWriteConfig<
 11130          PrepareWriteContractResult<
 11131            typeof optimismMintableErc721FactoryABI,
 11132            string
 11133          >['request']['abi'],
 11134          TFunctionName,
 11135          TMode
 11136        > & { address?: Address; chainId?: TChainId }
 11137      : UseContractWriteConfig<
 11138          typeof optimismMintableErc721FactoryABI,
 11139          TFunctionName,
 11140          TMode
 11141        > & {
 11142          abi?: never
 11143          address?: never
 11144          chainId?: TChainId
 11145        } = {} as any
 11146  ) {
 11147    return useContractWrite<
 11148      typeof optimismMintableErc721FactoryABI,
 11149      TFunctionName,
 11150      TMode
 11151    >({
 11152      abi: optimismMintableErc721FactoryABI,
 11153      address: optimismMintableErc721FactoryAddress[10],
 11154      ...config,
 11155    } as any)
 11156  }
 11157  
 11158  /**
 11159   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__.
 11160   *
 11161   * [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017)
 11162   */
 11163  export function useOptimismMintableErc721FactoryEvent<
 11164    TEventName extends string
 11165  >(
 11166    config: Omit<
 11167      UseContractEventConfig<typeof optimismMintableErc721FactoryABI, TEventName>,
 11168      'abi' | 'address'
 11169    > & {
 11170      chainId?: keyof typeof optimismMintableErc721FactoryAddress
 11171    } = {} as any
 11172  ) {
 11173    return useContractEvent({
 11174      abi: optimismMintableErc721FactoryABI,
 11175      address: optimismMintableErc721FactoryAddress[10],
 11176      ...config,
 11177    } as UseContractEventConfig<typeof optimismMintableErc721FactoryABI, TEventName>)
 11178  }
 11179  
 11180  /**
 11181   * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__.
 11182   *
 11183   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017)
 11184   */
 11185  export function useOptimismMintableErc721FactoryOptimismGoerliRead<
 11186    TFunctionName extends string,
 11187    TSelectData = ReadContractResult<
 11188      typeof optimismMintableErc721FactoryOptimismGoerliABI,
 11189      TFunctionName
 11190    >
 11191  >(
 11192    config: Omit<
 11193      UseContractReadConfig<
 11194        typeof optimismMintableErc721FactoryOptimismGoerliABI,
 11195        TFunctionName,
 11196        TSelectData
 11197      >,
 11198      'abi' | 'address'
 11199    > & {
 11200      chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress
 11201    } = {} as any
 11202  ) {
 11203    return useContractRead({
 11204      abi: optimismMintableErc721FactoryOptimismGoerliABI,
 11205      address: optimismMintableErc721FactoryOptimismGoerliAddress[420],
 11206      ...config,
 11207    } as UseContractReadConfig<typeof optimismMintableErc721FactoryOptimismGoerliABI, TFunctionName, TSelectData>)
 11208  }
 11209  
 11210  /**
 11211   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__.
 11212   *
 11213   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017)
 11214   */
 11215  export function useOptimismMintableErc721FactoryOptimismGoerliWrite<
 11216    TFunctionName extends string,
 11217    TMode extends WriteContractMode = undefined,
 11218    TChainId extends number = keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress
 11219  >(
 11220    config: TMode extends 'prepared'
 11221      ? UseContractWriteConfig<
 11222          PrepareWriteContractResult<
 11223            typeof optimismMintableErc721FactoryOptimismGoerliABI,
 11224            string
 11225          >['request']['abi'],
 11226          TFunctionName,
 11227          TMode
 11228        > & { address?: Address; chainId?: TChainId }
 11229      : UseContractWriteConfig<
 11230          typeof optimismMintableErc721FactoryOptimismGoerliABI,
 11231          TFunctionName,
 11232          TMode
 11233        > & {
 11234          abi?: never
 11235          address?: never
 11236          chainId?: TChainId
 11237        } = {} as any
 11238  ) {
 11239    return useContractWrite<
 11240      typeof optimismMintableErc721FactoryOptimismGoerliABI,
 11241      TFunctionName,
 11242      TMode
 11243    >({
 11244      abi: optimismMintableErc721FactoryOptimismGoerliABI,
 11245      address: optimismMintableErc721FactoryOptimismGoerliAddress[420],
 11246      ...config,
 11247    } as any)
 11248  }
 11249  
 11250  /**
 11251   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__.
 11252   *
 11253   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017)
 11254   */
 11255  export function useOptimismMintableErc721FactoryOptimismGoerliEvent<
 11256    TEventName extends string
 11257  >(
 11258    config: Omit<
 11259      UseContractEventConfig<
 11260        typeof optimismMintableErc721FactoryOptimismGoerliABI,
 11261        TEventName
 11262      >,
 11263      'abi' | 'address'
 11264    > & {
 11265      chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress
 11266    } = {} as any
 11267  ) {
 11268    return useContractEvent({
 11269      abi: optimismMintableErc721FactoryOptimismGoerliABI,
 11270      address: optimismMintableErc721FactoryOptimismGoerliAddress[420],
 11271      ...config,
 11272    } as UseContractEventConfig<typeof optimismMintableErc721FactoryOptimismGoerliABI, TEventName>)
 11273  }
 11274  
 11275  /**
 11276   * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__.
 11277   *
 11278   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed)
 11279   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383)
 11280   */
 11281  export function useOptimismPortalRead<
 11282    TFunctionName extends string,
 11283    TSelectData = ReadContractResult<typeof optimismPortalABI, TFunctionName>
 11284  >(
 11285    config: Omit<
 11286      UseContractReadConfig<typeof optimismPortalABI, TFunctionName, TSelectData>,
 11287      'abi' | 'address'
 11288    > & { chainId?: keyof typeof optimismPortalAddress } = {} as any
 11289  ) {
 11290    const { chain } = useNetwork()
 11291    const defaultChainId = useChainId()
 11292    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11293    return useContractRead({
 11294      abi: optimismPortalABI,
 11295      address:
 11296        optimismPortalAddress[chainId as keyof typeof optimismPortalAddress],
 11297      ...config,
 11298    } as UseContractReadConfig<typeof optimismPortalABI, TFunctionName, TSelectData>)
 11299  }
 11300  
 11301  /**
 11302   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__.
 11303   *
 11304   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed)
 11305   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383)
 11306   */
 11307  export function useOptimismPortalWrite<
 11308    TFunctionName extends string,
 11309    TMode extends WriteContractMode = undefined,
 11310    TChainId extends number = keyof typeof optimismPortalAddress
 11311  >(
 11312    config: TMode extends 'prepared'
 11313      ? UseContractWriteConfig<
 11314          PrepareWriteContractResult<
 11315            typeof optimismPortalABI,
 11316            string
 11317          >['request']['abi'],
 11318          TFunctionName,
 11319          TMode
 11320        > & { address?: Address; chainId?: TChainId }
 11321      : UseContractWriteConfig<typeof optimismPortalABI, TFunctionName, TMode> & {
 11322          abi?: never
 11323          address?: never
 11324          chainId?: TChainId
 11325        } = {} as any
 11326  ) {
 11327    const { chain } = useNetwork()
 11328    const defaultChainId = useChainId()
 11329    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11330    return useContractWrite<typeof optimismPortalABI, TFunctionName, TMode>({
 11331      abi: optimismPortalABI,
 11332      address:
 11333        optimismPortalAddress[chainId as keyof typeof optimismPortalAddress],
 11334      ...config,
 11335    } as any)
 11336  }
 11337  
 11338  /**
 11339   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__.
 11340   *
 11341   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed)
 11342   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383)
 11343   */
 11344  export function useOptimismPortalEvent<TEventName extends string>(
 11345    config: Omit<
 11346      UseContractEventConfig<typeof optimismPortalABI, TEventName>,
 11347      'abi' | 'address'
 11348    > & { chainId?: keyof typeof optimismPortalAddress } = {} as any
 11349  ) {
 11350    const { chain } = useNetwork()
 11351    const defaultChainId = useChainId()
 11352    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11353    return useContractEvent({
 11354      abi: optimismPortalABI,
 11355      address:
 11356        optimismPortalAddress[chainId as keyof typeof optimismPortalAddress],
 11357      ...config,
 11358    } as UseContractEventConfig<typeof optimismPortalABI, TEventName>)
 11359  }
 11360  
 11361  /**
 11362   * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__.
 11363   *
 11364   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
 11365   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
 11366   */
 11367  export function useOptimistRead<
 11368    TFunctionName extends string,
 11369    TSelectData = ReadContractResult<typeof optimistABI, TFunctionName>
 11370  >(
 11371    config: Omit<
 11372      UseContractReadConfig<typeof optimistABI, TFunctionName, TSelectData>,
 11373      'abi' | 'address'
 11374    > & { chainId?: keyof typeof optimistAddress } = {} as any
 11375  ) {
 11376    const { chain } = useNetwork()
 11377    const defaultChainId = useChainId()
 11378    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11379    return useContractRead({
 11380      abi: optimistABI,
 11381      address: optimistAddress[chainId as keyof typeof optimistAddress],
 11382      ...config,
 11383    } as UseContractReadConfig<typeof optimistABI, TFunctionName, TSelectData>)
 11384  }
 11385  
 11386  /**
 11387   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistABI}__.
 11388   *
 11389   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
 11390   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
 11391   */
 11392  export function useOptimistWrite<
 11393    TFunctionName extends string,
 11394    TMode extends WriteContractMode = undefined,
 11395    TChainId extends number = keyof typeof optimistAddress
 11396  >(
 11397    config: TMode extends 'prepared'
 11398      ? UseContractWriteConfig<
 11399          PrepareWriteContractResult<
 11400            typeof optimistABI,
 11401            string
 11402          >['request']['abi'],
 11403          TFunctionName,
 11404          TMode
 11405        > & { address?: Address; chainId?: TChainId }
 11406      : UseContractWriteConfig<typeof optimistABI, TFunctionName, TMode> & {
 11407          abi?: never
 11408          address?: never
 11409          chainId?: TChainId
 11410        } = {} as any
 11411  ) {
 11412    const { chain } = useNetwork()
 11413    const defaultChainId = useChainId()
 11414    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11415    return useContractWrite<typeof optimistABI, TFunctionName, TMode>({
 11416      abi: optimistABI,
 11417      address: optimistAddress[chainId as keyof typeof optimistAddress],
 11418      ...config,
 11419    } as any)
 11420  }
 11421  
 11422  /**
 11423   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistABI}__.
 11424   *
 11425   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
 11426   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5)
 11427   */
 11428  export function useOptimistEvent<TEventName extends string>(
 11429    config: Omit<
 11430      UseContractEventConfig<typeof optimistABI, TEventName>,
 11431      'abi' | 'address'
 11432    > & { chainId?: keyof typeof optimistAddress } = {} as any
 11433  ) {
 11434    const { chain } = useNetwork()
 11435    const defaultChainId = useChainId()
 11436    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11437    return useContractEvent({
 11438      abi: optimistABI,
 11439      address: optimistAddress[chainId as keyof typeof optimistAddress],
 11440      ...config,
 11441    } as UseContractEventConfig<typeof optimistABI, TEventName>)
 11442  }
 11443  
 11444  /**
 11445   * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__.
 11446   *
 11447   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180)
 11448   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180)
 11449   */
 11450  export function useOptimistAllowlistRead<
 11451    TFunctionName extends string,
 11452    TSelectData = ReadContractResult<typeof optimistAllowlistABI, TFunctionName>
 11453  >(
 11454    config: Omit<
 11455      UseContractReadConfig<
 11456        typeof optimistAllowlistABI,
 11457        TFunctionName,
 11458        TSelectData
 11459      >,
 11460      'abi' | 'address'
 11461    > & { chainId?: keyof typeof optimistAllowlistAddress } = {} as any
 11462  ) {
 11463    const { chain } = useNetwork()
 11464    const defaultChainId = useChainId()
 11465    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11466    return useContractRead({
 11467      abi: optimistAllowlistABI,
 11468      address:
 11469        optimistAllowlistAddress[
 11470          chainId as keyof typeof optimistAllowlistAddress
 11471        ],
 11472      ...config,
 11473    } as UseContractReadConfig<typeof optimistAllowlistABI, TFunctionName, TSelectData>)
 11474  }
 11475  
 11476  /**
 11477   * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__.
 11478   *
 11479   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
 11480   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
 11481   */
 11482  export function useOptimistInviterRead<
 11483    TFunctionName extends string,
 11484    TSelectData = ReadContractResult<typeof optimistInviterABI, TFunctionName>
 11485  >(
 11486    config: Omit<
 11487      UseContractReadConfig<
 11488        typeof optimistInviterABI,
 11489        TFunctionName,
 11490        TSelectData
 11491      >,
 11492      'abi' | 'address'
 11493    > & { chainId?: keyof typeof optimistInviterAddress } = {} as any
 11494  ) {
 11495    const { chain } = useNetwork()
 11496    const defaultChainId = useChainId()
 11497    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11498    return useContractRead({
 11499      abi: optimistInviterABI,
 11500      address:
 11501        optimistInviterAddress[chainId as keyof typeof optimistInviterAddress],
 11502      ...config,
 11503    } as UseContractReadConfig<typeof optimistInviterABI, TFunctionName, TSelectData>)
 11504  }
 11505  
 11506  /**
 11507   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistInviterABI}__.
 11508   *
 11509   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
 11510   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
 11511   */
 11512  export function useOptimistInviterWrite<
 11513    TFunctionName extends string,
 11514    TMode extends WriteContractMode = undefined,
 11515    TChainId extends number = keyof typeof optimistInviterAddress
 11516  >(
 11517    config: TMode extends 'prepared'
 11518      ? UseContractWriteConfig<
 11519          PrepareWriteContractResult<
 11520            typeof optimistInviterABI,
 11521            string
 11522          >['request']['abi'],
 11523          TFunctionName,
 11524          TMode
 11525        > & { address?: Address; chainId?: TChainId }
 11526      : UseContractWriteConfig<
 11527          typeof optimistInviterABI,
 11528          TFunctionName,
 11529          TMode
 11530        > & {
 11531          abi?: never
 11532          address?: never
 11533          chainId?: TChainId
 11534        } = {} as any
 11535  ) {
 11536    const { chain } = useNetwork()
 11537    const defaultChainId = useChainId()
 11538    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11539    return useContractWrite<typeof optimistInviterABI, TFunctionName, TMode>({
 11540      abi: optimistInviterABI,
 11541      address:
 11542        optimistInviterAddress[chainId as keyof typeof optimistInviterAddress],
 11543      ...config,
 11544    } as any)
 11545  }
 11546  
 11547  /**
 11548   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistInviterABI}__.
 11549   *
 11550   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
 11551   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929)
 11552   */
 11553  export function useOptimistInviterEvent<TEventName extends string>(
 11554    config: Omit<
 11555      UseContractEventConfig<typeof optimistInviterABI, TEventName>,
 11556      'abi' | 'address'
 11557    > & { chainId?: keyof typeof optimistInviterAddress } = {} as any
 11558  ) {
 11559    const { chain } = useNetwork()
 11560    const defaultChainId = useChainId()
 11561    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11562    return useContractEvent({
 11563      abi: optimistInviterABI,
 11564      address:
 11565        optimistInviterAddress[chainId as keyof typeof optimistInviterAddress],
 11566      ...config,
 11567    } as UseContractEventConfig<typeof optimistInviterABI, TEventName>)
 11568  }
 11569  
 11570  /**
 11571   * Wraps __{@link useContractRead}__ with `abi` set to __{@link portalSenderABI}__.
 11572   *
 11573   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210)
 11574   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4)
 11575   */
 11576  export function usePortalSenderRead<
 11577    TFunctionName extends string,
 11578    TSelectData = ReadContractResult<typeof portalSenderABI, TFunctionName>
 11579  >(
 11580    config: Omit<
 11581      UseContractReadConfig<typeof portalSenderABI, TFunctionName, TSelectData>,
 11582      'abi' | 'address'
 11583    > & { chainId?: keyof typeof portalSenderAddress } = {} as any
 11584  ) {
 11585    const { chain } = useNetwork()
 11586    const defaultChainId = useChainId()
 11587    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11588    return useContractRead({
 11589      abi: portalSenderABI,
 11590      address: portalSenderAddress[chainId as keyof typeof portalSenderAddress],
 11591      ...config,
 11592    } as UseContractReadConfig<typeof portalSenderABI, TFunctionName, TSelectData>)
 11593  }
 11594  
 11595  /**
 11596   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link portalSenderABI}__.
 11597   *
 11598   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210)
 11599   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4)
 11600   */
 11601  export function usePortalSenderWrite<
 11602    TFunctionName extends string,
 11603    TMode extends WriteContractMode = undefined,
 11604    TChainId extends number = keyof typeof portalSenderAddress
 11605  >(
 11606    config: TMode extends 'prepared'
 11607      ? UseContractWriteConfig<
 11608          PrepareWriteContractResult<
 11609            typeof portalSenderABI,
 11610            string
 11611          >['request']['abi'],
 11612          TFunctionName,
 11613          TMode
 11614        > & { address?: Address; chainId?: TChainId }
 11615      : UseContractWriteConfig<typeof portalSenderABI, TFunctionName, TMode> & {
 11616          abi?: never
 11617          address?: never
 11618          chainId?: TChainId
 11619        } = {} as any
 11620  ) {
 11621    const { chain } = useNetwork()
 11622    const defaultChainId = useChainId()
 11623    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11624    return useContractWrite<typeof portalSenderABI, TFunctionName, TMode>({
 11625      abi: portalSenderABI,
 11626      address: portalSenderAddress[chainId as keyof typeof portalSenderAddress],
 11627      ...config,
 11628    } as any)
 11629  }
 11630  
 11631  /**
 11632   * Wraps __{@link useContractRead}__ with `abi` set to __{@link protocolVersionsABI}__.
 11633   *
 11634   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x0C24F5098774aA366827D667494e9F889f7cFc08)
 11635   */
 11636  export function useProtocolVersionsRead<
 11637    TFunctionName extends string,
 11638    TSelectData = ReadContractResult<typeof protocolVersionsABI, TFunctionName>
 11639  >(
 11640    config: Omit<
 11641      UseContractReadConfig<
 11642        typeof protocolVersionsABI,
 11643        TFunctionName,
 11644        TSelectData
 11645      >,
 11646      'abi' | 'address'
 11647    > & { chainId?: keyof typeof protocolVersionsAddress } = {} as any
 11648  ) {
 11649    return useContractRead({
 11650      abi: protocolVersionsABI,
 11651      address: protocolVersionsAddress[5],
 11652      ...config,
 11653    } as UseContractReadConfig<typeof protocolVersionsABI, TFunctionName, TSelectData>)
 11654  }
 11655  
 11656  /**
 11657   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link protocolVersionsABI}__.
 11658   *
 11659   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x0C24F5098774aA366827D667494e9F889f7cFc08)
 11660   */
 11661  export function useProtocolVersionsWrite<
 11662    TFunctionName extends string,
 11663    TMode extends WriteContractMode = undefined,
 11664    TChainId extends number = keyof typeof protocolVersionsAddress
 11665  >(
 11666    config: TMode extends 'prepared'
 11667      ? UseContractWriteConfig<
 11668          PrepareWriteContractResult<
 11669            typeof protocolVersionsABI,
 11670            string
 11671          >['request']['abi'],
 11672          TFunctionName,
 11673          TMode
 11674        > & { address?: Address; chainId?: TChainId }
 11675      : UseContractWriteConfig<
 11676          typeof protocolVersionsABI,
 11677          TFunctionName,
 11678          TMode
 11679        > & {
 11680          abi?: never
 11681          address?: never
 11682          chainId?: TChainId
 11683        } = {} as any
 11684  ) {
 11685    return useContractWrite<typeof protocolVersionsABI, TFunctionName, TMode>({
 11686      abi: protocolVersionsABI,
 11687      address: protocolVersionsAddress[5],
 11688      ...config,
 11689    } as any)
 11690  }
 11691  
 11692  /**
 11693   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link protocolVersionsABI}__.
 11694   *
 11695   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x0C24F5098774aA366827D667494e9F889f7cFc08)
 11696   */
 11697  export function useProtocolVersionsEvent<TEventName extends string>(
 11698    config: Omit<
 11699      UseContractEventConfig<typeof protocolVersionsABI, TEventName>,
 11700      'abi' | 'address'
 11701    > & { chainId?: keyof typeof protocolVersionsAddress } = {} as any
 11702  ) {
 11703    return useContractEvent({
 11704      abi: protocolVersionsABI,
 11705      address: protocolVersionsAddress[5],
 11706      ...config,
 11707    } as UseContractEventConfig<typeof protocolVersionsABI, TEventName>)
 11708  }
 11709  
 11710  /**
 11711   * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__.
 11712   *
 11713   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018)
 11714   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018)
 11715   */
 11716  export function useProxyAdminRead<
 11717    TFunctionName extends string,
 11718    TSelectData = ReadContractResult<typeof proxyAdminABI, TFunctionName>
 11719  >(
 11720    config: Omit<
 11721      UseContractReadConfig<typeof proxyAdminABI, TFunctionName, TSelectData>,
 11722      'abi' | 'address'
 11723    > & { chainId?: keyof typeof proxyAdminAddress } = {} as any
 11724  ) {
 11725    const { chain } = useNetwork()
 11726    const defaultChainId = useChainId()
 11727    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11728    return useContractRead({
 11729      abi: proxyAdminABI,
 11730      address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress],
 11731      ...config,
 11732    } as UseContractReadConfig<typeof proxyAdminABI, TFunctionName, TSelectData>)
 11733  }
 11734  
 11735  /**
 11736   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__.
 11737   *
 11738   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018)
 11739   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018)
 11740   */
 11741  export function useProxyAdminWrite<
 11742    TFunctionName extends string,
 11743    TMode extends WriteContractMode = undefined,
 11744    TChainId extends number = keyof typeof proxyAdminAddress
 11745  >(
 11746    config: TMode extends 'prepared'
 11747      ? UseContractWriteConfig<
 11748          PrepareWriteContractResult<
 11749            typeof proxyAdminABI,
 11750            string
 11751          >['request']['abi'],
 11752          TFunctionName,
 11753          TMode
 11754        > & { address?: Address; chainId?: TChainId }
 11755      : UseContractWriteConfig<typeof proxyAdminABI, TFunctionName, TMode> & {
 11756          abi?: never
 11757          address?: never
 11758          chainId?: TChainId
 11759        } = {} as any
 11760  ) {
 11761    const { chain } = useNetwork()
 11762    const defaultChainId = useChainId()
 11763    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11764    return useContractWrite<typeof proxyAdminABI, TFunctionName, TMode>({
 11765      abi: proxyAdminABI,
 11766      address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress],
 11767      ...config,
 11768    } as any)
 11769  }
 11770  
 11771  /**
 11772   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link proxyAdminABI}__.
 11773   *
 11774   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018)
 11775   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018)
 11776   */
 11777  export function useProxyAdminEvent<TEventName extends string>(
 11778    config: Omit<
 11779      UseContractEventConfig<typeof proxyAdminABI, TEventName>,
 11780      'abi' | 'address'
 11781    > & { chainId?: keyof typeof proxyAdminAddress } = {} as any
 11782  ) {
 11783    const { chain } = useNetwork()
 11784    const defaultChainId = useChainId()
 11785    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11786    return useContractEvent({
 11787      abi: proxyAdminABI,
 11788      address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress],
 11789      ...config,
 11790    } as UseContractEventConfig<typeof proxyAdminABI, TEventName>)
 11791  }
 11792  
 11793  /**
 11794   * Wraps __{@link useContractRead}__ with `abi` set to __{@link schemaRegistryABI}__.
 11795   *
 11796   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x6232208d66bAc2305b46b4Cb6BCB3857B298DF13)
 11797   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2545fa928d5d278cA75Fd47306e4a89096ff6403)
 11798   */
 11799  export function useSchemaRegistryRead<
 11800    TFunctionName extends string,
 11801    TSelectData = ReadContractResult<typeof schemaRegistryABI, TFunctionName>
 11802  >(
 11803    config: Omit<
 11804      UseContractReadConfig<typeof schemaRegistryABI, TFunctionName, TSelectData>,
 11805      'abi' | 'address'
 11806    > & { chainId?: keyof typeof schemaRegistryAddress } = {} as any
 11807  ) {
 11808    const { chain } = useNetwork()
 11809    const defaultChainId = useChainId()
 11810    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11811    return useContractRead({
 11812      abi: schemaRegistryABI,
 11813      address:
 11814        schemaRegistryAddress[chainId as keyof typeof schemaRegistryAddress],
 11815      ...config,
 11816    } as UseContractReadConfig<typeof schemaRegistryABI, TFunctionName, TSelectData>)
 11817  }
 11818  
 11819  /**
 11820   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link schemaRegistryABI}__.
 11821   *
 11822   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x6232208d66bAc2305b46b4Cb6BCB3857B298DF13)
 11823   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2545fa928d5d278cA75Fd47306e4a89096ff6403)
 11824   */
 11825  export function useSchemaRegistryWrite<
 11826    TFunctionName extends string,
 11827    TMode extends WriteContractMode = undefined,
 11828    TChainId extends number = keyof typeof schemaRegistryAddress
 11829  >(
 11830    config: TMode extends 'prepared'
 11831      ? UseContractWriteConfig<
 11832          PrepareWriteContractResult<
 11833            typeof schemaRegistryABI,
 11834            string
 11835          >['request']['abi'],
 11836          TFunctionName,
 11837          TMode
 11838        > & { address?: Address; chainId?: TChainId }
 11839      : UseContractWriteConfig<typeof schemaRegistryABI, TFunctionName, TMode> & {
 11840          abi?: never
 11841          address?: never
 11842          chainId?: TChainId
 11843        } = {} as any
 11844  ) {
 11845    const { chain } = useNetwork()
 11846    const defaultChainId = useChainId()
 11847    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11848    return useContractWrite<typeof schemaRegistryABI, TFunctionName, TMode>({
 11849      abi: schemaRegistryABI,
 11850      address:
 11851        schemaRegistryAddress[chainId as keyof typeof schemaRegistryAddress],
 11852      ...config,
 11853    } as any)
 11854  }
 11855  
 11856  /**
 11857   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link schemaRegistryABI}__.
 11858   *
 11859   * - [__View Contract on Op Mainnet Optimism Explorer__](https://explorer.optimism.io/address/0x6232208d66bAc2305b46b4Cb6BCB3857B298DF13)
 11860   * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2545fa928d5d278cA75Fd47306e4a89096ff6403)
 11861   */
 11862  export function useSchemaRegistryEvent<TEventName extends string>(
 11863    config: Omit<
 11864      UseContractEventConfig<typeof schemaRegistryABI, TEventName>,
 11865      'abi' | 'address'
 11866    > & { chainId?: keyof typeof schemaRegistryAddress } = {} as any
 11867  ) {
 11868    const { chain } = useNetwork()
 11869    const defaultChainId = useChainId()
 11870    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11871    return useContractEvent({
 11872      abi: schemaRegistryABI,
 11873      address:
 11874        schemaRegistryAddress[chainId as keyof typeof schemaRegistryAddress],
 11875      ...config,
 11876    } as UseContractEventConfig<typeof schemaRegistryABI, TEventName>)
 11877  }
 11878  
 11879  /**
 11880   * Wraps __{@link useContractRead}__ with `abi` set to __{@link sequencerFeeVaultABI}__.
 11881   *
 11882   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011)
 11883   */
 11884  export function useSequencerFeeVaultRead<
 11885    TFunctionName extends string,
 11886    TSelectData = ReadContractResult<typeof sequencerFeeVaultABI, TFunctionName>
 11887  >(
 11888    config: Omit<
 11889      UseContractReadConfig<
 11890        typeof sequencerFeeVaultABI,
 11891        TFunctionName,
 11892        TSelectData
 11893      >,
 11894      'abi' | 'address'
 11895    > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any
 11896  ) {
 11897    return useContractRead({
 11898      abi: sequencerFeeVaultABI,
 11899      address: sequencerFeeVaultAddress[420],
 11900      ...config,
 11901    } as UseContractReadConfig<typeof sequencerFeeVaultABI, TFunctionName, TSelectData>)
 11902  }
 11903  
 11904  /**
 11905   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link sequencerFeeVaultABI}__.
 11906   *
 11907   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011)
 11908   */
 11909  export function useSequencerFeeVaultWrite<
 11910    TFunctionName extends string,
 11911    TMode extends WriteContractMode = undefined,
 11912    TChainId extends number = keyof typeof sequencerFeeVaultAddress
 11913  >(
 11914    config: TMode extends 'prepared'
 11915      ? UseContractWriteConfig<
 11916          PrepareWriteContractResult<
 11917            typeof sequencerFeeVaultABI,
 11918            string
 11919          >['request']['abi'],
 11920          TFunctionName,
 11921          TMode
 11922        > & { address?: Address; chainId?: TChainId }
 11923      : UseContractWriteConfig<
 11924          typeof sequencerFeeVaultABI,
 11925          TFunctionName,
 11926          TMode
 11927        > & {
 11928          abi?: never
 11929          address?: never
 11930          chainId?: TChainId
 11931        } = {} as any
 11932  ) {
 11933    return useContractWrite<typeof sequencerFeeVaultABI, TFunctionName, TMode>({
 11934      abi: sequencerFeeVaultABI,
 11935      address: sequencerFeeVaultAddress[420],
 11936      ...config,
 11937    } as any)
 11938  }
 11939  
 11940  /**
 11941   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link sequencerFeeVaultABI}__.
 11942   *
 11943   * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011)
 11944   */
 11945  export function useSequencerFeeVaultEvent<TEventName extends string>(
 11946    config: Omit<
 11947      UseContractEventConfig<typeof sequencerFeeVaultABI, TEventName>,
 11948      'abi' | 'address'
 11949    > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any
 11950  ) {
 11951    return useContractEvent({
 11952      abi: sequencerFeeVaultABI,
 11953      address: sequencerFeeVaultAddress[420],
 11954      ...config,
 11955    } as UseContractEventConfig<typeof sequencerFeeVaultABI, TEventName>)
 11956  }
 11957  
 11958  /**
 11959   * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__.
 11960   *
 11961   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290)
 11962   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60)
 11963   */
 11964  export function useSystemConfigRead<
 11965    TFunctionName extends string,
 11966    TSelectData = ReadContractResult<typeof systemConfigABI, TFunctionName>
 11967  >(
 11968    config: Omit<
 11969      UseContractReadConfig<typeof systemConfigABI, TFunctionName, TSelectData>,
 11970      'abi' | 'address'
 11971    > & { chainId?: keyof typeof systemConfigAddress } = {} as any
 11972  ) {
 11973    const { chain } = useNetwork()
 11974    const defaultChainId = useChainId()
 11975    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 11976    return useContractRead({
 11977      abi: systemConfigABI,
 11978      address: systemConfigAddress[chainId as keyof typeof systemConfigAddress],
 11979      ...config,
 11980    } as UseContractReadConfig<typeof systemConfigABI, TFunctionName, TSelectData>)
 11981  }
 11982  
 11983  /**
 11984   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__.
 11985   *
 11986   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290)
 11987   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60)
 11988   */
 11989  export function useSystemConfigWrite<
 11990    TFunctionName extends string,
 11991    TMode extends WriteContractMode = undefined,
 11992    TChainId extends number = keyof typeof systemConfigAddress
 11993  >(
 11994    config: TMode extends 'prepared'
 11995      ? UseContractWriteConfig<
 11996          PrepareWriteContractResult<
 11997            typeof systemConfigABI,
 11998            string
 11999          >['request']['abi'],
 12000          TFunctionName,
 12001          TMode
 12002        > & { address?: Address; chainId?: TChainId }
 12003      : UseContractWriteConfig<typeof systemConfigABI, TFunctionName, TMode> & {
 12004          abi?: never
 12005          address?: never
 12006          chainId?: TChainId
 12007        } = {} as any
 12008  ) {
 12009    const { chain } = useNetwork()
 12010    const defaultChainId = useChainId()
 12011    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 12012    return useContractWrite<typeof systemConfigABI, TFunctionName, TMode>({
 12013      abi: systemConfigABI,
 12014      address: systemConfigAddress[chainId as keyof typeof systemConfigAddress],
 12015      ...config,
 12016    } as any)
 12017  }
 12018  
 12019  /**
 12020   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__.
 12021   *
 12022   * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290)
 12023   * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60)
 12024   */
 12025  export function useSystemConfigEvent<TEventName extends string>(
 12026    config: Omit<
 12027      UseContractEventConfig<typeof systemConfigABI, TEventName>,
 12028      'abi' | 'address'
 12029    > & { chainId?: keyof typeof systemConfigAddress } = {} as any
 12030  ) {
 12031    const { chain } = useNetwork()
 12032    const defaultChainId = useChainId()
 12033    const chainId = config.chainId ?? chain?.id ?? defaultChainId
 12034    return useContractEvent({
 12035      abi: systemConfigABI,
 12036      address: systemConfigAddress[chainId as keyof typeof systemConfigAddress],
 12037      ...config,
 12038    } as UseContractEventConfig<typeof systemConfigABI, TEventName>)
 12039  }
 12040  
 12041  /**
 12042   * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__.
 12043   *
 12044   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB)
 12045   */
 12046  export function useSystemDictatorRead<
 12047    TFunctionName extends string,
 12048    TSelectData = ReadContractResult<typeof systemDictatorABI, TFunctionName>
 12049  >(
 12050    config: Omit<
 12051      UseContractReadConfig<typeof systemDictatorABI, TFunctionName, TSelectData>,
 12052      'abi' | 'address'
 12053    > & { chainId?: keyof typeof systemDictatorAddress } = {} as any
 12054  ) {
 12055    return useContractRead({
 12056      abi: systemDictatorABI,
 12057      address: systemDictatorAddress[1],
 12058      ...config,
 12059    } as UseContractReadConfig<typeof systemDictatorABI, TFunctionName, TSelectData>)
 12060  }
 12061  
 12062  /**
 12063   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__.
 12064   *
 12065   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB)
 12066   */
 12067  export function useSystemDictatorWrite<
 12068    TFunctionName extends string,
 12069    TMode extends WriteContractMode = undefined,
 12070    TChainId extends number = keyof typeof systemDictatorAddress
 12071  >(
 12072    config: TMode extends 'prepared'
 12073      ? UseContractWriteConfig<
 12074          PrepareWriteContractResult<
 12075            typeof systemDictatorABI,
 12076            string
 12077          >['request']['abi'],
 12078          TFunctionName,
 12079          TMode
 12080        > & { address?: Address; chainId?: TChainId }
 12081      : UseContractWriteConfig<typeof systemDictatorABI, TFunctionName, TMode> & {
 12082          abi?: never
 12083          address?: never
 12084          chainId?: TChainId
 12085        } = {} as any
 12086  ) {
 12087    return useContractWrite<typeof systemDictatorABI, TFunctionName, TMode>({
 12088      abi: systemDictatorABI,
 12089      address: systemDictatorAddress[1],
 12090      ...config,
 12091    } as any)
 12092  }
 12093  
 12094  /**
 12095   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__.
 12096   *
 12097   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB)
 12098   */
 12099  export function useSystemDictatorEvent<TEventName extends string>(
 12100    config: Omit<
 12101      UseContractEventConfig<typeof systemDictatorABI, TEventName>,
 12102      'abi' | 'address'
 12103    > & { chainId?: keyof typeof systemDictatorAddress } = {} as any
 12104  ) {
 12105    return useContractEvent({
 12106      abi: systemDictatorABI,
 12107      address: systemDictatorAddress[1],
 12108      ...config,
 12109    } as UseContractEventConfig<typeof systemDictatorABI, TEventName>)
 12110  }
 12111  
 12112  /**
 12113   * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__.
 12114   *
 12115   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971)
 12116   */
 12117  export function useSystemDictatorGoerliRead<
 12118    TFunctionName extends string,
 12119    TSelectData = ReadContractResult<
 12120      typeof systemDictatorGoerliABI,
 12121      TFunctionName
 12122    >
 12123  >(
 12124    config: Omit<
 12125      UseContractReadConfig<
 12126        typeof systemDictatorGoerliABI,
 12127        TFunctionName,
 12128        TSelectData
 12129      >,
 12130      'abi' | 'address'
 12131    > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any
 12132  ) {
 12133    return useContractRead({
 12134      abi: systemDictatorGoerliABI,
 12135      address: systemDictatorGoerliAddress[5],
 12136      ...config,
 12137    } as UseContractReadConfig<typeof systemDictatorGoerliABI, TFunctionName, TSelectData>)
 12138  }
 12139  
 12140  /**
 12141   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__.
 12142   *
 12143   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971)
 12144   */
 12145  export function useSystemDictatorGoerliWrite<
 12146    TFunctionName extends string,
 12147    TMode extends WriteContractMode = undefined,
 12148    TChainId extends number = keyof typeof systemDictatorGoerliAddress
 12149  >(
 12150    config: TMode extends 'prepared'
 12151      ? UseContractWriteConfig<
 12152          PrepareWriteContractResult<
 12153            typeof systemDictatorGoerliABI,
 12154            string
 12155          >['request']['abi'],
 12156          TFunctionName,
 12157          TMode
 12158        > & { address?: Address; chainId?: TChainId }
 12159      : UseContractWriteConfig<
 12160          typeof systemDictatorGoerliABI,
 12161          TFunctionName,
 12162          TMode
 12163        > & {
 12164          abi?: never
 12165          address?: never
 12166          chainId?: TChainId
 12167        } = {} as any
 12168  ) {
 12169    return useContractWrite<typeof systemDictatorGoerliABI, TFunctionName, TMode>(
 12170      {
 12171        abi: systemDictatorGoerliABI,
 12172        address: systemDictatorGoerliAddress[5],
 12173        ...config,
 12174      } as any
 12175    )
 12176  }
 12177  
 12178  /**
 12179   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__.
 12180   *
 12181   * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971)
 12182   */
 12183  export function useSystemDictatorGoerliEvent<TEventName extends string>(
 12184    config: Omit<
 12185      UseContractEventConfig<typeof systemDictatorGoerliABI, TEventName>,
 12186      'abi' | 'address'
 12187    > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any
 12188  ) {
 12189    return useContractEvent({
 12190      abi: systemDictatorGoerliABI,
 12191      address: systemDictatorGoerliAddress[5],
 12192      ...config,
 12193    } as UseContractEventConfig<typeof systemDictatorGoerliABI, TEventName>)
 12194  }
 12195  
 12196  /**
 12197   * Wraps __{@link useContractRead}__ with `abi` set to __{@link teleportrWithdrawerABI}__.
 12198   *
 12199   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007)
 12200   */
 12201  export function useTeleportrWithdrawerRead<
 12202    TFunctionName extends string,
 12203    TSelectData = ReadContractResult<typeof teleportrWithdrawerABI, TFunctionName>
 12204  >(
 12205    config: Omit<
 12206      UseContractReadConfig<
 12207        typeof teleportrWithdrawerABI,
 12208        TFunctionName,
 12209        TSelectData
 12210      >,
 12211      'abi' | 'address'
 12212    > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any
 12213  ) {
 12214    return useContractRead({
 12215      abi: teleportrWithdrawerABI,
 12216      address: teleportrWithdrawerAddress[1],
 12217      ...config,
 12218    } as UseContractReadConfig<typeof teleportrWithdrawerABI, TFunctionName, TSelectData>)
 12219  }
 12220  
 12221  /**
 12222   * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__.
 12223   *
 12224   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007)
 12225   */
 12226  export function useTeleportrWithdrawerWrite<
 12227    TFunctionName extends string,
 12228    TMode extends WriteContractMode = undefined,
 12229    TChainId extends number = keyof typeof teleportrWithdrawerAddress
 12230  >(
 12231    config: TMode extends 'prepared'
 12232      ? UseContractWriteConfig<
 12233          PrepareWriteContractResult<
 12234            typeof teleportrWithdrawerABI,
 12235            string
 12236          >['request']['abi'],
 12237          TFunctionName,
 12238          TMode
 12239        > & { address?: Address; chainId?: TChainId }
 12240      : UseContractWriteConfig<
 12241          typeof teleportrWithdrawerABI,
 12242          TFunctionName,
 12243          TMode
 12244        > & {
 12245          abi?: never
 12246          address?: never
 12247          chainId?: TChainId
 12248        } = {} as any
 12249  ) {
 12250    return useContractWrite<typeof teleportrWithdrawerABI, TFunctionName, TMode>({
 12251      abi: teleportrWithdrawerABI,
 12252      address: teleportrWithdrawerAddress[1],
 12253      ...config,
 12254    } as any)
 12255  }
 12256  
 12257  /**
 12258   * Wraps __{@link useContractEvent}__ with `abi` set to __{@link teleportrWithdrawerABI}__.
 12259   *
 12260   * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007)
 12261   */
 12262  export function useTeleportrWithdrawerEvent<TEventName extends string>(
 12263    config: Omit<
 12264      UseContractEventConfig<typeof teleportrWithdrawerABI, TEventName>,
 12265      'abi' | 'address'
 12266    > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any
 12267  ) {
 12268    return useContractEvent({
 12269      abi: teleportrWithdrawerABI,
 12270      address: teleportrWithdrawerAddress[1],
 12271      ...config,
 12272    } as UseContractEventConfig<typeof teleportrWithdrawerABI, TEventName>)
 12273  }