@cryptoalgebra/integral-periphery
Version:
Peripheral smart contracts of Algebra Integral protocol
1,589 lines • 127 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "NonfungiblePositionManager",
"sourceName": "contracts/NonfungiblePositionManager.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_factory",
"type": "address"
},
{
"internalType": "address",
"name": "_WNativeToken",
"type": "address"
},
{
"internalType": "address",
"name": "_tokenDescriptor_",
"type": "address"
},
{
"internalType": "address",
"name": "_poolDeployer",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "tickOutOfRange",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"name": "Collect",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"name": "DecreaseLiquidity",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "FarmingFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint128",
"name": "liquidityDesired",
"type": "uint128"
},
{
"indexed": false,
"internalType": "uint128",
"name": "actualLiquidity",
"type": "uint128"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "pool",
"type": "address"
}
],
"name": "IncreaseLiquidity",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "NONFUNGIBLE_POSITION_MANAGER_ADMINISTRATOR_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PERMIT_TYPEHASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WNativeToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount0Owed",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Owed",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "algebraMintCallback",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approve",
"type": "bool"
},
{
"internalType": "address",
"name": "farmingAddress",
"type": "address"
}
],
"name": "approveForFarming",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint128",
"name": "amount0Max",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "amount1Max",
"type": "uint128"
}
],
"internalType": "struct INonfungiblePositionManager.CollectParams",
"name": "params",
"type": "tuple"
}
],
"name": "collect",
"outputs": [
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"internalType": "address",
"name": "deployer",
"type": "address"
},
{
"internalType": "uint160",
"name": "sqrtPriceX96",
"type": "uint160"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "createAndInitializePoolIfNecessary",
"outputs": [
{
"internalType": "address",
"name": "pool",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"internalType": "uint256",
"name": "amount0Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "pluginData",
"type": "bytes"
}
],
"internalType": "struct INonfungiblePositionManager.DecreaseLiquidityParams",
"name": "params",
"type": "tuple"
}
],
"name": "decreaseLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "farmingApprovals",
"outputs": [
{
"internalType": "address",
"name": "farmingCenterAddress",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "farmingCenter",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount0Desired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Desired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount0Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "pluginData",
"type": "bytes"
}
],
"internalType": "struct INonfungiblePositionManager.IncreaseLiquidityParams",
"name": "params",
"type": "tuple"
}
],
"name": "increaseLiquidity",
"outputs": [
{
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "isApprovedOrOwner",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"internalType": "address",
"name": "deployer",
"type": "address"
},
{
"internalType": "int24",
"name": "tickLower",
"type": "int24"
},
{
"internalType": "int24",
"name": "tickUpper",
"type": "int24"
},
{
"internalType": "uint256",
"name": "amount0Desired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Desired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount0Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Min",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "pluginData",
"type": "bytes"
}
],
"internalType": "struct INonfungiblePositionManager.MintParams",
"name": "params",
"type": "tuple"
}
],
"name": "mint",
"outputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes[]",
"name": "data",
"type": "bytes[]"
}
],
"name": "multicall",
"outputs": [
{
"internalType": "bytes[]",
"name": "results",
"type": "bytes[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"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": "permit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "poolDeployer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "positions",
"outputs": [
{
"internalType": "uint88",
"name": "nonce",
"type": "uint88"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"internalType": "address",
"name": "deployer",
"type": "address"
},
{
"internalType": "int24",
"name": "tickLower",
"type": "int24"
},
{
"internalType": "int24",
"name": "tickUpper",
"type": "int24"
},
{
"internalType": "uint128",
"name": "liquidity",
"type": "uint128"
},
{
"internalType": "uint256",
"name": "feeGrowthInside0LastX128",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "feeGrowthInside1LastX128",
"type": "uint256"
},
{
"internalType": "uint128",
"name": "tokensOwed0",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "tokensOwed1",
"type": "uint128"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "refundNativeToken",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"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": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"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": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"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": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"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": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newFarmingCenter",
"type": "address"
}
],
"name": "setFarmingCenter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountMinimum",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "sweepToken",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "toActive",
"type": "bool"
}
],
"name": "switchFarmingStatus",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenFarmedIn",
"outputs": [
{
"internalType": "address",
"name": "farmingCenterAddress",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountMinimum",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "unwrapWNativeToken",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
},
{
"inputs": [],
"name": "alreadyInitialized",
"type": "error"
},
{
"inputs": [],
"name": "arithmeticError",
"type": "error"
},
{
"inputs": [],
"name": "bottomTickLowerThanMIN",
"type": "error"
},
{
"inputs": [],
"name": "dynamicFeeActive",
"type": "error"
},
{
"inputs": [],
"name": "dynamicFeeDisabled",
"type": "error"
},
{
"inputs": [],
"name": "flashInsufficientPaid0",
"type": "error"
},
{
"inputs": [],
"name": "flashInsufficientPaid1",
"type": "error"
},
{
"inputs": [],
"name": "incorrectPluginFee",
"type": "error"
},
{
"inputs": [],
"name": "insufficientInputAmount",
"type": "error"
},
{
"inputs": [],
"name": "invalidAmountRequired",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "expectedSelector",
"type": "bytes4"
}
],
"name": "invalidHookResponse",
"type": "error"
},
{
"inputs": [],
"name": "invalidLimitSqrtPrice",
"type": "error"
},
{
"inputs": [],
"name": "invalidNewCommunityFee",
"type": "error"
},
{
"inputs": [],
"name": "invalidNewTickSpacing",
"type": "error"
},
{
"inputs": [],
"name": "liquidityAdd",
"type": "error"
},
{
"inputs": [],
"name": "liquidityOverflow",
"type": "error"
},
{
"inputs": [],
"name": "liquiditySub",
"type": "error"
},
{
"inputs": [],
"name": "locked",
"type": "error"
},
{
"inputs": [],
"name": "notAllowed",
"type": "error"
},
{
"inputs": [],
"name": "notInitialized",
"type": "error"
},
{
"inputs": [],
"name": "pluginIsNotConnected",
"type": "error"
},
{
"inputs": [],
"name": "priceOutOfRange",
"type": "error"
},
{
"inputs": [],
"name": "tickInvalidLinks",
"type": "error"
},
{
"inputs": [],
"name": "tickIsNotInitialized",
"type": "error"
},
{
"inputs": [],
"name": "tickIsNotSpaced",
"type": "error"
},
{
"inputs": [],
"name": "tickOutOfRange",
"type": "error"
},
{
"inputs": [],
"name": "topTickAboveMAX",
"type": "error"
},
{
"inputs": [],
"name": "topTickLowerOrEqBottomTick",
"type": "error"
},
{
"inputs": [],
"name": "transferFailed",
"type": "error"
},
{
"inputs": [],
"name": "zeroAmountRequired",
"type": "error"
},
{
"inputs": [],
"name": "zeroLiquidityActual",
"type": "error"
},
{
"inputs": [],
"name": "zeroLiquidityDesired",
"type": "error"
}
],
"bytecode": "0x6101a06040527601000000000000000000000000000000000000000000016010553480156200002d57600080fd5b5060405162005c7f38038062005c7f8339810160408190526200005091620001bb565b8383826040518060400160405280601881526020017f416c676562726120506f736974696f6e73204e46542d5632000000000000000081525060405180604001604052806008815260200167414c47422d504f5360c01b815250604051806040016040528060018152602001601960f91b81525082828160009081620000d79190620002bd565b506001620000e68282620002bd565b50508351602080860191909120608081815284518584012060a08181524660e0819052604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901528082019690965260608601939093529284019290925230838301528051808403909201825260c09092019091528051910120905060c05250503061010052506001600160a01b039283166101205282166101405281166101605291909116610180525062000389915050565b80516001600160a01b0381168114620001b657600080fd5b919050565b60008060008060808587031215620001d257600080fd5b620001dd856200019e565b9350620001ed602086016200019e565b9250620001fd604086016200019e565b91506200020d606086016200019e565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200024357607f821691505b6020821081036200026457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002b857600081815260208120601f850160051c81016020861015620002935750805b601f850160051c820191505b81811015620002b4578281556001016200029f565b5050505b505050565b81516001600160401b03811115620002d957620002d962000218565b620002f181620002ea84546200022e565b846200026a565b602080601f831160018114620003295760008415620003105750858301515b600019600386901b1c1916600185901b178555620002b4565b600085815260208120601f198616915b828110156200035a5788860151825594840194600190910190840162000339565b5085821015620003795787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e05161010051610120516101405161016051610180516158386200044760003960006123330152600081816102210152818161062001528181611759015281816117e701528181613075015281816130bb015261314101526000818161042201528181610f3401528181612c0401526133760152600081816107490152818161114c0152611a2b01526000610df901526000610e2301526000610e4d01526000610ec601526000610e9e01526158386000f3fe6080604052600436106102115760003560e01c806301ffc9a71461028d57806306fdde03146102c2578063081812fc146102e4578063095ea7b31461031157806318160ddd14610331578063238f510e1461035057806323b872dd146103785780632d0b22de146103985780632f745c59146103ce57806330adf81f146103ee5780633119049a146104105780633644e515146104445780633dd657c514610459578063418652701461047957806342842e0e1461048157806342966c68146104a1578063430c2081146104b45780634659a494146104d45780634d10862d146104e75780634f6ccce714610507578063560482ce146105275780636352211e1461056257806369bc35b214610582578063702275151461059557806370a08231146105b557806372426eb1146105d55780637ac2ff7b146105e8578063832f630a146105fb5780638af3ac851461060e57806395d89b411461064257806399fbab8814610657578063a22cb4651461068f578063a4a78f0c146106af578063ac9650d8146106c2578063b227aa79146106e2578063b88d4fde14610704578063c2e3140a14610724578063c45a015514610737578063c87b56dd1461076b578063dd56e5d81461078b578063df2ab5bb146107ab578063dfb9239a146107be578063e7ce18a3146107e0578063e985e9c514610816578063f3995c6714610836578063fc6f78651461084957600080fd5b3661028857336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102865760405162461bcd60e51b815260206004820152601060248201526f2737ba102ba730ba34bb32aa37b5b2b760811b60448201526064015b60405180910390fd5b005b600080fd5b34801561029957600080fd5b506102ad6102a83660046146b5565b61085c565b60405190151581526020015b60405180910390f35b3480156102ce57600080fd5b506102d7610887565b6040516102b99190614722565b3480156102f057600080fd5b506103046102ff366004614735565b610919565b6040516102b9919061474e565b34801561031d57600080fd5b5061028661032c366004614782565b610947565b34801561033d57600080fd5b506008545b6040519081526020016102b9565b61036361035e3660046147ae565b610a5c565b604080519283526020830191909152016102b9565b34801561038457600080fd5b506102866103933660046147e8565b610d25565b3480156103a457600080fd5b506103046103b3366004614735565b600b602052600090815260409020546001600160a01b031681565b3480156103da57600080fd5b506103426103e9366004614782565b610d56565b3480156103fa57600080fd5b506103426000805160206157ec83398151915281565b34801561041c57600080fd5b506103047f000000000000000000000000000000000000000000000000000000000000000081565b34801561045057600080fd5b50610342610dec565b34801561046557600080fd5b50610286610474366004614871565b610f1f565b610286610fa1565b34801561048d57600080fd5b5061028661049c3660046147e8565b610fb3565b6102866104af366004614735565b610fce565b3480156104c057600080fd5b506102ad6104cf366004614782565b611072565b6102866104e23660046148d2565b61108e565b3480156104f357600080fd5b5061028661050236600461492e565b611123565b34801561051357600080fd5b50610342610522366004614735565b6111ea565b61053a61053536600461494b565b61127d565b604080519485526001600160801b0390931660208501529183015260608201526080016102b9565b34801561056e57600080fd5b5061030461057d366004614735565b61171e565b610286610590366004614993565b611752565b3480156105a157600080fd5b506102866105b03660046149d1565b611855565b3480156105c157600080fd5b506103426105d036600461492e565b611970565b6103046105e33660046149f6565b6119f6565b6102866105f63660046148d2565b611c22565b610286610609366004614a83565b611f54565b34801561061a57600080fd5b506103047f000000000000000000000000000000000000000000000000000000000000000081565b34801561064e57600080fd5b506102d7611fb5565b34801561066357600080fd5b50610677610672366004614735565b611fc4565b6040516102b99c9b9a99989796959493929190614ac5565b34801561069b57600080fd5b506102866106aa366004614b57565b612164565b6102866106bd3660046148d2565b612173565b6106d56106d0366004614b85565b61219b565b6040516102b99190614bf9565b3480156106ee57600080fd5b506103426000805160206157ac83398151915281565b34801561071057600080fd5b5061028661071f366004614d45565b6122bb565b6102866107323660046148d2565b6122f3565b34801561074357600080fd5b506103047f000000000000000000000000000000000000000000000000000000000000000081565b34801561077757600080fd5b506102d7610786366004614735565b612311565b34801561079757600080fd5b50600a54610304906001600160a01b031681565b6102866107b9366004614db0565b6123af565b6107d16107cc366004614de7565b612412565b6040516102b993929190614e21565b3480156107ec57600080fd5b506103046107fb366004614735565b600c602052600090815260409020546001600160a01b031681565b34801561082257600080fd5b506102ad610831366004614e42565b612690565b6102866108443660046148d2565b6126be565b610363610857366004614e70565b612715565b60006001600160e01b0319821663780e9d6360e01b1480610881575061088182612a34565b92915050565b60606000805461089690614e88565b80601f01602080910402602001604051908101604052809291908181526020018280546108c290614e88565b801561090f5780601f106108e45761010080835404028352916020019161090f565b820191906000526020600020905b8154815290600101906020018083116108f257829003601f168201915b5050505050905090565b600061092482612a84565b506000908152600f6020526040902054600160581b90046001600160a01b031690565b60006109528261171e565b9050806001600160a01b0316836001600160a01b0316036109bf5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161027d565b336001600160a01b03821614806109db57506109db8133612690565b610a4d5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161027d565b610a578383612aac565b505050565b6000808235610a6a81612b26565b8360800135610a7881612b6b565b6000610a8a6040870160208801614ed1565b6001600160801b031611610a9d57600080fd5b84356000908152600f6020908152604091829020600181015490926001600160501b03821692600160501b8304600290810b93600160681b810490910b92600160801b9091046001600160801b031691610afb918c01908c01614ed1565b6001600160801b0316816001600160801b03161015610b1957600080fd5b6000610b2485612bb1565b9050610b9684848d6020016020810190610b3e9190614ed1565b8e8060a00190610b4e9190614eee565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506001600160a01b03881695949392915050612c29565b909a50985060408b01358a10801590610bb357508a606001358910155b610bcf5760405162461bcd60e51b815260040161027d90614f34565b600080610be0888430898989612cae565b91509150818c018860040160008282829054906101000a90046001600160801b03160192506101000a8154816001600160801b0302191690836001600160801b03160217905550808b018860040160108282829054906101000a90046001600160801b03160192506101000a8154816001600160801b0302191690836001600160801b031602179055508c6020016020810190610c7d9190614ed1565b6001890180546001600160801b039287038316600160801b02921691909117905550508a357f26f6a048ee9138f2c0ce266f322cb99228e8d619ae2bff30c67f8dcf9d2377b4610cd360408e0160208f01614ed1565b8c8c604051610ce493929190614e21565b60405180910390a2610d188b35610d0160408e0160208f01614ed1565b6001600160801b0316610d1390614f78565b612d28565b5050505050505050915091565b610d2f3382612e52565b610d4b5760405162461bcd60e51b815260040161027d90614f94565b610a57838383612eb1565b6000610d6183611970565b8210610dc35760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161027d565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610e4557507f000000000000000000000000000000000000000000000000000000000000000046145b15610e6f57507f000000000000000000000000000000000000000000000000000000000000000090565b610f17604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b90565b6000610f2d82840184614fe1565b9050610f5d7f00000000000000000000000000000000000000000000000000000000000000008260000151613010565b508415610f7c57610f7c81600001516020015182602001513388613073565b8315610f9a57610f9a81600001516040015182602001513387613073565b5050505050565b4715610fb157610fb133476131f0565b565b610a57838383604051806020016040528060008152506122bb565b80610fd881612b26565b6000828152600f6020526040902060048101546001820154600160801b8083046001600160801b03908116938116919092049190911617171561101a57600080fd5b6000838152600f6020908152604080832080546001600160f81b0319168155600181018490556002810184905560038101849055600401839055600c909152902080546001600160a01b0319169055610a5783613293565b600061107d82612a84565b6110878383612e52565b9392505050565b6040516323f2ebc360e21b815233600482015230602482015260448101869052606481018590526001608482015260ff841660a482015260c4810183905260e481018290526001600160a01b03871690638fcbaf0c90610104015b600060405180830381600087803b15801561110357600080fd5b505af1158015611117573d6000803e3d6000fd5b50505050505050505050565b60405163e8ae2b6960e01b81526000805160206157ac83398151915260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e8ae2b6990604401602060405180830381865afa15801561119b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bf91906150bd565b6111c857600080fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006111f560085490565b82106112585760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161027d565b6008828154811061126b5761126b6150da565b90600052602060002001549050919050565b60008060008084610140013561129281612b6b565b6000806113ab6040518061016001604052808a60000160208101906112b7919061492e565b6001600160a01b031681526020018a60200160208101906112d8919061492e565b6001600160a01b031681526020016112f660608c0160408d0161492e565b6001600160a01b0316815230602082015260400161131a60808c0160608d016150ff565b60020b815260200161133260a08c0160808d016150ff565b60020b815260a0808c0135602083015260c08c0135604083015260e08c013560608301526101008c01356080830152016113706101608c018c614eee565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050915250613324565b9299509097509550925090506113fa6113cc6101408a016101208b0161492e565b601080546001600160b01b0319811660016001600160b01b0392831690810190921617909155985088613503565b6000806114333061141160808d0160608e016150ff565b61142160a08e0160808f016150ff565b6001600160a01b03881692919061360c565b5050925092505060006114b08560405180606001604052808e604001602081019061145e919061492e565b6001600160a01b031681526020018e600001602081019061147f919061492e565b6001600160a01b031681526020018e60200160208101906114a0919061492e565b6001600160a01b031690526136ab565b905060405180610140016040528060006001600160581b0316815260200160006001600160a01b03168152602001826001600160501b031681526020018c606001602081019061150091906150ff565b60020b815260200161151860a08e0160808f016150ff565b60020b81526020018a6001600160801b0316815260200184815260200183815260200160006001600160801b0316815260200160006001600160801b0316815250600f60008c815260200190815260200160002060008201518160000160006101000a8154816001600160581b0302191690836001600160581b03160217905550602082015181600001600b6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a8154816001600160501b0302191690836001600160501b03160217905550606082015181600101600a6101000a81548162ffffff021916908360020b62ffffff160217905550608082015181600101600d6101000a81548162ffffff021916908360020b62ffffff16021790555060a08201518160010160106101000a8154816001600160801b0302191690836001600160801b0316021790555060c0820151816002015560e082015181600301556101008201518160040160006101000a8154816001600160801b0302191690836001600160801b031602179055506101208201518160040160106101000a8154816001600160801b0302191690836001600160801b03160217905550905050896000805160206157cc833981519152858b8b8b8a60405161170995949392919061511c565b60405180910390a25050505050509193509193565b60008061172a83613783565b90506001600160a01b0381166108815760405162461bcd60e51b815260040161027d90615155565b600061177d7f000000000000000000000000000000000000000000000000000000000000000061379e565b9050828110156117cb5760405162461bcd60e51b815260206004820152601960248201527824b739bab33334b1b4b2b73a102ba730ba34bb32aa37b5b2b760391b604482015260640161027d565b8015610a5757604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561183357600080fd5b505af1158015611847573d6000803e3d6000fd5b50505050610a5782826131f0565b600a546001600160a01b0316338114600083156118d7576000858152600b60205260409020546001600160a01b038481169116146118d05760405162461bcd60e51b81526020600482015260186024820152774e6f7420617070726f76656420666f72206661726d696e6760401b604482015260640161027d565b50816118fc565b81806118f957506000858152600c60205260409020546001600160a01b031633145b91505b8161193e5760405162461bcd60e51b815260206004820152601260248201527127b7363c902330b936b4b733a1b2b73a32b960711b604482015260640161027d565b6000948552600c602052604090942080546001600160a01b0319166001600160a01b0390951694909417909355505050565b60006001600160a01b0382166119da5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161027d565b506001600160a01b031660009081526003602052604090205490565b6000856001600160a01b0316876001600160a01b031610611a295760405162461bcd60e51b815260040161027d90615187565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038616611ace5760405163d9a641e160e01b8152600160