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

    Function extractChain

    • Type Parameters

      • const chains extends (
            | {
                blockchainId: "ARB-SEPOLIA";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api-sepolia.arbiscan.io/api";
                        name: "Arbiscan";
                        url: "https://sepolia.arbiscan.io";
                    };
                };
                blockTime: 250;
                contracts: {
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 81930;
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B";
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x101F443B4d1b059569D643917553c771E1b9663E";
                    };
                    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: "0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e";
                    };
                    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: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                fees?: ChainFees<undefined>;
                formatters?: undefined;
                id: 421614;
                name: "Arbitrum Sepolia";
                nativeCurrency: {
                    decimals: 18;
                    name: "Arbitrum Sepolia Ether";
                    symbol: "ETH";
                };
                rpcUrls: {
                    default: { http: readonly ["https://sepolia-rollup.arbitrum.io/rpc"] };
                };
                serializers?: ChainSerializers<
                    undefined,
                    TransactionSerializable<bigint, number>,
                >;
                sourceId?: number;
                testnet: true;
            }
            | {
                blockchainId: "ARB";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.arbiscan.io/api";
                        name: "Arbiscan";
                        url: "https://arbiscan.io";
                    };
                };
                blockTime: 250;
                contracts: {
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 7654707;
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e";
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45";
                    };
                    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: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                fees?: ChainFees<undefined>;
                formatters?: undefined;
                id: 42161;
                name: "Arbitrum One";
                nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://arb1.arbitrum.io/rpc"] } };
                serializers?: ChainSerializers<
                    undefined,
                    TransactionSerializable<bigint, number>,
                >;
                sourceId?: number;
                testnet?: boolean;
            }
            | {
                blockchainId: "AVAX";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.snowtrace.io";
                        name: "SnowTrace";
                        url: "https://snowtrace.io";
                    };
                };
                blockTime: 1700;
                contracts: {
                    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: "0xc891eb4cbdeff6e073e859e987815ed1505c2acd";
                        read: { decimals: () => 6 };
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 11907934;
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F";
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE";
                    };
                    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: "0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD";
                    };
                    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: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E";
                        read: { decimals: () => 6 };
                    };
                    USDT: {
                        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: "0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                fees?: ChainFees<undefined>;
                formatters?: undefined;
                id: 43114;
                name: "Avalanche";
                nativeCurrency: { decimals: 18; name: "Avalanche"; symbol: "AVAX" };
                rpcUrls: {
                    default: { http: readonly ["https://api.avax.network/ext/bc/C/rpc"] };
                };
                serializers?: ChainSerializers<
                    undefined,
                    TransactionSerializable<bigint, number>,
                >;
                sourceId?: number;
                testnet?: boolean;
            }
            | {
                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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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[];
                experimental_preconfirmationTime?: number;
                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: "BASE";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.basescan.org/api";
                        name: "Basescan";
                        url: "https://basescan.org";
                    };
                };
                blockTime: 2000;
                contracts: {
                    disputeGameFactory: {
                        "1": { address: "0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e" };
                    };
                    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: "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42";
                        read: { decimals: () => 6 };
                    };
                    gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                    l1Block: { address: "0x4200000000000000000000000000000000000015" };
                    l1StandardBridge: {
                        "1": {
                            address: "0x3154Cf16ccdb4C6d922629664174b904d80F2C35";
                            blockCreated: 17482143;
                        };
                    };
                    l2CrossDomainMessenger: {
                        address: "0x4200000000000000000000000000000000000007";
                    };
                    l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                    l2OutputOracle: {
                        "1": { address: "0x56315b90c40730925ec5485cf004d835058518A0" };
                    };
                    l2StandardBridge: {
                        address: "0x4200000000000000000000000000000000000010";
                    };
                    l2ToL1MessagePasser: {
                        address: "0x4200000000000000000000000000000000000016";
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 5022;
                    };
                    portal: {
                        "1": {
                            address: "0x49048044D57e1C92A77f79988d21Fa8fAF74E97e";
                            blockCreated: 17482143;
                        };
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a";
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x2626664c2603336E57B271c5C0b26F421741e481";
                    };
                    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: "0x33128a8fC17869897dcE68Ed026d694621f6FDfD";
                    };
                    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: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                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: 8453;
                name: "Base";
                nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://mainnet.base.org"] } };
                serializers: {
                    transaction: (
                        transaction: OpStackTransactionSerializable,
                        signature?: Signature,
                    ) =>
                        | `0x02${string}`
                        | `0x01${string}`
                        | `0x03${string}`
                        | `0x04${string}`
                        | TransactionSerializedLegacy
                        | `0x7e${string}`;
                };
                sourceId: 1;
                testnet?: boolean;
            }
            | {
                blockchainId: "ETH-SEPOLIA";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api-sepolia.etherscan.io/api";
                        name: "Etherscan";
                        url: "https://sepolia.etherscan.io";
                    };
                };
                blockTime?: number;
                contracts: {
                    ensUniversalResolver: {
                        address: "0xeeeeeeee14d718c2b47d9923deab1335e144eeee";
                        blockCreated: 8928790;
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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[];
                experimental_preconfirmationTime?: number;
                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: "ETH";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.etherscan.io/api";
                        name: "Etherscan";
                        url: "https://etherscan.io";
                    };
                };
                blockTime: 12000;
                contracts: {
                    ensUniversalResolver: {
                        address: "0xeeeeeeee14d718c2b47d9923deab1335e144eeee";
                        blockCreated: 23085558;
                    };
                    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: "0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c";
                        read: { decimals: () => 6 };
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 14353601;
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e";
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45";
                    };
                    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: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48";
                        read: { decimals: () => 6 };
                    };
                    USDT: {
                        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: "0xdac17f958d2ee523a2206206994597c13d831ec7";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                fees?: ChainFees<undefined>;
                formatters?: undefined;
                id: 1;
                name: "Ethereum";
                nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://eth.merkle.io"] } };
                serializers?: ChainSerializers<
                    undefined,
                    TransactionSerializable<bigint, number>,
                >;
                sourceId?: number;
                testnet?: boolean;
            }
            | {
                blockchainId: "MATIC";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.polygonscan.com/api";
                        name: "PolygonScan";
                        url: "https://polygonscan.com";
                    };
                };
                blockTime?: number;
                contracts: {
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 25770160;
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e";
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45";
                    };
                    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: "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                fees?: ChainFees<undefined>;
                formatters?: undefined;
                id: 137;
                name: "Polygon";
                nativeCurrency: { decimals: 18; name: "POL"; symbol: "POL" };
                rpcUrls: { default: { http: readonly ["https://polygon-rpc.com"] } };
                serializers?: ChainSerializers<
                    undefined,
                    TransactionSerializable<bigint, number>,
                >;
                sourceId?: number;
                testnet?: boolean;
            }
            | {
                blockchainId: "OP-SEPOLIA";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://optimism-sepolia.blockscout.com/api";
                        name: "Blockscout";
                        url: "https://optimism-sepolia.blockscout.com";
                    };
                };
                blockTime: 2000;
                contracts: {
                    disputeGameFactory: {
                        "11155111": { address: "0x05F9613aDB30026FFd634f38e5C4dFd30a197Fa1" };
                    };
                    gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                    l1Block: { address: "0x4200000000000000000000000000000000000015" };
                    l1StandardBridge: {
                        "11155111": { address: "0xFBb0621E0B23b5478B630BD55a5f21f67730B0F1" };
                    };
                    l2CrossDomainMessenger: {
                        address: "0x4200000000000000000000000000000000000007";
                    };
                    l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                    l2OutputOracle: {
                        "11155111": { address: "0x90E9c4f8a994a250F6aEfd61CAFb4F2e895D458F" };
                    };
                    l2StandardBridge: {
                        address: "0x4200000000000000000000000000000000000010";
                    };
                    l2ToL1MessagePasser: {
                        address: "0x4200000000000000000000000000000000000016";
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 1620204;
                    };
                    portal: {
                        "11155111": { address: "0x16Fc5058F25648194471939df75CF27A2fdC48BC" };
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x5fd84259d66Cd46123540766Be93DFE6D43130D7";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                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: 11155420;
                name: "OP Sepolia";
                nativeCurrency: { decimals: 18; name: "Sepolia Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://sepolia.optimism.io"] } };
                serializers: {
                    transaction: (
                        transaction: OpStackTransactionSerializable,
                        signature?: Signature,
                    ) =>
                        | `0x02${string}`
                        | `0x01${string}`
                        | `0x03${string}`
                        | `0x04${string}`
                        | TransactionSerializedLegacy
                        | `0x7e${string}`;
                };
                sourceId: 11155111;
                testnet: true;
            }
            | {
                blockchainId: "OP";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api-optimistic.etherscan.io/api";
                        name: "Optimism Explorer";
                        url: "https://optimistic.etherscan.io";
                    };
                };
                blockTime: 2000;
                contracts: {
                    disputeGameFactory: {
                        "1": { address: "0xe5965Ab5962eDc7477C8520243A95517CD252fA9" };
                    };
                    gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                    l1Block: { address: "0x4200000000000000000000000000000000000015" };
                    l1StandardBridge: {
                        "1": { address: "0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1" };
                    };
                    l2CrossDomainMessenger: {
                        address: "0x4200000000000000000000000000000000000007";
                    };
                    l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                    l2OutputOracle: {
                        "1": { address: "0xdfe97868233d1aa22e815a266982f2cf17685a27" };
                    };
                    l2StandardBridge: {
                        address: "0x4200000000000000000000000000000000000010";
                    };
                    l2ToL1MessagePasser: {
                        address: "0x4200000000000000000000000000000000000016";
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 4286263;
                    };
                    portal: {
                        "1": { address: "0xbEb5Fc579115071764c7423A4f12eDde41f106Ed" };
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e";
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45";
                    };
                    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: "0x0b2c639c533813f4aa9d7837caf62653d097ff85";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                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: 10;
                name: "OP Mainnet";
                nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://mainnet.optimism.io"] } };
                serializers: {
                    transaction: (
                        transaction: OpStackTransactionSerializable,
                        signature?: Signature,
                    ) =>
                        | `0x02${string}`
                        | `0x01${string}`
                        | `0x03${string}`
                        | `0x04${string}`
                        | TransactionSerializedLegacy
                        | `0x7e${string}`;
                };
                sourceId: 1;
                testnet?: boolean;
            }
            | {
                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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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[];
                experimental_preconfirmationTime?: number;
                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;
            }
            | {
                blockchainId: "UNI";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.uniscan.xyz/api";
                        name: "Uniscan";
                        url: "https://uniscan.xyz";
                    };
                };
                blockTime: 2000;
                contracts: {
                    disputeGameFactory: {
                        "1": { address: "0x2F12d621a16e2d3285929C9996f478508951dFe4" };
                    };
                    gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                    l1Block: { address: "0x4200000000000000000000000000000000000015" };
                    l1StandardBridge: {
                        "1": { address: "0x81014F44b0a345033bB2b3B21C7a1A308B35fEeA" };
                    };
                    l2CrossDomainMessenger: {
                        address: "0x4200000000000000000000000000000000000007";
                    };
                    l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                    l2StandardBridge: {
                        address: "0x4200000000000000000000000000000000000010";
                    };
                    l2ToL1MessagePasser: {
                        address: "0x4200000000000000000000000000000000000016";
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 0;
                    };
                    portal: {
                        "1": { address: "0x0bd48f6B86a26D3a217d0Fa6FfE2B491B956A7a2" };
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x385a5cf5f83e99f7bb2852b6a19c3538b9fa7658";
                    };
                    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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                            { internalType: ...; name: ...; type: ... },
                                        ];
                                        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: "0x73855d06de49d0fe4a9c42636ba96c62da12ff9c";
                    };
                    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: "0x1f98400000000000000000000000000000000003";
                    };
                    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: "0x078D782b760474a361dDA0AF3839290b0EF57AD6";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                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: 130;
                name: "Unichain";
                nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://mainnet.unichain.org/"] } };
                serializers: {
                    transaction: (
                        transaction: OpStackTransactionSerializable,
                        signature?: Signature,
                    ) =>
                        | `0x02${string}`
                        | `0x01${string}`
                        | `0x03${string}`
                        | `0x04${string}`
                        | TransactionSerializedLegacy
                        | `0x7e${string}`;
                };
                sourceId: 1;
                testnet?: boolean;
            }
        )[]
      • chain extends
            | {
                blockchainId: "ARB-SEPOLIA";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api-sepolia.arbiscan.io/api";
                        name: "Arbiscan";
                        url: "https://sepolia.arbiscan.io";
                    };
                };
                blockTime: 250;
                contracts: {
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 81930;
                    };
                    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: "0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B";
                    };
                    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: "0x101F443B4d1b059569D643917553c771E1b9663E";
                    };
                    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: "0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e";
                    };
                    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: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                fees?: ChainFees<undefined>;
                formatters?: undefined;
                id: 421614;
                name: "Arbitrum Sepolia";
                nativeCurrency: {
                    decimals: 18;
                    name: "Arbitrum Sepolia Ether";
                    symbol: "ETH";
                };
                rpcUrls: {
                    default: { http: readonly ["https://sepolia-rollup.arbitrum.io/rpc"] };
                };
                serializers?: ChainSerializers<
                    undefined,
                    TransactionSerializable<bigint, number>,
                >;
                sourceId?: number;
                testnet: true;
            }
            | {
                blockchainId: "ARB";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.arbiscan.io/api";
                        name: "Arbiscan";
                        url: "https://arbiscan.io";
                    };
                };
                blockTime: 250;
                contracts: {
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 7654707;
                    };
                    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: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e";
                    };
                    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: "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45";
                    };
                    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: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                fees?: ChainFees<undefined>;
                formatters?: undefined;
                id: 42161;
                name: "Arbitrum One";
                nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://arb1.arbitrum.io/rpc"] } };
                serializers?: ChainSerializers<
                    undefined,
                    TransactionSerializable<bigint, number>,
                >;
                sourceId?: number;
                testnet?: boolean;
            }
            | {
                blockchainId: "AVAX";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.snowtrace.io";
                        name: "SnowTrace";
                        url: "https://snowtrace.io";
                    };
                };
                blockTime: 1700;
                contracts: {
                    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: "0xc891eb4cbdeff6e073e859e987815ed1505c2acd";
                        read: { decimals: () => 6 };
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 11907934;
                    };
                    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: "0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F";
                    };
                    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: "0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE";
                    };
                    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: "0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD";
                    };
                    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: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E";
                        read: { decimals: () => 6 };
                    };
                    USDT: {
                        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: "0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                fees?: ChainFees<undefined>;
                formatters?: undefined;
                id: 43114;
                name: "Avalanche";
                nativeCurrency: { decimals: 18; name: "Avalanche"; symbol: "AVAX" };
                rpcUrls: {
                    default: { http: readonly ["https://api.avax.network/ext/bc/C/rpc"] };
                };
                serializers?: ChainSerializers<
                    undefined,
                    TransactionSerializable<bigint, number>,
                >;
                sourceId?: number;
                testnet?: boolean;
            }
            | {
                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[];
                experimental_preconfirmationTime?: number;
                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: "BASE";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.basescan.org/api";
                        name: "Basescan";
                        url: "https://basescan.org";
                    };
                };
                blockTime: 2000;
                contracts: {
                    disputeGameFactory: {
                        "1": { address: "0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e" };
                    };
                    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: "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42";
                        read: { decimals: () => 6 };
                    };
                    gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                    l1Block: { address: "0x4200000000000000000000000000000000000015" };
                    l1StandardBridge: {
                        "1": {
                            address: "0x3154Cf16ccdb4C6d922629664174b904d80F2C35";
                            blockCreated: 17482143;
                        };
                    };
                    l2CrossDomainMessenger: {
                        address: "0x4200000000000000000000000000000000000007";
                    };
                    l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                    l2OutputOracle: {
                        "1": { address: "0x56315b90c40730925ec5485cf004d835058518A0" };
                    };
                    l2StandardBridge: {
                        address: "0x4200000000000000000000000000000000000010";
                    };
                    l2ToL1MessagePasser: {
                        address: "0x4200000000000000000000000000000000000016";
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 5022;
                    };
                    portal: {
                        "1": {
                            address: "0x49048044D57e1C92A77f79988d21Fa8fAF74E97e";
                            blockCreated: 17482143;
                        };
                    };
                    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: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a";
                    };
                    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: "0x2626664c2603336E57B271c5C0b26F421741e481";
                    };
                    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: "0x33128a8fC17869897dcE68Ed026d694621f6FDfD";
                    };
                    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: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                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: 8453;
                name: "Base";
                nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://mainnet.base.org"] } };
                serializers: {
                    transaction: (
                        transaction: OpStackTransactionSerializable,
                        signature?: Signature,
                    ) =>
                        | `0x02${string}`
                        | `0x01${string}`
                        | `0x03${string}`
                        | `0x04${string}`
                        | TransactionSerializedLegacy
                        | `0x7e${string}`;
                };
                sourceId: 1;
                testnet?: boolean;
            }
            | {
                blockchainId: "ETH-SEPOLIA";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api-sepolia.etherscan.io/api";
                        name: "Etherscan";
                        url: "https://sepolia.etherscan.io";
                    };
                };
                blockTime?: number;
                contracts: {
                    ensUniversalResolver: {
                        address: "0xeeeeeeee14d718c2b47d9923deab1335e144eeee";
                        blockCreated: 8928790;
                    };
                    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[];
                experimental_preconfirmationTime?: number;
                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: "ETH";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.etherscan.io/api";
                        name: "Etherscan";
                        url: "https://etherscan.io";
                    };
                };
                blockTime: 12000;
                contracts: {
                    ensUniversalResolver: {
                        address: "0xeeeeeeee14d718c2b47d9923deab1335e144eeee";
                        blockCreated: 23085558;
                    };
                    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: "0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c";
                        read: { decimals: () => 6 };
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 14353601;
                    };
                    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: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e";
                    };
                    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: "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45";
                    };
                    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: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48";
                        read: { decimals: () => 6 };
                    };
                    USDT: {
                        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: "0xdac17f958d2ee523a2206206994597c13d831ec7";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                fees?: ChainFees<undefined>;
                formatters?: undefined;
                id: 1;
                name: "Ethereum";
                nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://eth.merkle.io"] } };
                serializers?: ChainSerializers<
                    undefined,
                    TransactionSerializable<bigint, number>,
                >;
                sourceId?: number;
                testnet?: boolean;
            }
            | {
                blockchainId: "MATIC";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.polygonscan.com/api";
                        name: "PolygonScan";
                        url: "https://polygonscan.com";
                    };
                };
                blockTime?: number;
                contracts: {
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 25770160;
                    };
                    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: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e";
                    };
                    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: "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45";
                    };
                    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: "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                fees?: ChainFees<undefined>;
                formatters?: undefined;
                id: 137;
                name: "Polygon";
                nativeCurrency: { decimals: 18; name: "POL"; symbol: "POL" };
                rpcUrls: { default: { http: readonly ["https://polygon-rpc.com"] } };
                serializers?: ChainSerializers<
                    undefined,
                    TransactionSerializable<bigint, number>,
                >;
                sourceId?: number;
                testnet?: boolean;
            }
            | {
                blockchainId: "OP-SEPOLIA";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://optimism-sepolia.blockscout.com/api";
                        name: "Blockscout";
                        url: "https://optimism-sepolia.blockscout.com";
                    };
                };
                blockTime: 2000;
                contracts: {
                    disputeGameFactory: {
                        "11155111": { address: "0x05F9613aDB30026FFd634f38e5C4dFd30a197Fa1" };
                    };
                    gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                    l1Block: { address: "0x4200000000000000000000000000000000000015" };
                    l1StandardBridge: {
                        "11155111": { address: "0xFBb0621E0B23b5478B630BD55a5f21f67730B0F1" };
                    };
                    l2CrossDomainMessenger: {
                        address: "0x4200000000000000000000000000000000000007";
                    };
                    l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                    l2OutputOracle: {
                        "11155111": { address: "0x90E9c4f8a994a250F6aEfd61CAFb4F2e895D458F" };
                    };
                    l2StandardBridge: {
                        address: "0x4200000000000000000000000000000000000010";
                    };
                    l2ToL1MessagePasser: {
                        address: "0x4200000000000000000000000000000000000016";
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 1620204;
                    };
                    portal: {
                        "11155111": { address: "0x16Fc5058F25648194471939df75CF27A2fdC48BC" };
                    };
                    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: "0x5fd84259d66Cd46123540766Be93DFE6D43130D7";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                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: 11155420;
                name: "OP Sepolia";
                nativeCurrency: { decimals: 18; name: "Sepolia Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://sepolia.optimism.io"] } };
                serializers: {
                    transaction: (
                        transaction: OpStackTransactionSerializable,
                        signature?: Signature,
                    ) =>
                        | `0x02${string}`
                        | `0x01${string}`
                        | `0x03${string}`
                        | `0x04${string}`
                        | TransactionSerializedLegacy
                        | `0x7e${string}`;
                };
                sourceId: 11155111;
                testnet: true;
            }
            | {
                blockchainId: "OP";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api-optimistic.etherscan.io/api";
                        name: "Optimism Explorer";
                        url: "https://optimistic.etherscan.io";
                    };
                };
                blockTime: 2000;
                contracts: {
                    disputeGameFactory: {
                        "1": { address: "0xe5965Ab5962eDc7477C8520243A95517CD252fA9" };
                    };
                    gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                    l1Block: { address: "0x4200000000000000000000000000000000000015" };
                    l1StandardBridge: {
                        "1": { address: "0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1" };
                    };
                    l2CrossDomainMessenger: {
                        address: "0x4200000000000000000000000000000000000007";
                    };
                    l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                    l2OutputOracle: {
                        "1": { address: "0xdfe97868233d1aa22e815a266982f2cf17685a27" };
                    };
                    l2StandardBridge: {
                        address: "0x4200000000000000000000000000000000000010";
                    };
                    l2ToL1MessagePasser: {
                        address: "0x4200000000000000000000000000000000000016";
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 4286263;
                    };
                    portal: {
                        "1": { address: "0xbEb5Fc579115071764c7423A4f12eDde41f106Ed" };
                    };
                    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: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e";
                    };
                    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: "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45";
                    };
                    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: "0x0b2c639c533813f4aa9d7837caf62653d097ff85";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                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: 10;
                name: "OP Mainnet";
                nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://mainnet.optimism.io"] } };
                serializers: {
                    transaction: (
                        transaction: OpStackTransactionSerializable,
                        signature?: Signature,
                    ) =>
                        | `0x02${string}`
                        | `0x01${string}`
                        | `0x03${string}`
                        | `0x04${string}`
                        | TransactionSerializedLegacy
                        | `0x7e${string}`;
                };
                sourceId: 1;
                testnet?: boolean;
            }
            | {
                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[];
                experimental_preconfirmationTime?: number;
                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;
            }
            | {
                blockchainId: "UNI";
                blockchainVm: "EVM";
                blockExplorers: {
                    default: {
                        apiUrl: "https://api.uniscan.xyz/api";
                        name: "Uniscan";
                        url: "https://uniscan.xyz";
                    };
                };
                blockTime: 2000;
                contracts: {
                    disputeGameFactory: {
                        "1": { address: "0x2F12d621a16e2d3285929C9996f478508951dFe4" };
                    };
                    gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" };
                    l1Block: { address: "0x4200000000000000000000000000000000000015" };
                    l1StandardBridge: {
                        "1": { address: "0x81014F44b0a345033bB2b3B21C7a1A308B35fEeA" };
                    };
                    l2CrossDomainMessenger: {
                        address: "0x4200000000000000000000000000000000000007";
                    };
                    l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" };
                    l2StandardBridge: {
                        address: "0x4200000000000000000000000000000000000010";
                    };
                    l2ToL1MessagePasser: {
                        address: "0x4200000000000000000000000000000000000016";
                    };
                    multicall3: {
                        address: "0xca11bde05977b3631167028862be2a173976ca11";
                        blockCreated: 0;
                    };
                    portal: {
                        "1": { address: "0x0bd48f6B86a26D3a217d0Fa6FfE2B491B956A7a2" };
                    };
                    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: "0x385a5cf5f83e99f7bb2852b6a19c3538b9fa7658";
                    };
                    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: "0x73855d06de49d0fe4a9c42636ba96c62da12ff9c";
                    };
                    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: "0x1f98400000000000000000000000000000000003";
                    };
                    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: "0x078D782b760474a361dDA0AF3839290b0EF57AD6";
                        read: { decimals: () => 6 };
                    };
                };
                custom?: Record<string, unknown>;
                ensTlds?: readonly string[];
                experimental_preconfirmationTime?: number;
                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: 130;
                name: "Unichain";
                nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH" };
                rpcUrls: { default: { http: readonly ["https://mainnet.unichain.org/"] } };
                serializers: {
                    transaction: (
                        transaction: OpStackTransactionSerializable,
                        signature?: Signature,
                    ) =>
                        | `0x02${string}`
                        | `0x01${string}`
                        | `0x03${string}`
                        | `0x04${string}`
                        | TransactionSerializedLegacy
                        | `0x7e${string}`;
                };
                sourceId: 1;
                testnet?: boolean;
            }
      • chainId extends
            | 1
            | 10
            | 130
            | 137
            | 1301
            | 8453
            | 42161
            | 43114
            | 84532
            | 421614
            | 11155111
            | 11155420

      Parameters

      Returns Extract<chain, { id: chainId }>