{
  "address": "FLipzZfErPUtDQPj9YrC6wp4nRRiVxRkFm3jdFmiPHJV",
  "metadata": {
    "name": "fair_mint_token",
    "version": "0.2.0",
    "spec": "0.1.0",
    "description": "Created with Anchor"
  },
  "instructions": [
    {
      "name": "burn_mint_token_vault",
      "discriminator": [
        255,
        254,
        39,
        14,
        229,
        37,
        89,
        240
      ],
      "accounts": [
        {
          "name": "mint",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "token_name"
              },
              {
                "kind": "arg",
                "path": "token_symbol"
              }
            ]
          }
        },
        {
          "name": "config_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "mint_token_vault",
          "writable": true
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "token_name",
          "type": "string"
        },
        {
          "name": "token_symbol",
          "type": "string"
        },
        {
          "name": "amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "close_token",
      "docs": [
        "Close token"
      ],
      "discriminator": [
        26,
        74,
        236,
        151,
        104,
        64,
        183,
        249
      ],
      "accounts": [
        {
          "name": "mint",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "token_name"
              },
              {
                "kind": "arg",
                "path": "token_symbol"
              }
            ]
          }
        },
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "token_vault",
          "writable": true
        },
        {
          "name": "wsol_vault",
          "writable": true
        },
        {
          "name": "mint_token_vault",
          "writable": true
        },
        {
          "name": "config_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        },
        {
          "name": "associated_token_program",
          "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
        },
        {
          "name": "rent",
          "address": "SysvarRent111111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "token_name",
          "type": "string"
        },
        {
          "name": "token_symbol",
          "type": "string"
        }
      ]
    },
    {
      "name": "delegate_value_manager",
      "docs": [
        "Delegate value manager"
      ],
      "discriminator": [
        65,
        71,
        81,
        199,
        83,
        64,
        181,
        167
      ],
      "accounts": [
        {
          "name": "admin",
          "writable": true,
          "signer": true
        },
        {
          "name": "mint",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "token_name"
              },
              {
                "kind": "arg",
                "path": "token_symbol"
              }
            ]
          }
        },
        {
          "name": "config_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "token_name",
          "type": "string"
        },
        {
          "name": "token_symbol",
          "type": "string"
        },
        {
          "name": "new_value_manager",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "initialize_launch_rule",
      "docs": [
        "Initialize launch rule"
      ],
      "discriminator": [
        61,
        250,
        188,
        110,
        91,
        75,
        249,
        62
      ],
      "accounts": [
        {
          "name": "admin",
          "writable": true,
          "signer": true
        },
        {
          "name": "launch_rule_data",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  108,
                  97,
                  117,
                  110,
                  99,
                  104,
                  95,
                  114,
                  117,
                  108,
                  101
                ]
              },
              {
                "kind": "account",
                "path": "admin"
              }
            ]
          }
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "start_slot",
          "type": "u64"
        },
        {
          "name": "slots_per_period",
          "type": "u64"
        },
        {
          "name": "base_launch_limit",
          "type": "u64"
        },
        {
          "name": "increasement_launch_limit",
          "type": "u64"
        },
        {
          "name": "max_period",
          "type": "u64"
        }
      ]
    },
    {
      "name": "initialize_system",
      "docs": [
        "Initialize system"
      ],
      "discriminator": [
        50,
        173,
        248,
        140,
        202,
        35,
        141,
        150
      ],
      "accounts": [
        {
          "name": "admin",
          "writable": true,
          "signer": true
        },
        {
          "name": "system_config_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  115,
                  121,
                  115,
                  116,
                  101,
                  109,
                  95,
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  118,
                  49,
                  46,
                  49
                ]
              },
              {
                "kind": "account",
                "path": "admin"
              }
            ]
          }
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": []
    },
    {
      "name": "initialize_token",
      "docs": [
        "Initialize token"
      ],
      "discriminator": [
        38,
        209,
        150,
        50,
        190,
        117,
        16,
        54
      ],
      "accounts": [
        {
          "name": "metadata",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  109,
                  101,
                  116,
                  97,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "token_metadata_program"
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ],
            "program": {
              "kind": "account",
              "path": "token_metadata_program"
            }
          }
        },
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "mint",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "metadata_params.name"
              },
              {
                "kind": "arg",
                "path": "metadata_params.symbol"
              }
            ]
          }
        },
        {
          "name": "config_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "launch_rule_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  108,
                  97,
                  117,
                  110,
                  99,
                  104,
                  95,
                  114,
                  117,
                  108,
                  101
                ]
              },
              {
                "kind": "account",
                "path": "system_config_account"
              }
            ]
          }
        },
        {
          "name": "mint_token_vault",
          "writable": true
        },
        {
          "name": "token_vault",
          "writable": true
        },
        {
          "name": "wsol_mint"
        },
        {
          "name": "wsol_vault",
          "writable": true
        },
        {
          "name": "system_config_account",
          "writable": true
        },
        {
          "name": "protocol_fee_account",
          "writable": true
        },
        {
          "name": "rent",
          "address": "SysvarRent111111111111111111111111111111111"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "token_metadata_program",
          "address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
        },
        {
          "name": "associated_token_program",
          "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
        }
      ],
      "args": [
        {
          "name": "metadata",
          "type": {
            "defined": {
              "name": "TokenMetadata"
            }
          }
        },
        {
          "name": "init_config_data",
          "type": {
            "defined": {
              "name": "InitializeTokenConfigData"
            }
          }
        }
      ]
    },
    {
      "name": "mint_tokens",
      "docs": [
        "Mint tokens"
      ],
      "discriminator": [
        59,
        132,
        24,
        246,
        122,
        39,
        8,
        243
      ],
      "accounts": [
        {
          "name": "mint",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "token_name"
              },
              {
                "kind": "arg",
                "path": "token_symbol"
              }
            ]
          }
        },
        {
          "name": "destination",
          "writable": true
        },
        {
          "name": "destination_wsol_ata",
          "writable": true
        },
        {
          "name": "refund_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  114,
                  101,
                  102,
                  117,
                  110,
                  100
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              },
              {
                "kind": "account",
                "path": "user"
              }
            ]
          }
        },
        {
          "name": "user",
          "writable": true,
          "signer": true
        },
        {
          "name": "config_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "system_config_account"
        },
        {
          "name": "mint_token_vault",
          "writable": true
        },
        {
          "name": "token_vault",
          "writable": true
        },
        {
          "name": "wsol_vault",
          "writable": true
        },
        {
          "name": "wsol_mint"
        },
        {
          "name": "referrer_ata"
        },
        {
          "name": "referrer_main",
          "writable": true
        },
        {
          "name": "referral_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  114,
                  101,
                  102,
                  101,
                  114,
                  114,
                  97,
                  108
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              },
              {
                "kind": "account",
                "path": "referrer_main"
              }
            ]
          }
        },
        {
          "name": "protocol_fee_account"
        },
        {
          "name": "protocol_wsol_vault",
          "writable": true
        },
        {
          "name": "pool_state",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  112,
                  111,
                  111,
                  108
                ]
              },
              {
                "kind": "account",
                "path": "amm_config"
              },
              {
                "kind": "account",
                "path": "token_0_mint"
              },
              {
                "kind": "account",
                "path": "token_1_mint"
              }
            ],
            "program": {
              "kind": "account",
              "path": "cp_swap_program"
            }
          }
        },
        {
          "name": "amm_config"
        },
        {
          "name": "cp_swap_program",
          "address": "CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"
        },
        {
          "name": "token_0_mint"
        },
        {
          "name": "token_1_mint"
        },
        {
          "name": "rent",
          "address": "SysvarRent111111111111111111111111111111111"
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        },
        {
          "name": "associated_token_program",
          "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
        }
      ],
      "args": [
        {
          "name": "token_name",
          "type": "string"
        },
        {
          "name": "token_symbol",
          "type": "string"
        },
        {
          "name": "code_hash",
          "type": "bytes"
        }
      ]
    },
    {
      "name": "proxy_burn_lp_tokens",
      "docs": [
        "Burn lp tokens"
      ],
      "discriminator": [
        215,
        41,
        48,
        70,
        81,
        221,
        246,
        105
      ],
      "accounts": [
        {
          "name": "admin",
          "writable": true,
          "signer": true
        },
        {
          "name": "mint",
          "docs": [
            "token mint"
          ],
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "token_name"
              },
              {
                "kind": "arg",
                "path": "token_symbol"
              }
            ]
          }
        },
        {
          "name": "config_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "owner_lp_token",
          "docs": [
            "Owner lp tokan account - config account"
          ],
          "writable": true
        },
        {
          "name": "lp_mint",
          "writable": true
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        }
      ],
      "args": [
        {
          "name": "token_name",
          "type": "string"
        },
        {
          "name": "token_symbol",
          "type": "string"
        },
        {
          "name": "amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "proxy_deposit",
      "docs": [
        "Initiazlize a swap pool (Deprated)",
        "deposit instruction"
      ],
      "discriminator": [
        99,
        49,
        91,
        137,
        172,
        25,
        207,
        21
      ],
      "accounts": [
        {
          "name": "cp_swap_program",
          "address": "CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"
        },
        {
          "name": "owner",
          "docs": [
            "Pays to mint the position"
          ],
          "writable": true,
          "signer": true
        },
        {
          "name": "mint",
          "docs": [
            "Token mint"
          ],
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "token_name"
              },
              {
                "kind": "arg",
                "path": "token_symbol"
              }
            ]
          }
        },
        {
          "name": "config_account",
          "docs": [
            "Config account"
          ],
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "authority",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116,
                  95,
                  97,
                  110,
                  100,
                  95,
                  108,
                  112,
                  95,
                  109,
                  105,
                  110,
                  116,
                  95,
                  97,
                  117,
                  116,
                  104,
                  95,
                  115,
                  101,
                  101,
                  100
                ]
              }
            ],
            "program": {
              "kind": "const",
              "value": [
                169,
                42,
                49,
                26,
                136,
                152,
                134,
                77,
                32,
                99,
                200,
                252,
                203,
                83,
                110,
                30,
                138,
                48,
                77,
                141,
                83,
                152,
                76,
                10,
                78,
                179,
                193,
                68,
                7,
                214,
                116,
                231
              ]
            }
          }
        },
        {
          "name": "pool_state",
          "docs": [
            "pool state"
          ],
          "writable": true
        },
        {
          "name": "owner_lp_token",
          "docs": [
            "Owner lp tokan account"
          ],
          "writable": true
        },
        {
          "name": "token_0_account",
          "docs": [
            "The payer's token account for token_0"
          ],
          "writable": true
        },
        {
          "name": "token_1_account",
          "docs": [
            "The payer's token account for token_1"
          ],
          "writable": true
        },
        {
          "name": "token_0_vault",
          "docs": [
            "The address that holds pool tokens for token_0"
          ],
          "writable": true
        },
        {
          "name": "token_1_vault",
          "docs": [
            "The address that holds pool tokens for token_1"
          ],
          "writable": true
        },
        {
          "name": "token_program",
          "docs": [
            "token Program"
          ],
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "token_program_2022",
          "docs": [
            "Token program 2022"
          ],
          "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
        },
        {
          "name": "vault_0_mint",
          "docs": [
            "The mint of token_0 vault"
          ]
        },
        {
          "name": "vault_1_mint",
          "docs": [
            "The mint of token_1 vault"
          ]
        },
        {
          "name": "lp_mint",
          "writable": true
        }
      ],
      "args": [
        {
          "name": "token_name",
          "type": "string"
        },
        {
          "name": "token_symbol",
          "type": "string"
        },
        {
          "name": "lp_token_amount",
          "type": "u64"
        },
        {
          "name": "maximum_token_0_amount",
          "type": "u64"
        },
        {
          "name": "maximum_token_1_amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "proxy_swap_base_in",
      "docs": [
        "swap_base_in instruction"
      ],
      "discriminator": [
        250,
        174,
        212,
        217,
        47,
        84,
        212,
        231
      ],
      "accounts": [
        {
          "name": "cp_swap_program",
          "address": "CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"
        },
        {
          "name": "payer",
          "docs": [
            "The user performing the swap"
          ],
          "writable": true,
          "signer": true
        },
        {
          "name": "mint",
          "docs": [
            "Token mint"
          ],
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "token_name"
              },
              {
                "kind": "arg",
                "path": "token_symbol"
              }
            ]
          }
        },
        {
          "name": "config_account",
          "docs": [
            "Config account"
          ],
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "authority",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116,
                  95,
                  97,
                  110,
                  100,
                  95,
                  108,
                  112,
                  95,
                  109,
                  105,
                  110,
                  116,
                  95,
                  97,
                  117,
                  116,
                  104,
                  95,
                  115,
                  101,
                  101,
                  100
                ]
              }
            ],
            "program": {
              "kind": "const",
              "value": [
                169,
                42,
                49,
                26,
                136,
                152,
                134,
                77,
                32,
                99,
                200,
                252,
                203,
                83,
                110,
                30,
                138,
                48,
                77,
                141,
                83,
                152,
                76,
                10,
                78,
                179,
                193,
                68,
                7,
                214,
                116,
                231
              ]
            }
          }
        },
        {
          "name": "amm_config",
          "docs": [
            "The factory state to read protocol fees"
          ]
        },
        {
          "name": "pool_state",
          "docs": [
            "pool state"
          ],
          "writable": true
        },
        {
          "name": "input_token_account",
          "docs": [
            "The user token account for input token"
          ],
          "writable": true
        },
        {
          "name": "output_token_account",
          "docs": [
            "The user token account for output token"
          ],
          "writable": true
        },
        {
          "name": "input_vault",
          "docs": [
            "The vault token account for input token"
          ],
          "writable": true
        },
        {
          "name": "output_vault",
          "docs": [
            "The vault token account for output token"
          ],
          "writable": true
        },
        {
          "name": "input_token_program",
          "docs": [
            "SPL program for input token transfers"
          ]
        },
        {
          "name": "output_token_program",
          "docs": [
            "SPL program for output token transfers"
          ]
        },
        {
          "name": "input_token_mint",
          "docs": [
            "The mint of input token"
          ]
        },
        {
          "name": "output_token_mint",
          "docs": [
            "The mint of output token"
          ]
        },
        {
          "name": "observation_state",
          "docs": [
            "The program account for the most recent oracle observation"
          ],
          "writable": true
        }
      ],
      "args": [
        {
          "name": "token_name",
          "type": "string"
        },
        {
          "name": "token_symbol",
          "type": "string"
        },
        {
          "name": "amount_in",
          "type": "u64"
        },
        {
          "name": "minimum_amount_out",
          "type": "u64"
        }
      ]
    },
    {
      "name": "proxy_swap_base_out",
      "docs": [
        "swap_base_out instruction"
      ],
      "discriminator": [
        194,
        15,
        252,
        249,
        72,
        54,
        250,
        85
      ],
      "accounts": [
        {
          "name": "cp_swap_program",
          "address": "CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"
        },
        {
          "name": "payer",
          "docs": [
            "The user performing the swap"
          ],
          "writable": true,
          "signer": true
        },
        {
          "name": "mint",
          "docs": [
            "Token mint"
          ],
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "token_name"
              },
              {
                "kind": "arg",
                "path": "token_symbol"
              }
            ]
          }
        },
        {
          "name": "config_account",
          "docs": [
            "Config account"
          ],
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "authority",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116,
                  95,
                  97,
                  110,
                  100,
                  95,
                  108,
                  112,
                  95,
                  109,
                  105,
                  110,
                  116,
                  95,
                  97,
                  117,
                  116,
                  104,
                  95,
                  115,
                  101,
                  101,
                  100
                ]
              }
            ],
            "program": {
              "kind": "const",
              "value": [
                169,
                42,
                49,
                26,
                136,
                152,
                134,
                77,
                32,
                99,
                200,
                252,
                203,
                83,
                110,
                30,
                138,
                48,
                77,
                141,
                83,
                152,
                76,
                10,
                78,
                179,
                193,
                68,
                7,
                214,
                116,
                231
              ]
            }
          }
        },
        {
          "name": "amm_config",
          "docs": [
            "The factory state to read protocol fees"
          ]
        },
        {
          "name": "pool_state",
          "docs": [
            "pool state"
          ],
          "writable": true
        },
        {
          "name": "input_token_account",
          "docs": [
            "The user token account for input token"
          ],
          "writable": true
        },
        {
          "name": "output_token_account",
          "docs": [
            "The user token account for output token"
          ],
          "writable": true
        },
        {
          "name": "input_vault",
          "docs": [
            "The vault token account for input token"
          ],
          "writable": true
        },
        {
          "name": "output_vault",
          "docs": [
            "The vault token account for output token"
          ],
          "writable": true
        },
        {
          "name": "input_token_program",
          "docs": [
            "SPL program for input token transfers"
          ]
        },
        {
          "name": "output_token_program",
          "docs": [
            "SPL program for output token transfers"
          ]
        },
        {
          "name": "input_token_mint",
          "docs": [
            "The mint of input token"
          ]
        },
        {
          "name": "output_token_mint",
          "docs": [
            "The mint of output token"
          ]
        },
        {
          "name": "observation_state",
          "docs": [
            "The program account for the most recent oracle observation"
          ],
          "writable": true
        }
      ],
      "args": [
        {
          "name": "token_name",
          "type": "string"
        },
        {
          "name": "token_symbol",
          "type": "string"
        },
        {
          "name": "max_amount_in",
          "type": "u64"
        },
        {
          "name": "amount_out",
          "type": "u64"
        }
      ]
    },
    {
      "name": "proxy_withdraw",
      "docs": [
        "withdraw instruction"
      ],
      "discriminator": [
        118,
        12,
        163,
        77,
        70,
        15,
        67,
        252
      ],
      "accounts": [
        {
          "name": "cp_swap_program",
          "address": "CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"
        },
        {
          "name": "owner",
          "docs": [
            "Pays to mint the position"
          ],
          "writable": true,
          "signer": true
        },
        {
          "name": "mint",
          "docs": [
            "Token mint"
          ],
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "token_name"
              },
              {
                "kind": "arg",
                "path": "token_symbol"
              }
            ]
          }
        },
        {
          "name": "config_account",
          "docs": [
            "Config account"
          ],
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "authority",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  118,
                  97,
                  117,
                  108,
                  116,
                  95,
                  97,
                  110,
                  100,
                  95,
                  108,
                  112,
                  95,
                  109,
                  105,
                  110,
                  116,
                  95,
                  97,
                  117,
                  116,
                  104,
                  95,
                  115,
                  101,
                  101,
                  100
                ]
              }
            ],
            "program": {
              "kind": "const",
              "value": [
                169,
                42,
                49,
                26,
                136,
                152,
                134,
                77,
                32,
                99,
                200,
                252,
                203,
                83,
                110,
                30,
                138,
                48,
                77,
                141,
                83,
                152,
                76,
                10,
                78,
                179,
                193,
                68,
                7,
                214,
                116,
                231
              ]
            }
          }
        },
        {
          "name": "pool_state",
          "docs": [
            "pool state"
          ],
          "writable": true
        },
        {
          "name": "owner_lp_token",
          "docs": [
            "Owner lp token account"
          ],
          "writable": true
        },
        {
          "name": "token_0_account",
          "docs": [
            "The owner's token account for receive token_0"
          ],
          "writable": true
        },
        {
          "name": "token_1_account",
          "docs": [
            "The owner's token account for receive token_1"
          ],
          "writable": true
        },
        {
          "name": "token_0_vault",
          "docs": [
            "The address that holds pool tokens for token_0"
          ],
          "writable": true
        },
        {
          "name": "token_1_vault",
          "docs": [
            "The address that holds pool tokens for token_1"
          ],
          "writable": true
        },
        {
          "name": "token_program",
          "docs": [
            "token Program"
          ],
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "token_program_2022",
          "docs": [
            "Token program 2022"
          ],
          "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
        },
        {
          "name": "vault_0_mint",
          "docs": [
            "The mint of token_0 vault"
          ]
        },
        {
          "name": "vault_1_mint",
          "docs": [
            "The mint of token_1 vault"
          ]
        },
        {
          "name": "lp_mint",
          "writable": true
        },
        {
          "name": "memo_program",
          "docs": [
            "memo program"
          ],
          "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"
        }
      ],
      "args": [
        {
          "name": "token_name",
          "type": "string"
        },
        {
          "name": "token_symbol",
          "type": "string"
        },
        {
          "name": "lp_token_amount",
          "type": "u64"
        },
        {
          "name": "minimum_token_0_amount",
          "type": "u64"
        },
        {
          "name": "minimum_token_1_amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "refund",
      "docs": [
        "Refund"
      ],
      "discriminator": [
        2,
        96,
        183,
        251,
        63,
        208,
        46,
        46
      ],
      "accounts": [
        {
          "name": "mint",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "token_name"
              },
              {
                "kind": "arg",
                "path": "token_symbol"
              }
            ]
          }
        },
        {
          "name": "refund_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  114,
                  101,
                  102,
                  117,
                  110,
                  100
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              },
              {
                "kind": "account",
                "path": "payer"
              }
            ]
          }
        },
        {
          "name": "config_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "token_ata",
          "writable": true
        },
        {
          "name": "token_vault",
          "writable": true
        },
        {
          "name": "protocol_fee_account",
          "docs": [
            "CHECK the protocol fee account"
          ],
          "writable": true
        },
        {
          "name": "system_config_account"
        },
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "wsol_vault",
          "writable": true
        },
        {
          "name": "payer_wsol_vault",
          "writable": true
        },
        {
          "name": "protocol_wsol_vault",
          "writable": true
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "token_name",
          "type": "string"
        },
        {
          "name": "token_symbol",
          "type": "string"
        }
      ]
    },
    {
      "name": "revoke_update_metadata_authority",
      "docs": [
        "Revoke update token2022 metadata authority"
      ],
      "discriminator": [
        16,
        230,
        0,
        225,
        47,
        138,
        113,
        90
      ],
      "accounts": [
        {
          "name": "mint",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "metadata_params.name"
              },
              {
                "kind": "arg",
                "path": "metadata_params.symbol"
              }
            ]
          }
        },
        {
          "name": "config_account",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "metadata",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  109,
                  101,
                  116,
                  97,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "token_metadata_program"
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ],
            "program": {
              "kind": "account",
              "path": "token_metadata_program"
            }
          }
        },
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "token_metadata_program",
          "address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "metadata",
          "type": {
            "defined": {
              "name": "TokenMetadata"
            }
          }
        }
      ]
    },
    {
      "name": "set_referrer_code",
      "docs": [
        "Set referrer code"
      ],
      "discriminator": [
        129,
        47,
        113,
        211,
        151,
        134,
        156,
        250
      ],
      "accounts": [
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "mint",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "token_name"
              },
              {
                "kind": "arg",
                "path": "token_symbol"
              }
            ]
          }
        },
        {
          "name": "referrer_ata",
          "writable": true
        },
        {
          "name": "referral_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  114,
                  101,
                  102,
                  101,
                  114,
                  114,
                  97,
                  108
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              },
              {
                "kind": "account",
                "path": "payer"
              }
            ]
          }
        },
        {
          "name": "config_account"
        },
        {
          "name": "system_config_account"
        },
        {
          "name": "code_account",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  100,
                  101,
                  95,
                  97,
                  99,
                  99,
                  111,
                  117,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "code_hash"
              }
            ]
          }
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "associated_token_program",
          "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
        }
      ],
      "args": [
        {
          "name": "token_name",
          "type": "string"
        },
        {
          "name": "token_symbol",
          "type": "string"
        },
        {
          "name": "code_hash",
          "type": "bytes"
        }
      ]
    },
    {
      "name": "update_system",
      "docs": [
        "Update system"
      ],
      "discriminator": [
        63,
        147,
        183,
        92,
        22,
        242,
        219,
        4
      ],
      "accounts": [
        {
          "name": "admin",
          "writable": true,
          "signer": true
        },
        {
          "name": "system_config_account",
          "writable": true
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "admin",
          "type": "pubkey"
        },
        {
          "name": "referral_usage_max_count",
          "type": "u32"
        },
        {
          "name": "protocol_fee_rate",
          "type": "u64"
        },
        {
          "name": "protocol_fee_account",
          "type": "pubkey"
        },
        {
          "name": "refund_fee_rate",
          "type": "u64"
        },
        {
          "name": "referrer_reset_interval_seconds",
          "type": "u64"
        },
        {
          "name": "update_metadata_fee",
          "type": "u64"
        },
        {
          "name": "customized_deploy_fee",
          "type": "u64"
        },
        {
          "name": "init_pool_wsol_amount",
          "type": "u64"
        },
        {
          "name": "graduate_fee_rate",
          "type": "u64"
        },
        {
          "name": "min_graduate_fee",
          "type": "u64"
        },
        {
          "name": "raydium_cpmm_create_fee",
          "type": "u64"
        },
        {
          "name": "transfer_fee_basis_points",
          "type": "u16"
        },
        {
          "name": "is_pause",
          "type": "bool"
        }
      ]
    },
    {
      "name": "update_token_metadata",
      "docs": [
        "Update token metadata"
      ],
      "discriminator": [
        243,
        6,
        8,
        23,
        126,
        181,
        251,
        158
      ],
      "accounts": [
        {
          "name": "mint",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  102,
                  97,
                  105,
                  114,
                  95,
                  109,
                  105,
                  110,
                  116
                ]
              },
              {
                "kind": "arg",
                "path": "metadata_params.name"
              },
              {
                "kind": "arg",
                "path": "metadata_params.symbol"
              }
            ]
          }
        },
        {
          "name": "config_account",
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  99,
                  111,
                  110,
                  102,
                  105,
                  103,
                  95,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ]
          }
        },
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "metadata",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  109,
                  101,
                  116,
                  97,
                  100,
                  97,
                  116,
                  97
                ]
              },
              {
                "kind": "account",
                "path": "token_metadata_program"
              },
              {
                "kind": "account",
                "path": "mint"
              }
            ],
            "program": {
              "kind": "account",
              "path": "token_metadata_program"
            }
          }
        },
        {
          "name": "system_config_account",
          "writable": true
        },
        {
          "name": "protocol_fee_account",
          "docs": [
            "CHECK the protocol fee account"
          ],
          "writable": true
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        },
        {
          "name": "token_program",
          "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
        },
        {
          "name": "token_metadata_program",
          "address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
        }
      ],
      "args": [
        {
          "name": "metadata",
          "type": {
            "defined": {
              "name": "TokenMetadata"
            }
          }
        }
      ]
    }
  ],
  "accounts": [
    {
      "name": "AmmConfig",
      "discriminator": [
        218,
        244,
        33,
        104,
        203,
        203,
        43,
        111
      ]
    },
    {
      "name": "CodeAccountData",
      "discriminator": [
        223,
        104,
        233,
        118,
        230,
        133,
        135,
        33
      ]
    },
    {
      "name": "LaunchRuleData",
      "discriminator": [
        219,
        140,
        239,
        85,
        135,
        107,
        8,
        102
      ]
    },
    {
      "name": "ObservationState",
      "discriminator": [
        122,
        174,
        197,
        53,
        129,
        9,
        165,
        132
      ]
    },
    {
      "name": "PoolState",
      "discriminator": [
        247,
        237,
        227,
        245,
        215,
        195,
        222,
        70
      ]
    },
    {
      "name": "SystemConfigData",
      "discriminator": [
        192,
        35,
        167,
        45,
        153,
        226,
        213,
        45
      ]
    },
    {
      "name": "TokenConfigData",
      "discriminator": [
        38,
        179,
        204,
        76,
        50,
        176,
        214,
        81
      ]
    },
    {
      "name": "TokenReferralData",
      "discriminator": [
        136,
        185,
        38,
        182,
        42,
        126,
        118,
        45
      ]
    },
    {
      "name": "TokenRefundData",
      "discriminator": [
        16,
        160,
        38,
        231,
        81,
        131,
        138,
        105
      ]
    }
  ],
  "events": [
    {
      "name": "CloseTokenEvent",
      "discriminator": [
        203,
        9,
        156,
        247,
        207,
        50,
        200,
        219
      ]
    },
    {
      "name": "InitializeTokenEvent",
      "discriminator": [
        108,
        41,
        10,
        194,
        65,
        120,
        212,
        118
      ]
    },
    {
      "name": "MintEvent",
      "discriminator": [
        197,
        144,
        146,
        149,
        66,
        164,
        95,
        16
      ]
    },
    {
      "name": "RefundEvent",
      "discriminator": [
        176,
        159,
        218,
        59,
        94,
        213,
        129,
        218
      ]
    },
    {
      "name": "SetRefererCodeEvent",
      "discriminator": [
        156,
        230,
        12,
        212,
        118,
        228,
        15,
        218
      ]
    },
    {
      "name": "UpdateTokenMetadataEvent",
      "discriminator": [
        203,
        161,
        251,
        30,
        78,
        127,
        196,
        227
      ]
    }
  ],
  "errors": [
    {
      "code": 6000,
      "name": "UnknowError",
      "msg": "Unknow error"
    },
    {
      "code": 6001,
      "name": "OnlyAdminAllowed",
      "msg": "Only admin allowed"
    },
    {
      "code": 6002,
      "name": "ExceedMaxSupply",
      "msg": "Exceed max supply"
    },
    {
      "code": 6003,
      "name": "NotEnoughSolToPayFee",
      "msg": "Not enough SOL to pay fee"
    },
    {
      "code": 6004,
      "name": "WrongReferrerATA",
      "msg": "Wrong referrer ATA address"
    },
    {
      "code": 6005,
      "name": "WrongReferrerOwner",
      "msg": "Wrong referrer owner"
    },
    {
      "code": 6006,
      "name": "ReferrerCodeResetFrozen",
      "msg": "Referrer code reset frozen"
    },
    {
      "code": 6007,
      "name": "ReferrerCodeExceedMaxUsage",
      "msg": "Referrer code exceed max usage"
    },
    {
      "code": 6008,
      "name": "WrongReferrerATAOwner",
      "msg": "Wrong referrer ATA owner"
    },
    {
      "code": 6009,
      "name": "WrongReferrerMainAddress",
      "msg": "Wrong referrer main address"
    },
    {
      "code": 6010,
      "name": "ReferrerAtaNotReady",
      "msg": "Referrer ATA is not ready"
    },
    {
      "code": 6011,
      "name": "ReferrerAtaBalanceNotEnough",
      "msg": "Referrer ATA's balance is not enough"
    },
    {
      "code": 6012,
      "name": "WrongTokenProgram",
      "msg": "Wrong token program"
    },
    {
      "code": 6013,
      "name": "TargetErasNotReached",
      "msg": "Target eras not reached"
    },
    {
      "code": 6014,
      "name": "WrongProtocolFeeAccount",
      "msg": "Wrong protocol fee account"
    },
    {
      "code": 6015,
      "name": "OnlyUserAccountAllowed",
      "msg": "Only user account allowed"
    },
    {
      "code": 6016,
      "name": "NotEnoughTokensToRefund",
      "msg": "Not enough tokens to refund"
    },
    {
      "code": 6017,
      "name": "RefundTokensIsZero",
      "msg": "Refund tokens is zero"
    },
    {
      "code": 6018,
      "name": "InvalidLiquidityTokensRatio",
      "msg": "Invalid liquidity tokens ratio, should be > 0 and <= 50"
    },
    {
      "code": 6019,
      "name": "InvalidReduceRatio",
      "msg": "Invalid reduce ratio, should be >= 50 and < 100"
    },
    {
      "code": 6020,
      "name": "InvalidEpochesPerEra",
      "msg": "Invalid epoches per era, should be > 0"
    },
    {
      "code": 6021,
      "name": "InvalidTargetSecondsPerEpoch",
      "msg": "Invalid target seconds per epoch, should be > 0"
    },
    {
      "code": 6022,
      "name": "InvalidTargetEras",
      "msg": "Invalid target eras, should be > 0"
    },
    {
      "code": 6023,
      "name": "InvalidInitialMintSize",
      "msg": "Invalid initial mint size, should be > 0"
    },
    {
      "code": 6024,
      "name": "InvalidInitialTargetMintSizePerEpoch",
      "msg": "Invalid initial target mint size per epoch, should be > 0"
    },
    {
      "code": 6025,
      "name": "InitialMintSizeOfEpochTooSmall",
      "msg": "Initial mint size of epoch too small, should be 10 * mint size per minting"
    },
    {
      "code": 6026,
      "name": "UserBalanceNotEnoughForRefund",
      "msg": "User token balance not enough for refund"
    },
    {
      "code": 6027,
      "name": "VaultBalanceNotEnoughForRefund",
      "msg": "Vault token balance not enough for refund"
    },
    {
      "code": 6028,
      "name": "OnlySystemAdminAllowed",
      "msg": "Only system admin allowed"
    },
    {
      "code": 6029,
      "name": "SystemAlreadyInitialized",
      "msg": "System already initialized"
    },
    {
      "code": 6030,
      "name": "WrongSystemConfigAccount",
      "msg": "Wrong system config account"
    },
    {
      "code": 6031,
      "name": "InvalidFeeAccount",
      "msg": "Invalid fee account"
    },
    {
      "code": 6032,
      "name": "InvalidTokenVault",
      "msg": "Invalid token vault"
    },
    {
      "code": 6033,
      "name": "InvalidWsolVault",
      "msg": "Invalid wsol vault"
    },
    {
      "code": 6034,
      "name": "InvalidWsolMint",
      "msg": "Invalid wsol mint"
    },
    {
      "code": 6035,
      "name": "InvalidTokenVaultOwner",
      "msg": "Invalid token vault owner"
    },
    {
      "code": 6036,
      "name": "MintNotStarted",
      "msg": "Mint has not started"
    },
    {
      "code": 6037,
      "name": "WrongReferrerCode",
      "msg": "Wrong referrer account"
    },
    {
      "code": 6038,
      "name": "WrongMintAddress",
      "msg": "Wrong mint address"
    },
    {
      "code": 6039,
      "name": "MintHasStarted",
      "msg": "Mint has started"
    },
    {
      "code": 6040,
      "name": "InvalidTokenMint",
      "msg": "Invalid token mint"
    },
    {
      "code": 6041,
      "name": "InvalidTokenOwner",
      "msg": "Invalid token owner"
    },
    {
      "code": 6042,
      "name": "NumericOverflow",
      "msg": "Numeric overflow"
    },
    {
      "code": 6043,
      "name": "InsufficientFunds",
      "msg": "Insufficient funds"
    },
    {
      "code": 6044,
      "name": "BurnOperationFailed",
      "msg": "Burn operation failed"
    },
    {
      "code": 6045,
      "name": "RefundInProgress",
      "msg": "Refund in progress"
    },
    {
      "code": 6046,
      "name": "DivideByZero",
      "msg": "Division by zero"
    },
    {
      "code": 6047,
      "name": "TransferFailed",
      "msg": "Transfer failed"
    },
    {
      "code": 6048,
      "name": "ReferrerMainAccountEmpty",
      "msg": "Referrer main account empty"
    },
    {
      "code": 6049,
      "name": "PayerMustSign",
      "msg": "Payer must sign"
    },
    {
      "code": 6050,
      "name": "InvalidPayerAccount",
      "msg": "Invalid payer account"
    },
    {
      "code": 6051,
      "name": "InvalidCodeHash",
      "msg": "Invalid code hash"
    },
    {
      "code": 6052,
      "name": "InvalidResetInterval",
      "msg": "Invalid reset interval"
    },
    {
      "code": 6053,
      "name": "TokenAlreadyInitialized",
      "msg": "Token already initialized"
    },
    {
      "code": 6054,
      "name": "InvalidTokenName",
      "msg": "Invalid token name"
    },
    {
      "code": 6055,
      "name": "InvalidTokenSymbol",
      "msg": "Invalid token symbol"
    },
    {
      "code": 6056,
      "name": "InvalidTokenUri",
      "msg": "Invalid token uri"
    },
    {
      "code": 6057,
      "name": "MetadataAlreadyInitialized",
      "msg": "Metadata already initialized"
    },
    {
      "code": 6058,
      "name": "InvalidProtocolFeeRate",
      "msg": "Invalid protocol fee rate, max 50000 which is 50%"
    },
    {
      "code": 6059,
      "name": "InvalidRefundFeeRate",
      "msg": "Invalid refund fee rate, max 50000 which is 50%"
    },
    {
      "code": 6060,
      "name": "MintInProgress",
      "msg": "Mint in progress"
    },
    {
      "code": 6061,
      "name": "SetReferrerCodeProcess",
      "msg": "Set referrer code processing"
    },
    {
      "code": 6062,
      "name": "PayerAmountTooLow",
      "msg": "Payer amount too low"
    },
    {
      "code": 6063,
      "name": "ConfigSupplyNotMatchMintSupply",
      "msg": "Config supply not match mint supply"
    },
    {
      "code": 6064,
      "name": "InsufficientBalanceForDeployment",
      "msg": "Insufficient balance for deployment"
    },
    {
      "code": 6065,
      "name": "SendInitializingFeeFailed",
      "msg": "Send initializing fee failed"
    },
    {
      "code": 6066,
      "name": "InvalidMintAccount",
      "msg": "Invalid mint account"
    },
    {
      "code": 6067,
      "name": "InvalidTokenProgram",
      "msg": "Invalid token program"
    },
    {
      "code": 6068,
      "name": "RefundOnlyAllowedInTargetEras",
      "msg": "Refund only allowed in target eras"
    },
    {
      "code": 6069,
      "name": "GraduateFrozenPeriodNotOver",
      "msg": "Graduate frozen period not over, need to wait 2 epochs after target era arrived!"
    },
    {
      "code": 6070,
      "name": "OnlyValueManagerAllowed",
      "msg": "Only value manager allowed"
    },
    {
      "code": 6071,
      "name": "InvalidValueManager",
      "msg": "Invalid value manager"
    },
    {
      "code": 6072,
      "name": "InvalidProtocolFeeAccount",
      "msg": "Invalid protocol fee account"
    },
    {
      "code": 6073,
      "name": "InvalidRemainingAccounts",
      "msg": "Invalid remaining accounts"
    },
    {
      "code": 6074,
      "name": "CreatorTokenNotEnoughForInitializePool",
      "msg": "Creator token not enough for initialize pool"
    },
    {
      "code": 6075,
      "name": "GraduateFeeIsNotEnough",
      "msg": "Graduate fee is not enough"
    },
    {
      "code": 6076,
      "name": "InvalidDestinationAta",
      "msg": "Invalid destination ata"
    },
    {
      "code": 6077,
      "name": "ProtocolWsolVaultIsIsEmpty",
      "msg": "Protocol wsol vault is is empty"
    },
    {
      "code": 6078,
      "name": "InvalidMillisecondsPerSlot",
      "msg": "Invalid milliseconds per slot"
    },
    {
      "code": 6079,
      "name": "SelfReferrerNotAllowed",
      "msg": "Self referrer not allowed"
    },
    {
      "code": 6080,
      "name": "WrongPoolToken",
      "msg": "Wrong pool token"
    },
    {
      "code": 6081,
      "name": "WrongTokenMintOrder",
      "msg": "Wrong token mint order"
    },
    {
      "code": 6082,
      "name": "InvalidMintTokenVaultOwner",
      "msg": "Invalid mint token vault owner"
    },
    {
      "code": 6083,
      "name": "UserBalanceNotEqualToRefund",
      "msg": "User balance not equal to refund"
    },
    {
      "code": 6084,
      "name": "VaultBalanceNotEqualToRefund",
      "msg": "Vault balance not equal to refund"
    },
    {
      "code": 6085,
      "name": "InsufficientMintTokenVaultBalance",
      "msg": "Insufficient mint token vault balance"
    },
    {
      "code": 6086,
      "name": "PoolAlreadyCreated",
      "msg": "Pool already created"
    },
    {
      "code": 6087,
      "name": "InvalidVaultBalance",
      "msg": "Vault balance not equal to refund"
    },
    {
      "code": 6088,
      "name": "InvalidMintTokenVault",
      "msg": "Invalid mint token vault"
    },
    {
      "code": 6089,
      "name": "LaunchTokenPaused",
      "msg": "Launch token paused"
    },
    {
      "code": 6090,
      "name": "LaunchRuleAlreadyInitialized",
      "msg": "Launch rule already initialized"
    },
    {
      "code": 6091,
      "name": "LaunchRuleLimited",
      "msg": "Launch rule limited"
    },
    {
      "code": 6092,
      "name": "TokenToPoolNotEnough",
      "msg": "Token to pool not enough"
    },
    {
      "code": 6093,
      "name": "LaunchRuleAdminNotMatch",
      "msg": "Launch rule admin not match"
    }
  ],
  "types": [
    {
      "name": "AmmConfig",
      "docs": [
        "Holds the current owner of the factory"
      ],
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "bump",
            "docs": [
              "Bump to identify PDA"
            ],
            "type": "u8"
          },
          {
            "name": "disable_create_pool",
            "docs": [
              "Status to control if new pool can be create"
            ],
            "type": "bool"
          },
          {
            "name": "index",
            "docs": [
              "Config index"
            ],
            "type": "u16"
          },
          {
            "name": "trade_fee_rate",
            "docs": [
              "The trade fee, denominated in hundredths of a bip (10^-6)"
            ],
            "type": "u64"
          },
          {
            "name": "protocol_fee_rate",
            "docs": [
              "The protocol fee"
            ],
            "type": "u64"
          },
          {
            "name": "fund_fee_rate",
            "docs": [
              "The fund fee, denominated in hundredths of a bip (10^-6)"
            ],
            "type": "u64"
          },
          {
            "name": "create_pool_fee",
            "docs": [
              "Fee for create a new pool"
            ],
            "type": "u64"
          },
          {
            "name": "protocol_owner",
            "docs": [
              "Address of the protocol fee owner"
            ],
            "type": "pubkey"
          },
          {
            "name": "fund_owner",
            "docs": [
              "Address of the fund fee owner"
            ],
            "type": "pubkey"
          },
          {
            "name": "padding",
            "docs": [
              "padding"
            ],
            "type": {
              "array": [
                "u64",
                16
              ]
            }
          }
        ]
      }
    },
    {
      "name": "CloseTokenEvent",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "config_account",
            "type": "pubkey"
          },
          {
            "name": "token_vault",
            "type": "pubkey"
          }
        ]
      }
    },
    {
      "name": "CodeAccountData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "referral_account",
            "type": "pubkey"
          }
        ]
      }
    },
    {
      "name": "InitializeTokenConfigData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "target_eras",
            "type": "u32"
          },
          {
            "name": "epoches_per_era",
            "type": "u64"
          },
          {
            "name": "target_seconds_per_epoch",
            "type": "u64"
          },
          {
            "name": "reduce_ratio",
            "type": "f64"
          },
          {
            "name": "initial_mint_size",
            "type": "u64"
          },
          {
            "name": "initial_target_mint_size_per_epoch",
            "type": "u64"
          },
          {
            "name": "fee_rate",
            "type": "u64"
          },
          {
            "name": "liquidity_tokens_ratio",
            "type": "f64"
          },
          {
            "name": "start_timestamp",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "InitializeTokenEvent",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "metadata",
            "type": {
              "defined": {
                "name": "TokenMetadata"
              }
            }
          },
          {
            "name": "init_config_data",
            "type": {
              "defined": {
                "name": "InitializeTokenConfigData"
              }
            }
          },
          {
            "name": "admin",
            "type": "pubkey"
          },
          {
            "name": "token_id",
            "type": "u64"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "config_account",
            "type": "pubkey"
          },
          {
            "name": "metadata_account",
            "type": "pubkey"
          },
          {
            "name": "timestamp",
            "type": "u64"
          },
          {
            "name": "token_vault",
            "type": "pubkey"
          },
          {
            "name": "mint_state_data",
            "type": {
              "defined": {
                "name": "TokenMintState"
              }
            }
          },
          {
            "name": "value_manager",
            "type": "pubkey"
          },
          {
            "name": "wsol_vault",
            "type": "pubkey"
          }
        ]
      }
    },
    {
      "name": "LaunchRuleData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "admin",
            "type": "pubkey"
          },
          {
            "name": "start_slot",
            "type": "u64"
          },
          {
            "name": "slots_per_period",
            "type": "u64"
          },
          {
            "name": "base_launch_limit",
            "type": "u64"
          },
          {
            "name": "increasement_launch_limit",
            "type": "u64"
          },
          {
            "name": "max_period",
            "type": "u64"
          },
          {
            "name": "last_period",
            "type": "u64"
          },
          {
            "name": "current_launches_in_period",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "MintEvent",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "sender",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "config_account",
            "type": "pubkey"
          },
          {
            "name": "token_vault",
            "type": "pubkey"
          },
          {
            "name": "referral_account",
            "type": "pubkey"
          },
          {
            "name": "referrer_main",
            "type": "pubkey"
          },
          {
            "name": "referrer_ata",
            "type": "pubkey"
          },
          {
            "name": "refund_account",
            "type": "pubkey"
          },
          {
            "name": "timestamp",
            "type": "u64"
          },
          {
            "name": "mint_state_data",
            "type": {
              "defined": {
                "name": "TokenMintState"
              }
            }
          },
          {
            "name": "mint_fee",
            "type": "u64"
          },
          {
            "name": "referrer_fee",
            "type": "u64"
          },
          {
            "name": "wsol_vault",
            "type": "pubkey"
          }
        ]
      }
    },
    {
      "name": "Observation",
      "docs": [
        "The element of observations in ObservationState"
      ],
      "serialization": "bytemuckunsafe",
      "repr": {
        "kind": "c",
        "packed": true
      },
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "block_timestamp",
            "docs": [
              "The block timestamp of the observation"
            ],
            "type": "u64"
          },
          {
            "name": "cumulative_token_0_price_x32",
            "docs": [
              "the cumulative of token0 price during the duration time, Q32.32, the remaining 64 bit for overflow"
            ],
            "type": "u128"
          },
          {
            "name": "cumulative_token_1_price_x32",
            "docs": [
              "the cumulative of token1 price during the duration time, Q32.32, the remaining 64 bit for overflow"
            ],
            "type": "u128"
          }
        ]
      }
    },
    {
      "name": "ObservationState",
      "serialization": "bytemuckunsafe",
      "repr": {
        "kind": "c",
        "packed": true
      },
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "initialized",
            "docs": [
              "Whether the ObservationState is initialized"
            ],
            "type": "bool"
          },
          {
            "name": "observation_index",
            "docs": [
              "the most-recently updated index of the observations array"
            ],
            "type": "u16"
          },
          {
            "name": "pool_id",
            "type": "pubkey"
          },
          {
            "name": "observations",
            "docs": [
              "observation array"
            ],
            "type": {
              "array": [
                {
                  "defined": {
                    "name": "Observation"
                  }
                },
                100
              ]
            }
          },
          {
            "name": "padding",
            "docs": [
              "padding for feature update"
            ],
            "type": {
              "array": [
                "u64",
                4
              ]
            }
          }
        ]
      }
    },
    {
      "name": "PoolState",
      "serialization": "bytemuckunsafe",
      "repr": {
        "kind": "c",
        "packed": true
      },
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "amm_config",
            "docs": [
              "Which config the pool belongs"
            ],
            "type": "pubkey"
          },
          {
            "name": "pool_creator",
            "docs": [
              "pool creator"
            ],
            "type": "pubkey"
          },
          {
            "name": "token_0_vault",
            "docs": [
              "Token A"
            ],
            "type": "pubkey"
          },
          {
            "name": "token_1_vault",
            "docs": [
              "Token B"
            ],
            "type": "pubkey"
          },
          {
            "name": "lp_mint",
            "docs": [
              "Pool tokens are issued when A or B tokens are deposited.",
              "Pool tokens can be withdrawn back to the original A or B token."
            ],
            "type": "pubkey"
          },
          {
            "name": "token_0_mint",
            "docs": [
              "Mint information for token A"
            ],
            "type": "pubkey"
          },
          {
            "name": "token_1_mint",
            "docs": [
              "Mint information for token B"
            ],
            "type": "pubkey"
          },
          {
            "name": "token_0_program",
            "docs": [
              "token_0 program"
            ],
            "type": "pubkey"
          },
          {
            "name": "token_1_program",
            "docs": [
              "token_1 program"
            ],
            "type": "pubkey"
          },
          {
            "name": "observation_key",
            "docs": [
              "observation account to store oracle data"
            ],
            "type": "pubkey"
          },
          {
            "name": "auth_bump",
            "type": "u8"
          },
          {
            "name": "status",
            "docs": [
              "Bitwise representation of the state of the pool",
              "bit0, 1: disable deposit(vaule is 1), 0: normal",
              "bit1, 1: disable withdraw(vaule is 2), 0: normal",
              "bit2, 1: disable swap(vaule is 4), 0: normal"
            ],
            "type": "u8"
          },
          {
            "name": "lp_mint_decimals",
            "type": "u8"
          },
          {
            "name": "mint_0_decimals",
            "docs": [
              "mint0 and mint1 decimals"
            ],
            "type": "u8"
          },
          {
            "name": "mint_1_decimals",
            "type": "u8"
          },
          {
            "name": "lp_supply",
            "docs": [
              "lp mint supply"
            ],
            "type": "u64"
          },
          {
            "name": "protocol_fees_token_0",
            "docs": [
              "The amounts of token_0 and token_1 that are owed to the liquidity provider."
            ],
            "type": "u64"
          },
          {
            "name": "protocol_fees_token_1",
            "type": "u64"
          },
          {
            "name": "fund_fees_token_0",
            "type": "u64"
          },
          {
            "name": "fund_fees_token_1",
            "type": "u64"
          },
          {
            "name": "open_time",
            "docs": [
              "The timestamp allowed for swap in the pool."
            ],
            "type": "u64"
          },
          {
            "name": "padding",
            "docs": [
              "padding for future updates"
            ],
            "type": {
              "array": [
                "u64",
                32
              ]
            }
          }
        ]
      }
    },
    {
      "name": "RefundEvent",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "sender",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "refund_account",
            "type": "pubkey"
          },
          {
            "name": "config_account",
            "type": "pubkey"
          },
          {
            "name": "token_vault",
            "type": "pubkey"
          },
          {
            "name": "token_ata",
            "type": "pubkey"
          },
          {
            "name": "timestamp",
            "type": "u64"
          },
          {
            "name": "supply",
            "type": "u64"
          },
          {
            "name": "total_tokens",
            "type": "u64"
          },
          {
            "name": "total_mint_fee",
            "type": "u64"
          },
          {
            "name": "refund_fee",
            "type": "u64"
          },
          {
            "name": "refund_amount_including_fee",
            "type": "u64"
          },
          {
            "name": "burn_amount_from_vault",
            "type": "u64"
          },
          {
            "name": "burn_amount_from_user",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "SetRefererCodeEvent",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "referral_account",
            "type": "pubkey"
          },
          {
            "name": "referrer_ata",
            "type": "pubkey"
          },
          {
            "name": "payer",
            "type": "pubkey"
          },
          {
            "name": "code_hash",
            "type": "pubkey"
          },
          {
            "name": "active_timestamp",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "SystemConfigData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "admin",
            "type": "pubkey"
          },
          {
            "name": "count",
            "type": "u64"
          },
          {
            "name": "referral_usage_max_count",
            "type": "u32"
          },
          {
            "name": "protocol_fee_rate",
            "type": "f64"
          },
          {
            "name": "protocol_fee_account",
            "type": "pubkey"
          },
          {
            "name": "refund_fee_rate",
            "type": "f64"
          },
          {
            "name": "referrer_reset_interval_seconds",
            "type": "u64"
          },
          {
            "name": "update_metadata_fee",
            "type": "u64"
          },
          {
            "name": "customized_deploy_fee",
            "type": "u64"
          },
          {
            "name": "init_pool_wsol_amount",
            "type": "u64"
          },
          {
            "name": "graduate_fee_rate",
            "type": "u64"
          },
          {
            "name": "min_graduate_fee",
            "type": "u64"
          },
          {
            "name": "raydium_cpmm_create_fee",
            "type": "u64"
          },
          {
            "name": "transfer_fee_basis_points",
            "type": "u16"
          },
          {
            "name": "is_pause",
            "type": "bool"
          }
        ]
      }
    },
    {
      "name": "TokenConfigData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "target_eras",
            "type": "u32"
          },
          {
            "name": "mint_state_data",
            "type": {
              "defined": {
                "name": "TokenMintState"
              }
            }
          },
          {
            "name": "admin",
            "type": "pubkey"
          },
          {
            "name": "token_id",
            "type": "u64"
          },
          {
            "name": "fee_rate",
            "type": "u64"
          },
          {
            "name": "max_supply",
            "type": "u64"
          },
          {
            "name": "epoches_per_era",
            "type": "u64"
          },
          {
            "name": "target_seconds_per_epoch",
            "type": "u64"
          },
          {
            "name": "reduce_ratio",
            "type": "f64"
          },
          {
            "name": "initial_mint_size",
            "type": "u64"
          },
          {
            "name": "initial_target_mint_size_per_epoch",
            "type": "u64"
          },
          {
            "name": "liquidity_tokens_ratio",
            "type": "f64"
          },
          {
            "name": "token_vault",
            "type": "pubkey"
          },
          {
            "name": "wsol_vault",
            "type": "pubkey"
          },
          {
            "name": "mint_token_vault",
            "type": "pubkey"
          },
          {
            "name": "start_timestamp",
            "type": "u64"
          },
          {
            "name": "is_processing",
            "type": "bool"
          },
          {
            "name": "value_manager",
            "type": "pubkey"
          }
        ]
      }
    },
    {
      "name": "TokenMetadata",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "symbol",
            "type": "string"
          },
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "uri",
            "type": "string"
          }
        ]
      }
    },
    {
      "name": "TokenMintState",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "supply",
            "type": "u64"
          },
          {
            "name": "current_era",
            "type": "u32"
          },
          {
            "name": "current_epoch",
            "type": "u64"
          },
          {
            "name": "elapsed_seconds_epoch",
            "type": "u64"
          },
          {
            "name": "start_timestamp_epoch",
            "type": "u64"
          },
          {
            "name": "last_difficulty_coefficient_epoch",
            "type": "f64"
          },
          {
            "name": "difficulty_coefficient_epoch",
            "type": "f64"
          },
          {
            "name": "mint_size_epoch",
            "type": "u64"
          },
          {
            "name": "quantity_minted_epoch",
            "type": "u64"
          },
          {
            "name": "target_mint_size_epoch",
            "type": "u64"
          },
          {
            "name": "total_mint_fee",
            "type": "u64"
          },
          {
            "name": "total_referrer_fee",
            "type": "u64"
          },
          {
            "name": "total_tokens",
            "type": "u64"
          },
          {
            "name": "graduate_epoch",
            "type": "u32"
          }
        ]
      }
    },
    {
      "name": "TokenReferralData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "referrer_main",
            "type": "pubkey"
          },
          {
            "name": "referrer_ata",
            "type": "pubkey"
          },
          {
            "name": "usage_count",
            "type": "u32"
          },
          {
            "name": "code_hash",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "active_timestamp",
            "type": "u64"
          },
          {
            "name": "is_processing",
            "type": "bool"
          }
        ]
      }
    },
    {
      "name": "TokenRefundData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "owner",
            "type": "pubkey"
          },
          {
            "name": "total_tokens",
            "type": "u64"
          },
          {
            "name": "total_mint_fee",
            "type": "u64"
          },
          {
            "name": "total_referrer_fee",
            "type": "u64"
          },
          {
            "name": "is_processing",
            "type": "bool"
          },
          {
            "name": "vault_tokens",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "UpdateTokenMetadataEvent",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "metadata",
            "type": {
              "defined": {
                "name": "TokenMetadata"
              }
            }
          },
          {
            "name": "admin",
            "type": "pubkey"
          },
          {
            "name": "mint",
            "type": "pubkey"
          },
          {
            "name": "config_account",
            "type": "pubkey"
          },
          {
            "name": "metadata_account",
            "type": "pubkey"
          },
          {
            "name": "timestamp",
            "type": "u64"
          }
        ]
      }
    }
  ]
}