PANCAKE_V3_NON_FUNGIBLE_POSITION_TOKEN_ABI = [{"inputs": [
    {"internalType": "address", "name": "_deployer", "type": "address"},
    {"internalType": "address", "name": "_factory", "type": "address"},
    {"internalType": "address", "name": "_WETH9", "type": "address"},
    {"internalType": "address", "name": "_tokenDescriptor_", "type": "address"}], "stateMutability": "nonpayable",
                                               "type": "constructor"}, {"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"},
                                                  {"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": "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": "PERMIT_TYPEHASH",
                                               "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
                                               "stateMutability": "view", "type": "function"},
                                              {"inputs": [], "name": "WETH9",
                                               "outputs": [{"internalType": "address", "name": "", "type": "address"}],
                                               "stateMutability": "view", "type": "function"}, {"inputs": [
        {"internalType": "address", "name": "to", "type": "address"},
        {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "approve", "outputs": [],
                                                                                                "stateMutability": "nonpayable",
                                                                                                "type": "function"}, {
                                                  "inputs": [
                                                      {"internalType": "address", "name": "owner", "type": "address"}],
                                                  "name": "balanceOf", "outputs": [
            {"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"},
                                              {"inputs": [], "name": "baseURI",
                                               "outputs": [{"internalType": "string", "name": "", "type": "string"}],
                                               "stateMutability": "pure", "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": "uint24", "name": "fee", "type": "uint24"},
        {"internalType": "uint160", "name": "sqrtPriceX96", "type": "uint160"}],
                                                                        "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": "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": "deployer",
                                               "outputs": [{"internalType": "address", "name": "", "type": "address"}],
                                               "stateMutability": "view", "type": "function"},
                                              {"inputs": [], "name": "factory",
                                               "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": "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": [{"components": [
                                                      {"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": "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": "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": "uint256", "name": "amount0Owed",
                                                              "type": "uint256"},
                                                             {"internalType": "uint256", "name": "amount1Owed",
                                                              "type": "uint256"},
                                                             {"internalType": "bytes", "name": "data",
                                                              "type": "bytes"}], "name": "pancakeV3MintCallback",
                                                  "outputs": [], "stateMutability": "nonpayable", "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": [
        {"internalType": "uint256", "name": "tokenId", "type": "uint256"}], "name": "positions", "outputs": [
        {"internalType": "uint96", "name": "nonce", "type": "uint96"},
        {"internalType": "address", "name": "operator", "type": "address"},
        {"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": "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": "refundETH", "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": "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": [], "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": "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": "unwrapWETH9", "outputs": [],
                                                  "stateMutability": "payable", "type": "function"},
                                              {"stateMutability": "payable", "type": "receive"}]
