@circle-fin/usdckit - v0.18.0
    Preparing search index...

    Function extractChain

    • Parameters

      • __namedParameters: { id: any }

      Returns
          | undefined
          | {
              blockchainId: "BASE-SEPOLIA";
              blockchainVm: "EVM";
              blockExplorers: {
                  default: {
                      apiUrl: "https://api-sepolia.basescan.org/api";
                      name: "Basescan";
                      url: "https://sepolia.basescan.org";
                  };
              };
              blockTime: 2000;
              contracts: {
                  disputeGameFactory: {
                      "11155111": { address: "0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1" };
                  };
                  EURC: {
                      abi: readonly [
                          {
                              inputs: readonly [
                                  { indexed: true; name: "owner"; type: "address" },
                                  { indexed: true; name: "spender"; type: "address" },
                                  { indexed: false; name: "value"; type: "uint256" },
                              ];
                              name: "Approval";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { indexed: true; name: "from"; type: "address" },
                                  { indexed: true; name: "to"; type: "address" },
                                  { indexed: false; name: "value"; type: "uint256" },
                              ];
                              name: "Transfer";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { name: "owner"; type: "address" },
                                  { name: "spender"; type: "address" },
                              ];
                              name: "allowance";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "spender"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "approve";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [{ name: "account"; type: "address" }];
                              name: "balanceOf";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "decimals";
                              outputs: readonly [{ type: "uint8" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "name";
                              outputs: readonly [{ type: "string" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "symbol";
                              outputs: readonly [{ type: "string" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "totalSupply";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "recipient"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "transfer";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "sender"; type: "address" },
                                  { name: "recipient"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "transferFrom";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ];
                      address: "0x808456652fdb597867f38412077A9182bf77359F";
                      read: { decimals: () => 6 };
                  };
                  gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                  l1Block: { address: "0x4200000000000000000000000000000000000015" };
                  l1StandardBridge: {
                      "11155111": {
                          address: "0xfd0Bf71F60660E2f608ed56e1659C450eB113120";
                          blockCreated: 4446677;
                      };
                  };
                  l2CrossDomainMessenger: {
                      address: "0x4200000000000000000000000000000000000007";
                  };
                  l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                  l2OutputOracle: {
                      "11155111": { address: "0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254" };
                  };
                  l2StandardBridge: {
                      address: "0x4200000000000000000000000000000000000010";
                  };
                  l2ToL1MessagePasser: {
                      address: "0x4200000000000000000000000000000000000016";
                  };
                  multicall3: {
                      address: "0xca11bde05977b3631167028862be2a173976ca11";
                      blockCreated: 1059647;
                  };
                  portal: {
                      "11155111": {
                          address: "0x49f53e41452c74589e85ca1677426ba426459e85";
                          blockCreated: 4446677;
                      };
                  };
                  QuoterV2: {
                      abi: readonly [
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "_factory"; type: "address" },
                                  { internalType: "address"; name: "_WETH9"; type: "address" },
                              ];
                              stateMutability: "nonpayable";
                              type: "constructor";
                          },
                          {
                              inputs: readonly [];
                              name: "WETH9";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "factory";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              name: "quoteExactInput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                  {
                                      internalType: "uint160[]";
                                      name: "sqrtPriceX96AfterList";
                                      type: "uint160[]";
                                  },
                                  {
                                      internalType: "uint32[]";
                                      name: "initializedTicksCrossedList";
                                      type: "uint32[]";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IQuoterV2.QuoteExactInputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "quoteExactInputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                  {
                                      internalType: "uint160";
                                      name: "sqrtPriceX96After";
                                      type: "uint160";
                                  },
                                  {
                                      internalType: "uint32";
                                      name: "initializedTicksCrossed";
                                      type: "uint32";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              name: "quoteExactOutput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  {
                                      internalType: "uint160[]";
                                      name: "sqrtPriceX96AfterList";
                                      type: "uint160[]";
                                  },
                                  {
                                      internalType: "uint32[]";
                                      name: "initializedTicksCrossedList";
                                      type: "uint32[]";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IQuoterV2.QuoteExactOutputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "quoteExactOutputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  {
                                      internalType: "uint160";
                                      name: "sqrtPriceX96After";
                                      type: "uint160";
                                  },
                                  {
                                      internalType: "uint32";
                                      name: "initializedTicksCrossed";
                                      type: "uint32";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                  { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                              ];
                              name: "uniswapV3SwapCallback";
                              outputs: readonly [];
                              stateMutability: "view";
                              type: "function";
                          },
                      ];
                      address: "0xC5290058841028F1614F3A6F0F5816cAd0df5E27";
                  };
                  SwapRouter02: {
                      abi: readonly [
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "_factoryV2"; type: "address" },
                                  { internalType: "address"; name: "factoryV3"; type: "address" },
                                  {
                                      internalType: "address";
                                      name: "_positionManager";
                                      type: "address";
                                  },
                                  { internalType: "address"; name: "_WETH9"; type: "address" },
                              ];
                              stateMutability: "nonpayable";
                              type: "constructor";
                          },
                          {
                              inputs: readonly [];
                              name: "WETH9";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveMax";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveMaxMinusOne";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveZeroThenMax";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveZeroThenMaxMinusOne";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "data"; type: "bytes" },
                              ];
                              name: "callPositionManager";
                              outputs: readonly [
                                  { internalType: "bytes"; name: "result"; type: "bytes" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes[]"; name: "paths"; type: "bytes[]" },
                                  { internalType: "uint128[]"; name: "amounts"; type: "uint128[]" },
                                  {
                                      internalType: "uint24";
                                      name: "maximumTickDivergence";
                                      type: "uint24";
                                  },
                                  { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                              ];
                              name: "checkOracleSlippage";
                              outputs: readonly [];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                                  {
                                      internalType: "uint24";
                                      name: "maximumTickDivergence";
                                      type: "uint24";
                                  },
                                  { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                              ];
                              name: "checkOracleSlippage";
                              outputs: readonly [];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "bytes"; name: "path"; type: "bytes" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountOutMinimum";
                                              type: "uint256";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactInputParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactInput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountOutMinimum";
                                              type: "uint256";
                                          },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactInputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactInputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "bytes"; name: "path"; type: "bytes" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountInMaximum";
                                              type: "uint256";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactOutputParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactOutput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountInMaximum";
                                              type: "uint256";
                                          },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactOutputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactOutputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "factory";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "factoryV2";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                              ];
                              name: "getApprovalType";
                              outputs: readonly [
                                  {
                                      internalType: "enum IApproveAndCall.ApprovalType";
                                      name: "";
                                      type: "uint8";
                                  },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "token0"; type: "address" },
                                          { internalType: "address"; name: "token1"; type: "address" },
                                          { internalType: "uint256"; name: "tokenId"; type: "uint256" },
                                          { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                          { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                      ];
                                      internalType: "struct IApproveAndCall.IncreaseLiquidityParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "increaseLiquidity";
                              outputs: readonly [
                                  { internalType: "bytes"; name: "result"; type: "bytes" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "token0"; type: "address" },
                                          { internalType: "address"; name: "token1"; type: "address" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          { internalType: "int24"; name: "tickLower"; type: "int24" },
                                          { internalType: "int24"; name: "tickUpper"; type: "int24" },
                                          { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                          { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                      ];
                                      internalType: "struct IApproveAndCall.MintParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "mint";
                              outputs: readonly [
                                  { internalType: "bytes"; name: "result"; type: "bytes" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "bytes32";
                                      name: "previousBlockhash";
                                      type: "bytes32";
                                  },
                                  { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                              ];
                              name: "multicall";
                              outputs: readonly [
                                  { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                  { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                              ];
                              name: "multicall";
                              outputs: readonly [
                                  { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                              ];
                              name: "multicall";
                              outputs: readonly [
                                  { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "positionManager";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                              ];
                              name: "pull";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "refundETH";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                                  { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermit";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermitAllowed";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermitAllowedIfNecessary";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                                  { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermitIfNecessary";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  { internalType: "uint256"; name: "amountOutMin"; type: "uint256" },
                                  { internalType: "address[]"; name: "path"; type: "address[]" },
                                  { internalType: "address"; name: "to"; type: "address" },
                              ];
                              name: "swapExactTokensForTokens";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                  { internalType: "uint256"; name: "amountInMax"; type: "uint256" },
                                  { internalType: "address[]"; name: "path"; type: "address[]" },
                                  { internalType: "address"; name: "to"; type: "address" },
                              ];
                              name: "swapTokensForExactTokens";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                              ];
                              name: "sweepToken";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              ];
                              name: "sweepToken";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "sweepTokenWithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "sweepTokenWithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                  { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                  { internalType: "bytes"; name: "_data"; type: "bytes" },
                              ];
                              name: "uniswapV3SwapCallback";
                              outputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                              ];
                              name: "unwrapWETH9";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                              ];
                              name: "unwrapWETH9";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "unwrapWETH9WithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "unwrapWETH9WithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                              ];
                              name: "wrapETH";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          { stateMutability: "payable"; type: "receive" },
                      ];
                      address: "0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4";
                  };
                  UniswapV3Factory: {
                      abi: readonly [
                          {
                              inputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "constructor";
                          },
                          {
                              anonymous: false;
                              inputs: readonly [
                                  {
                                      indexed: true;
                                      internalType: "uint24";
                                      name: "fee";
                                      type: "uint24";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "int24";
                                      name: "tickSpacing";
                                      type: "int24";
                                  },
                              ];
                              name: "FeeAmountEnabled";
                              type: "event";
                          },
                          {
                              anonymous: false;
                              inputs: readonly [
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "oldOwner";
                                      type: "address";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "newOwner";
                                      type: "address";
                                  },
                              ];
                              name: "OwnerChanged";
                              type: "event";
                          },
                          {
                              anonymous: false;
                              inputs: readonly [
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "token0";
                                      type: "address";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "token1";
                                      type: "address";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "uint24";
                                      name: "fee";
                                      type: "uint24";
                                  },
                                  {
                                      indexed: false;
                                      internalType: "int24";
                                      name: "tickSpacing";
                                      type: "int24";
                                  },
                                  {
                                      indexed: false;
                                      internalType: "address";
                                      name: "pool";
                                      type: "address";
                                  },
                              ];
                              name: "PoolCreated";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "tokenA"; type: "address" },
                                  { internalType: "address"; name: "tokenB"; type: "address" },
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                              ];
                              name: "createPool";
                              outputs: readonly [
                                  { internalType: "address"; name: "pool"; type: "address" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                                  { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                              ];
                              name: "enableFeeAmount";
                              outputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint24"; name: ""; type: "uint24" },
                              ];
                              name: "feeAmountTickSpacing";
                              outputs: readonly [{ internalType: "int24"; name: ""; type: "int24" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                                  { internalType: "address"; name: ""; type: "address" },
                                  { internalType: "uint24"; name: ""; type: "uint24" },
                              ];
                              name: "getPool";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "owner";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "parameters";
                              outputs: readonly [
                                  { internalType: "address"; name: "factory"; type: "address" },
                                  { internalType: "address"; name: "token0"; type: "address" },
                                  { internalType: "address"; name: "token1"; type: "address" },
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                                  { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "_owner"; type: "address" },
                              ];
                              name: "setOwner";
                              outputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ];
                      address: "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24";
                  };
                  USDC: {
                      abi: readonly [
                          {
                              inputs: readonly [
                                  { indexed: true; name: "owner"; type: "address" },
                                  { indexed: true; name: "spender"; type: "address" },
                                  { indexed: false; name: "value"; type: "uint256" },
                              ];
                              name: "Approval";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { indexed: true; name: "from"; type: "address" },
                                  { indexed: true; name: "to"; type: "address" },
                                  { indexed: false; name: "value"; type: "uint256" },
                              ];
                              name: "Transfer";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { name: "owner"; type: "address" },
                                  { name: "spender"; type: "address" },
                              ];
                              name: "allowance";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "spender"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "approve";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [{ name: "account"; type: "address" }];
                              name: "balanceOf";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "decimals";
                              outputs: readonly [{ type: "uint8" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "name";
                              outputs: readonly [{ type: "string" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "symbol";
                              outputs: readonly [{ type: "string" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "totalSupply";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "recipient"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "transfer";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "sender"; type: "address" },
                                  { name: "recipient"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "transferFrom";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ];
                      address: "0x036CbD53842c5426634e7929541eC2318f3dCF7e";
                      read: { decimals: () => 6 };
                  };
              };
              custom?: Record<string, unknown>;
              ensTlds?: readonly string[];
              fees?: ChainFees<undefined>;
              formatters: {
                  block: {
                      exclude: undefined | [];
                      format: (
                          args: OpStackRpcBlock<BlockTag, boolean>,
                      ) => {
                          baseFeePerGas: null | bigint;
                          blobGasUsed: bigint;
                          difficulty: bigint;
                          excessBlobGas: bigint;
                          extraData: `0x${string}`;
                          gasLimit: bigint;
                          gasUsed: bigint;
                          hash: null | `0x${string}`;
                          logsBloom: null | `0x${string}`;
                          miner: `0x${string}`;
                          mixHash: `0x${string}`;
                          nonce: null | `0x${string}`;
                          number: null | bigint;
                          parentBeaconBlockRoot?: `0x${string}`;
                          parentHash: `0x${string}`;
                          receiptsRoot: `0x${string}`;
                          sealFields: `0x${string}`[];
                          sha3Uncles: `0x${string}`;
                          size: bigint;
                          stateRoot: `0x${string}`;
                          timestamp: bigint;
                          totalDifficulty: null | bigint;
                          transactions: `0x${string}`[] | OpStackTransaction<boolean>[];
                          transactionsRoot: `0x${string}`;
                          uncles: `0x${string}`[];
                          withdrawals?: Withdrawal[];
                          withdrawalsRoot?: `0x${string}`;
                      };
                      type: "block";
                  };
                  transaction: {
                      exclude: undefined
                      | [];
                      format: (
                          args: OpStackRpcTransaction<boolean>,
                      ) =>
                          | {
                              blockHash: null
                              | `0x${string}`;
                              blockNumber: null | bigint;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice?: undefined;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: boolean;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas: bigint;
                              maxPriorityFeePerGas: bigint;
                              mint?: bigint;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash: `0x${string}`;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "deposit";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                          }
                          | {
                              accessList?: undefined;
                              authorizationList?: undefined;
                              blobVersionedHashes?: undefined;
                              blockHash: null
                              | `0x${string}`;
                              blockNumber: null | bigint;
                              chainId?: number;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice: bigint;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              mint?: undefined;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash?: undefined;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "legacy";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity?: undefined;
                          }
                          | {
                              accessList: AccessList;
                              authorizationList?: undefined;
                              blobVersionedHashes?: undefined;
                              blockHash: null
                              | `0x${string}`;
                              blockNumber: null | bigint;
                              chainId: number;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice: bigint;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              mint?: undefined;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash?: undefined;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "eip2930";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                          }
                          | {
                              accessList: AccessList;
                              authorizationList?: undefined;
                              blobVersionedHashes?: undefined;
                              blockHash: null
                              | `0x${string}`;
                              blockNumber: null | bigint;
                              chainId: number;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice?: undefined;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas: bigint;
                              maxPriorityFeePerGas: bigint;
                              mint?: undefined;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash?: undefined;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "eip1559";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                          }
                          | {
                              accessList: AccessList;
                              authorizationList?: undefined;
                              blobVersionedHashes: readonly `0x${string}`[];
                              blockHash: null
                              | `0x${string}`;
                              blockNumber: null | bigint;
                              chainId: number;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice?: undefined;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: undefined;
                              maxFeePerBlobGas: bigint;
                              maxFeePerGas: bigint;
                              maxPriorityFeePerGas: bigint;
                              mint?: undefined;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash?: undefined;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "eip4844";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                          }
                          | {
                              accessList: AccessList;
                              authorizationList: SignedAuthorizationList<number>;
                              blobVersionedHashes?: undefined;
                              blockHash: null | `0x${string}`;
                              blockNumber: null | bigint;
                              chainId: number;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice?: undefined;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas: bigint;
                              maxPriorityFeePerGas: bigint;
                              mint?: undefined;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash?: undefined;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "eip7702";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                          };
                      type: "transaction";
                  };
                  transactionReceipt: {
                      exclude: undefined
                      | [];
                      format: (
                          args: OpStackRpcTransactionReceipt,
                      ) => {
                          blobGasPrice?: bigint;
                          blobGasUsed?: bigint;
                          blockHash: `0x${string}`;
                          blockNumber: bigint;
                          contractAddress: undefined | null | `0x${string}`;
                          cumulativeGasUsed: bigint;
                          effectiveGasPrice: bigint;
                          from: `0x${string}`;
                          gasUsed: bigint;
                          l1Fee: null | bigint;
                          l1FeeScalar: null | number;
                          l1GasPrice: null | bigint;
                          l1GasUsed: null | bigint;
                          logs: Log<
                              bigint,
                              number,
                              false,
                              undefined,
                              undefined,
                              undefined,
                              undefined,
                          >[];
                          logsBloom: `0x${string}`;
                          root?: `0x${string}`;
                          status: "success"
                          | "reverted";
                          to: null | `0x${string}`;
                          transactionHash: `0x${string}`;
                          transactionIndex: number;
                          type: TransactionType;
                      };
                      type: "transactionReceipt";
                  };
              };
              id: 84532;
              name: "Base Sepolia";
              nativeCurrency: { decimals: 18; name: "Sepolia Ether"; symbol: "ETH" };
              network: "base-sepolia";
              rpcUrls: { default: { http: readonly ["https://sepolia.base.org"] } };
              serializers: {
                  transaction: (
                      transaction: OpStackTransactionSerializable,
                      signature?: Signature,
                  ) =>
                      | `0x02${string}`
                      | `0x01${string}`
                      | `0x03${string}`
                      | `0x04${string}`
                      | TransactionSerializedLegacy
                      | `0x7e${string}`;
              };
              sourceId: 11155111;
              testnet: true;
          }
          | {
              blockchainId: "ETH-SEPOLIA";
              blockchainVm: "EVM";
              blockExplorers: {
                  default: {
                      apiUrl: "https://api-sepolia.etherscan.io/api";
                      name: "Etherscan";
                      url: "https://sepolia.etherscan.io";
                  };
              };
              blockTime?: number;
              contracts: {
                  ensRegistry: { address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" };
                  ensUniversalResolver: {
                      address: "0xc8Af999e38273D658BE1b921b88A9Ddf005769cC";
                      blockCreated: 5317080;
                  };
                  EURC: {
                      abi: readonly [
                          {
                              inputs: readonly [
                                  { indexed: true; name: "owner"; type: "address" },
                                  { indexed: true; name: "spender"; type: "address" },
                                  { indexed: false; name: "value"; type: "uint256" },
                              ];
                              name: "Approval";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { indexed: true; name: "from"; type: "address" },
                                  { indexed: true; name: "to"; type: "address" },
                                  { indexed: false; name: "value"; type: "uint256" },
                              ];
                              name: "Transfer";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { name: "owner"; type: "address" },
                                  { name: "spender"; type: "address" },
                              ];
                              name: "allowance";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "spender"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "approve";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [{ name: "account"; type: "address" }];
                              name: "balanceOf";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "decimals";
                              outputs: readonly [{ type: "uint8" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "name";
                              outputs: readonly [{ type: "string" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "symbol";
                              outputs: readonly [{ type: "string" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "totalSupply";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "recipient"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "transfer";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "sender"; type: "address" },
                                  { name: "recipient"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "transferFrom";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ];
                      address: "0x08210F9170F89Ab7658F0B5E3fF39b0E03C594D4";
                      read: { decimals: () => 6 };
                  };
                  multicall3: {
                      address: "0xca11bde05977b3631167028862be2a173976ca11";
                      blockCreated: 751532;
                  };
                  QuoterV2: {
                      abi: readonly [
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "_factory"; type: "address" },
                                  { internalType: "address"; name: "_WETH9"; type: "address" },
                              ];
                              stateMutability: "nonpayable";
                              type: "constructor";
                          },
                          {
                              inputs: readonly [];
                              name: "WETH9";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "factory";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              name: "quoteExactInput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                  {
                                      internalType: "uint160[]";
                                      name: "sqrtPriceX96AfterList";
                                      type: "uint160[]";
                                  },
                                  {
                                      internalType: "uint32[]";
                                      name: "initializedTicksCrossedList";
                                      type: "uint32[]";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IQuoterV2.QuoteExactInputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "quoteExactInputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                  {
                                      internalType: "uint160";
                                      name: "sqrtPriceX96After";
                                      type: "uint160";
                                  },
                                  {
                                      internalType: "uint32";
                                      name: "initializedTicksCrossed";
                                      type: "uint32";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              name: "quoteExactOutput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  {
                                      internalType: "uint160[]";
                                      name: "sqrtPriceX96AfterList";
                                      type: "uint160[]";
                                  },
                                  {
                                      internalType: "uint32[]";
                                      name: "initializedTicksCrossedList";
                                      type: "uint32[]";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IQuoterV2.QuoteExactOutputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "quoteExactOutputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  {
                                      internalType: "uint160";
                                      name: "sqrtPriceX96After";
                                      type: "uint160";
                                  },
                                  {
                                      internalType: "uint32";
                                      name: "initializedTicksCrossed";
                                      type: "uint32";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                  { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                              ];
                              name: "uniswapV3SwapCallback";
                              outputs: readonly [];
                              stateMutability: "view";
                              type: "function";
                          },
                      ];
                      address: "0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3";
                  };
                  SwapRouter02: {
                      abi: readonly [
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "_factoryV2"; type: "address" },
                                  { internalType: "address"; name: "factoryV3"; type: "address" },
                                  {
                                      internalType: "address";
                                      name: "_positionManager";
                                      type: "address";
                                  },
                                  { internalType: "address"; name: "_WETH9"; type: "address" },
                              ];
                              stateMutability: "nonpayable";
                              type: "constructor";
                          },
                          {
                              inputs: readonly [];
                              name: "WETH9";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveMax";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveMaxMinusOne";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveZeroThenMax";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveZeroThenMaxMinusOne";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "data"; type: "bytes" },
                              ];
                              name: "callPositionManager";
                              outputs: readonly [
                                  { internalType: "bytes"; name: "result"; type: "bytes" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes[]"; name: "paths"; type: "bytes[]" },
                                  { internalType: "uint128[]"; name: "amounts"; type: "uint128[]" },
                                  {
                                      internalType: "uint24";
                                      name: "maximumTickDivergence";
                                      type: "uint24";
                                  },
                                  { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                              ];
                              name: "checkOracleSlippage";
                              outputs: readonly [];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                                  {
                                      internalType: "uint24";
                                      name: "maximumTickDivergence";
                                      type: "uint24";
                                  },
                                  { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                              ];
                              name: "checkOracleSlippage";
                              outputs: readonly [];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "bytes"; name: "path"; type: "bytes" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountOutMinimum";
                                              type: "uint256";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactInputParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactInput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountOutMinimum";
                                              type: "uint256";
                                          },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactInputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactInputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "bytes"; name: "path"; type: "bytes" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountInMaximum";
                                              type: "uint256";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactOutputParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactOutput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountInMaximum";
                                              type: "uint256";
                                          },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactOutputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactOutputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "factory";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "factoryV2";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                              ];
                              name: "getApprovalType";
                              outputs: readonly [
                                  {
                                      internalType: "enum IApproveAndCall.ApprovalType";
                                      name: "";
                                      type: "uint8";
                                  },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "token0"; type: "address" },
                                          { internalType: "address"; name: "token1"; type: "address" },
                                          { internalType: "uint256"; name: "tokenId"; type: "uint256" },
                                          { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                          { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                      ];
                                      internalType: "struct IApproveAndCall.IncreaseLiquidityParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "increaseLiquidity";
                              outputs: readonly [
                                  { internalType: "bytes"; name: "result"; type: "bytes" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "token0"; type: "address" },
                                          { internalType: "address"; name: "token1"; type: "address" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          { internalType: "int24"; name: "tickLower"; type: "int24" },
                                          { internalType: "int24"; name: "tickUpper"; type: "int24" },
                                          { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                          { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                      ];
                                      internalType: "struct IApproveAndCall.MintParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "mint";
                              outputs: readonly [
                                  { internalType: "bytes"; name: "result"; type: "bytes" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "bytes32";
                                      name: "previousBlockhash";
                                      type: "bytes32";
                                  },
                                  { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                              ];
                              name: "multicall";
                              outputs: readonly [
                                  { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                  { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                              ];
                              name: "multicall";
                              outputs: readonly [
                                  { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                              ];
                              name: "multicall";
                              outputs: readonly [
                                  { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "positionManager";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                              ];
                              name: "pull";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "refundETH";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                                  { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermit";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermitAllowed";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermitAllowedIfNecessary";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                                  { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermitIfNecessary";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  { internalType: "uint256"; name: "amountOutMin"; type: "uint256" },
                                  { internalType: "address[]"; name: "path"; type: "address[]" },
                                  { internalType: "address"; name: "to"; type: "address" },
                              ];
                              name: "swapExactTokensForTokens";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                  { internalType: "uint256"; name: "amountInMax"; type: "uint256" },
                                  { internalType: "address[]"; name: "path"; type: "address[]" },
                                  { internalType: "address"; name: "to"; type: "address" },
                              ];
                              name: "swapTokensForExactTokens";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                              ];
                              name: "sweepToken";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              ];
                              name: "sweepToken";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "sweepTokenWithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "sweepTokenWithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                  { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                  { internalType: "bytes"; name: "_data"; type: "bytes" },
                              ];
                              name: "uniswapV3SwapCallback";
                              outputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                              ];
                              name: "unwrapWETH9";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                              ];
                              name: "unwrapWETH9";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "unwrapWETH9WithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "unwrapWETH9WithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                              ];
                              name: "wrapETH";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          { stateMutability: "payable"; type: "receive" },
                      ];
                      address: "0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E";
                  };
                  UniswapV3Factory: {
                      abi: readonly [
                          {
                              inputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "constructor";
                          },
                          {
                              anonymous: false;
                              inputs: readonly [
                                  {
                                      indexed: true;
                                      internalType: "uint24";
                                      name: "fee";
                                      type: "uint24";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "int24";
                                      name: "tickSpacing";
                                      type: "int24";
                                  },
                              ];
                              name: "FeeAmountEnabled";
                              type: "event";
                          },
                          {
                              anonymous: false;
                              inputs: readonly [
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "oldOwner";
                                      type: "address";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "newOwner";
                                      type: "address";
                                  },
                              ];
                              name: "OwnerChanged";
                              type: "event";
                          },
                          {
                              anonymous: false;
                              inputs: readonly [
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "token0";
                                      type: "address";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "token1";
                                      type: "address";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "uint24";
                                      name: "fee";
                                      type: "uint24";
                                  },
                                  {
                                      indexed: false;
                                      internalType: "int24";
                                      name: "tickSpacing";
                                      type: "int24";
                                  },
                                  {
                                      indexed: false;
                                      internalType: "address";
                                      name: "pool";
                                      type: "address";
                                  },
                              ];
                              name: "PoolCreated";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "tokenA"; type: "address" },
                                  { internalType: "address"; name: "tokenB"; type: "address" },
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                              ];
                              name: "createPool";
                              outputs: readonly [
                                  { internalType: "address"; name: "pool"; type: "address" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                                  { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                              ];
                              name: "enableFeeAmount";
                              outputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint24"; name: ""; type: "uint24" },
                              ];
                              name: "feeAmountTickSpacing";
                              outputs: readonly [{ internalType: "int24"; name: ""; type: "int24" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                                  { internalType: "address"; name: ""; type: "address" },
                                  { internalType: "uint24"; name: ""; type: "uint24" },
                              ];
                              name: "getPool";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "owner";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "parameters";
                              outputs: readonly [
                                  { internalType: "address"; name: "factory"; type: "address" },
                                  { internalType: "address"; name: "token0"; type: "address" },
                                  { internalType: "address"; name: "token1"; type: "address" },
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                                  { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "_owner"; type: "address" },
                              ];
                              name: "setOwner";
                              outputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ];
                      address: "0x0227628f3F023bb0B980b67D528571c95c6DaC1c";
                  };
                  USDC: {
                      abi: readonly [
                          {
                              inputs: readonly [
                                  { indexed: true; name: "owner"; type: "address" },
                                  { indexed: true; name: "spender"; type: "address" },
                                  { indexed: false; name: "value"; type: "uint256" },
                              ];
                              name: "Approval";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { indexed: true; name: "from"; type: "address" },
                                  { indexed: true; name: "to"; type: "address" },
                                  { indexed: false; name: "value"; type: "uint256" },
                              ];
                              name: "Transfer";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { name: "owner"; type: "address" },
                                  { name: "spender"; type: "address" },
                              ];
                              name: "allowance";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "spender"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "approve";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [{ name: "account"; type: "address" }];
                              name: "balanceOf";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "decimals";
                              outputs: readonly [{ type: "uint8" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "name";
                              outputs: readonly [{ type: "string" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "symbol";
                              outputs: readonly [{ type: "string" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "totalSupply";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "recipient"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "transfer";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "sender"; type: "address" },
                                  { name: "recipient"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "transferFrom";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ];
                      address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238";
                      read: { decimals: () => 6 };
                  };
              };
              custom?: Record<string, unknown>;
              ensTlds?: readonly string[];
              fees?: ChainFees<undefined>;
              formatters?: undefined;
              id: 11155111;
              name: "Sepolia";
              nativeCurrency: { decimals: 18; name: "Sepolia Ether"; symbol: "ETH" };
              rpcUrls: { default: { http: readonly ["https://sepolia.drpc.org"] } };
              serializers?: ChainSerializers<
                  undefined,
                  TransactionSerializable<bigint, number>,
              >;
              sourceId?: number;
              testnet: true;
          }
          | {
              blockchainId: "UNI-SEPOLIA";
              blockchainVm: "EVM";
              blockExplorers: {
                  default: {
                      apiUrl: "https://api-sepolia.uniscan.xyz/api";
                      name: "Uniscan";
                      url: "https://sepolia.uniscan.xyz";
                  };
              };
              blockTime: 2000;
              contracts: {
                  disputeGameFactory: {
                      "11155111": { address: "0xeff73e5aa3B9AEC32c659Aa3E00444d20a84394b" };
                  };
                  gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                  l1Block: { address: "0x4200000000000000000000000000000000000015" };
                  l1StandardBridge: {
                      "11155111": { address: "0xea58fcA6849d79EAd1f26608855c2D6407d54Ce2" };
                  };
                  l2CrossDomainMessenger: {
                      address: "0x4200000000000000000000000000000000000007";
                  };
                  l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                  l2StandardBridge: {
                      address: "0x4200000000000000000000000000000000000010";
                  };
                  l2ToL1MessagePasser: {
                      address: "0x4200000000000000000000000000000000000016";
                  };
                  multicall3: {
                      address: "0xca11bde05977b3631167028862be2a173976ca11";
                      blockCreated: 0;
                  };
                  portal: {
                      "11155111": { address: "0x0d83dab629f0e0F9d36c0Cbc89B69a489f0751bD" };
                  };
                  QuoterV2: {
                      abi: readonly [
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "_factory"; type: "address" },
                                  { internalType: "address"; name: "_WETH9"; type: "address" },
                              ];
                              stateMutability: "nonpayable";
                              type: "constructor";
                          },
                          {
                              inputs: readonly [];
                              name: "WETH9";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "factory";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              name: "quoteExactInput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                  {
                                      internalType: "uint160[]";
                                      name: "sqrtPriceX96AfterList";
                                      type: "uint160[]";
                                  },
                                  {
                                      internalType: "uint32[]";
                                      name: "initializedTicksCrossedList";
                                      type: "uint32[]";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IQuoterV2.QuoteExactInputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "quoteExactInputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                  {
                                      internalType: "uint160";
                                      name: "sqrtPriceX96After";
                                      type: "uint160";
                                  },
                                  {
                                      internalType: "uint32";
                                      name: "initializedTicksCrossed";
                                      type: "uint32";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              name: "quoteExactOutput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  {
                                      internalType: "uint160[]";
                                      name: "sqrtPriceX96AfterList";
                                      type: "uint160[]";
                                  },
                                  {
                                      internalType: "uint32[]";
                                      name: "initializedTicksCrossedList";
                                      type: "uint32[]";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint256"; name: "amount"; type: "uint256" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IQuoterV2.QuoteExactOutputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "quoteExactOutputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  {
                                      internalType: "uint160";
                                      name: "sqrtPriceX96After";
                                      type: "uint160";
                                  },
                                  {
                                      internalType: "uint32";
                                      name: "initializedTicksCrossed";
                                      type: "uint32";
                                  },
                                  { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                  { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                              ];
                              name: "uniswapV3SwapCallback";
                              outputs: readonly [];
                              stateMutability: "view";
                              type: "function";
                          },
                      ];
                      address: "0x6Dd37329A1A225a6Fca658265D460423DCafBF89";
                  };
                  SwapRouter02: {
                      abi: readonly [
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "_factoryV2"; type: "address" },
                                  { internalType: "address"; name: "factoryV3"; type: "address" },
                                  {
                                      internalType: "address";
                                      name: "_positionManager";
                                      type: "address";
                                  },
                                  { internalType: "address"; name: "_WETH9"; type: "address" },
                              ];
                              stateMutability: "nonpayable";
                              type: "constructor";
                          },
                          {
                              inputs: readonly [];
                              name: "WETH9";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveMax";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveMaxMinusOne";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveZeroThenMax";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                              ];
                              name: "approveZeroThenMaxMinusOne";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "data"; type: "bytes" },
                              ];
                              name: "callPositionManager";
                              outputs: readonly [
                                  { internalType: "bytes"; name: "result"; type: "bytes" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes[]"; name: "paths"; type: "bytes[]" },
                                  { internalType: "uint128[]"; name: "amounts"; type: "uint128[]" },
                                  {
                                      internalType: "uint24";
                                      name: "maximumTickDivergence";
                                      type: "uint24";
                                  },
                                  { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                              ];
                              name: "checkOracleSlippage";
                              outputs: readonly [];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes"; name: "path"; type: "bytes" },
                                  {
                                      internalType: "uint24";
                                      name: "maximumTickDivergence";
                                      type: "uint24";
                                  },
                                  { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                              ];
                              name: "checkOracleSlippage";
                              outputs: readonly [];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "bytes"; name: "path"; type: "bytes" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountOutMinimum";
                                              type: "uint256";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactInputParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactInput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountOutMinimum";
                                              type: "uint256";
                                          },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactInputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactInputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "bytes"; name: "path"; type: "bytes" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountInMaximum";
                                              type: "uint256";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactOutputParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactOutput";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "tokenIn"; type: "address" },
                                          { internalType: "address"; name: "tokenOut"; type: "address" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                          { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                          {
                                              internalType: "uint256";
                                              name: "amountInMaximum";
                                              type: "uint256";
                                          },
                                          {
                                              internalType: "uint160";
                                              name: "sqrtPriceLimitX96";
                                              type: "uint160";
                                          },
                                      ];
                                      internalType: "struct IV3SwapRouter.ExactOutputSingleParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "exactOutputSingle";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "factory";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "factoryV2";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amount"; type: "uint256" },
                              ];
                              name: "getApprovalType";
                              outputs: readonly [
                                  {
                                      internalType: "enum IApproveAndCall.ApprovalType";
                                      name: "";
                                      type: "uint8";
                                  },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "token0"; type: "address" },
                                          { internalType: "address"; name: "token1"; type: "address" },
                                          { internalType: "uint256"; name: "tokenId"; type: "uint256" },
                                          { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                          { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                      ];
                                      internalType: "struct IApproveAndCall.IncreaseLiquidityParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "increaseLiquidity";
                              outputs: readonly [
                                  { internalType: "bytes"; name: "result"; type: "bytes" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      components: readonly [
                                          { internalType: "address"; name: "token0"; type: "address" },
                                          { internalType: "address"; name: "token1"; type: "address" },
                                          { internalType: "uint24"; name: "fee"; type: "uint24" },
                                          { internalType: "int24"; name: "tickLower"; type: "int24" },
                                          { internalType: "int24"; name: "tickUpper"; type: "int24" },
                                          { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                          { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                          { internalType: "address"; name: "recipient"; type: "address" },
                                      ];
                                      internalType: "struct IApproveAndCall.MintParams";
                                      name: "params";
                                      type: "tuple";
                                  },
                              ];
                              name: "mint";
                              outputs: readonly [
                                  { internalType: "bytes"; name: "result"; type: "bytes" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "bytes32";
                                      name: "previousBlockhash";
                                      type: "bytes32";
                                  },
                                  { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                              ];
                              name: "multicall";
                              outputs: readonly [
                                  { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                  { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                              ];
                              name: "multicall";
                              outputs: readonly [
                                  { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                              ];
                              name: "multicall";
                              outputs: readonly [
                                  { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "positionManager";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                              ];
                              name: "pull";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "refundETH";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                                  { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermit";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermitAllowed";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                  { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermitAllowedIfNecessary";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                                  { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                  { internalType: "uint8"; name: "v"; type: "uint8" },
                                  { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                  { internalType: "bytes32"; name: "s"; type: "bytes32" },
                              ];
                              name: "selfPermitIfNecessary";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                  { internalType: "uint256"; name: "amountOutMin"; type: "uint256" },
                                  { internalType: "address[]"; name: "path"; type: "address[]" },
                                  { internalType: "address"; name: "to"; type: "address" },
                              ];
                              name: "swapExactTokensForTokens";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                  { internalType: "uint256"; name: "amountInMax"; type: "uint256" },
                                  { internalType: "address[]"; name: "path"; type: "address[]" },
                                  { internalType: "address"; name: "to"; type: "address" },
                              ];
                              name: "swapTokensForExactTokens";
                              outputs: readonly [
                                  { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              ];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                              ];
                              name: "sweepToken";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              ];
                              name: "sweepToken";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "sweepTokenWithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "token"; type: "address" },
                                  { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "sweepTokenWithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                  { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                  { internalType: "bytes"; name: "_data"; type: "bytes" },
                              ];
                              name: "uniswapV3SwapCallback";
                              outputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                              ];
                              name: "unwrapWETH9";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                              ];
                              name: "unwrapWETH9";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                                  { internalType: "address"; name: "recipient"; type: "address" },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "unwrapWETH9WithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  {
                                      internalType: "uint256";
                                      name: "amountMinimum";
                                      type: "uint256";
                                  },
                                  { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                  { internalType: "address"; name: "feeRecipient"; type: "address" },
                              ];
                              name: "unwrapWETH9WithFee";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint256"; name: "value"; type: "uint256" },
                              ];
                              name: "wrapETH";
                              outputs: readonly [];
                              stateMutability: "payable";
                              type: "function";
                          },
                          { stateMutability: "payable"; type: "receive" },
                      ];
                      address: "0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166";
                  };
                  UniswapV3Factory: {
                      abi: readonly [
                          {
                              inputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "constructor";
                          },
                          {
                              anonymous: false;
                              inputs: readonly [
                                  {
                                      indexed: true;
                                      internalType: "uint24";
                                      name: "fee";
                                      type: "uint24";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "int24";
                                      name: "tickSpacing";
                                      type: "int24";
                                  },
                              ];
                              name: "FeeAmountEnabled";
                              type: "event";
                          },
                          {
                              anonymous: false;
                              inputs: readonly [
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "oldOwner";
                                      type: "address";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "newOwner";
                                      type: "address";
                                  },
                              ];
                              name: "OwnerChanged";
                              type: "event";
                          },
                          {
                              anonymous: false;
                              inputs: readonly [
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "token0";
                                      type: "address";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "address";
                                      name: "token1";
                                      type: "address";
                                  },
                                  {
                                      indexed: true;
                                      internalType: "uint24";
                                      name: "fee";
                                      type: "uint24";
                                  },
                                  {
                                      indexed: false;
                                      internalType: "int24";
                                      name: "tickSpacing";
                                      type: "int24";
                                  },
                                  {
                                      indexed: false;
                                      internalType: "address";
                                      name: "pool";
                                      type: "address";
                                  },
                              ];
                              name: "PoolCreated";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "tokenA"; type: "address" },
                                  { internalType: "address"; name: "tokenB"; type: "address" },
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                              ];
                              name: "createPool";
                              outputs: readonly [
                                  { internalType: "address"; name: "pool"; type: "address" },
                              ];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                                  { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                              ];
                              name: "enableFeeAmount";
                              outputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "uint24"; name: ""; type: "uint24" },
                              ];
                              name: "feeAmountTickSpacing";
                              outputs: readonly [{ internalType: "int24"; name: ""; type: "int24" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                                  { internalType: "address"; name: ""; type: "address" },
                                  { internalType: "uint24"; name: ""; type: "uint24" },
                              ];
                              name: "getPool";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "owner";
                              outputs: readonly [
                                  { internalType: "address"; name: ""; type: "address" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "parameters";
                              outputs: readonly [
                                  { internalType: "address"; name: "factory"; type: "address" },
                                  { internalType: "address"; name: "token0"; type: "address" },
                                  { internalType: "address"; name: "token1"; type: "address" },
                                  { internalType: "uint24"; name: "fee"; type: "uint24" },
                                  { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                              ];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { internalType: "address"; name: "_owner"; type: "address" },
                              ];
                              name: "setOwner";
                              outputs: readonly [];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ];
                      address: "0x1F98431c8aD98523631AE4a59f267346ea31F984";
                  };
                  USDC: {
                      abi: readonly [
                          {
                              inputs: readonly [
                                  { indexed: true; name: "owner"; type: "address" },
                                  { indexed: true; name: "spender"; type: "address" },
                                  { indexed: false; name: "value"; type: "uint256" },
                              ];
                              name: "Approval";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { indexed: true; name: "from"; type: "address" },
                                  { indexed: true; name: "to"; type: "address" },
                                  { indexed: false; name: "value"; type: "uint256" },
                              ];
                              name: "Transfer";
                              type: "event";
                          },
                          {
                              inputs: readonly [
                                  { name: "owner"; type: "address" },
                                  { name: "spender"; type: "address" },
                              ];
                              name: "allowance";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "spender"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "approve";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [{ name: "account"; type: "address" }];
                              name: "balanceOf";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "decimals";
                              outputs: readonly [{ type: "uint8" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "name";
                              outputs: readonly [{ type: "string" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "symbol";
                              outputs: readonly [{ type: "string" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [];
                              name: "totalSupply";
                              outputs: readonly [{ type: "uint256" }];
                              stateMutability: "view";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "recipient"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "transfer";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                          {
                              inputs: readonly [
                                  { name: "sender"; type: "address" },
                                  { name: "recipient"; type: "address" },
                                  { name: "amount"; type: "uint256" },
                              ];
                              name: "transferFrom";
                              outputs: readonly [{ type: "bool" }];
                              stateMutability: "nonpayable";
                              type: "function";
                          },
                      ];
                      address: "0x31d0220469e10c4E71834a79b1f276d740d3768F";
                      read: { decimals: () => 6 };
                  };
              };
              custom?: Record<string, unknown>;
              ensTlds?: readonly string[];
              fees?: ChainFees<undefined>;
              formatters: {
                  block: {
                      exclude: undefined | [];
                      format: (
                          args: OpStackRpcBlock<BlockTag, boolean>,
                      ) => {
                          baseFeePerGas: null | bigint;
                          blobGasUsed: bigint;
                          difficulty: bigint;
                          excessBlobGas: bigint;
                          extraData: `0x${string}`;
                          gasLimit: bigint;
                          gasUsed: bigint;
                          hash: null | `0x${string}`;
                          logsBloom: null | `0x${string}`;
                          miner: `0x${string}`;
                          mixHash: `0x${string}`;
                          nonce: null | `0x${string}`;
                          number: null | bigint;
                          parentBeaconBlockRoot?: `0x${string}`;
                          parentHash: `0x${string}`;
                          receiptsRoot: `0x${string}`;
                          sealFields: `0x${string}`[];
                          sha3Uncles: `0x${string}`;
                          size: bigint;
                          stateRoot: `0x${string}`;
                          timestamp: bigint;
                          totalDifficulty: null | bigint;
                          transactions: `0x${string}`[] | OpStackTransaction<boolean>[];
                          transactionsRoot: `0x${string}`;
                          uncles: `0x${string}`[];
                          withdrawals?: Withdrawal[];
                          withdrawalsRoot?: `0x${string}`;
                      };
                      type: "block";
                  };
                  transaction: {
                      exclude: undefined
                      | [];
                      format: (
                          args: OpStackRpcTransaction<boolean>,
                      ) =>
                          | {
                              blockHash: null
                              | `0x${string}`;
                              blockNumber: null | bigint;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice?: undefined;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: boolean;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas: bigint;
                              maxPriorityFeePerGas: bigint;
                              mint?: bigint;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash: `0x${string}`;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "deposit";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                          }
                          | {
                              accessList?: undefined;
                              authorizationList?: undefined;
                              blobVersionedHashes?: undefined;
                              blockHash: null
                              | `0x${string}`;
                              blockNumber: null | bigint;
                              chainId?: number;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice: bigint;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              mint?: undefined;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash?: undefined;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "legacy";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity?: undefined;
                          }
                          | {
                              accessList: AccessList;
                              authorizationList?: undefined;
                              blobVersionedHashes?: undefined;
                              blockHash: null
                              | `0x${string}`;
                              blockNumber: null | bigint;
                              chainId: number;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice: bigint;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              mint?: undefined;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash?: undefined;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "eip2930";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                          }
                          | {
                              accessList: AccessList;
                              authorizationList?: undefined;
                              blobVersionedHashes?: undefined;
                              blockHash: null
                              | `0x${string}`;
                              blockNumber: null | bigint;
                              chainId: number;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice?: undefined;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas: bigint;
                              maxPriorityFeePerGas: bigint;
                              mint?: undefined;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash?: undefined;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "eip1559";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                          }
                          | {
                              accessList: AccessList;
                              authorizationList?: undefined;
                              blobVersionedHashes: readonly `0x${string}`[];
                              blockHash: null
                              | `0x${string}`;
                              blockNumber: null | bigint;
                              chainId: number;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice?: undefined;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: undefined;
                              maxFeePerBlobGas: bigint;
                              maxFeePerGas: bigint;
                              maxPriorityFeePerGas: bigint;
                              mint?: undefined;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash?: undefined;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "eip4844";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                          }
                          | {
                              accessList: AccessList;
                              authorizationList: SignedAuthorizationList<number>;
                              blobVersionedHashes?: undefined;
                              blockHash: null | `0x${string}`;
                              blockNumber: null | bigint;
                              chainId: number;
                              from: `0x${string}`;
                              gas: bigint;
                              gasPrice?: undefined;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              isSystemTx?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas: bigint;
                              maxPriorityFeePerGas: bigint;
                              mint?: undefined;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              sourceHash?: undefined;
                              to: null | `0x${string}`;
                              transactionIndex: null | number;
                              type: "eip7702";
                              typeHex: null | `0x${string}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                          };
                      type: "transaction";
                  };
                  transactionReceipt: {
                      exclude: undefined
                      | [];
                      format: (
                          args: OpStackRpcTransactionReceipt,
                      ) => {
                          blobGasPrice?: bigint;
                          blobGasUsed?: bigint;
                          blockHash: `0x${string}`;
                          blockNumber: bigint;
                          contractAddress: undefined | null | `0x${string}`;
                          cumulativeGasUsed: bigint;
                          effectiveGasPrice: bigint;
                          from: `0x${string}`;
                          gasUsed: bigint;
                          l1Fee: null | bigint;
                          l1FeeScalar: null | number;
                          l1GasPrice: null | bigint;
                          l1GasUsed: null | bigint;
                          logs: Log<
                              bigint,
                              number,
                              false,
                              undefined,
                              undefined,
                              undefined,
                              undefined,
                          >[];
                          logsBloom: `0x${string}`;
                          root?: `0x${string}`;
                          status: "success"
                          | "reverted";
                          to: null | `0x${string}`;
                          transactionHash: `0x${string}`;
                          transactionIndex: number;
                          type: TransactionType;
                      };
                      type: "transactionReceipt";
                  };
              };
              id: 1301;
              name: "Unichain Sepolia";
              nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
              rpcUrls: { default: { http: readonly ["https://sepolia.unichain.org"] } };
              serializers: {
                  transaction: (
                      transaction: OpStackTransactionSerializable,
                      signature?: Signature,
                  ) =>
                      | `0x02${string}`
                      | `0x01${string}`
                      | `0x03${string}`
                      | `0x04${string}`
                      | TransactionSerializedLegacy
                      | `0x7e${string}`;
              };
              sourceId: 11155111;
              testnet: true;
          }

      • undefined
      • {
            blockchainId: "BASE-SEPOLIA";
            blockchainVm: "EVM";
            blockExplorers: {
                default: {
                    apiUrl: "https://api-sepolia.basescan.org/api";
                    name: "Basescan";
                    url: "https://sepolia.basescan.org";
                };
            };
            blockTime: 2000;
            contracts: {
                disputeGameFactory: {
                    "11155111": { address: "0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1" };
                };
                EURC: {
                    abi: readonly [
                        {
                            inputs: readonly [
                                { indexed: true; name: "owner"; type: "address" },
                                { indexed: true; name: "spender"; type: "address" },
                                { indexed: false; name: "value"; type: "uint256" },
                            ];
                            name: "Approval";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { indexed: true; name: "from"; type: "address" },
                                { indexed: true; name: "to"; type: "address" },
                                { indexed: false; name: "value"; type: "uint256" },
                            ];
                            name: "Transfer";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { name: "owner"; type: "address" },
                                { name: "spender"; type: "address" },
                            ];
                            name: "allowance";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "spender"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "approve";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [{ name: "account"; type: "address" }];
                            name: "balanceOf";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "decimals";
                            outputs: readonly [{ type: "uint8" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "name";
                            outputs: readonly [{ type: "string" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "symbol";
                            outputs: readonly [{ type: "string" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "totalSupply";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "recipient"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "transfer";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "sender"; type: "address" },
                                { name: "recipient"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "transferFrom";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                    ];
                    address: "0x808456652fdb597867f38412077A9182bf77359F";
                    read: { decimals: () => 6 };
                };
                gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                l1Block: { address: "0x4200000000000000000000000000000000000015" };
                l1StandardBridge: {
                    "11155111": {
                        address: "0xfd0Bf71F60660E2f608ed56e1659C450eB113120";
                        blockCreated: 4446677;
                    };
                };
                l2CrossDomainMessenger: {
                    address: "0x4200000000000000000000000000000000000007";
                };
                l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                l2OutputOracle: {
                    "11155111": { address: "0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254" };
                };
                l2StandardBridge: {
                    address: "0x4200000000000000000000000000000000000010";
                };
                l2ToL1MessagePasser: {
                    address: "0x4200000000000000000000000000000000000016";
                };
                multicall3: {
                    address: "0xca11bde05977b3631167028862be2a173976ca11";
                    blockCreated: 1059647;
                };
                portal: {
                    "11155111": {
                        address: "0x49f53e41452c74589e85ca1677426ba426459e85";
                        blockCreated: 4446677;
                    };
                };
                QuoterV2: {
                    abi: readonly [
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "_factory"; type: "address" },
                                { internalType: "address"; name: "_WETH9"; type: "address" },
                            ];
                            stateMutability: "nonpayable";
                            type: "constructor";
                        },
                        {
                            inputs: readonly [];
                            name: "WETH9";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "factory";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            name: "quoteExactInput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                {
                                    internalType: "uint160[]";
                                    name: "sqrtPriceX96AfterList";
                                    type: "uint160[]";
                                },
                                {
                                    internalType: "uint32[]";
                                    name: "initializedTicksCrossedList";
                                    type: "uint32[]";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IQuoterV2.QuoteExactInputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "quoteExactInputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                {
                                    internalType: "uint160";
                                    name: "sqrtPriceX96After";
                                    type: "uint160";
                                },
                                {
                                    internalType: "uint32";
                                    name: "initializedTicksCrossed";
                                    type: "uint32";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            name: "quoteExactOutput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                {
                                    internalType: "uint160[]";
                                    name: "sqrtPriceX96AfterList";
                                    type: "uint160[]";
                                },
                                {
                                    internalType: "uint32[]";
                                    name: "initializedTicksCrossedList";
                                    type: "uint32[]";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint256"; name: "amount"; type: "uint256" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IQuoterV2.QuoteExactOutputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "quoteExactOutputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                {
                                    internalType: "uint160";
                                    name: "sqrtPriceX96After";
                                    type: "uint160";
                                },
                                {
                                    internalType: "uint32";
                                    name: "initializedTicksCrossed";
                                    type: "uint32";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                            ];
                            name: "uniswapV3SwapCallback";
                            outputs: readonly [];
                            stateMutability: "view";
                            type: "function";
                        },
                    ];
                    address: "0xC5290058841028F1614F3A6F0F5816cAd0df5E27";
                };
                SwapRouter02: {
                    abi: readonly [
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "_factoryV2"; type: "address" },
                                { internalType: "address"; name: "factoryV3"; type: "address" },
                                { internalType: "address"; name: "_positionManager"; type: "address" },
                                { internalType: "address"; name: "_WETH9"; type: "address" },
                            ];
                            stateMutability: "nonpayable";
                            type: "constructor";
                        },
                        {
                            inputs: readonly [];
                            name: "WETH9";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveMax";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveMaxMinusOne";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveZeroThenMax";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveZeroThenMaxMinusOne";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "data"; type: "bytes" },
                            ];
                            name: "callPositionManager";
                            outputs: readonly [
                                { internalType: "bytes"; name: "result"; type: "bytes" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes[]"; name: "paths"; type: "bytes[]" },
                                { internalType: "uint128[]"; name: "amounts"; type: "uint128[]" },
                                {
                                    internalType: "uint24";
                                    name: "maximumTickDivergence";
                                    type: "uint24";
                                },
                                { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                            ];
                            name: "checkOracleSlippage";
                            outputs: readonly [];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                                {
                                    internalType: "uint24";
                                    name: "maximumTickDivergence";
                                    type: "uint24";
                                },
                                { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                            ];
                            name: "checkOracleSlippage";
                            outputs: readonly [];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "bytes"; name: "path"; type: "bytes" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountOutMinimum";
                                            type: "uint256";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactInputParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactInput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountOutMinimum";
                                            type: "uint256";
                                        },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactInputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactInputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "bytes"; name: "path"; type: "bytes" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountInMaximum";
                                            type: "uint256";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactOutputParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactOutput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountInMaximum";
                                            type: "uint256";
                                        },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactOutputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactOutputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "factory";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "factoryV2";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amount"; type: "uint256" },
                            ];
                            name: "getApprovalType";
                            outputs: readonly [
                                {
                                    internalType: "enum IApproveAndCall.ApprovalType";
                                    name: "";
                                    type: "uint8";
                                },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "token0"; type: "address" },
                                        { internalType: "address"; name: "token1"; type: "address" },
                                        { internalType: "uint256"; name: "tokenId"; type: "uint256" },
                                        { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                        { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                    ];
                                    internalType: "struct IApproveAndCall.IncreaseLiquidityParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "increaseLiquidity";
                            outputs: readonly [
                                { internalType: "bytes"; name: "result"; type: "bytes" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "token0"; type: "address" },
                                        { internalType: "address"; name: "token1"; type: "address" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        { internalType: "int24"; name: "tickLower"; type: "int24" },
                                        { internalType: "int24"; name: "tickUpper"; type: "int24" },
                                        { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                        { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                    ];
                                    internalType: "struct IApproveAndCall.MintParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "mint";
                            outputs: readonly [
                                { internalType: "bytes"; name: "result"; type: "bytes" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    internalType: "bytes32";
                                    name: "previousBlockhash";
                                    type: "bytes32";
                                },
                                { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                            ];
                            name: "multicall";
                            outputs: readonly [
                                { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                            ];
                            name: "multicall";
                            outputs: readonly [
                                { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                            ];
                            name: "multicall";
                            outputs: readonly [
                                { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "positionManager";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                            ];
                            name: "pull";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "refundETH";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                                { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermit";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermitAllowed";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermitAllowedIfNecessary";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                                { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermitIfNecessary";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                { internalType: "uint256"; name: "amountOutMin"; type: "uint256" },
                                { internalType: "address[]"; name: "path"; type: "address[]" },
                                { internalType: "address"; name: "to"; type: "address" },
                            ];
                            name: "swapExactTokensForTokens";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                { internalType: "uint256"; name: "amountInMax"; type: "uint256" },
                                { internalType: "address[]"; name: "path"; type: "address[]" },
                                { internalType: "address"; name: "to"; type: "address" },
                            ];
                            name: "swapTokensForExactTokens";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                            ];
                            name: "sweepToken";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                            ];
                            name: "sweepToken";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "sweepTokenWithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "sweepTokenWithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                { internalType: "bytes"; name: "_data"; type: "bytes" },
                            ];
                            name: "uniswapV3SwapCallback";
                            outputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                            ];
                            name: "unwrapWETH9";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                            ];
                            name: "unwrapWETH9";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "unwrapWETH9WithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "unwrapWETH9WithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                            ];
                            name: "wrapETH";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        { stateMutability: "payable"; type: "receive" },
                    ];
                    address: "0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4";
                };
                UniswapV3Factory: {
                    abi: readonly [
                        {
                            inputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "constructor";
                        },
                        {
                            anonymous: false;
                            inputs: readonly [
                                {
                                    indexed: true;
                                    internalType: "uint24";
                                    name: "fee";
                                    type: "uint24";
                                },
                                {
                                    indexed: true;
                                    internalType: "int24";
                                    name: "tickSpacing";
                                    type: "int24";
                                },
                            ];
                            name: "FeeAmountEnabled";
                            type: "event";
                        },
                        {
                            anonymous: false;
                            inputs: readonly [
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "oldOwner";
                                    type: "address";
                                },
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "newOwner";
                                    type: "address";
                                },
                            ];
                            name: "OwnerChanged";
                            type: "event";
                        },
                        {
                            anonymous: false;
                            inputs: readonly [
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "token0";
                                    type: "address";
                                },
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "token1";
                                    type: "address";
                                },
                                { indexed: true; internalType: "uint24"; name: "fee"; type: "uint24" },
                                {
                                    indexed: false;
                                    internalType: "int24";
                                    name: "tickSpacing";
                                    type: "int24";
                                },
                                {
                                    indexed: false;
                                    internalType: "address";
                                    name: "pool";
                                    type: "address";
                                },
                            ];
                            name: "PoolCreated";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "tokenA"; type: "address" },
                                { internalType: "address"; name: "tokenB"; type: "address" },
                                { internalType: "uint24"; name: "fee"; type: "uint24" },
                            ];
                            name: "createPool";
                            outputs: readonly [
                                { internalType: "address"; name: "pool"; type: "address" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint24"; name: "fee"; type: "uint24" },
                                { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                            ];
                            name: "enableFeeAmount";
                            outputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint24"; name: ""; type: "uint24" },
                            ];
                            name: "feeAmountTickSpacing";
                            outputs: readonly [{ internalType: "int24"; name: ""; type: "int24" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                                { internalType: "address"; name: ""; type: "address" },
                                { internalType: "uint24"; name: ""; type: "uint24" },
                            ];
                            name: "getPool";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "owner";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "parameters";
                            outputs: readonly [
                                { internalType: "address"; name: "factory"; type: "address" },
                                { internalType: "address"; name: "token0"; type: "address" },
                                { internalType: "address"; name: "token1"; type: "address" },
                                { internalType: "uint24"; name: "fee"; type: "uint24" },
                                { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "_owner"; type: "address" },
                            ];
                            name: "setOwner";
                            outputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                    ];
                    address: "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24";
                };
                USDC: {
                    abi: readonly [
                        {
                            inputs: readonly [
                                { indexed: true; name: "owner"; type: "address" },
                                { indexed: true; name: "spender"; type: "address" },
                                { indexed: false; name: "value"; type: "uint256" },
                            ];
                            name: "Approval";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { indexed: true; name: "from"; type: "address" },
                                { indexed: true; name: "to"; type: "address" },
                                { indexed: false; name: "value"; type: "uint256" },
                            ];
                            name: "Transfer";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { name: "owner"; type: "address" },
                                { name: "spender"; type: "address" },
                            ];
                            name: "allowance";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "spender"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "approve";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [{ name: "account"; type: "address" }];
                            name: "balanceOf";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "decimals";
                            outputs: readonly [{ type: "uint8" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "name";
                            outputs: readonly [{ type: "string" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "symbol";
                            outputs: readonly [{ type: "string" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "totalSupply";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "recipient"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "transfer";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "sender"; type: "address" },
                                { name: "recipient"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "transferFrom";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                    ];
                    address: "0x036CbD53842c5426634e7929541eC2318f3dCF7e";
                    read: { decimals: () => 6 };
                };
            };
            custom?: Record<string, unknown>;
            ensTlds?: readonly string[];
            fees?: ChainFees<undefined>;
            formatters: {
                block: {
                    exclude: undefined | [];
                    format: (
                        args: OpStackRpcBlock<BlockTag, boolean>,
                    ) => {
                        baseFeePerGas: null | bigint;
                        blobGasUsed: bigint;
                        difficulty: bigint;
                        excessBlobGas: bigint;
                        extraData: `0x${string}`;
                        gasLimit: bigint;
                        gasUsed: bigint;
                        hash: null | `0x${string}`;
                        logsBloom: null | `0x${string}`;
                        miner: `0x${string}`;
                        mixHash: `0x${string}`;
                        nonce: null | `0x${string}`;
                        number: null | bigint;
                        parentBeaconBlockRoot?: `0x${string}`;
                        parentHash: `0x${string}`;
                        receiptsRoot: `0x${string}`;
                        sealFields: `0x${string}`[];
                        sha3Uncles: `0x${string}`;
                        size: bigint;
                        stateRoot: `0x${string}`;
                        timestamp: bigint;
                        totalDifficulty: null | bigint;
                        transactions: `0x${string}`[] | OpStackTransaction<boolean>[];
                        transactionsRoot: `0x${string}`;
                        uncles: `0x${string}`[];
                        withdrawals?: Withdrawal[];
                        withdrawalsRoot?: `0x${string}`;
                    };
                    type: "block";
                };
                transaction: {
                    exclude: undefined
                    | [];
                    format: (
                        args: OpStackRpcTransaction<boolean>,
                    ) =>
                        | {
                            blockHash: null
                            | `0x${string}`;
                            blockNumber: null | bigint;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice?: undefined;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: boolean;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            mint?: bigint;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash: `0x${string}`;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "deposit";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                        | {
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            blockHash: null
                            | `0x${string}`;
                            blockNumber: null | bigint;
                            chainId?: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice: bigint;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            mint?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash?: undefined;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "legacy";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity?: undefined;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            blockHash: null
                            | `0x${string}`;
                            blockNumber: null | bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice: bigint;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            mint?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash?: undefined;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "eip2930";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            blockHash: null
                            | `0x${string}`;
                            blockNumber: null | bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice?: undefined;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            mint?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash?: undefined;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "eip1559";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly `0x${string}`[];
                            blockHash: null
                            | `0x${string}`;
                            blockNumber: null | bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice?: undefined;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            mint?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash?: undefined;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "eip4844";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList: SignedAuthorizationList<number>;
                            blobVersionedHashes?: undefined;
                            blockHash: null | `0x${string}`;
                            blockNumber: null | bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice?: undefined;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            mint?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash?: undefined;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "eip7702";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        };
                    type: "transaction";
                };
                transactionReceipt: {
                    exclude: undefined
                    | [];
                    format: (
                        args: OpStackRpcTransactionReceipt,
                    ) => {
                        blobGasPrice?: bigint;
                        blobGasUsed?: bigint;
                        blockHash: `0x${string}`;
                        blockNumber: bigint;
                        contractAddress: undefined | null | `0x${string}`;
                        cumulativeGasUsed: bigint;
                        effectiveGasPrice: bigint;
                        from: `0x${string}`;
                        gasUsed: bigint;
                        l1Fee: null | bigint;
                        l1FeeScalar: null | number;
                        l1GasPrice: null | bigint;
                        l1GasUsed: null | bigint;
                        logs: Log<
                            bigint,
                            number,
                            false,
                            undefined,
                            undefined,
                            undefined,
                            undefined,
                        >[];
                        logsBloom: `0x${string}`;
                        root?: `0x${string}`;
                        status: "success"
                        | "reverted";
                        to: null | `0x${string}`;
                        transactionHash: `0x${string}`;
                        transactionIndex: number;
                        type: TransactionType;
                    };
                    type: "transactionReceipt";
                };
            };
            id: 84532;
            name: "Base Sepolia";
            nativeCurrency: { decimals: 18; name: "Sepolia Ether"; symbol: "ETH" };
            network: "base-sepolia";
            rpcUrls: { default: { http: readonly ["https://sepolia.base.org"] } };
            serializers: {
                transaction: (
                    transaction: OpStackTransactionSerializable,
                    signature?: Signature,
                ) =>
                    | `0x02${string}`
                    | `0x01${string}`
                    | `0x03${string}`
                    | `0x04${string}`
                    | TransactionSerializedLegacy
                    | `0x7e${string}`;
            };
            sourceId: 11155111;
            testnet: true;
        }
        • ReadonlyblockchainId: "BASE-SEPOLIA"
        • ReadonlyblockchainVm: "EVM"
        • blockExplorers: {
              default: {
                  apiUrl: "https://api-sepolia.basescan.org/api";
                  name: "Basescan";
                  url: "https://sepolia.basescan.org";
              };
          }

          Collection of block explorers

        • blockTime: 2000

          Block time in milliseconds.

        • contracts: {
              disputeGameFactory: {
                  "11155111": { address: "0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1" };
              };
              EURC: {
                  abi: readonly [
                      {
                          inputs: readonly [
                              { indexed: true; name: "owner"; type: "address" },
                              { indexed: true; name: "spender"; type: "address" },
                              { indexed: false; name: "value"; type: "uint256" },
                          ];
                          name: "Approval";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { indexed: true; name: "from"; type: "address" },
                              { indexed: true; name: "to"; type: "address" },
                              { indexed: false; name: "value"; type: "uint256" },
                          ];
                          name: "Transfer";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { name: "owner"; type: "address" },
                              { name: "spender"; type: "address" },
                          ];
                          name: "allowance";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "spender"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "approve";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [{ name: "account"; type: "address" }];
                          name: "balanceOf";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "decimals";
                          outputs: readonly [{ type: "uint8" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "name";
                          outputs: readonly [{ type: "string" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "symbol";
                          outputs: readonly [{ type: "string" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "totalSupply";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "recipient"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "transfer";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "sender"; type: "address" },
                              { name: "recipient"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "transferFrom";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                  ];
                  address: "0x808456652fdb597867f38412077A9182bf77359F";
                  read: { decimals: () => 6 };
              };
              gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
              l1Block: { address: "0x4200000000000000000000000000000000000015" };
              l1StandardBridge: {
                  "11155111": {
                      address: "0xfd0Bf71F60660E2f608ed56e1659C450eB113120";
                      blockCreated: 4446677;
                  };
              };
              l2CrossDomainMessenger: {
                  address: "0x4200000000000000000000000000000000000007";
              };
              l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
              l2OutputOracle: {
                  "11155111": { address: "0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254" };
              };
              l2StandardBridge: { address: "0x4200000000000000000000000000000000000010" };
              l2ToL1MessagePasser: {
                  address: "0x4200000000000000000000000000000000000016";
              };
              multicall3: {
                  address: "0xca11bde05977b3631167028862be2a173976ca11";
                  blockCreated: 1059647;
              };
              portal: {
                  "11155111": {
                      address: "0x49f53e41452c74589e85ca1677426ba426459e85";
                      blockCreated: 4446677;
                  };
              };
              QuoterV2: {
                  abi: readonly [
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "_factory"; type: "address" },
                              { internalType: "address"; name: "_WETH9"; type: "address" },
                          ];
                          stateMutability: "nonpayable";
                          type: "constructor";
                      },
                      {
                          inputs: readonly [];
                          name: "WETH9";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "factory";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          name: "quoteExactInput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              {
                                  internalType: "uint160[]";
                                  name: "sqrtPriceX96AfterList";
                                  type: "uint160[]";
                              },
                              {
                                  internalType: "uint32[]";
                                  name: "initializedTicksCrossedList";
                                  type: "uint32[]";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IQuoterV2.QuoteExactInputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "quoteExactInputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              { internalType: "uint160"; name: "sqrtPriceX96After"; type: "uint160" },
                              {
                                  internalType: "uint32";
                                  name: "initializedTicksCrossed";
                                  type: "uint32";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          name: "quoteExactOutput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              {
                                  internalType: "uint160[]";
                                  name: "sqrtPriceX96AfterList";
                                  type: "uint160[]";
                              },
                              {
                                  internalType: "uint32[]";
                                  name: "initializedTicksCrossedList";
                                  type: "uint32[]";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint256"; name: "amount"; type: "uint256" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IQuoterV2.QuoteExactOutputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "quoteExactOutputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              { internalType: "uint160"; name: "sqrtPriceX96After"; type: "uint160" },
                              {
                                  internalType: "uint32";
                                  name: "initializedTicksCrossed";
                                  type: "uint32";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                              { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                          ];
                          name: "uniswapV3SwapCallback";
                          outputs: readonly [];
                          stateMutability: "view";
                          type: "function";
                      },
                  ];
                  address: "0xC5290058841028F1614F3A6F0F5816cAd0df5E27";
              };
              SwapRouter02: {
                  abi: readonly [
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "_factoryV2"; type: "address" },
                              { internalType: "address"; name: "factoryV3"; type: "address" },
                              { internalType: "address"; name: "_positionManager"; type: "address" },
                              { internalType: "address"; name: "_WETH9"; type: "address" },
                          ];
                          stateMutability: "nonpayable";
                          type: "constructor";
                      },
                      {
                          inputs: readonly [];
                          name: "WETH9";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveMax";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveMaxMinusOne";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveZeroThenMax";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveZeroThenMaxMinusOne";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "data"; type: "bytes" },
                          ];
                          name: "callPositionManager";
                          outputs: readonly [
                              { internalType: "bytes"; name: "result"; type: "bytes" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes[]"; name: "paths"; type: "bytes[]" },
                              { internalType: "uint128[]"; name: "amounts"; type: "uint128[]" },
                              {
                                  internalType: "uint24";
                                  name: "maximumTickDivergence";
                                  type: "uint24";
                              },
                              { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                          ];
                          name: "checkOracleSlippage";
                          outputs: readonly [];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                              {
                                  internalType: "uint24";
                                  name: "maximumTickDivergence";
                                  type: "uint24";
                              },
                              { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                          ];
                          name: "checkOracleSlippage";
                          outputs: readonly [];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "bytes"; name: "path"; type: "bytes" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                      {
                                          internalType: "uint256";
                                          name: "amountOutMinimum";
                                          type: "uint256";
                                      },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactInputParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactInput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                      {
                                          internalType: "uint256";
                                          name: "amountOutMinimum";
                                          type: "uint256";
                                      },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactInputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactInputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "bytes"; name: "path"; type: "bytes" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                      { internalType: "uint256"; name: "amountInMaximum"; type: "uint256" },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactOutputParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactOutput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                      { internalType: "uint256"; name: "amountInMaximum"; type: "uint256" },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactOutputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactOutputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "factory";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "factoryV2";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amount"; type: "uint256" },
                          ];
                          name: "getApprovalType";
                          outputs: readonly [
                              {
                                  internalType: "enum IApproveAndCall.ApprovalType";
                                  name: "";
                                  type: "uint8";
                              },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "token0"; type: "address" },
                                      { internalType: "address"; name: "token1"; type: "address" },
                                      { internalType: "uint256"; name: "tokenId"; type: "uint256" },
                                      { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                      { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                  ];
                                  internalType: "struct IApproveAndCall.IncreaseLiquidityParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "increaseLiquidity";
                          outputs: readonly [
                              { internalType: "bytes"; name: "result"; type: "bytes" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "token0"; type: "address" },
                                      { internalType: "address"; name: "token1"; type: "address" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      { internalType: "int24"; name: "tickLower"; type: "int24" },
                                      { internalType: "int24"; name: "tickUpper"; type: "int24" },
                                      { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                      { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                  ];
                                  internalType: "struct IApproveAndCall.MintParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "mint";
                          outputs: readonly [
                              { internalType: "bytes"; name: "result"; type: "bytes" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  internalType: "bytes32";
                                  name: "previousBlockhash";
                                  type: "bytes32";
                              },
                              { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                          ];
                          name: "multicall";
                          outputs: readonly [
                              { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "deadline"; type: "uint256" },
                              { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                          ];
                          name: "multicall";
                          outputs: readonly [
                              { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                          ];
                          name: "multicall";
                          outputs: readonly [
                              { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "positionManager";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                          ];
                          name: "pull";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "refundETH";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                              { internalType: "uint256"; name: "deadline"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermit";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              { internalType: "uint256"; name: "expiry"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermitAllowed";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              { internalType: "uint256"; name: "expiry"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermitAllowedIfNecessary";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                              { internalType: "uint256"; name: "deadline"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermitIfNecessary";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              { internalType: "uint256"; name: "amountOutMin"; type: "uint256" },
                              { internalType: "address[]"; name: "path"; type: "address[]" },
                              { internalType: "address"; name: "to"; type: "address" },
                          ];
                          name: "swapExactTokensForTokens";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              { internalType: "uint256"; name: "amountInMax"; type: "uint256" },
                              { internalType: "address[]"; name: "path"; type: "address[]" },
                              { internalType: "address"; name: "to"; type: "address" },
                          ];
                          name: "swapTokensForExactTokens";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                          ];
                          name: "sweepToken";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                          ];
                          name: "sweepToken";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "sweepTokenWithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "sweepTokenWithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                              { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                              { internalType: "bytes"; name: "_data"; type: "bytes" },
                          ];
                          name: "uniswapV3SwapCallback";
                          outputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                          ];
                          name: "unwrapWETH9";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                          ];
                          name: "unwrapWETH9";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "unwrapWETH9WithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "unwrapWETH9WithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                          ];
                          name: "wrapETH";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      { stateMutability: "payable"; type: "receive" },
                  ];
                  address: "0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4";
              };
              UniswapV3Factory: {
                  abi: readonly [
                      {
                          inputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "constructor";
                      },
                      {
                          anonymous: false;
                          inputs: readonly [
                              {
                                  indexed: true;
                                  internalType: "uint24";
                                  name: "fee";
                                  type: "uint24";
                              },
                              {
                                  indexed: true;
                                  internalType: "int24";
                                  name: "tickSpacing";
                                  type: "int24";
                              },
                          ];
                          name: "FeeAmountEnabled";
                          type: "event";
                      },
                      {
                          anonymous: false;
                          inputs: readonly [
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "oldOwner";
                                  type: "address";
                              },
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "newOwner";
                                  type: "address";
                              },
                          ];
                          name: "OwnerChanged";
                          type: "event";
                      },
                      {
                          anonymous: false;
                          inputs: readonly [
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "token0";
                                  type: "address";
                              },
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "token1";
                                  type: "address";
                              },
                              { indexed: true; internalType: "uint24"; name: "fee"; type: "uint24" },
                              {
                                  indexed: false;
                                  internalType: "int24";
                                  name: "tickSpacing";
                                  type: "int24";
                              },
                              {
                                  indexed: false;
                                  internalType: "address";
                                  name: "pool";
                                  type: "address";
                              },
                          ];
                          name: "PoolCreated";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "tokenA"; type: "address" },
                              { internalType: "address"; name: "tokenB"; type: "address" },
                              { internalType: "uint24"; name: "fee"; type: "uint24" },
                          ];
                          name: "createPool";
                          outputs: readonly [
                              { internalType: "address"; name: "pool"; type: "address" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint24"; name: "fee"; type: "uint24" },
                              { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                          ];
                          name: "enableFeeAmount";
                          outputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint24"; name: ""; type: "uint24" },
                          ];
                          name: "feeAmountTickSpacing";
                          outputs: readonly [{ internalType: "int24"; name: ""; type: "int24" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                              { internalType: "address"; name: ""; type: "address" },
                              { internalType: "uint24"; name: ""; type: "uint24" },
                          ];
                          name: "getPool";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "owner";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "parameters";
                          outputs: readonly [
                              { internalType: "address"; name: "factory"; type: "address" },
                              { internalType: "address"; name: "token0"; type: "address" },
                              { internalType: "address"; name: "token1"; type: "address" },
                              { internalType: "uint24"; name: "fee"; type: "uint24" },
                              { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "_owner"; type: "address" },
                          ];
                          name: "setOwner";
                          outputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                  ];
                  address: "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24";
              };
              USDC: {
                  abi: readonly [
                      {
                          inputs: readonly [
                              { indexed: true; name: "owner"; type: "address" },
                              { indexed: true; name: "spender"; type: "address" },
                              { indexed: false; name: "value"; type: "uint256" },
                          ];
                          name: "Approval";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { indexed: true; name: "from"; type: "address" },
                              { indexed: true; name: "to"; type: "address" },
                              { indexed: false; name: "value"; type: "uint256" },
                          ];
                          name: "Transfer";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { name: "owner"; type: "address" },
                              { name: "spender"; type: "address" },
                          ];
                          name: "allowance";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "spender"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "approve";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [{ name: "account"; type: "address" }];
                          name: "balanceOf";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "decimals";
                          outputs: readonly [{ type: "uint8" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "name";
                          outputs: readonly [{ type: "string" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "symbol";
                          outputs: readonly [{ type: "string" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "totalSupply";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "recipient"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "transfer";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "sender"; type: "address" },
                              { name: "recipient"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "transferFrom";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                  ];
                  address: "0x036CbD53842c5426634e7929541eC2318f3dCF7e";
                  read: { decimals: () => 6 };
              };
          }

          Collection of contracts

        • Optionalcustom?: Record<string, unknown>

          Custom chain data.

        • OptionalensTlds?: readonly string[]

          Collection of ENS TLDs for the chain.

        • Optionalfees?: ChainFees<undefined>

          Modifies how fees are derived.

        • formatters: {
              block: {
                  exclude: undefined | [];
                  format: (
                      args: OpStackRpcBlock<BlockTag, boolean>,
                  ) => {
                      baseFeePerGas: null | bigint;
                      blobGasUsed: bigint;
                      difficulty: bigint;
                      excessBlobGas: bigint;
                      extraData: `0x${string}`;
                      gasLimit: bigint;
                      gasUsed: bigint;
                      hash: null | `0x${string}`;
                      logsBloom: null | `0x${string}`;
                      miner: `0x${string}`;
                      mixHash: `0x${string}`;
                      nonce: null | `0x${string}`;
                      number: null | bigint;
                      parentBeaconBlockRoot?: `0x${string}`;
                      parentHash: `0x${string}`;
                      receiptsRoot: `0x${string}`;
                      sealFields: `0x${string}`[];
                      sha3Uncles: `0x${string}`;
                      size: bigint;
                      stateRoot: `0x${string}`;
                      timestamp: bigint;
                      totalDifficulty: null | bigint;
                      transactions: `0x${string}`[] | OpStackTransaction<boolean>[];
                      transactionsRoot: `0x${string}`;
                      uncles: `0x${string}`[];
                      withdrawals?: Withdrawal[];
                      withdrawalsRoot?: `0x${string}`;
                  };
                  type: "block";
              };
              transaction: {
                  exclude: undefined
                  | [];
                  format: (
                      args: OpStackRpcTransaction<boolean>,
                  ) =>
                      | {
                          blockHash: null
                          | `0x${string}`;
                          blockNumber: null | bigint;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice?: undefined;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: boolean;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas: bigint;
                          maxPriorityFeePerGas: bigint;
                          mint?: bigint;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash: `0x${string}`;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "deposit";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                      | {
                          accessList?: undefined;
                          authorizationList?: undefined;
                          blobVersionedHashes?: undefined;
                          blockHash: null
                          | `0x${string}`;
                          blockNumber: null | bigint;
                          chainId?: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice: bigint;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: undefined;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas?: undefined;
                          maxPriorityFeePerGas?: undefined;
                          mint?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash?: undefined;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "legacy";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity?: undefined;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList?: undefined;
                          blobVersionedHashes?: undefined;
                          blockHash: null
                          | `0x${string}`;
                          blockNumber: null | bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice: bigint;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: undefined;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas?: undefined;
                          maxPriorityFeePerGas?: undefined;
                          mint?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash?: undefined;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "eip2930";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList?: undefined;
                          blobVersionedHashes?: undefined;
                          blockHash: null
                          | `0x${string}`;
                          blockNumber: null | bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice?: undefined;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: undefined;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas: bigint;
                          maxPriorityFeePerGas: bigint;
                          mint?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash?: undefined;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "eip1559";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList?: undefined;
                          blobVersionedHashes: readonly `0x${string}`[];
                          blockHash: null
                          | `0x${string}`;
                          blockNumber: null | bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice?: undefined;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: undefined;
                          maxFeePerBlobGas: bigint;
                          maxFeePerGas: bigint;
                          maxPriorityFeePerGas: bigint;
                          mint?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash?: undefined;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "eip4844";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList: SignedAuthorizationList<number>;
                          blobVersionedHashes?: undefined;
                          blockHash: null | `0x${string}`;
                          blockNumber: null | bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice?: undefined;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: undefined;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas: bigint;
                          maxPriorityFeePerGas: bigint;
                          mint?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash?: undefined;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "eip7702";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      };
                  type: "transaction";
              };
              transactionReceipt: {
                  exclude: undefined
                  | [];
                  format: (
                      args: OpStackRpcTransactionReceipt,
                  ) => {
                      blobGasPrice?: bigint;
                      blobGasUsed?: bigint;
                      blockHash: `0x${string}`;
                      blockNumber: bigint;
                      contractAddress: undefined | null | `0x${string}`;
                      cumulativeGasUsed: bigint;
                      effectiveGasPrice: bigint;
                      from: `0x${string}`;
                      gasUsed: bigint;
                      l1Fee: null | bigint;
                      l1FeeScalar: null | number;
                      l1GasPrice: null | bigint;
                      l1GasUsed: null | bigint;
                      logs: Log<
                          bigint,
                          number,
                          false,
                          undefined,
                          undefined,
                          undefined,
                          undefined,
                      >[];
                      logsBloom: `0x${string}`;
                      root?: `0x${string}`;
                      status: "success"
                      | "reverted";
                      to: null | `0x${string}`;
                      transactionHash: `0x${string}`;
                      transactionIndex: number;
                      type: TransactionType;
                  };
                  type: "transactionReceipt";
              };
          }

          Modifies how data is formatted and typed (e.g. blocks and transactions)

        • id: 84532

          ID in number form

        • name: "Base Sepolia"

          Human-readable name

        • nativeCurrency: { decimals: 18; name: "Sepolia Ether"; symbol: "ETH" }

          Currency used by chain

        • Readonlynetwork: "base-sepolia"
        • rpcUrls: { default: { http: readonly ["https://sepolia.base.org"] } }

          Collection of RPC endpoints

        • serializers: {
              transaction: (
                  transaction: OpStackTransactionSerializable,
                  signature?: Signature,
              ) =>
                  | `0x02${string}`
                  | `0x01${string}`
                  | `0x03${string}`
                  | `0x04${string}`
                  | TransactionSerializedLegacy
                  | `0x7e${string}`;
          }

          Modifies how data is serialized (e.g. transactions).

        • sourceId: 11155111

          Source Chain ID (ie. the L1 chain)

        • testnet: true

          Flag for test networks

      • {
            blockchainId: "ETH-SEPOLIA";
            blockchainVm: "EVM";
            blockExplorers: {
                default: {
                    apiUrl: "https://api-sepolia.etherscan.io/api";
                    name: "Etherscan";
                    url: "https://sepolia.etherscan.io";
                };
            };
            blockTime?: number;
            contracts: {
                ensRegistry: { address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" };
                ensUniversalResolver: {
                    address: "0xc8Af999e38273D658BE1b921b88A9Ddf005769cC";
                    blockCreated: 5317080;
                };
                EURC: {
                    abi: readonly [
                        {
                            inputs: readonly [
                                { indexed: true; name: "owner"; type: "address" },
                                { indexed: true; name: "spender"; type: "address" },
                                { indexed: false; name: "value"; type: "uint256" },
                            ];
                            name: "Approval";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { indexed: true; name: "from"; type: "address" },
                                { indexed: true; name: "to"; type: "address" },
                                { indexed: false; name: "value"; type: "uint256" },
                            ];
                            name: "Transfer";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { name: "owner"; type: "address" },
                                { name: "spender"; type: "address" },
                            ];
                            name: "allowance";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "spender"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "approve";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [{ name: "account"; type: "address" }];
                            name: "balanceOf";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "decimals";
                            outputs: readonly [{ type: "uint8" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "name";
                            outputs: readonly [{ type: "string" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "symbol";
                            outputs: readonly [{ type: "string" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "totalSupply";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "recipient"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "transfer";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "sender"; type: "address" },
                                { name: "recipient"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "transferFrom";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                    ];
                    address: "0x08210F9170F89Ab7658F0B5E3fF39b0E03C594D4";
                    read: { decimals: () => 6 };
                };
                multicall3: {
                    address: "0xca11bde05977b3631167028862be2a173976ca11";
                    blockCreated: 751532;
                };
                QuoterV2: {
                    abi: readonly [
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "_factory"; type: "address" },
                                { internalType: "address"; name: "_WETH9"; type: "address" },
                            ];
                            stateMutability: "nonpayable";
                            type: "constructor";
                        },
                        {
                            inputs: readonly [];
                            name: "WETH9";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "factory";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            name: "quoteExactInput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                {
                                    internalType: "uint160[]";
                                    name: "sqrtPriceX96AfterList";
                                    type: "uint160[]";
                                },
                                {
                                    internalType: "uint32[]";
                                    name: "initializedTicksCrossedList";
                                    type: "uint32[]";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IQuoterV2.QuoteExactInputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "quoteExactInputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                {
                                    internalType: "uint160";
                                    name: "sqrtPriceX96After";
                                    type: "uint160";
                                },
                                {
                                    internalType: "uint32";
                                    name: "initializedTicksCrossed";
                                    type: "uint32";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            name: "quoteExactOutput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                {
                                    internalType: "uint160[]";
                                    name: "sqrtPriceX96AfterList";
                                    type: "uint160[]";
                                },
                                {
                                    internalType: "uint32[]";
                                    name: "initializedTicksCrossedList";
                                    type: "uint32[]";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint256"; name: "amount"; type: "uint256" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IQuoterV2.QuoteExactOutputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "quoteExactOutputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                {
                                    internalType: "uint160";
                                    name: "sqrtPriceX96After";
                                    type: "uint160";
                                },
                                {
                                    internalType: "uint32";
                                    name: "initializedTicksCrossed";
                                    type: "uint32";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                            ];
                            name: "uniswapV3SwapCallback";
                            outputs: readonly [];
                            stateMutability: "view";
                            type: "function";
                        },
                    ];
                    address: "0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3";
                };
                SwapRouter02: {
                    abi: readonly [
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "_factoryV2"; type: "address" },
                                { internalType: "address"; name: "factoryV3"; type: "address" },
                                { internalType: "address"; name: "_positionManager"; type: "address" },
                                { internalType: "address"; name: "_WETH9"; type: "address" },
                            ];
                            stateMutability: "nonpayable";
                            type: "constructor";
                        },
                        {
                            inputs: readonly [];
                            name: "WETH9";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveMax";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveMaxMinusOne";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveZeroThenMax";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveZeroThenMaxMinusOne";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "data"; type: "bytes" },
                            ];
                            name: "callPositionManager";
                            outputs: readonly [
                                { internalType: "bytes"; name: "result"; type: "bytes" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes[]"; name: "paths"; type: "bytes[]" },
                                { internalType: "uint128[]"; name: "amounts"; type: "uint128[]" },
                                {
                                    internalType: "uint24";
                                    name: "maximumTickDivergence";
                                    type: "uint24";
                                },
                                { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                            ];
                            name: "checkOracleSlippage";
                            outputs: readonly [];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                                {
                                    internalType: "uint24";
                                    name: "maximumTickDivergence";
                                    type: "uint24";
                                },
                                { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                            ];
                            name: "checkOracleSlippage";
                            outputs: readonly [];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "bytes"; name: "path"; type: "bytes" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountOutMinimum";
                                            type: "uint256";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactInputParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactInput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountOutMinimum";
                                            type: "uint256";
                                        },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactInputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactInputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "bytes"; name: "path"; type: "bytes" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountInMaximum";
                                            type: "uint256";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactOutputParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactOutput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountInMaximum";
                                            type: "uint256";
                                        },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactOutputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactOutputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "factory";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "factoryV2";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amount"; type: "uint256" },
                            ];
                            name: "getApprovalType";
                            outputs: readonly [
                                {
                                    internalType: "enum IApproveAndCall.ApprovalType";
                                    name: "";
                                    type: "uint8";
                                },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "token0"; type: "address" },
                                        { internalType: "address"; name: "token1"; type: "address" },
                                        { internalType: "uint256"; name: "tokenId"; type: "uint256" },
                                        { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                        { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                    ];
                                    internalType: "struct IApproveAndCall.IncreaseLiquidityParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "increaseLiquidity";
                            outputs: readonly [
                                { internalType: "bytes"; name: "result"; type: "bytes" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "token0"; type: "address" },
                                        { internalType: "address"; name: "token1"; type: "address" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        { internalType: "int24"; name: "tickLower"; type: "int24" },
                                        { internalType: "int24"; name: "tickUpper"; type: "int24" },
                                        { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                        { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                    ];
                                    internalType: "struct IApproveAndCall.MintParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "mint";
                            outputs: readonly [
                                { internalType: "bytes"; name: "result"; type: "bytes" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    internalType: "bytes32";
                                    name: "previousBlockhash";
                                    type: "bytes32";
                                },
                                { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                            ];
                            name: "multicall";
                            outputs: readonly [
                                { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                            ];
                            name: "multicall";
                            outputs: readonly [
                                { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                            ];
                            name: "multicall";
                            outputs: readonly [
                                { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "positionManager";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                            ];
                            name: "pull";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "refundETH";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                                { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermit";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermitAllowed";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermitAllowedIfNecessary";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                                { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermitIfNecessary";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                { internalType: "uint256"; name: "amountOutMin"; type: "uint256" },
                                { internalType: "address[]"; name: "path"; type: "address[]" },
                                { internalType: "address"; name: "to"; type: "address" },
                            ];
                            name: "swapExactTokensForTokens";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                { internalType: "uint256"; name: "amountInMax"; type: "uint256" },
                                { internalType: "address[]"; name: "path"; type: "address[]" },
                                { internalType: "address"; name: "to"; type: "address" },
                            ];
                            name: "swapTokensForExactTokens";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                            ];
                            name: "sweepToken";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                            ];
                            name: "sweepToken";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "sweepTokenWithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "sweepTokenWithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                { internalType: "bytes"; name: "_data"; type: "bytes" },
                            ];
                            name: "uniswapV3SwapCallback";
                            outputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                            ];
                            name: "unwrapWETH9";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                            ];
                            name: "unwrapWETH9";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "unwrapWETH9WithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "unwrapWETH9WithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                            ];
                            name: "wrapETH";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        { stateMutability: "payable"; type: "receive" },
                    ];
                    address: "0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E";
                };
                UniswapV3Factory: {
                    abi: readonly [
                        {
                            inputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "constructor";
                        },
                        {
                            anonymous: false;
                            inputs: readonly [
                                {
                                    indexed: true;
                                    internalType: "uint24";
                                    name: "fee";
                                    type: "uint24";
                                },
                                {
                                    indexed: true;
                                    internalType: "int24";
                                    name: "tickSpacing";
                                    type: "int24";
                                },
                            ];
                            name: "FeeAmountEnabled";
                            type: "event";
                        },
                        {
                            anonymous: false;
                            inputs: readonly [
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "oldOwner";
                                    type: "address";
                                },
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "newOwner";
                                    type: "address";
                                },
                            ];
                            name: "OwnerChanged";
                            type: "event";
                        },
                        {
                            anonymous: false;
                            inputs: readonly [
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "token0";
                                    type: "address";
                                },
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "token1";
                                    type: "address";
                                },
                                { indexed: true; internalType: "uint24"; name: "fee"; type: "uint24" },
                                {
                                    indexed: false;
                                    internalType: "int24";
                                    name: "tickSpacing";
                                    type: "int24";
                                },
                                {
                                    indexed: false;
                                    internalType: "address";
                                    name: "pool";
                                    type: "address";
                                },
                            ];
                            name: "PoolCreated";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "tokenA"; type: "address" },
                                { internalType: "address"; name: "tokenB"; type: "address" },
                                { internalType: "uint24"; name: "fee"; type: "uint24" },
                            ];
                            name: "createPool";
                            outputs: readonly [
                                { internalType: "address"; name: "pool"; type: "address" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint24"; name: "fee"; type: "uint24" },
                                { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                            ];
                            name: "enableFeeAmount";
                            outputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint24"; name: ""; type: "uint24" },
                            ];
                            name: "feeAmountTickSpacing";
                            outputs: readonly [{ internalType: "int24"; name: ""; type: "int24" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                                { internalType: "address"; name: ""; type: "address" },
                                { internalType: "uint24"; name: ""; type: "uint24" },
                            ];
                            name: "getPool";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "owner";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "parameters";
                            outputs: readonly [
                                { internalType: "address"; name: "factory"; type: "address" },
                                { internalType: "address"; name: "token0"; type: "address" },
                                { internalType: "address"; name: "token1"; type: "address" },
                                { internalType: "uint24"; name: "fee"; type: "uint24" },
                                { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "_owner"; type: "address" },
                            ];
                            name: "setOwner";
                            outputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                    ];
                    address: "0x0227628f3F023bb0B980b67D528571c95c6DaC1c";
                };
                USDC: {
                    abi: readonly [
                        {
                            inputs: readonly [
                                { indexed: true; name: "owner"; type: "address" },
                                { indexed: true; name: "spender"; type: "address" },
                                { indexed: false; name: "value"; type: "uint256" },
                            ];
                            name: "Approval";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { indexed: true; name: "from"; type: "address" },
                                { indexed: true; name: "to"; type: "address" },
                                { indexed: false; name: "value"; type: "uint256" },
                            ];
                            name: "Transfer";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { name: "owner"; type: "address" },
                                { name: "spender"; type: "address" },
                            ];
                            name: "allowance";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "spender"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "approve";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [{ name: "account"; type: "address" }];
                            name: "balanceOf";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "decimals";
                            outputs: readonly [{ type: "uint8" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "name";
                            outputs: readonly [{ type: "string" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "symbol";
                            outputs: readonly [{ type: "string" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "totalSupply";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "recipient"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "transfer";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "sender"; type: "address" },
                                { name: "recipient"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "transferFrom";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                    ];
                    address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238";
                    read: { decimals: () => 6 };
                };
            };
            custom?: Record<string, unknown>;
            ensTlds?: readonly string[];
            fees?: ChainFees<undefined>;
            formatters?: undefined;
            id: 11155111;
            name: "Sepolia";
            nativeCurrency: { decimals: 18; name: "Sepolia Ether"; symbol: "ETH" };
            rpcUrls: { default: { http: readonly ["https://sepolia.drpc.org"] } };
            serializers?: ChainSerializers<
                undefined,
                TransactionSerializable<bigint, number>,
            >;
            sourceId?: number;
            testnet: true;
        }
        • ReadonlyblockchainId: "ETH-SEPOLIA"
        • ReadonlyblockchainVm: "EVM"
        • blockExplorers: {
              default: {
                  apiUrl: "https://api-sepolia.etherscan.io/api";
                  name: "Etherscan";
                  url: "https://sepolia.etherscan.io";
              };
          }

          Collection of block explorers

        • OptionalblockTime?: number

          Block time in milliseconds.

        • contracts: {
              ensRegistry: { address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" };
              ensUniversalResolver: {
                  address: "0xc8Af999e38273D658BE1b921b88A9Ddf005769cC";
                  blockCreated: 5317080;
              };
              EURC: {
                  abi: readonly [
                      {
                          inputs: readonly [
                              { indexed: true; name: "owner"; type: "address" },
                              { indexed: true; name: "spender"; type: "address" },
                              { indexed: false; name: "value"; type: "uint256" },
                          ];
                          name: "Approval";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { indexed: true; name: "from"; type: "address" },
                              { indexed: true; name: "to"; type: "address" },
                              { indexed: false; name: "value"; type: "uint256" },
                          ];
                          name: "Transfer";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { name: "owner"; type: "address" },
                              { name: "spender"; type: "address" },
                          ];
                          name: "allowance";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "spender"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "approve";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [{ name: "account"; type: "address" }];
                          name: "balanceOf";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "decimals";
                          outputs: readonly [{ type: "uint8" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "name";
                          outputs: readonly [{ type: "string" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "symbol";
                          outputs: readonly [{ type: "string" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "totalSupply";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "recipient"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "transfer";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "sender"; type: "address" },
                              { name: "recipient"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "transferFrom";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                  ];
                  address: "0x08210F9170F89Ab7658F0B5E3fF39b0E03C594D4";
                  read: { decimals: () => 6 };
              };
              multicall3: {
                  address: "0xca11bde05977b3631167028862be2a173976ca11";
                  blockCreated: 751532;
              };
              QuoterV2: {
                  abi: readonly [
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "_factory"; type: "address" },
                              { internalType: "address"; name: "_WETH9"; type: "address" },
                          ];
                          stateMutability: "nonpayable";
                          type: "constructor";
                      },
                      {
                          inputs: readonly [];
                          name: "WETH9";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "factory";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          name: "quoteExactInput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              {
                                  internalType: "uint160[]";
                                  name: "sqrtPriceX96AfterList";
                                  type: "uint160[]";
                              },
                              {
                                  internalType: "uint32[]";
                                  name: "initializedTicksCrossedList";
                                  type: "uint32[]";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IQuoterV2.QuoteExactInputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "quoteExactInputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              { internalType: "uint160"; name: "sqrtPriceX96After"; type: "uint160" },
                              {
                                  internalType: "uint32";
                                  name: "initializedTicksCrossed";
                                  type: "uint32";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          name: "quoteExactOutput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              {
                                  internalType: "uint160[]";
                                  name: "sqrtPriceX96AfterList";
                                  type: "uint160[]";
                              },
                              {
                                  internalType: "uint32[]";
                                  name: "initializedTicksCrossedList";
                                  type: "uint32[]";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint256"; name: "amount"; type: "uint256" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IQuoterV2.QuoteExactOutputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "quoteExactOutputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              { internalType: "uint160"; name: "sqrtPriceX96After"; type: "uint160" },
                              {
                                  internalType: "uint32";
                                  name: "initializedTicksCrossed";
                                  type: "uint32";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                              { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                          ];
                          name: "uniswapV3SwapCallback";
                          outputs: readonly [];
                          stateMutability: "view";
                          type: "function";
                      },
                  ];
                  address: "0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3";
              };
              SwapRouter02: {
                  abi: readonly [
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "_factoryV2"; type: "address" },
                              { internalType: "address"; name: "factoryV3"; type: "address" },
                              { internalType: "address"; name: "_positionManager"; type: "address" },
                              { internalType: "address"; name: "_WETH9"; type: "address" },
                          ];
                          stateMutability: "nonpayable";
                          type: "constructor";
                      },
                      {
                          inputs: readonly [];
                          name: "WETH9";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveMax";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveMaxMinusOne";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveZeroThenMax";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveZeroThenMaxMinusOne";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "data"; type: "bytes" },
                          ];
                          name: "callPositionManager";
                          outputs: readonly [
                              { internalType: "bytes"; name: "result"; type: "bytes" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes[]"; name: "paths"; type: "bytes[]" },
                              { internalType: "uint128[]"; name: "amounts"; type: "uint128[]" },
                              {
                                  internalType: "uint24";
                                  name: "maximumTickDivergence";
                                  type: "uint24";
                              },
                              { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                          ];
                          name: "checkOracleSlippage";
                          outputs: readonly [];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                              {
                                  internalType: "uint24";
                                  name: "maximumTickDivergence";
                                  type: "uint24";
                              },
                              { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                          ];
                          name: "checkOracleSlippage";
                          outputs: readonly [];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "bytes"; name: "path"; type: "bytes" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                      {
                                          internalType: "uint256";
                                          name: "amountOutMinimum";
                                          type: "uint256";
                                      },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactInputParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactInput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                      {
                                          internalType: "uint256";
                                          name: "amountOutMinimum";
                                          type: "uint256";
                                      },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactInputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactInputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "bytes"; name: "path"; type: "bytes" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                      { internalType: "uint256"; name: "amountInMaximum"; type: "uint256" },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactOutputParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactOutput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                      { internalType: "uint256"; name: "amountInMaximum"; type: "uint256" },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactOutputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactOutputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "factory";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "factoryV2";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amount"; type: "uint256" },
                          ];
                          name: "getApprovalType";
                          outputs: readonly [
                              {
                                  internalType: "enum IApproveAndCall.ApprovalType";
                                  name: "";
                                  type: "uint8";
                              },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "token0"; type: "address" },
                                      { internalType: "address"; name: "token1"; type: "address" },
                                      { internalType: "uint256"; name: "tokenId"; type: "uint256" },
                                      { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                      { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                  ];
                                  internalType: "struct IApproveAndCall.IncreaseLiquidityParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "increaseLiquidity";
                          outputs: readonly [
                              { internalType: "bytes"; name: "result"; type: "bytes" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "token0"; type: "address" },
                                      { internalType: "address"; name: "token1"; type: "address" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      { internalType: "int24"; name: "tickLower"; type: "int24" },
                                      { internalType: "int24"; name: "tickUpper"; type: "int24" },
                                      { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                      { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                  ];
                                  internalType: "struct IApproveAndCall.MintParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "mint";
                          outputs: readonly [
                              { internalType: "bytes"; name: "result"; type: "bytes" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  internalType: "bytes32";
                                  name: "previousBlockhash";
                                  type: "bytes32";
                              },
                              { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                          ];
                          name: "multicall";
                          outputs: readonly [
                              { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "deadline"; type: "uint256" },
                              { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                          ];
                          name: "multicall";
                          outputs: readonly [
                              { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                          ];
                          name: "multicall";
                          outputs: readonly [
                              { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "positionManager";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                          ];
                          name: "pull";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "refundETH";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                              { internalType: "uint256"; name: "deadline"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermit";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              { internalType: "uint256"; name: "expiry"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermitAllowed";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              { internalType: "uint256"; name: "expiry"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermitAllowedIfNecessary";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                              { internalType: "uint256"; name: "deadline"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermitIfNecessary";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              { internalType: "uint256"; name: "amountOutMin"; type: "uint256" },
                              { internalType: "address[]"; name: "path"; type: "address[]" },
                              { internalType: "address"; name: "to"; type: "address" },
                          ];
                          name: "swapExactTokensForTokens";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              { internalType: "uint256"; name: "amountInMax"; type: "uint256" },
                              { internalType: "address[]"; name: "path"; type: "address[]" },
                              { internalType: "address"; name: "to"; type: "address" },
                          ];
                          name: "swapTokensForExactTokens";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                          ];
                          name: "sweepToken";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                          ];
                          name: "sweepToken";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "sweepTokenWithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "sweepTokenWithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                              { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                              { internalType: "bytes"; name: "_data"; type: "bytes" },
                          ];
                          name: "uniswapV3SwapCallback";
                          outputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                          ];
                          name: "unwrapWETH9";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                          ];
                          name: "unwrapWETH9";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "unwrapWETH9WithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "unwrapWETH9WithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                          ];
                          name: "wrapETH";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      { stateMutability: "payable"; type: "receive" },
                  ];
                  address: "0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E";
              };
              UniswapV3Factory: {
                  abi: readonly [
                      {
                          inputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "constructor";
                      },
                      {
                          anonymous: false;
                          inputs: readonly [
                              {
                                  indexed: true;
                                  internalType: "uint24";
                                  name: "fee";
                                  type: "uint24";
                              },
                              {
                                  indexed: true;
                                  internalType: "int24";
                                  name: "tickSpacing";
                                  type: "int24";
                              },
                          ];
                          name: "FeeAmountEnabled";
                          type: "event";
                      },
                      {
                          anonymous: false;
                          inputs: readonly [
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "oldOwner";
                                  type: "address";
                              },
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "newOwner";
                                  type: "address";
                              },
                          ];
                          name: "OwnerChanged";
                          type: "event";
                      },
                      {
                          anonymous: false;
                          inputs: readonly [
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "token0";
                                  type: "address";
                              },
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "token1";
                                  type: "address";
                              },
                              { indexed: true; internalType: "uint24"; name: "fee"; type: "uint24" },
                              {
                                  indexed: false;
                                  internalType: "int24";
                                  name: "tickSpacing";
                                  type: "int24";
                              },
                              {
                                  indexed: false;
                                  internalType: "address";
                                  name: "pool";
                                  type: "address";
                              },
                          ];
                          name: "PoolCreated";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "tokenA"; type: "address" },
                              { internalType: "address"; name: "tokenB"; type: "address" },
                              { internalType: "uint24"; name: "fee"; type: "uint24" },
                          ];
                          name: "createPool";
                          outputs: readonly [
                              { internalType: "address"; name: "pool"; type: "address" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint24"; name: "fee"; type: "uint24" },
                              { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                          ];
                          name: "enableFeeAmount";
                          outputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint24"; name: ""; type: "uint24" },
                          ];
                          name: "feeAmountTickSpacing";
                          outputs: readonly [{ internalType: "int24"; name: ""; type: "int24" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                              { internalType: "address"; name: ""; type: "address" },
                              { internalType: "uint24"; name: ""; type: "uint24" },
                          ];
                          name: "getPool";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "owner";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "parameters";
                          outputs: readonly [
                              { internalType: "address"; name: "factory"; type: "address" },
                              { internalType: "address"; name: "token0"; type: "address" },
                              { internalType: "address"; name: "token1"; type: "address" },
                              { internalType: "uint24"; name: "fee"; type: "uint24" },
                              { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "_owner"; type: "address" },
                          ];
                          name: "setOwner";
                          outputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                  ];
                  address: "0x0227628f3F023bb0B980b67D528571c95c6DaC1c";
              };
              USDC: {
                  abi: readonly [
                      {
                          inputs: readonly [
                              { indexed: true; name: "owner"; type: "address" },
                              { indexed: true; name: "spender"; type: "address" },
                              { indexed: false; name: "value"; type: "uint256" },
                          ];
                          name: "Approval";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { indexed: true; name: "from"; type: "address" },
                              { indexed: true; name: "to"; type: "address" },
                              { indexed: false; name: "value"; type: "uint256" },
                          ];
                          name: "Transfer";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { name: "owner"; type: "address" },
                              { name: "spender"; type: "address" },
                          ];
                          name: "allowance";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "spender"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "approve";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [{ name: "account"; type: "address" }];
                          name: "balanceOf";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "decimals";
                          outputs: readonly [{ type: "uint8" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "name";
                          outputs: readonly [{ type: "string" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "symbol";
                          outputs: readonly [{ type: "string" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "totalSupply";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "recipient"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "transfer";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "sender"; type: "address" },
                              { name: "recipient"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "transferFrom";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                  ];
                  address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238";
                  read: { decimals: () => 6 };
              };
          }

          Collection of contracts

        • Optionalcustom?: Record<string, unknown>

          Custom chain data.

        • OptionalensTlds?: readonly string[]

          Collection of ENS TLDs for the chain.

        • Optionalfees?: ChainFees<undefined>

          Modifies how fees are derived.

        • Optional Readonlyformatters?: undefined
        • id: 11155111

          ID in number form

        • name: "Sepolia"

          Human-readable name

        • nativeCurrency: { decimals: 18; name: "Sepolia Ether"; symbol: "ETH" }

          Currency used by chain

        • rpcUrls: { default: { http: readonly ["https://sepolia.drpc.org"] } }

          Collection of RPC endpoints

        • Optionalserializers?: ChainSerializers<undefined, TransactionSerializable<bigint, number>>

          Modifies how data is serialized (e.g. transactions).

        • OptionalsourceId?: number

          Source Chain ID (ie. the L1 chain)

        • testnet: true

          Flag for test networks

      • {
            blockchainId: "UNI-SEPOLIA";
            blockchainVm: "EVM";
            blockExplorers: {
                default: {
                    apiUrl: "https://api-sepolia.uniscan.xyz/api";
                    name: "Uniscan";
                    url: "https://sepolia.uniscan.xyz";
                };
            };
            blockTime: 2000;
            contracts: {
                disputeGameFactory: {
                    "11155111": { address: "0xeff73e5aa3B9AEC32c659Aa3E00444d20a84394b" };
                };
                gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                l1Block: { address: "0x4200000000000000000000000000000000000015" };
                l1StandardBridge: {
                    "11155111": { address: "0xea58fcA6849d79EAd1f26608855c2D6407d54Ce2" };
                };
                l2CrossDomainMessenger: {
                    address: "0x4200000000000000000000000000000000000007";
                };
                l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                l2StandardBridge: {
                    address: "0x4200000000000000000000000000000000000010";
                };
                l2ToL1MessagePasser: {
                    address: "0x4200000000000000000000000000000000000016";
                };
                multicall3: {
                    address: "0xca11bde05977b3631167028862be2a173976ca11";
                    blockCreated: 0;
                };
                portal: {
                    "11155111": { address: "0x0d83dab629f0e0F9d36c0Cbc89B69a489f0751bD" };
                };
                QuoterV2: {
                    abi: readonly [
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "_factory"; type: "address" },
                                { internalType: "address"; name: "_WETH9"; type: "address" },
                            ];
                            stateMutability: "nonpayable";
                            type: "constructor";
                        },
                        {
                            inputs: readonly [];
                            name: "WETH9";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "factory";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            name: "quoteExactInput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                {
                                    internalType: "uint160[]";
                                    name: "sqrtPriceX96AfterList";
                                    type: "uint160[]";
                                },
                                {
                                    internalType: "uint32[]";
                                    name: "initializedTicksCrossedList";
                                    type: "uint32[]";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IQuoterV2.QuoteExactInputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "quoteExactInputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                {
                                    internalType: "uint160";
                                    name: "sqrtPriceX96After";
                                    type: "uint160";
                                },
                                {
                                    internalType: "uint32";
                                    name: "initializedTicksCrossed";
                                    type: "uint32";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            name: "quoteExactOutput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                {
                                    internalType: "uint160[]";
                                    name: "sqrtPriceX96AfterList";
                                    type: "uint160[]";
                                },
                                {
                                    internalType: "uint32[]";
                                    name: "initializedTicksCrossedList";
                                    type: "uint32[]";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint256"; name: "amount"; type: "uint256" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IQuoterV2.QuoteExactOutputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "quoteExactOutputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                {
                                    internalType: "uint160";
                                    name: "sqrtPriceX96After";
                                    type: "uint160";
                                },
                                {
                                    internalType: "uint32";
                                    name: "initializedTicksCrossed";
                                    type: "uint32";
                                },
                                { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                            ];
                            name: "uniswapV3SwapCallback";
                            outputs: readonly [];
                            stateMutability: "view";
                            type: "function";
                        },
                    ];
                    address: "0x6Dd37329A1A225a6Fca658265D460423DCafBF89";
                };
                SwapRouter02: {
                    abi: readonly [
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "_factoryV2"; type: "address" },
                                { internalType: "address"; name: "factoryV3"; type: "address" },
                                { internalType: "address"; name: "_positionManager"; type: "address" },
                                { internalType: "address"; name: "_WETH9"; type: "address" },
                            ];
                            stateMutability: "nonpayable";
                            type: "constructor";
                        },
                        {
                            inputs: readonly [];
                            name: "WETH9";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveMax";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveMaxMinusOne";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveZeroThenMax";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                            ];
                            name: "approveZeroThenMaxMinusOne";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "data"; type: "bytes" },
                            ];
                            name: "callPositionManager";
                            outputs: readonly [
                                { internalType: "bytes"; name: "result"; type: "bytes" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes[]"; name: "paths"; type: "bytes[]" },
                                { internalType: "uint128[]"; name: "amounts"; type: "uint128[]" },
                                {
                                    internalType: "uint24";
                                    name: "maximumTickDivergence";
                                    type: "uint24";
                                },
                                { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                            ];
                            name: "checkOracleSlippage";
                            outputs: readonly [];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes"; name: "path"; type: "bytes" },
                                {
                                    internalType: "uint24";
                                    name: "maximumTickDivergence";
                                    type: "uint24";
                                },
                                { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                            ];
                            name: "checkOracleSlippage";
                            outputs: readonly [];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "bytes"; name: "path"; type: "bytes" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountOutMinimum";
                                            type: "uint256";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactInputParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactInput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountOutMinimum";
                                            type: "uint256";
                                        },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactInputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactInputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "bytes"; name: "path"; type: "bytes" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountInMaximum";
                                            type: "uint256";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactOutputParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactOutput";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "tokenIn"; type: "address" },
                                        { internalType: "address"; name: "tokenOut"; type: "address" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                        { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                        {
                                            internalType: "uint256";
                                            name: "amountInMaximum";
                                            type: "uint256";
                                        },
                                        {
                                            internalType: "uint160";
                                            name: "sqrtPriceLimitX96";
                                            type: "uint160";
                                        },
                                    ];
                                    internalType: "struct IV3SwapRouter.ExactOutputSingleParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "exactOutputSingle";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "factory";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "factoryV2";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amount"; type: "uint256" },
                            ];
                            name: "getApprovalType";
                            outputs: readonly [
                                {
                                    internalType: "enum IApproveAndCall.ApprovalType";
                                    name: "";
                                    type: "uint8";
                                },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "token0"; type: "address" },
                                        { internalType: "address"; name: "token1"; type: "address" },
                                        { internalType: "uint256"; name: "tokenId"; type: "uint256" },
                                        { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                        { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                    ];
                                    internalType: "struct IApproveAndCall.IncreaseLiquidityParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "increaseLiquidity";
                            outputs: readonly [
                                { internalType: "bytes"; name: "result"; type: "bytes" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "token0"; type: "address" },
                                        { internalType: "address"; name: "token1"; type: "address" },
                                        { internalType: "uint24"; name: "fee"; type: "uint24" },
                                        { internalType: "int24"; name: "tickLower"; type: "int24" },
                                        { internalType: "int24"; name: "tickUpper"; type: "int24" },
                                        { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                        { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                        { internalType: "address"; name: "recipient"; type: "address" },
                                    ];
                                    internalType: "struct IApproveAndCall.MintParams";
                                    name: "params";
                                    type: "tuple";
                                },
                            ];
                            name: "mint";
                            outputs: readonly [
                                { internalType: "bytes"; name: "result"; type: "bytes" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                {
                                    internalType: "bytes32";
                                    name: "previousBlockhash";
                                    type: "bytes32";
                                },
                                { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                            ];
                            name: "multicall";
                            outputs: readonly [
                                { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                            ];
                            name: "multicall";
                            outputs: readonly [
                                { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                            ];
                            name: "multicall";
                            outputs: readonly [
                                { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "positionManager";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                            ];
                            name: "pull";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "refundETH";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                                { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermit";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermitAllowed";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "nonce"; type: "uint256" },
                                { internalType: "uint256"; name: "expiry"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermitAllowedIfNecessary";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                                { internalType: "uint256"; name: "deadline"; type: "uint256" },
                                { internalType: "uint8"; name: "v"; type: "uint8" },
                                { internalType: "bytes32"; name: "r"; type: "bytes32" },
                                { internalType: "bytes32"; name: "s"; type: "bytes32" },
                            ];
                            name: "selfPermitIfNecessary";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                { internalType: "uint256"; name: "amountOutMin"; type: "uint256" },
                                { internalType: "address[]"; name: "path"; type: "address[]" },
                                { internalType: "address"; name: "to"; type: "address" },
                            ];
                            name: "swapExactTokensForTokens";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                { internalType: "uint256"; name: "amountInMax"; type: "uint256" },
                                { internalType: "address[]"; name: "path"; type: "address[]" },
                                { internalType: "address"; name: "to"; type: "address" },
                            ];
                            name: "swapTokensForExactTokens";
                            outputs: readonly [
                                { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                            ];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                            ];
                            name: "sweepToken";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                            ];
                            name: "sweepToken";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "sweepTokenWithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "sweepTokenWithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                                { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                                { internalType: "bytes"; name: "_data"; type: "bytes" },
                            ];
                            name: "uniswapV3SwapCallback";
                            outputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                            ];
                            name: "unwrapWETH9";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                            ];
                            name: "unwrapWETH9";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "address"; name: "recipient"; type: "address" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "unwrapWETH9WithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                                { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                                { internalType: "address"; name: "feeRecipient"; type: "address" },
                            ];
                            name: "unwrapWETH9WithFee";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint256"; name: "value"; type: "uint256" },
                            ];
                            name: "wrapETH";
                            outputs: readonly [];
                            stateMutability: "payable";
                            type: "function";
                        },
                        { stateMutability: "payable"; type: "receive" },
                    ];
                    address: "0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166";
                };
                UniswapV3Factory: {
                    abi: readonly [
                        {
                            inputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "constructor";
                        },
                        {
                            anonymous: false;
                            inputs: readonly [
                                {
                                    indexed: true;
                                    internalType: "uint24";
                                    name: "fee";
                                    type: "uint24";
                                },
                                {
                                    indexed: true;
                                    internalType: "int24";
                                    name: "tickSpacing";
                                    type: "int24";
                                },
                            ];
                            name: "FeeAmountEnabled";
                            type: "event";
                        },
                        {
                            anonymous: false;
                            inputs: readonly [
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "oldOwner";
                                    type: "address";
                                },
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "newOwner";
                                    type: "address";
                                },
                            ];
                            name: "OwnerChanged";
                            type: "event";
                        },
                        {
                            anonymous: false;
                            inputs: readonly [
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "token0";
                                    type: "address";
                                },
                                {
                                    indexed: true;
                                    internalType: "address";
                                    name: "token1";
                                    type: "address";
                                },
                                { indexed: true; internalType: "uint24"; name: "fee"; type: "uint24" },
                                {
                                    indexed: false;
                                    internalType: "int24";
                                    name: "tickSpacing";
                                    type: "int24";
                                },
                                {
                                    indexed: false;
                                    internalType: "address";
                                    name: "pool";
                                    type: "address";
                                },
                            ];
                            name: "PoolCreated";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "tokenA"; type: "address" },
                                { internalType: "address"; name: "tokenB"; type: "address" },
                                { internalType: "uint24"; name: "fee"; type: "uint24" },
                            ];
                            name: "createPool";
                            outputs: readonly [
                                { internalType: "address"; name: "pool"; type: "address" },
                            ];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint24"; name: "fee"; type: "uint24" },
                                { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                            ];
                            name: "enableFeeAmount";
                            outputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "uint24"; name: ""; type: "uint24" },
                            ];
                            name: "feeAmountTickSpacing";
                            outputs: readonly [{ internalType: "int24"; name: ""; type: "int24" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                                { internalType: "address"; name: ""; type: "address" },
                                { internalType: "uint24"; name: ""; type: "uint24" },
                            ];
                            name: "getPool";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "owner";
                            outputs: readonly [
                                { internalType: "address"; name: ""; type: "address" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "parameters";
                            outputs: readonly [
                                { internalType: "address"; name: "factory"; type: "address" },
                                { internalType: "address"; name: "token0"; type: "address" },
                                { internalType: "address"; name: "token1"; type: "address" },
                                { internalType: "uint24"; name: "fee"; type: "uint24" },
                                { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                            ];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { internalType: "address"; name: "_owner"; type: "address" },
                            ];
                            name: "setOwner";
                            outputs: readonly [];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                    ];
                    address: "0x1F98431c8aD98523631AE4a59f267346ea31F984";
                };
                USDC: {
                    abi: readonly [
                        {
                            inputs: readonly [
                                { indexed: true; name: "owner"; type: "address" },
                                { indexed: true; name: "spender"; type: "address" },
                                { indexed: false; name: "value"; type: "uint256" },
                            ];
                            name: "Approval";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { indexed: true; name: "from"; type: "address" },
                                { indexed: true; name: "to"; type: "address" },
                                { indexed: false; name: "value"; type: "uint256" },
                            ];
                            name: "Transfer";
                            type: "event";
                        },
                        {
                            inputs: readonly [
                                { name: "owner"; type: "address" },
                                { name: "spender"; type: "address" },
                            ];
                            name: "allowance";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "spender"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "approve";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [{ name: "account"; type: "address" }];
                            name: "balanceOf";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "decimals";
                            outputs: readonly [{ type: "uint8" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "name";
                            outputs: readonly [{ type: "string" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "symbol";
                            outputs: readonly [{ type: "string" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [];
                            name: "totalSupply";
                            outputs: readonly [{ type: "uint256" }];
                            stateMutability: "view";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "recipient"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "transfer";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                        {
                            inputs: readonly [
                                { name: "sender"; type: "address" },
                                { name: "recipient"; type: "address" },
                                { name: "amount"; type: "uint256" },
                            ];
                            name: "transferFrom";
                            outputs: readonly [{ type: "bool" }];
                            stateMutability: "nonpayable";
                            type: "function";
                        },
                    ];
                    address: "0x31d0220469e10c4E71834a79b1f276d740d3768F";
                    read: { decimals: () => 6 };
                };
            };
            custom?: Record<string, unknown>;
            ensTlds?: readonly string[];
            fees?: ChainFees<undefined>;
            formatters: {
                block: {
                    exclude: undefined | [];
                    format: (
                        args: OpStackRpcBlock<BlockTag, boolean>,
                    ) => {
                        baseFeePerGas: null | bigint;
                        blobGasUsed: bigint;
                        difficulty: bigint;
                        excessBlobGas: bigint;
                        extraData: `0x${string}`;
                        gasLimit: bigint;
                        gasUsed: bigint;
                        hash: null | `0x${string}`;
                        logsBloom: null | `0x${string}`;
                        miner: `0x${string}`;
                        mixHash: `0x${string}`;
                        nonce: null | `0x${string}`;
                        number: null | bigint;
                        parentBeaconBlockRoot?: `0x${string}`;
                        parentHash: `0x${string}`;
                        receiptsRoot: `0x${string}`;
                        sealFields: `0x${string}`[];
                        sha3Uncles: `0x${string}`;
                        size: bigint;
                        stateRoot: `0x${string}`;
                        timestamp: bigint;
                        totalDifficulty: null | bigint;
                        transactions: `0x${string}`[] | OpStackTransaction<boolean>[];
                        transactionsRoot: `0x${string}`;
                        uncles: `0x${string}`[];
                        withdrawals?: Withdrawal[];
                        withdrawalsRoot?: `0x${string}`;
                    };
                    type: "block";
                };
                transaction: {
                    exclude: undefined
                    | [];
                    format: (
                        args: OpStackRpcTransaction<boolean>,
                    ) =>
                        | {
                            blockHash: null
                            | `0x${string}`;
                            blockNumber: null | bigint;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice?: undefined;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: boolean;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            mint?: bigint;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash: `0x${string}`;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "deposit";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                        | {
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            blockHash: null
                            | `0x${string}`;
                            blockNumber: null | bigint;
                            chainId?: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice: bigint;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            mint?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash?: undefined;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "legacy";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity?: undefined;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            blockHash: null
                            | `0x${string}`;
                            blockNumber: null | bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice: bigint;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            mint?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash?: undefined;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "eip2930";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            blockHash: null
                            | `0x${string}`;
                            blockNumber: null | bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice?: undefined;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            mint?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash?: undefined;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "eip1559";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly `0x${string}`[];
                            blockHash: null
                            | `0x${string}`;
                            blockNumber: null | bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice?: undefined;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            mint?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash?: undefined;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "eip4844";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        }
                        | {
                            accessList: AccessList;
                            authorizationList: SignedAuthorizationList<number>;
                            blobVersionedHashes?: undefined;
                            blockHash: null | `0x${string}`;
                            blockNumber: null | bigint;
                            chainId: number;
                            from: `0x${string}`;
                            gas: bigint;
                            gasPrice?: undefined;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            isSystemTx?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            mint?: undefined;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            sourceHash?: undefined;
                            to: null | `0x${string}`;
                            transactionIndex: null | number;
                            type: "eip7702";
                            typeHex: null | `0x${string}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                        };
                    type: "transaction";
                };
                transactionReceipt: {
                    exclude: undefined
                    | [];
                    format: (
                        args: OpStackRpcTransactionReceipt,
                    ) => {
                        blobGasPrice?: bigint;
                        blobGasUsed?: bigint;
                        blockHash: `0x${string}`;
                        blockNumber: bigint;
                        contractAddress: undefined | null | `0x${string}`;
                        cumulativeGasUsed: bigint;
                        effectiveGasPrice: bigint;
                        from: `0x${string}`;
                        gasUsed: bigint;
                        l1Fee: null | bigint;
                        l1FeeScalar: null | number;
                        l1GasPrice: null | bigint;
                        l1GasUsed: null | bigint;
                        logs: Log<
                            bigint,
                            number,
                            false,
                            undefined,
                            undefined,
                            undefined,
                            undefined,
                        >[];
                        logsBloom: `0x${string}`;
                        root?: `0x${string}`;
                        status: "success"
                        | "reverted";
                        to: null | `0x${string}`;
                        transactionHash: `0x${string}`;
                        transactionIndex: number;
                        type: TransactionType;
                    };
                    type: "transactionReceipt";
                };
            };
            id: 1301;
            name: "Unichain Sepolia";
            nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
            rpcUrls: { default: { http: readonly ["https://sepolia.unichain.org"] } };
            serializers: {
                transaction: (
                    transaction: OpStackTransactionSerializable,
                    signature?: Signature,
                ) =>
                    | `0x02${string}`
                    | `0x01${string}`
                    | `0x03${string}`
                    | `0x04${string}`
                    | TransactionSerializedLegacy
                    | `0x7e${string}`;
            };
            sourceId: 11155111;
            testnet: true;
        }
        • ReadonlyblockchainId: "UNI-SEPOLIA"
        • ReadonlyblockchainVm: "EVM"
        • blockExplorers: {
              default: {
                  apiUrl: "https://api-sepolia.uniscan.xyz/api";
                  name: "Uniscan";
                  url: "https://sepolia.uniscan.xyz";
              };
          }

          Collection of block explorers

        • blockTime: 2000

          Block time in milliseconds.

        • contracts: {
              disputeGameFactory: {
                  "11155111": { address: "0xeff73e5aa3B9AEC32c659Aa3E00444d20a84394b" };
              };
              gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
              l1Block: { address: "0x4200000000000000000000000000000000000015" };
              l1StandardBridge: {
                  "11155111": { address: "0xea58fcA6849d79EAd1f26608855c2D6407d54Ce2" };
              };
              l2CrossDomainMessenger: {
                  address: "0x4200000000000000000000000000000000000007";
              };
              l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
              l2StandardBridge: { address: "0x4200000000000000000000000000000000000010" };
              l2ToL1MessagePasser: {
                  address: "0x4200000000000000000000000000000000000016";
              };
              multicall3: {
                  address: "0xca11bde05977b3631167028862be2a173976ca11";
                  blockCreated: 0;
              };
              portal: {
                  "11155111": { address: "0x0d83dab629f0e0F9d36c0Cbc89B69a489f0751bD" };
              };
              QuoterV2: {
                  abi: readonly [
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "_factory"; type: "address" },
                              { internalType: "address"; name: "_WETH9"; type: "address" },
                          ];
                          stateMutability: "nonpayable";
                          type: "constructor";
                      },
                      {
                          inputs: readonly [];
                          name: "WETH9";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "factory";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          name: "quoteExactInput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              {
                                  internalType: "uint160[]";
                                  name: "sqrtPriceX96AfterList";
                                  type: "uint160[]";
                              },
                              {
                                  internalType: "uint32[]";
                                  name: "initializedTicksCrossedList";
                                  type: "uint32[]";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IQuoterV2.QuoteExactInputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "quoteExactInputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              { internalType: "uint160"; name: "sqrtPriceX96After"; type: "uint160" },
                              {
                                  internalType: "uint32";
                                  name: "initializedTicksCrossed";
                                  type: "uint32";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          name: "quoteExactOutput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              {
                                  internalType: "uint160[]";
                                  name: "sqrtPriceX96AfterList";
                                  type: "uint160[]";
                              },
                              {
                                  internalType: "uint32[]";
                                  name: "initializedTicksCrossedList";
                                  type: "uint32[]";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint256"; name: "amount"; type: "uint256" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IQuoterV2.QuoteExactOutputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "quoteExactOutputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              { internalType: "uint160"; name: "sqrtPriceX96After"; type: "uint160" },
                              {
                                  internalType: "uint32";
                                  name: "initializedTicksCrossed";
                                  type: "uint32";
                              },
                              { internalType: "uint256"; name: "gasEstimate"; type: "uint256" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                              { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                          ];
                          name: "uniswapV3SwapCallback";
                          outputs: readonly [];
                          stateMutability: "view";
                          type: "function";
                      },
                  ];
                  address: "0x6Dd37329A1A225a6Fca658265D460423DCafBF89";
              };
              SwapRouter02: {
                  abi: readonly [
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "_factoryV2"; type: "address" },
                              { internalType: "address"; name: "factoryV3"; type: "address" },
                              { internalType: "address"; name: "_positionManager"; type: "address" },
                              { internalType: "address"; name: "_WETH9"; type: "address" },
                          ];
                          stateMutability: "nonpayable";
                          type: "constructor";
                      },
                      {
                          inputs: readonly [];
                          name: "WETH9";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveMax";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveMaxMinusOne";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveZeroThenMax";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                          ];
                          name: "approveZeroThenMaxMinusOne";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "data"; type: "bytes" },
                          ];
                          name: "callPositionManager";
                          outputs: readonly [
                              { internalType: "bytes"; name: "result"; type: "bytes" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes[]"; name: "paths"; type: "bytes[]" },
                              { internalType: "uint128[]"; name: "amounts"; type: "uint128[]" },
                              {
                                  internalType: "uint24";
                                  name: "maximumTickDivergence";
                                  type: "uint24";
                              },
                              { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                          ];
                          name: "checkOracleSlippage";
                          outputs: readonly [];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes"; name: "path"; type: "bytes" },
                              {
                                  internalType: "uint24";
                                  name: "maximumTickDivergence";
                                  type: "uint24";
                              },
                              { internalType: "uint32"; name: "secondsAgo"; type: "uint32" },
                          ];
                          name: "checkOracleSlippage";
                          outputs: readonly [];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "bytes"; name: "path"; type: "bytes" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                      {
                                          internalType: "uint256";
                                          name: "amountOutMinimum";
                                          type: "uint256";
                                      },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactInputParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactInput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                                      {
                                          internalType: "uint256";
                                          name: "amountOutMinimum";
                                          type: "uint256";
                                      },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactInputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactInputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "bytes"; name: "path"; type: "bytes" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                      { internalType: "uint256"; name: "amountInMaximum"; type: "uint256" },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactOutputParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactOutput";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "tokenIn"; type: "address" },
                                      { internalType: "address"; name: "tokenOut"; type: "address" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                      { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                                      { internalType: "uint256"; name: "amountInMaximum"; type: "uint256" },
                                      {
                                          internalType: "uint160";
                                          name: "sqrtPriceLimitX96";
                                          type: "uint160";
                                      },
                                  ];
                                  internalType: "struct IV3SwapRouter.ExactOutputSingleParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "exactOutputSingle";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "factory";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "factoryV2";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amount"; type: "uint256" },
                          ];
                          name: "getApprovalType";
                          outputs: readonly [
                              {
                                  internalType: "enum IApproveAndCall.ApprovalType";
                                  name: "";
                                  type: "uint8";
                              },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "token0"; type: "address" },
                                      { internalType: "address"; name: "token1"; type: "address" },
                                      { internalType: "uint256"; name: "tokenId"; type: "uint256" },
                                      { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                      { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                  ];
                                  internalType: "struct IApproveAndCall.IncreaseLiquidityParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "increaseLiquidity";
                          outputs: readonly [
                              { internalType: "bytes"; name: "result"; type: "bytes" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  components: readonly [
                                      { internalType: "address"; name: "token0"; type: "address" },
                                      { internalType: "address"; name: "token1"; type: "address" },
                                      { internalType: "uint24"; name: "fee"; type: "uint24" },
                                      { internalType: "int24"; name: "tickLower"; type: "int24" },
                                      { internalType: "int24"; name: "tickUpper"; type: "int24" },
                                      { internalType: "uint256"; name: "amount0Min"; type: "uint256" },
                                      { internalType: "uint256"; name: "amount1Min"; type: "uint256" },
                                      { internalType: "address"; name: "recipient"; type: "address" },
                                  ];
                                  internalType: "struct IApproveAndCall.MintParams";
                                  name: "params";
                                  type: "tuple";
                              },
                          ];
                          name: "mint";
                          outputs: readonly [
                              { internalType: "bytes"; name: "result"; type: "bytes" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              {
                                  internalType: "bytes32";
                                  name: "previousBlockhash";
                                  type: "bytes32";
                              },
                              { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                          ];
                          name: "multicall";
                          outputs: readonly [
                              { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "deadline"; type: "uint256" },
                              { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                          ];
                          name: "multicall";
                          outputs: readonly [
                              { internalType: "bytes[]"; name: ""; type: "bytes[]" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "bytes[]"; name: "data"; type: "bytes[]" },
                          ];
                          name: "multicall";
                          outputs: readonly [
                              { internalType: "bytes[]"; name: "results"; type: "bytes[]" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "positionManager";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                          ];
                          name: "pull";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "refundETH";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                              { internalType: "uint256"; name: "deadline"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermit";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              { internalType: "uint256"; name: "expiry"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermitAllowed";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "nonce"; type: "uint256" },
                              { internalType: "uint256"; name: "expiry"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermitAllowedIfNecessary";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                              { internalType: "uint256"; name: "deadline"; type: "uint256" },
                              { internalType: "uint8"; name: "v"; type: "uint8" },
                              { internalType: "bytes32"; name: "r"; type: "bytes32" },
                              { internalType: "bytes32"; name: "s"; type: "bytes32" },
                          ];
                          name: "selfPermitIfNecessary";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                              { internalType: "uint256"; name: "amountOutMin"; type: "uint256" },
                              { internalType: "address[]"; name: "path"; type: "address[]" },
                              { internalType: "address"; name: "to"; type: "address" },
                          ];
                          name: "swapExactTokensForTokens";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountOut"; type: "uint256" },
                              { internalType: "uint256"; name: "amountInMax"; type: "uint256" },
                              { internalType: "address[]"; name: "path"; type: "address[]" },
                              { internalType: "address"; name: "to"; type: "address" },
                          ];
                          name: "swapTokensForExactTokens";
                          outputs: readonly [
                              { internalType: "uint256"; name: "amountIn"; type: "uint256" },
                          ];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                          ];
                          name: "sweepToken";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                          ];
                          name: "sweepToken";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "sweepTokenWithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "token"; type: "address" },
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "sweepTokenWithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "int256"; name: "amount0Delta"; type: "int256" },
                              { internalType: "int256"; name: "amount1Delta"; type: "int256" },
                              { internalType: "bytes"; name: "_data"; type: "bytes" },
                          ];
                          name: "uniswapV3SwapCallback";
                          outputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                          ];
                          name: "unwrapWETH9";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                          ];
                          name: "unwrapWETH9";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "address"; name: "recipient"; type: "address" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "unwrapWETH9WithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "amountMinimum"; type: "uint256" },
                              { internalType: "uint256"; name: "feeBips"; type: "uint256" },
                              { internalType: "address"; name: "feeRecipient"; type: "address" },
                          ];
                          name: "unwrapWETH9WithFee";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint256"; name: "value"; type: "uint256" },
                          ];
                          name: "wrapETH";
                          outputs: readonly [];
                          stateMutability: "payable";
                          type: "function";
                      },
                      { stateMutability: "payable"; type: "receive" },
                  ];
                  address: "0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166";
              };
              UniswapV3Factory: {
                  abi: readonly [
                      {
                          inputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "constructor";
                      },
                      {
                          anonymous: false;
                          inputs: readonly [
                              {
                                  indexed: true;
                                  internalType: "uint24";
                                  name: "fee";
                                  type: "uint24";
                              },
                              {
                                  indexed: true;
                                  internalType: "int24";
                                  name: "tickSpacing";
                                  type: "int24";
                              },
                          ];
                          name: "FeeAmountEnabled";
                          type: "event";
                      },
                      {
                          anonymous: false;
                          inputs: readonly [
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "oldOwner";
                                  type: "address";
                              },
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "newOwner";
                                  type: "address";
                              },
                          ];
                          name: "OwnerChanged";
                          type: "event";
                      },
                      {
                          anonymous: false;
                          inputs: readonly [
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "token0";
                                  type: "address";
                              },
                              {
                                  indexed: true;
                                  internalType: "address";
                                  name: "token1";
                                  type: "address";
                              },
                              { indexed: true; internalType: "uint24"; name: "fee"; type: "uint24" },
                              {
                                  indexed: false;
                                  internalType: "int24";
                                  name: "tickSpacing";
                                  type: "int24";
                              },
                              {
                                  indexed: false;
                                  internalType: "address";
                                  name: "pool";
                                  type: "address";
                              },
                          ];
                          name: "PoolCreated";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "tokenA"; type: "address" },
                              { internalType: "address"; name: "tokenB"; type: "address" },
                              { internalType: "uint24"; name: "fee"; type: "uint24" },
                          ];
                          name: "createPool";
                          outputs: readonly [
                              { internalType: "address"; name: "pool"; type: "address" },
                          ];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint24"; name: "fee"; type: "uint24" },
                              { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                          ];
                          name: "enableFeeAmount";
                          outputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "uint24"; name: ""; type: "uint24" },
                          ];
                          name: "feeAmountTickSpacing";
                          outputs: readonly [{ internalType: "int24"; name: ""; type: "int24" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                              { internalType: "address"; name: ""; type: "address" },
                              { internalType: "uint24"; name: ""; type: "uint24" },
                          ];
                          name: "getPool";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "owner";
                          outputs: readonly [
                              { internalType: "address"; name: ""; type: "address" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "parameters";
                          outputs: readonly [
                              { internalType: "address"; name: "factory"; type: "address" },
                              { internalType: "address"; name: "token0"; type: "address" },
                              { internalType: "address"; name: "token1"; type: "address" },
                              { internalType: "uint24"; name: "fee"; type: "uint24" },
                              { internalType: "int24"; name: "tickSpacing"; type: "int24" },
                          ];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { internalType: "address"; name: "_owner"; type: "address" },
                          ];
                          name: "setOwner";
                          outputs: readonly [];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                  ];
                  address: "0x1F98431c8aD98523631AE4a59f267346ea31F984";
              };
              USDC: {
                  abi: readonly [
                      {
                          inputs: readonly [
                              { indexed: true; name: "owner"; type: "address" },
                              { indexed: true; name: "spender"; type: "address" },
                              { indexed: false; name: "value"; type: "uint256" },
                          ];
                          name: "Approval";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { indexed: true; name: "from"; type: "address" },
                              { indexed: true; name: "to"; type: "address" },
                              { indexed: false; name: "value"; type: "uint256" },
                          ];
                          name: "Transfer";
                          type: "event";
                      },
                      {
                          inputs: readonly [
                              { name: "owner"; type: "address" },
                              { name: "spender"; type: "address" },
                          ];
                          name: "allowance";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "spender"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "approve";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [{ name: "account"; type: "address" }];
                          name: "balanceOf";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "decimals";
                          outputs: readonly [{ type: "uint8" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "name";
                          outputs: readonly [{ type: "string" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "symbol";
                          outputs: readonly [{ type: "string" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [];
                          name: "totalSupply";
                          outputs: readonly [{ type: "uint256" }];
                          stateMutability: "view";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "recipient"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "transfer";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                      {
                          inputs: readonly [
                              { name: "sender"; type: "address" },
                              { name: "recipient"; type: "address" },
                              { name: "amount"; type: "uint256" },
                          ];
                          name: "transferFrom";
                          outputs: readonly [{ type: "bool" }];
                          stateMutability: "nonpayable";
                          type: "function";
                      },
                  ];
                  address: "0x31d0220469e10c4E71834a79b1f276d740d3768F";
                  read: { decimals: () => 6 };
              };
          }

          Collection of contracts

        • Optionalcustom?: Record<string, unknown>

          Custom chain data.

        • OptionalensTlds?: readonly string[]

          Collection of ENS TLDs for the chain.

        • Optionalfees?: ChainFees<undefined>

          Modifies how fees are derived.

        • formatters: {
              block: {
                  exclude: undefined | [];
                  format: (
                      args: OpStackRpcBlock<BlockTag, boolean>,
                  ) => {
                      baseFeePerGas: null | bigint;
                      blobGasUsed: bigint;
                      difficulty: bigint;
                      excessBlobGas: bigint;
                      extraData: `0x${string}`;
                      gasLimit: bigint;
                      gasUsed: bigint;
                      hash: null | `0x${string}`;
                      logsBloom: null | `0x${string}`;
                      miner: `0x${string}`;
                      mixHash: `0x${string}`;
                      nonce: null | `0x${string}`;
                      number: null | bigint;
                      parentBeaconBlockRoot?: `0x${string}`;
                      parentHash: `0x${string}`;
                      receiptsRoot: `0x${string}`;
                      sealFields: `0x${string}`[];
                      sha3Uncles: `0x${string}`;
                      size: bigint;
                      stateRoot: `0x${string}`;
                      timestamp: bigint;
                      totalDifficulty: null | bigint;
                      transactions: `0x${string}`[] | OpStackTransaction<boolean>[];
                      transactionsRoot: `0x${string}`;
                      uncles: `0x${string}`[];
                      withdrawals?: Withdrawal[];
                      withdrawalsRoot?: `0x${string}`;
                  };
                  type: "block";
              };
              transaction: {
                  exclude: undefined
                  | [];
                  format: (
                      args: OpStackRpcTransaction<boolean>,
                  ) =>
                      | {
                          blockHash: null
                          | `0x${string}`;
                          blockNumber: null | bigint;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice?: undefined;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: boolean;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas: bigint;
                          maxPriorityFeePerGas: bigint;
                          mint?: bigint;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash: `0x${string}`;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "deposit";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                      | {
                          accessList?: undefined;
                          authorizationList?: undefined;
                          blobVersionedHashes?: undefined;
                          blockHash: null
                          | `0x${string}`;
                          blockNumber: null | bigint;
                          chainId?: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice: bigint;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: undefined;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas?: undefined;
                          maxPriorityFeePerGas?: undefined;
                          mint?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash?: undefined;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "legacy";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity?: undefined;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList?: undefined;
                          blobVersionedHashes?: undefined;
                          blockHash: null
                          | `0x${string}`;
                          blockNumber: null | bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice: bigint;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: undefined;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas?: undefined;
                          maxPriorityFeePerGas?: undefined;
                          mint?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash?: undefined;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "eip2930";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList?: undefined;
                          blobVersionedHashes?: undefined;
                          blockHash: null
                          | `0x${string}`;
                          blockNumber: null | bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice?: undefined;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: undefined;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas: bigint;
                          maxPriorityFeePerGas: bigint;
                          mint?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash?: undefined;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "eip1559";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList?: undefined;
                          blobVersionedHashes: readonly `0x${string}`[];
                          blockHash: null
                          | `0x${string}`;
                          blockNumber: null | bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice?: undefined;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: undefined;
                          maxFeePerBlobGas: bigint;
                          maxFeePerGas: bigint;
                          maxPriorityFeePerGas: bigint;
                          mint?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash?: undefined;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "eip4844";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      }
                      | {
                          accessList: AccessList;
                          authorizationList: SignedAuthorizationList<number>;
                          blobVersionedHashes?: undefined;
                          blockHash: null | `0x${string}`;
                          blockNumber: null | bigint;
                          chainId: number;
                          from: `0x${string}`;
                          gas: bigint;
                          gasPrice?: undefined;
                          hash: `0x${string}`;
                          input: `0x${string}`;
                          isSystemTx?: undefined;
                          maxFeePerBlobGas?: undefined;
                          maxFeePerGas: bigint;
                          maxPriorityFeePerGas: bigint;
                          mint?: undefined;
                          nonce: number;
                          r: `0x${string}`;
                          s: `0x${string}`;
                          sourceHash?: undefined;
                          to: null | `0x${string}`;
                          transactionIndex: null | number;
                          type: "eip7702";
                          typeHex: null | `0x${string}`;
                          v: bigint;
                          value: bigint;
                          yParity: number;
                      };
                  type: "transaction";
              };
              transactionReceipt: {
                  exclude: undefined
                  | [];
                  format: (
                      args: OpStackRpcTransactionReceipt,
                  ) => {
                      blobGasPrice?: bigint;
                      blobGasUsed?: bigint;
                      blockHash: `0x${string}`;
                      blockNumber: bigint;
                      contractAddress: undefined | null | `0x${string}`;
                      cumulativeGasUsed: bigint;
                      effectiveGasPrice: bigint;
                      from: `0x${string}`;
                      gasUsed: bigint;
                      l1Fee: null | bigint;
                      l1FeeScalar: null | number;
                      l1GasPrice: null | bigint;
                      l1GasUsed: null | bigint;
                      logs: Log<
                          bigint,
                          number,
                          false,
                          undefined,
                          undefined,
                          undefined,
                          undefined,
                      >[];
                      logsBloom: `0x${string}`;
                      root?: `0x${string}`;
                      status: "success"
                      | "reverted";
                      to: null | `0x${string}`;
                      transactionHash: `0x${string}`;
                      transactionIndex: number;
                      type: TransactionType;
                  };
                  type: "transactionReceipt";
              };
          }

          Modifies how data is formatted and typed (e.g. blocks and transactions)

        • id: 1301

          ID in number form

        • name: "Unichain Sepolia"

          Human-readable name

        • nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" }

          Currency used by chain

        • rpcUrls: { default: { http: readonly ["https://sepolia.unichain.org"] } }

          Collection of RPC endpoints

        • serializers: {
              transaction: (
                  transaction: OpStackTransactionSerializable,
                  signature?: Signature,
              ) =>
                  | `0x02${string}`
                  | `0x01${string}`
                  | `0x03${string}`
                  | `0x04${string}`
                  | TransactionSerializedLegacy
                  | `0x7e${string}`;
          }

          Modifies how data is serialized (e.g. transactions).

        • sourceId: 11155111

          Source Chain ID (ie. the L1 chain)

        • testnet: true

          Flag for test networks