export type Sanctum = {
    "address": "5ocnV1qiCgaQR8Jb8xWnVbApfaygJ8tNoZfgPwsgx9kx";
    "metadata": {
        "name": "s_controller";
        "version": "1.0.0";
        "spec": "0.1.0";
    };
    "instructions": [
        {
            "name": "sync_sol_value";
            "discriminator": [
                236,
                136,
                209,
                207,
                135,
                214,
                148,
                235
            ];
            "accounts": [
                {
                    "name": "lst_mint";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                },
                {
                    "name": "pool_reserves";
                }
            ];
            "args": [
                {
                    "name": "lst_index";
                    "type": "u32";
                }
            ];
        },
        {
            "name": "swap_exact_in";
            "discriminator": [
                104,
                104,
                131,
                86,
                161,
                189,
                180,
                216
            ];
            "accounts": [
                {
                    "name": "signer";
                    "signer": true;
                },
                {
                    "name": "src_lst_mint";
                },
                {
                    "name": "dst_lst_mint";
                },
                {
                    "name": "src_lst_acc";
                    "writable": true;
                },
                {
                    "name": "dst_lst_acc";
                    "writable": true;
                },
                {
                    "name": "protocol_fee_accumulator";
                    "writable": true;
                },
                {
                    "name": "src_lst_token_program";
                },
                {
                    "name": "dst_lst_token_program";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                },
                {
                    "name": "src_pool_reserves";
                    "writable": true;
                },
                {
                    "name": "dst_pool_reserves";
                    "writable": true;
                }
            ];
            "args": [
                {
                    "name": "src_lst_value_calc_accs";
                    "type": "u8";
                },
                {
                    "name": "dst_lst_value_calc_accs";
                    "type": "u8";
                },
                {
                    "name": "src_lst_index";
                    "type": "u32";
                },
                {
                    "name": "dst_lst_index";
                    "type": "u32";
                },
                {
                    "name": "min_amount_out";
                    "type": "u64";
                },
                {
                    "name": "amount";
                    "type": "u64";
                }
            ];
        },
        {
            "name": "swap_exact_out";
            "discriminator": [
                250,
                73,
                101,
                33,
                38,
                207,
                75,
                184
            ];
            "accounts": [
                {
                    "name": "signer";
                    "signer": true;
                },
                {
                    "name": "src_lst_mint";
                },
                {
                    "name": "dst_lst_mint";
                },
                {
                    "name": "src_lst_acc";
                    "writable": true;
                },
                {
                    "name": "dst_lst_acc";
                    "writable": true;
                },
                {
                    "name": "protocol_fee_accumulator";
                    "writable": true;
                },
                {
                    "name": "src_lst_token_program";
                },
                {
                    "name": "dst_lst_token_program";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                },
                {
                    "name": "src_pool_reserves";
                    "writable": true;
                },
                {
                    "name": "dst_pool_reserves";
                    "writable": true;
                }
            ];
            "args": [
                {
                    "name": "src_lst_value_calc_accs";
                    "type": "u8";
                },
                {
                    "name": "dst_lst_value_calc_accs";
                    "type": "u8";
                },
                {
                    "name": "src_lst_index";
                    "type": "u32";
                },
                {
                    "name": "dst_lst_index";
                    "type": "u32";
                },
                {
                    "name": "max_amount_in";
                    "type": "u64";
                },
                {
                    "name": "amount";
                    "type": "u64";
                }
            ];
        },
        {
            "name": "add_liquidity";
            "discriminator": [
                181,
                157,
                89,
                67,
                143,
                182,
                52,
                72
            ];
            "accounts": [
                {
                    "name": "signer";
                    "signer": true;
                },
                {
                    "name": "lst_mint";
                },
                {
                    "name": "src_lst_acc";
                    "writable": true;
                },
                {
                    "name": "dst_lp_acc";
                    "writable": true;
                },
                {
                    "name": "lp_token_mint";
                    "writable": true;
                },
                {
                    "name": "protocol_fee_accumulator";
                    "writable": true;
                },
                {
                    "name": "lst_token_program";
                },
                {
                    "name": "lp_token_program";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                },
                {
                    "name": "pool_reserves";
                    "writable": true;
                }
            ];
            "args": [
                {
                    "name": "lst_value_calc_accs";
                    "type": "u8";
                },
                {
                    "name": "lst_index";
                    "type": "u32";
                },
                {
                    "name": "lst_amount";
                    "type": "u64";
                },
                {
                    "name": "min_lp_out";
                    "type": "u64";
                }
            ];
        },
        {
            "name": "remove_liquidity";
            "discriminator": [
                80,
                85,
                209,
                72,
                24,
                206,
                177,
                108
            ];
            "accounts": [
                {
                    "name": "signer";
                    "signer": true;
                },
                {
                    "name": "lst_mint";
                },
                {
                    "name": "dst_lst_acc";
                    "writable": true;
                },
                {
                    "name": "src_lp_acc";
                    "writable": true;
                },
                {
                    "name": "lp_token_mint";
                    "writable": true;
                },
                {
                    "name": "protocol_fee_accumulator";
                    "writable": true;
                },
                {
                    "name": "lst_token_program";
                },
                {
                    "name": "lp_token_program";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                },
                {
                    "name": "pool_reserves";
                    "writable": true;
                }
            ];
            "args": [
                {
                    "name": "lst_value_calc_accs";
                    "type": "u8";
                },
                {
                    "name": "lst_index";
                    "type": "u32";
                },
                {
                    "name": "lp_token_amount";
                    "type": "u64";
                },
                {
                    "name": "min_lst_out";
                    "type": "u64";
                }
            ];
        },
        {
            "name": "disable_lst_input";
            "discriminator": [
                175,
                149,
                134,
                239,
                14,
                114,
                134,
                32
            ];
            "accounts": [
                {
                    "name": "admin";
                    "signer": true;
                },
                {
                    "name": "lst_mint";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                }
            ];
            "args": [
                {
                    "name": "index";
                    "type": "u32";
                }
            ];
        },
        {
            "name": "enable_lst_input";
            "discriminator": [
                171,
                155,
                70,
                60,
                234,
                149,
                220,
                21
            ];
            "accounts": [
                {
                    "name": "admin";
                    "signer": true;
                },
                {
                    "name": "lst_mint";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                }
            ];
            "args": [
                {
                    "name": "index";
                    "type": "u32";
                }
            ];
        },
        {
            "name": "add_lst";
            "discriminator": [
                224,
                231,
                28,
                164,
                108,
                30,
                89,
                120
            ];
            "accounts": [
                {
                    "name": "admin";
                    "signer": true;
                },
                {
                    "name": "payer";
                    "writable": true;
                    "signer": true;
                },
                {
                    "name": "lst_mint";
                },
                {
                    "name": "pool_reserves";
                    "writable": true;
                },
                {
                    "name": "protocol_fee_accumulator";
                    "writable": true;
                },
                {
                    "name": "protocol_fee_accumulator_auth";
                    "writable": true;
                },
                {
                    "name": "sol_value_calculator";
                },
                {
                    "name": "pool_state";
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                },
                {
                    "name": "associated_token_program";
                },
                {
                    "name": "system_program";
                },
                {
                    "name": "lst_token_program";
                }
            ];
            "args": [];
        },
        {
            "name": "remove_lst";
            "discriminator": [
                95,
                222,
                248,
                198,
                113,
                213,
                168,
                226
            ];
            "accounts": [
                {
                    "name": "admin";
                    "signer": true;
                },
                {
                    "name": "refund_rent_to";
                    "writable": true;
                },
                {
                    "name": "lst_mint";
                },
                {
                    "name": "pool_reserves";
                    "writable": true;
                },
                {
                    "name": "protocol_fee_accumulator";
                    "writable": true;
                },
                {
                    "name": "protocol_fee_accumulator_auth";
                    "writable": true;
                },
                {
                    "name": "pool_state";
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                },
                {
                    "name": "lst_token_program";
                }
            ];
            "args": [
                {
                    "name": "lst_index";
                    "type": "u32";
                }
            ];
        },
        {
            "name": "set_sol_value_calculator";
            "discriminator": [
                210,
                250,
                128,
                153,
                224,
                210,
                95,
                166
            ];
            "accounts": [
                {
                    "name": "admin";
                    "signer": true;
                },
                {
                    "name": "lst_mint";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "pool_reserves";
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                }
            ];
            "args": [
                {
                    "name": "lst_index";
                    "type": "u32";
                }
            ];
        },
        {
            "name": "set_admin";
            "discriminator": [
                251,
                163,
                0,
                52,
                91,
                194,
                187,
                92
            ];
            "accounts": [
                {
                    "name": "current_admin";
                    "signer": true;
                },
                {
                    "name": "new_admin";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                }
            ];
            "args": [];
        },
        {
            "name": "set_protocol_fee";
            "discriminator": [
                173,
                239,
                83,
                242,
                136,
                43,
                144,
                217
            ];
            "accounts": [
                {
                    "name": "admin";
                    "signer": true;
                },
                {
                    "name": "pool_state";
                    "writable": true;
                }
            ];
            "args": [
                {
                    "name": "new_trading_protocol_fee_bps";
                    "type": {
                        "option": "u16";
                    };
                },
                {
                    "name": "new_lp_protocol_fee_bps";
                    "type": {
                        "option": "u16";
                    };
                }
            ];
        },
        {
            "name": "set_protocol_fee_beneficiary";
            "discriminator": [
                244,
                245,
                85,
                116,
                190,
                55,
                59,
                88
            ];
            "accounts": [
                {
                    "name": "current_beneficiary";
                    "signer": true;
                },
                {
                    "name": "new_beneficiary";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                }
            ];
            "args": [];
        },
        {
            "name": "set_pricing_program";
            "discriminator": [
                173,
                186,
                55,
                142,
                40,
                28,
                135,
                220
            ];
            "accounts": [
                {
                    "name": "admin";
                    "signer": true;
                },
                {
                    "name": "new_pricing_program";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                }
            ];
            "args": [];
        },
        {
            "name": "withdraw_protocol_fees";
            "discriminator": [
                11,
                68,
                165,
                98,
                18,
                208,
                134,
                73
            ];
            "accounts": [
                {
                    "name": "protocol_fee_beneficiary";
                    "signer": true;
                },
                {
                    "name": "withdraw_to";
                    "writable": true;
                },
                {
                    "name": "protocol_fee_accumulator";
                    "writable": true;
                },
                {
                    "name": "protocol_fee_accumulator_auth";
                    "writable": true;
                },
                {
                    "name": "token_program";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "lst_mint";
                }
            ];
            "args": [
                {
                    "name": "amount";
                    "type": "u64";
                }
            ];
        },
        {
            "name": "add_disable_pool_authority";
            "discriminator": [
                192,
                111,
                227,
                129,
                52,
                37,
                161,
                152
            ];
            "accounts": [
                {
                    "name": "payer";
                    "writable": true;
                    "signer": true;
                },
                {
                    "name": "admin";
                    "signer": true;
                },
                {
                    "name": "pool_state";
                },
                {
                    "name": "new_authority";
                },
                {
                    "name": "disable_pool_authority_list";
                    "writable": true;
                },
                {
                    "name": "system_program";
                }
            ];
            "args": [];
        },
        {
            "name": "remove_disable_pool_authority";
            "discriminator": [
                44,
                103,
                16,
                4,
                142,
                253,
                238,
                147
            ];
            "accounts": [
                {
                    "name": "refund_rent_to";
                    "writable": true;
                },
                {
                    "name": "signer";
                    "signer": true;
                },
                {
                    "name": "authority";
                },
                {
                    "name": "pool_state";
                },
                {
                    "name": "disable_pool_authority_list";
                    "writable": true;
                }
            ];
            "args": [
                {
                    "name": "index";
                    "type": "u32";
                }
            ];
        },
        {
            "name": "disable_pool";
            "discriminator": [
                248,
                118,
                211,
                160,
                149,
                150,
                135,
                37
            ];
            "accounts": [
                {
                    "name": "signer";
                    "signer": true;
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "disable_pool_authority_list";
                }
            ];
            "args": [];
        },
        {
            "name": "enable_pool";
            "discriminator": [
                120,
                47,
                0,
                69,
                84,
                74,
                16,
                177
            ];
            "accounts": [
                {
                    "name": "admin";
                    "signer": true;
                },
                {
                    "name": "pool_state";
                    "writable": true;
                }
            ];
            "args": [];
        },
        {
            "name": "start_rebalance";
            "discriminator": [
                61,
                251,
                146,
                164,
                48,
                29,
                208,
                170
            ];
            "accounts": [
                {
                    "name": "rebalance_authority";
                    "signer": true;
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                },
                {
                    "name": "rebalance_record";
                    "writable": true;
                },
                {
                    "name": "src_lst_mint";
                },
                {
                    "name": "dst_lst_mint";
                },
                {
                    "name": "src_pool_reserves";
                    "writable": true;
                },
                {
                    "name": "dst_pool_reserves";
                    "writable": true;
                },
                {
                    "name": "withdraw_to";
                    "writable": true;
                },
                {
                    "name": "instructions";
                },
                {
                    "name": "system_program";
                },
                {
                    "name": "src_lst_token_program";
                }
            ];
            "args": [
                {
                    "name": "src_lst_calc_accs";
                    "type": "u8";
                },
                {
                    "name": "src_lst_index";
                    "type": "u32";
                },
                {
                    "name": "dst_lst_index";
                    "type": "u32";
                },
                {
                    "name": "amount";
                    "type": "u64";
                },
                {
                    "name": "min_starting_src_lst";
                    "type": "u64";
                },
                {
                    "name": "max_starting_dst_lst";
                    "type": "u64";
                }
            ];
        },
        {
            "name": "end_rebalance";
            "discriminator": [
                25,
                48,
                248,
                51,
                168,
                104,
                93,
                202
            ];
            "accounts": [
                {
                    "name": "rebalance_authority";
                    "signer": true;
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "lst_state_list";
                    "writable": true;
                },
                {
                    "name": "rebalance_record";
                    "writable": true;
                },
                {
                    "name": "dst_lst_mint";
                },
                {
                    "name": "dst_pool_reserves";
                }
            ];
            "args": [];
        },
        {
            "name": "set_rebalance_authority";
            "discriminator": [
                12,
                123,
                123,
                99,
                86,
                243,
                135,
                41
            ];
            "accounts": [
                {
                    "name": "signer";
                    "signer": true;
                },
                {
                    "name": "new_rebalance_authority";
                },
                {
                    "name": "pool_state";
                    "writable": true;
                }
            ];
            "args": [];
        },
        {
            "name": "initialize";
            "discriminator": [
                175,
                175,
                109,
                31,
                13,
                152,
                155,
                237
            ];
            "accounts": [
                {
                    "name": "payer";
                    "writable": true;
                    "signer": true;
                },
                {
                    "name": "authority";
                    "signer": true;
                },
                {
                    "name": "pool_state";
                    "writable": true;
                },
                {
                    "name": "lp_token_mint";
                    "writable": true;
                },
                {
                    "name": "lp_token_program";
                },
                {
                    "name": "system_program";
                }
            ];
            "args": [];
        }
    ];
    "errors": [
        {
            "code": 0;
            "name": "InvalidPoolStateData";
            "msg": "Invalid pool state data";
        },
        {
            "code": 1;
            "name": "InvalidLstStateListData";
            "msg": "Invalid lst state data";
        },
        {
            "code": 2;
            "name": "InvalidDisablePoolAuthorityListData";
            "msg": "Invalid disable pool authority list data";
        },
        {
            "code": 3;
            "name": "InvalidRebalanceRecordData";
            "msg": "Invalid rebalance record data";
        },
        {
            "code": 4;
            "name": "MathError";
            "msg": "Math error";
        },
        {
            "code": 5;
            "name": "PoolRebalancing";
            "msg": "Pool is currently rebalancing";
        },
        {
            "code": 6;
            "name": "PoolDisabled";
            "msg": "Pool is currently disabled";
        },
        {
            "code": 7;
            "name": "PoolEnabled";
            "msg": "Pool is currently enabled ";
        },
        {
            "code": 8;
            "name": "InvalidLstIndex";
            "msg": "LST with given index does not exist";
        },
        {
            "code": 9;
            "name": "InvalidReserves";
            "msg": "Invalid LST reserves account";
        },
        {
            "code": 10;
            "name": "IncorrectSolValueCalculator";
            "msg": "Incorrect SOL value calculator program";
        },
        {
            "code": 11;
            "name": "FaultySolValueCalculator";
            "msg": "Faulty SOL value calculator program";
        },
        {
            "code": 12;
            "name": "IncorrectLstStateList";
            "msg": "Incorrect LST state list account";
        },
        {
            "code": 13;
            "name": "IncorrectPoolState";
            "msg": "Incorrect pool state account";
        },
        {
            "code": 14;
            "name": "LstInputDisabled";
            "msg": "Input is currently disabled for this LST";
        },
        {
            "code": 15;
            "name": "NoSucceedingEndRebalance";
            "msg": "No succeeding EndRebalance instruction found";
        },
        {
            "code": 16;
            "name": "IncorrectRebalanceRecord";
            "msg": "Incorrect rebalance record account";
        },
        {
            "code": 17;
            "name": "PoolNotRebalancing";
            "msg": "Pool is not currently rebalancing";
        },
        {
            "code": 18;
            "name": "PoolWouldLoseSolValue";
            "msg": "Cannot allow loss of SOL value for pool";
        },
        {
            "code": 19;
            "name": "LstStillHasValue";
            "msg": "Cannot remove LST when reserves or protocol fee accumulator not empty or SOL value not synced";
        },
        {
            "code": 20;
            "name": "IncorrectPricingProgram";
            "msg": "Incorrect pricing program";
        },
        {
            "code": 21;
            "name": "SlippageToleranceExceeded";
            "msg": "Action would exceed slippage tolerance";
        },
        {
            "code": 22;
            "name": "NotEnoughLiquidity";
            "msg": "Not enough liquidity to complete swap";
        },
        {
            "code": 23;
            "name": "IndexTooLarge";
            "msg": "Provided list index argument is too large";
        },
        {
            "code": 24;
            "name": "InvalidDisablePoolAuthorityIndex";
            "msg": "Disable Pool Authority with given index does not exist";
        },
        {
            "code": 25;
            "name": "UnauthorizedDisablePoolAuthoritySigner";
            "msg": "Signer is not authorized to operate on given disable pool authority";
        },
        {
            "code": 26;
            "name": "InvalidDisablePoolAuthority";
            "msg": "Given disable pool authority is not valid";
        },
        {
            "code": 27;
            "name": "UnauthorizedSetRebalanceAuthoritySigner";
            "msg": "Signer is not authorized to set rebalance authority";
        },
        {
            "code": 28;
            "name": "IncorrectDisablePoolAuthorityList";
            "msg": "Incorrect disable pool authority list account";
        },
        {
            "code": 29;
            "name": "FeeTooHigh";
            "msg": "Attempting to set a fee over 100%";
        },
        {
            "code": 30;
            "name": "NotEnoughFees";
            "msg": "Not enough fees to complete protocol fees withdrawal";
        },
        {
            "code": 31;
            "name": "ZeroValue";
            "msg": "Input or output value is zero. Size likely too small.";
        },
        {
            "code": 32;
            "name": "FaultyPricingProgram";
            "msg": "Faulty pricing program";
        },
        {
            "code": 33;
            "name": "IncorrectLpMintInitialization";
            "msg": "LP token mint must be an initialized Tokenkeg mint with 0 supply and mint authority = initial authority";
        },
        {
            "code": 34;
            "name": "DuplicateLst";
            "msg": "Cannot add a LST that's already part of the pool";
        },
        {
            "code": 35;
            "name": "SwapSameLst";
            "msg": "Cannot swap from a LST to the same LST";
        },
        {
            "code": 36;
            "name": "DuplicateDisablePoolAuthority";
            "msg": "Cannot add the same authority that has already been authorized";
        }
    ];
    "types": [
        {
            "name": "PoolState";
            "type": {
                "kind": "struct";
                "fields": [
                    {
                        "name": "total_sol_value";
                        "type": "u64";
                    },
                    {
                        "name": "trading_protocol_fee_bps";
                        "type": "u16";
                    },
                    {
                        "name": "lp_protocol_fee_bps";
                        "type": "u16";
                    },
                    {
                        "name": "version";
                        "type": "u8";
                    },
                    {
                        "name": "is_disabled";
                        "type": "u8";
                    },
                    {
                        "name": "is_rebalancing";
                        "type": "u8";
                    },
                    {
                        "name": "padding";
                        "type": {
                            "array": [
                                "u8",
                                1
                            ];
                        };
                    },
                    {
                        "name": "admin";
                        "type": "pubkey";
                    },
                    {
                        "name": "rebalance_authority";
                        "type": "pubkey";
                    },
                    {
                        "name": "protocol_fee_beneficiary";
                        "type": "pubkey";
                    },
                    {
                        "name": "pricing_program";
                        "type": "pubkey";
                    },
                    {
                        "name": "lp_token_mint";
                        "type": "pubkey";
                    }
                ];
            };
        },
        {
            "name": "LstState";
            "type": {
                "kind": "struct";
                "fields": [
                    {
                        "name": "is_input_disabled";
                        "type": "u8";
                    },
                    {
                        "name": "pool_reserves_bump";
                        "type": "u8";
                    },
                    {
                        "name": "protocol_fee_accumulator_bump";
                        "type": "u8";
                    },
                    {
                        "name": "padding";
                        "type": {
                            "array": [
                                "u8",
                                5
                            ];
                        };
                    },
                    {
                        "name": "sol_value";
                        "type": "u64";
                    },
                    {
                        "name": "mint";
                        "type": "pubkey";
                    },
                    {
                        "name": "sol_value_calculator";
                        "type": "pubkey";
                    }
                ];
            };
        },
        {
            "name": "RebalanceRecord";
            "type": {
                "kind": "struct";
                "fields": [
                    {
                        "name": "old_total_sol_value";
                        "type": "u64";
                    },
                    {
                        "name": "padding";
                        "type": {
                            "array": [
                                "u8",
                                4
                            ];
                        };
                    },
                    {
                        "name": "dst_lst_index";
                        "type": "u32";
                    }
                ];
            };
        }
    ];
};
