Variable SUPPORTED_CHAINSConst
SUPPORTED_CHAINS: readonly [
{
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: "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: "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: "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;
},
] = ...