[
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "tokenIn",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "tokenOut",
				"type": "address"
			},
			{
				"internalType": "uint24",
				"name": "fee",
				"type": "uint24"
			},
			{
				"internalType": "uint256",
				"name": "amountOut",
				"type": "uint256"
			},
			{
				"internalType": "uint160",
				"name": "sqrtPriceLimitX96",
				"type": "uint160"
			}
		],
		"name": "getAmountInV3",
		"outputs": [
			{
				"internalType": "uint256",
				"name": "amountIn",
				"type": "uint256"
			}
		],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "tokenIn",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "tokenOut",
				"type": "address"
			},
			{
				"internalType": "uint24",
				"name": "fee",
				"type": "uint24"
			},
			{
				"internalType": "uint256",
				"name": "amountIn",
				"type": "uint256"
			},
			{
				"internalType": "uint160",
				"name": "sqrtPriceLimitX96",
				"type": "uint160"
			}
		],
		"name": "getAmountOutV3",
		"outputs": [
			{
				"internalType": "uint256",
				"name": "amountOut",
				"type": "uint256"
			}
		],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "token",
				"type": "address"
			}
		],
		"name": "get_decimals",
		"outputs": [
			{
				"internalType": "uint8",
				"name": "",
				"type": "uint8"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "token",
				"type": "address"
			}
		],
		"name": "get_symbol",
		"outputs": [
			{
				"internalType": "string",
				"name": "",
				"type": "string"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "token",
				"type": "address"
			}
		],
		"name": "getDecimals",
		"outputs": [
			{
				"internalType": "uint8",
				"name": "",
				"type": "uint8"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "rounteAddr",
				"type": "address"
			}
		],
		"name": "getFactory",
		"outputs": [
			{
				"internalType": "address",
				"name": "factoryAdd",
				"type": "address"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address[]",
				"name": "factoryAddr",
				"type": "address[]"
			},
			{
				"internalType": "address",
				"name": "token0",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "token1",
				"type": "address"
			}
		],
		"name": "getPairAddS",
		"outputs": [
			{
				"internalType": "address[]",
				"name": "pairAdds",
				"type": "address[]"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "rounteAddr",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "token0",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "token1",
				"type": "address"
			},
			{
				"internalType": "bool",
				"name": "stable",
				"type": "bool"
			}
		],
		"name": "getPairAddV1",
		"outputs": [
			{
				"internalType": "address",
				"name": "",
				"type": "address"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "factoryAddr",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "token0",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "token1",
				"type": "address"
			}
		],
		"name": "getPairAddV2",
		"outputs": [
			{
				"internalType": "address",
				"name": "",
				"type": "address"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "dex",
				"type": "address"
			}
		],
		"name": "getPairBalance",
		"outputs": [
			{
				"internalType": "uint112",
				"name": "amount0",
				"type": "uint112"
			},
			{
				"internalType": "uint112",
				"name": "amount1",
				"type": "uint112"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "factoryAddr",
				"type": "address"
			},
			{
				"internalType": "uint256",
				"name": "id",
				"type": "uint256"
			}
		],
		"name": "getPairIdInfo",
		"outputs": [
			{
				"internalType": "address",
				"name": "",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "",
				"type": "address"
			},
			{
				"internalType": "string",
				"name": "",
				"type": "string"
			},
			{
				"internalType": "uint8",
				"name": "",
				"type": "uint8"
			},
			{
				"internalType": "uint256",
				"name": "",
				"type": "uint256"
			},
			{
				"internalType": "address",
				"name": "",
				"type": "address"
			},
			{
				"internalType": "string",
				"name": "",
				"type": "string"
			},
			{
				"internalType": "uint8",
				"name": "",
				"type": "uint8"
			},
			{
				"internalType": "uint256",
				"name": "",
				"type": "uint256"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "factoryAddr",
				"type": "address"
			},
			{
				"internalType": "uint256[]",
				"name": "id",
				"type": "uint256[]"
			}
		],
		"name": "getPairIdSInfo",
		"outputs": [
			{
				"internalType": "address[]",
				"name": "lp",
				"type": "address[]"
			},
			{
				"internalType": "address[]",
				"name": "token0",
				"type": "address[]"
			},
			{
				"internalType": "string[]",
				"name": "symbol0",
				"type": "string[]"
			},
			{
				"internalType": "uint8[]",
				"name": "decimals0",
				"type": "uint8[]"
			},
			{
				"internalType": "uint256[]",
				"name": "r0",
				"type": "uint256[]"
			},
			{
				"internalType": "address[]",
				"name": "token1",
				"type": "address[]"
			},
			{
				"internalType": "string[]",
				"name": "symbol1",
				"type": "string[]"
			},
			{
				"internalType": "uint8[]",
				"name": "decimals1",
				"type": "uint8[]"
			},
			{
				"internalType": "uint256[]",
				"name": "r1",
				"type": "uint256[]"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "pairAdd",
				"type": "address"
			}
		],
		"name": "getPairInfo",
		"outputs": [
			{
				"components": [
					{
						"internalType": "address",
						"name": "lp",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "token0",
						"type": "address"
					},
					{
						"internalType": "string",
						"name": "symbol0",
						"type": "string"
					},
					{
						"internalType": "uint8",
						"name": "decimals0",
						"type": "uint8"
					},
					{
						"internalType": "uint256",
						"name": "r0",
						"type": "uint256"
					},
					{
						"internalType": "address",
						"name": "token1",
						"type": "address"
					},
					{
						"internalType": "string",
						"name": "symbol1",
						"type": "string"
					},
					{
						"internalType": "uint8",
						"name": "decimals1",
						"type": "uint8"
					},
					{
						"internalType": "uint256",
						"name": "r1",
						"type": "uint256"
					},
					{
						"internalType": "uint24",
						"name": "fee",
						"type": "uint24"
					}
				],
				"internalType": "struct dexInfoTools.PairInfo",
				"name": "pairInfo",
				"type": "tuple"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "uint256",
				"name": "id",
				"type": "uint256"
			}
		],
		"name": "getPairInfoV3",
		"outputs": [
			{
				"components": [
					{
						"internalType": "address",
						"name": "lp",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "token0",
						"type": "address"
					},
					{
						"internalType": "string",
						"name": "symbol0",
						"type": "string"
					},
					{
						"internalType": "uint8",
						"name": "decimals0",
						"type": "uint8"
					},
					{
						"internalType": "uint256",
						"name": "r0",
						"type": "uint256"
					},
					{
						"internalType": "address",
						"name": "token1",
						"type": "address"
					},
					{
						"internalType": "string",
						"name": "symbol1",
						"type": "string"
					},
					{
						"internalType": "uint8",
						"name": "decimals1",
						"type": "uint8"
					},
					{
						"internalType": "uint256",
						"name": "r1",
						"type": "uint256"
					},
					{
						"internalType": "uint24",
						"name": "fee",
						"type": "uint24"
					}
				],
				"internalType": "struct dexInfoTools.PairInfo",
				"name": "pairInfo",
				"type": "tuple"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address[]",
				"name": "path",
				"type": "address[]"
			}
		],
		"name": "getPairSBalance",
		"outputs": [
			{
				"internalType": "uint112[]",
				"name": "amounts0",
				"type": "uint112[]"
			},
			{
				"internalType": "uint112[]",
				"name": "amounts1",
				"type": "uint112[]"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "tokenA",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "tokenB",
				"type": "address"
			},
			{
				"internalType": "uint24",
				"name": "fee",
				"type": "uint24"
			}
		],
		"name": "getPoolV3",
		"outputs": [
			{
				"internalType": "address",
				"name": "pool",
				"type": "address"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "token",
				"type": "address"
			}
		],
		"name": "getSymbol",
		"outputs": [
			{
				"internalType": "string",
				"name": "",
				"type": "string"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "rounteAddr",
				"type": "address"
			}
		],
		"name": "getTotalPair",
		"outputs": [
			{
				"internalType": "uint256",
				"name": "counts",
				"type": "uint256"
			}
		],
		"stateMutability": "view",
		"type": "function"
	}
]