{
    "version": "0.1.0",
    "name": "yvaults",
    "instructions": [
        {
            "name": "initializeStrategy",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": false,
                    "isSigner": false,
                    "docs": [
                        "Program owner also checked."
                    ]
                },
                {
                    "name": "tokenAMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenBMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMintAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "scopePriceId",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "scopeProgramId",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "strategyType",
                    "type": "u64"
                },
                {
                    "name": "tokenACollateralId",
                    "type": "u64"
                },
                {
                    "name": "tokenBCollateralId",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "initializeKaminoReward",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rewardMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rewardVault",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "kaminoRewardIndex",
                    "type": "u64"
                },
                {
                    "name": "collateralToken",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "addKaminoRewards",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rewardMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rewardVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rewardAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "kaminoRewardIndex",
                    "type": "u64"
                },
                {
                    "name": "amount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "initializeGlobalConfig",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "initializeCollateralInfo",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collInfo",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "updateCollateralInfo",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": true,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "index",
                    "type": "u64"
                },
                {
                    "name": "mode",
                    "type": "u64"
                },
                {
                    "name": "value",
                    "type": {
                        "array": [
                            "u8",
                            32
                        ]
                    }
                }
            ]
        },
        {
            "name": "initializeSharesMetadata",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "sharesMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "sharesMetadata",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMintAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "metadataProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "name",
                    "type": "string"
                },
                {
                    "name": "symbol",
                    "type": "string"
                },
                {
                    "name": "uri",
                    "type": "string"
                }
            ]
        },
        {
            "name": "updateSharesMetadata",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "sharesMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "sharesMetadata",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMintAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "metadataProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "name",
                    "type": "string"
                },
                {
                    "name": "symbol",
                    "type": "string"
                },
                {
                    "name": "uri",
                    "type": "string"
                }
            ]
        },
        {
            "name": "updateGlobalConfig",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "key",
                    "type": "u16"
                },
                {
                    "name": "index",
                    "type": "u16"
                },
                {
                    "name": "value",
                    "type": {
                        "array": [
                            "u8",
                            32
                        ]
                    }
                }
            ]
        },
        {
            "name": "updateTreasuryFeeVault",
            "accounts": [
                {
                    "name": "signer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "feeMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeVaultAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "collateralId",
                    "type": "u16"
                }
            ]
        },
        {
            "name": "updateStrategyConfig",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "newAccount",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "mode",
                    "type": "u16"
                },
                {
                    "name": "value",
                    "type": {
                        "array": [
                            "u8",
                            128
                        ]
                    }
                }
            ]
        },
        {
            "name": "updateRewardMapping",
            "accounts": [
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rewardMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rewardVault",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "rewardIndex",
                    "type": "u8"
                },
                {
                    "name": "collateralToken",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "openLiquidityPosition",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayLower",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayUpper",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "position",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "positionMint",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "positionMetadataAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "positionTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "system",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "associatedTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "oldTickArrayLowerOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "oldTickArrayUpperOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "oldPositionOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "oldPositionMintOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "oldPositionTokenAccountOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultA",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultB",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "tickLowerIndex",
                    "type": "i64"
                },
                {
                    "name": "tickUpperIndex",
                    "type": "i64"
                },
                {
                    "name": "bump",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "closeStrategy",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "oldPositionOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "oldPositionMintOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "oldPositionTokenAccountOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userTokenAAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userTokenBAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reward0Vault",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "reward1Vault",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "reward2Vault",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "kaminoReward0Vault",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "kaminoReward1Vault",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "kaminoReward2Vault",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "userReward0Ata",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "userReward1Ata",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "userReward2Ata",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "userKaminoReward0Ata",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "userKaminoReward1Ata",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "userKaminoReward2Ata",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "system",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "deposit",
            "accounts": [
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "position",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenBMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "userSharesAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMintAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "tokenMaxA",
                    "type": "u64"
                },
                {
                    "name": "tokenMaxB",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "invest",
            "accounts": [
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "position",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "raydiumProtocolPositionOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "positionTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultA",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultB",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayLower",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayUpper",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "depositAndInvest",
            "accounts": [
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "check that the pool is owned either by orca or by raydium"
                    ]
                },
                {
                    "name": "position",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "raydiumProtocolPositionOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "positionTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultA",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultB",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayLower",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayUpper",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSharesAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMintAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "tokenMaxA",
                    "type": "u64"
                },
                {
                    "name": "tokenMaxB",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "withdraw",
            "accounts": [
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "position",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "raydiumProtocolPositionOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayLower",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayUpper",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultA",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultB",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSharesAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeTokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeTokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "positionTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "sharesAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "executiveWithdraw",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "position",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "raydiumProtocolPositionOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "positionTokenAccount",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tickArrayLower",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayUpper",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultA",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultB",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "action",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "collectFeesAndRewards",
            "accounts": [
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayLower",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayUpper",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "position",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "raydiumProtocolPositionOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "positionTokenAccount",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultA",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultB",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeTokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeTokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeVaultAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reward0Vault",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "reward1Vault",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "reward2Vault",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "poolRewardVault0",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "poolRewardVault1",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "poolRewardVault2",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "If rewards are uninitialized, pass this as strategy."
                    ]
                },
                {
                    "name": "tokenAMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenBMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "swapRewards",
            "accounts": [
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rewardVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeTokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeTokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeVaultAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenBMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "userTokenAAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userTokenBAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userRewardTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "tokenAIn",
                    "type": "u64"
                },
                {
                    "name": "tokenBIn",
                    "type": "u64"
                },
                {
                    "name": "rewardIndex",
                    "type": "u64"
                },
                {
                    "name": "rewardCollateralId",
                    "type": "u64"
                },
                {
                    "name": "minCollateralTokenOut",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "swapUnevenVaults",
            "accounts": [
                {
                    "name": "actionsAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "position",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "raydiumPoolConfigOrBaseVaultAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultA",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultB",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArray0",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "Payer must send this correctly."
                    ]
                },
                {
                    "name": "tickArray1",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "Payer must send this correctly."
                    ]
                },
                {
                    "name": "tickArray2",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "Payer must send this correctly."
                    ]
                },
                {
                    "name": "oracle",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "targetLimitBps",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "checkExpectedVaultsBalances",
            "accounts": [
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "tokenAAta",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenBAta",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "tokenAAtaBalance",
                    "type": "u64"
                },
                {
                    "name": "tokenBAtaBalance",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "singleTokenDepositAndInvestWithMin",
            "accounts": [
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "check that the pool is owned either by orca or by raydium"
                    ]
                },
                {
                    "name": "position",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "raydiumProtocolPositionOrBaseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "positionTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultA",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultB",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayLower",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArrayUpper",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSharesAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMintAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "tokenAMinPostDepositBalance",
                    "type": "u64"
                },
                {
                    "name": "tokenBMinPostDepositBalance",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "singleTokenDepositWithMin",
            "accounts": [
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "position",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenBMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "userSharesAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sharesMintAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "tokenAMinPostDepositBalance",
                    "type": "u64"
                },
                {
                    "name": "tokenBMinPostDepositBalance",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "flashSwapUnevenVaultsStart",
            "docs": [
                "Start of a Flash swap uneven vaults.",
                "",
                "This needs to be the first instruction of the transaction or preceded only by a",
                "ComputeBudget.",
                "",
                "This ix has to be paired with a `flash_swap_uneven_vaults_end` (`FlashSwapUnevenVaultsEnd`)",
                "as the last instruction of the transaction. No other instruction targeted the program is",
                "allowed.",
                "The instructions between the start and end instructions are expected to perform the swap."
            ],
            "accounts": [
                {
                    "name": "swapper",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "position",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "amount",
                    "type": "u64"
                },
                {
                    "name": "aToB",
                    "type": "bool"
                }
            ]
        },
        {
            "name": "flashSwapUnevenVaultsEnd",
            "docs": [
                "End of Flash swap uneven vaults.",
                "",
                "See [`flash_swap_uneven_vaults_start`] for details.",
                "",
                "Warning: This instruction is allowed to be used independently from",
                "`FlashSwapUnevenVaultsStart` and shall not perform any operation",
                "that can be exploited when used alone."
            ],
            "accounts": [
                {
                    "name": "swapper",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "position",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "minRepayAmount",
                    "type": "u64"
                },
                {
                    "name": "amountToLeaveToUser",
                    "type": "u64"
                },
                {
                    "name": "aToB",
                    "type": "bool"
                }
            ]
        },
        {
            "name": "emergencySwap",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenBVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "pool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "position",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultA",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolTokenVaultB",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tickArray0",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "Payer must send this correctly."
                    ]
                },
                {
                    "name": "tickArray1",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "Payer must send this correctly."
                    ]
                },
                {
                    "name": "tickArray2",
                    "isMut": true,
                    "isSigner": false,
                    "docs": [
                        "Payer must send this correctly."
                    ]
                },
                {
                    "name": "oracle",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenInfos",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "aToB",
                    "type": "bool"
                },
                {
                    "name": "targetLimitBps",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "withdrawFromTreasury",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "mint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treasuryFeeVaultAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "amount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "changePool",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "strategy",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "oldPosition",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "baseVaultAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "newPool",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "poolProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "closeProgramAccount",
            "accounts": [
                {
                    "name": "adminAuthority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "program",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "programData",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "closingAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "orcaSwap",
            "accounts": [
                {
                    "name": "funder",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "whirlpool",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenOwnerAccountA",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenVaultA",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenOwnerAccountB",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenVaultB",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tickArray0",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tickArray1",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tickArray2",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "oracle",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "whirlpoolProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "amount",
                    "type": "u64"
                },
                {
                    "name": "otherAmountThreshold",
                    "type": "u64"
                },
                {
                    "name": "sqrtPriceLimit",
                    "type": "u128"
                },
                {
                    "name": "amountSpecifiedIsInput",
                    "type": "bool"
                },
                {
                    "name": "aToB",
                    "type": "bool"
                }
            ]
        },
        {
            "name": "signTerms",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "ownerSignatureState",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "signature",
                    "type": {
                        "array": [
                            "u8",
                            64
                        ]
                    }
                }
            ]
        }
    ],
    "accounts": [
        {
            "name": "Whirlpool",
            "docs": [
                "External types"
            ],
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "whirlpoolsConfig",
                        "type": "publicKey"
                    },
                    {
                        "name": "whirlpoolBump",
                        "type": {
                            "array": [
                                "u8",
                                1
                            ]
                        }
                    },
                    {
                        "name": "tickSpacing",
                        "type": "u16"
                    },
                    {
                        "name": "tickSpacingSeed",
                        "type": {
                            "array": [
                                "u8",
                                2
                            ]
                        }
                    },
                    {
                        "name": "feeRate",
                        "type": "u16"
                    },
                    {
                        "name": "protocolFeeRate",
                        "type": "u16"
                    },
                    {
                        "name": "liquidity",
                        "type": "u128"
                    },
                    {
                        "name": "sqrtPrice",
                        "type": "u128"
                    },
                    {
                        "name": "tickCurrentIndex",
                        "type": "i32"
                    },
                    {
                        "name": "protocolFeeOwedA",
                        "type": "u64"
                    },
                    {
                        "name": "protocolFeeOwedB",
                        "type": "u64"
                    },
                    {
                        "name": "tokenMintA",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenVaultA",
                        "type": "publicKey"
                    },
                    {
                        "name": "feeGrowthGlobalA",
                        "type": "u128"
                    },
                    {
                        "name": "tokenMintB",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenVaultB",
                        "type": "publicKey"
                    },
                    {
                        "name": "feeGrowthGlobalB",
                        "type": "u128"
                    },
                    {
                        "name": "rewardLastUpdatedTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "rewardInfos",
                        "type": {
                            "array": [
                                {
                                    "defined": "WhirlpoolRewardInfo"
                                },
                                3
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "Position",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "whirlpool",
                        "type": "publicKey"
                    },
                    {
                        "name": "positionMint",
                        "type": "publicKey"
                    },
                    {
                        "name": "liquidity",
                        "type": "u128"
                    },
                    {
                        "name": "tickLowerIndex",
                        "type": "i32"
                    },
                    {
                        "name": "tickUpperIndex",
                        "type": "i32"
                    },
                    {
                        "name": "feeGrowthCheckpointA",
                        "type": "u128"
                    },
                    {
                        "name": "feeOwedA",
                        "type": "u64"
                    },
                    {
                        "name": "feeGrowthCheckpointB",
                        "type": "u128"
                    },
                    {
                        "name": "feeOwedB",
                        "type": "u64"
                    },
                    {
                        "name": "rewardInfos",
                        "type": {
                            "array": [
                                {
                                    "defined": "PositionRewardInfo"
                                },
                                3
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "PoolState",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "bump",
                        "docs": [
                            "Bump to identify PDA"
                        ],
                        "type": "u8"
                    },
                    {
                        "name": "ammConfig",
                        "type": "publicKey"
                    },
                    {
                        "name": "owner",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenMint0",
                        "docs": [
                            "Token pair of the pool, where token_mint_0 address < token_mint_1 address"
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenMint1",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenVault0",
                        "docs": [
                            "Token pair vault"
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenVault1",
                        "type": "publicKey"
                    },
                    {
                        "name": "observationKey",
                        "docs": [
                            "observation account key"
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "mintDecimals0",
                        "docs": [
                            "mint0 and mint1 decimals"
                        ],
                        "type": "u8"
                    },
                    {
                        "name": "mintDecimals1",
                        "type": "u8"
                    },
                    {
                        "name": "tickSpacing",
                        "docs": [
                            "The minimum number of ticks between initialized ticks"
                        ],
                        "type": "u16"
                    },
                    {
                        "name": "liquidity",
                        "docs": [
                            "The currently in range liquidity available to the pool."
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "sqrtPriceX64",
                        "docs": [
                            "The current price of the pool as a sqrt(token_1/token_0) Q64.64 value"
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "tickCurrent",
                        "docs": [
                            "The current tick of the pool, i.e. according to the last tick transition that was run."
                        ],
                        "type": "i32"
                    },
                    {
                        "name": "observationIndex",
                        "docs": [
                            "the most-recently updated index of the observations array"
                        ],
                        "type": "u16"
                    },
                    {
                        "name": "observationUpdateDuration",
                        "type": "u16"
                    },
                    {
                        "name": "feeGrowthGlobal0X64",
                        "docs": [
                            "The fee growth as a Q64.64 number, i.e. fees of token_0 and token_1 collected per",
                            "unit of liquidity for the entire life of the pool."
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "feeGrowthGlobal1X64",
                        "type": "u128"
                    },
                    {
                        "name": "protocolFeesToken0",
                        "docs": [
                            "The amounts of token_0 and token_1 that are owed to the protocol."
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "protocolFeesToken1",
                        "type": "u64"
                    },
                    {
                        "name": "swapInAmountToken0",
                        "docs": [
                            "The amounts in and out of swap token_0 and token_1"
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "swapOutAmountToken1",
                        "type": "u128"
                    },
                    {
                        "name": "swapInAmountToken1",
                        "type": "u128"
                    },
                    {
                        "name": "swapOutAmountToken0",
                        "type": "u128"
                    },
                    {
                        "name": "status",
                        "docs": [
                            "Bitwise representation of the state of the pool",
                            "bit0, 1: disable open position and increase liquidity, 0: normal",
                            "bit1, 1: disable decrease liquidity, 0: normal",
                            "bit2, 1: disable collect fee, 0: normal",
                            "bit3, 1: disable collect reward, 0: normal",
                            "bit4, 1: disable swap, 0: normal"
                        ],
                        "type": "u8"
                    },
                    {
                        "name": "padding",
                        "docs": [
                            "Leave blank for future use"
                        ],
                        "type": {
                            "array": [
                                "u8",
                                7
                            ]
                        }
                    },
                    {
                        "name": "rewardInfos",
                        "type": {
                            "array": [
                                {
                                    "defined": "RewardInfo"
                                },
                                3
                            ]
                        }
                    },
                    {
                        "name": "tickArrayBitmap",
                        "docs": [
                            "Packed initialized tick array state"
                        ],
                        "type": {
                            "array": [
                                "u64",
                                16
                            ]
                        }
                    },
                    {
                        "name": "totalFeesToken0",
                        "docs": [
                            "except protocol_fee and fund_fee"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "totalFeesClaimedToken0",
                        "docs": [
                            "except protocol_fee and fund_fee"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "totalFeesToken1",
                        "type": "u64"
                    },
                    {
                        "name": "totalFeesClaimedToken1",
                        "type": "u64"
                    },
                    {
                        "name": "fundFeesToken0",
                        "type": "u64"
                    },
                    {
                        "name": "fundFeesToken1",
                        "type": "u64"
                    },
                    {
                        "name": "openTime",
                        "type": "u64"
                    },
                    {
                        "name": "padding1",
                        "type": {
                            "array": [
                                "u64",
                                25
                            ]
                        }
                    },
                    {
                        "name": "padding2",
                        "type": {
                            "array": [
                                "u64",
                                32
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "PersonalPositionState",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "bump",
                        "docs": [
                            "Bump to identify PDA"
                        ],
                        "type": "u8"
                    },
                    {
                        "name": "nftMint",
                        "docs": [
                            "Mint address of the tokenized position"
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "poolId",
                        "docs": [
                            "The ID of the pool with which this token is connected"
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "tickLowerIndex",
                        "docs": [
                            "The lower bound tick of the position"
                        ],
                        "type": "i32"
                    },
                    {
                        "name": "tickUpperIndex",
                        "docs": [
                            "The upper bound tick of the position"
                        ],
                        "type": "i32"
                    },
                    {
                        "name": "liquidity",
                        "docs": [
                            "The amount of liquidity owned by this position"
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "feeGrowthInside0LastX64",
                        "docs": [
                            "The token_0 fee growth of the aggregate position as of the last action on the individual position"
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "feeGrowthInside1LastX64",
                        "docs": [
                            "The token_1 fee growth of the aggregate position as of the last action on the individual position"
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "tokenFeesOwed0",
                        "docs": [
                            "The fees owed to the position owner in token_0, as of the last computation"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "tokenFeesOwed1",
                        "docs": [
                            "The fees owed to the position owner in token_1, as of the last computation"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "rewardInfos",
                        "type": {
                            "array": [
                                {
                                    "defined": "PositionRewardInfo"
                                },
                                3
                            ]
                        }
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u64",
                                8
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "ProtocolPositionState",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "bump",
                        "docs": [
                            "Bump to identify PDA"
                        ],
                        "type": "u8"
                    },
                    {
                        "name": "poolId",
                        "docs": [
                            "The ID of the pool with which this token is connected"
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "tickLowerIndex",
                        "docs": [
                            "The lower bound tick of the position"
                        ],
                        "type": "i32"
                    },
                    {
                        "name": "tickUpperIndex",
                        "docs": [
                            "The upper bound tick of the position"
                        ],
                        "type": "i32"
                    },
                    {
                        "name": "liquidity",
                        "docs": [
                            "The amount of liquidity owned by this position"
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "feeGrowthInside0LastX64",
                        "docs": [
                            "The token_0 fee growth per unit of liquidity as of the last update to liquidity or fees owed"
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "feeGrowthInside1LastX64",
                        "docs": [
                            "The token_1 fee growth per unit of liquidity as of the last update to liquidity or fees owed"
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "tokenFeesOwed0",
                        "docs": [
                            "The fees owed to the position owner in token_0"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "tokenFeesOwed1",
                        "docs": [
                            "The fees owed to the position owner in token_1"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "rewardGrowthInside",
                        "docs": [
                            "The reward growth per unit of liquidity as of the last update to liquidity"
                        ],
                        "type": {
                            "array": [
                                "u128",
                                3
                            ]
                        }
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u64",
                                8
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "WhirlpoolStrategy",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "adminAuthority",
                        "type": "publicKey"
                    },
                    {
                        "name": "globalConfig",
                        "type": "publicKey"
                    },
                    {
                        "name": "baseVaultAuthority",
                        "type": "publicKey"
                    },
                    {
                        "name": "baseVaultAuthorityBump",
                        "type": "u64"
                    },
                    {
                        "name": "pool",
                        "type": "publicKey"
                    },
                    {
                        "name": "poolTokenVaultA",
                        "type": "publicKey"
                    },
                    {
                        "name": "poolTokenVaultB",
                        "type": "publicKey"
                    },
                    {
                        "name": "tickArrayLower",
                        "type": "publicKey"
                    },
                    {
                        "name": "tickArrayUpper",
                        "type": "publicKey"
                    },
                    {
                        "name": "position",
                        "type": "publicKey"
                    },
                    {
                        "name": "positionMint",
                        "type": "publicKey"
                    },
                    {
                        "name": "positionMetadata",
                        "type": "publicKey"
                    },
                    {
                        "name": "positionTokenAccount",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenAVault",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenBVault",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenAVaultAuthority",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenBVaultAuthority",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenAVaultAuthorityBump",
                        "type": "u64"
                    },
                    {
                        "name": "tokenBVaultAuthorityBump",
                        "type": "u64"
                    },
                    {
                        "name": "tokenAMint",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenBMint",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenAMintDecimals",
                        "type": "u64"
                    },
                    {
                        "name": "tokenBMintDecimals",
                        "type": "u64"
                    },
                    {
                        "name": "tokenAAmounts",
                        "type": "u64"
                    },
                    {
                        "name": "tokenBAmounts",
                        "type": "u64"
                    },
                    {
                        "name": "tokenACollateralId",
                        "type": "u64"
                    },
                    {
                        "name": "tokenBCollateralId",
                        "type": "u64"
                    },
                    {
                        "name": "scopePrices",
                        "type": "publicKey"
                    },
                    {
                        "name": "scopeProgram",
                        "type": "publicKey"
                    },
                    {
                        "name": "sharesMint",
                        "type": "publicKey"
                    },
                    {
                        "name": "sharesMintDecimals",
                        "type": "u64"
                    },
                    {
                        "name": "sharesMintAuthority",
                        "type": "publicKey"
                    },
                    {
                        "name": "sharesMintAuthorityBump",
                        "type": "u64"
                    },
                    {
                        "name": "sharesIssued",
                        "type": "u64"
                    },
                    {
                        "name": "status",
                        "type": "u64"
                    },
                    {
                        "name": "reward0Amount",
                        "type": "u64"
                    },
                    {
                        "name": "reward0Vault",
                        "type": "publicKey"
                    },
                    {
                        "name": "reward0CollateralId",
                        "type": "u64"
                    },
                    {
                        "name": "reward0Decimals",
                        "type": "u64"
                    },
                    {
                        "name": "reward1Amount",
                        "type": "u64"
                    },
                    {
                        "name": "reward1Vault",
                        "type": "publicKey"
                    },
                    {
                        "name": "reward1CollateralId",
                        "type": "u64"
                    },
                    {
                        "name": "reward1Decimals",
                        "type": "u64"
                    },
                    {
                        "name": "reward2Amount",
                        "type": "u64"
                    },
                    {
                        "name": "reward2Vault",
                        "type": "publicKey"
                    },
                    {
                        "name": "reward2CollateralId",
                        "type": "u64"
                    },
                    {
                        "name": "reward2Decimals",
                        "type": "u64"
                    },
                    {
                        "name": "depositCapUsd",
                        "type": "u64"
                    },
                    {
                        "name": "feesACumulative",
                        "type": "u64"
                    },
                    {
                        "name": "feesBCumulative",
                        "type": "u64"
                    },
                    {
                        "name": "reward0AmountCumulative",
                        "type": "u64"
                    },
                    {
                        "name": "reward1AmountCumulative",
                        "type": "u64"
                    },
                    {
                        "name": "reward2AmountCumulative",
                        "type": "u64"
                    },
                    {
                        "name": "depositCapUsdPerIxn",
                        "type": "u64"
                    },
                    {
                        "name": "withdrawalCapA",
                        "type": {
                            "defined": "WithdrawalCaps"
                        }
                    },
                    {
                        "name": "withdrawalCapB",
                        "type": {
                            "defined": "WithdrawalCaps"
                        }
                    },
                    {
                        "name": "maxPriceDeviationBps",
                        "type": "u64"
                    },
                    {
                        "name": "swapVaultMaxSlippageBps",
                        "type": "u32"
                    },
                    {
                        "name": "swapVaultMaxSlippageFromReferenceBps",
                        "type": "u32"
                    },
                    {
                        "name": "strategyType",
                        "type": "u64"
                    },
                    {
                        "name": "padding0",
                        "type": "u64"
                    },
                    {
                        "name": "withdrawFee",
                        "type": "u64"
                    },
                    {
                        "name": "feesFee",
                        "type": "u64"
                    },
                    {
                        "name": "reward0Fee",
                        "type": "u64"
                    },
                    {
                        "name": "reward1Fee",
                        "type": "u64"
                    },
                    {
                        "name": "reward2Fee",
                        "type": "u64"
                    },
                    {
                        "name": "positionTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "kaminoRewards",
                        "type": {
                            "array": [
                                {
                                    "defined": "KaminoRewardInfo"
                                },
                                3
                            ]
                        }
                    },
                    {
                        "name": "strategyDex",
                        "type": "u64"
                    },
                    {
                        "name": "raydiumProtocolPositionOrBaseVaultAuthority",
                        "type": "publicKey"
                    },
                    {
                        "name": "allowDepositWithoutInvest",
                        "type": "u64"
                    },
                    {
                        "name": "raydiumPoolConfigOrBaseVaultAuthority",
                        "type": "publicKey"
                    },
                    {
                        "name": "depositBlocked",
                        "type": "u8"
                    },
                    {
                        "name": "creationStatus",
                        "type": "u8"
                    },
                    {
                        "name": "investBlocked",
                        "type": "u8"
                    },
                    {
                        "name": "shareCalculationMethod",
                        "docs": [
                            "share_calculation_method can be either DOLAR_BASED=0 or PROPORTION_BASED=1"
                        ],
                        "type": "u8"
                    },
                    {
                        "name": "withdrawBlocked",
                        "type": "u8"
                    },
                    {
                        "name": "reservedFlag2",
                        "type": "u8"
                    },
                    {
                        "name": "localAdminBlocked",
                        "type": "u8"
                    },
                    {
                        "name": "flashVaultSwapAllowed",
                        "type": "u8"
                    },
                    {
                        "name": "referenceSwapPriceA",
                        "type": {
                            "defined": "Price"
                        }
                    },
                    {
                        "name": "referenceSwapPriceB",
                        "type": {
                            "defined": "Price"
                        }
                    },
                    {
                        "name": "isCommunity",
                        "type": "u8"
                    },
                    {
                        "name": "rebalanceType",
                        "type": "u8"
                    },
                    {
                        "name": "padding1",
                        "type": {
                            "array": [
                                "u8",
                                6
                            ]
                        }
                    },
                    {
                        "name": "rebalanceRaw",
                        "type": {
                            "defined": "RebalanceRaw"
                        }
                    },
                    {
                        "name": "padding2",
                        "type": {
                            "array": [
                                "u8",
                                7
                            ]
                        }
                    },
                    {
                        "name": "tokenAFeesFromRewardsCumulative",
                        "type": "u64"
                    },
                    {
                        "name": "tokenBFeesFromRewardsCumulative",
                        "type": "u64"
                    },
                    {
                        "name": "strategyLookupTable",
                        "type": "publicKey"
                    },
                    {
                        "name": "lastSwapUnevenStepTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "padding3",
                        "type": "u64"
                    },
                    {
                        "name": "padding4",
                        "type": {
                            "array": [
                                "u128",
                                25
                            ]
                        }
                    },
                    {
                        "name": "padding5",
                        "type": {
                            "array": [
                                "u128",
                                32
                            ]
                        }
                    },
                    {
                        "name": "padding6",
                        "type": {
                            "array": [
                                "u128",
                                32
                            ]
                        }
                    },
                    {
                        "name": "padding7",
                        "type": {
                            "array": [
                                "u128",
                                32
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "GlobalConfig",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "emergencyMode",
                        "type": "u64"
                    },
                    {
                        "name": "blockDeposit",
                        "type": "u64"
                    },
                    {
                        "name": "blockInvest",
                        "type": "u64"
                    },
                    {
                        "name": "blockWithdraw",
                        "type": "u64"
                    },
                    {
                        "name": "blockCollectFees",
                        "type": "u64"
                    },
                    {
                        "name": "blockCollectRewards",
                        "type": "u64"
                    },
                    {
                        "name": "blockSwapRewards",
                        "type": "u64"
                    },
                    {
                        "name": "blockSwapUnevenVaults",
                        "type": "u32"
                    },
                    {
                        "name": "blockEmergencySwap",
                        "type": "u32"
                    },
                    {
                        "name": "feesBps",
                        "type": "u64"
                    },
                    {
                        "name": "scopeProgramId",
                        "type": "publicKey"
                    },
                    {
                        "name": "scopePriceId",
                        "type": "publicKey"
                    },
                    {
                        "name": "swapRewardsDiscountBps",
                        "type": {
                            "array": [
                                "u64",
                                256
                            ]
                        }
                    },
                    {
                        "name": "actionsAuthority",
                        "type": "publicKey"
                    },
                    {
                        "name": "adminAuthority",
                        "type": "publicKey"
                    },
                    {
                        "name": "treasuryFeeVaults",
                        "type": {
                            "array": [
                                "publicKey",
                                256
                            ]
                        }
                    },
                    {
                        "name": "tokenInfos",
                        "type": "publicKey"
                    },
                    {
                        "name": "blockLocalAdmin",
                        "type": "u64"
                    },
                    {
                        "name": "minPerformanceFeeBps",
                        "type": "u64"
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u64",
                                2042
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "CollateralInfos",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "infos",
                        "type": {
                            "array": [
                                {
                                    "defined": "CollateralInfo"
                                },
                                256
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "ScopeChainAccount",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "chainArray",
                        "type": {
                            "array": [
                                {
                                    "array": [
                                        "u16",
                                        4
                                    ]
                                },
                                512
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "TermsSignature",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "signature",
                        "type": {
                            "array": [
                                "u8",
                                64
                            ]
                        }
                    }
                ]
            }
        }
    ],
    "types": [
        {
            "name": "PositionRewardInfo",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "growthInsideCheckpoint",
                        "type": "u128"
                    },
                    {
                        "name": "amountOwed",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "WhirlpoolRewardInfo",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "mint",
                        "docs": [
                            "Reward token mint."
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "vault",
                        "docs": [
                            "Reward vault token account."
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "authority",
                        "docs": [
                            "Authority account that has permission to initialize the reward and set emissions."
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "emissionsPerSecondX64",
                        "docs": [
                            "Q64.64 number that indicates how many tokens per second are earned per unit of liquidity."
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "growthGlobalX64",
                        "docs": [
                            "Q64.64 number that tracks the total tokens earned per unit of liquidity since the reward",
                            "emissions were turned on."
                        ],
                        "type": "u128"
                    }
                ]
            }
        },
        {
            "name": "RewardInfo",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "rewardState",
                        "docs": [
                            "Reward state"
                        ],
                        "type": "u8"
                    },
                    {
                        "name": "openTime",
                        "docs": [
                            "Reward open time"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "endTime",
                        "docs": [
                            "Reward end time"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "lastUpdateTime",
                        "docs": [
                            "Reward last update time"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "emissionsPerSecondX64",
                        "docs": [
                            "Q64.64 number indicates how many tokens per second are earned per unit of liquidity."
                        ],
                        "type": "u128"
                    },
                    {
                        "name": "rewardTotalEmissioned",
                        "docs": [
                            "The total amount of reward emissioned"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "rewardClaimed",
                        "docs": [
                            "The total amount of claimed reward"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "tokenMint",
                        "docs": [
                            "Reward token mint."
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenVault",
                        "docs": [
                            "Reward vault token account."
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "authority",
                        "docs": [
                            "The owner that has permission to set reward param"
                        ],
                        "type": "publicKey"
                    },
                    {
                        "name": "rewardGrowthGlobalX64",
                        "docs": [
                            "Q64.64 number that tracks the total tokens earned per unit of liquidity since the reward",
                            "emissions were turned on."
                        ],
                        "type": "u128"
                    }
                ]
            }
        },
        {
            "name": "RebalanceRaw",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "params",
                        "type": {
                            "array": [
                                "u8",
                                128
                            ]
                        }
                    },
                    {
                        "name": "state",
                        "type": {
                            "array": [
                                "u8",
                                256
                            ]
                        }
                    },
                    {
                        "name": "referencePriceType",
                        "type": "u8"
                    }
                ]
            }
        },
        {
            "name": "CollateralInfo",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "mint",
                        "type": "publicKey"
                    },
                    {
                        "name": "lowerHeuristic",
                        "type": "u64"
                    },
                    {
                        "name": "upperHeuristic",
                        "type": "u64"
                    },
                    {
                        "name": "expHeuristic",
                        "type": "u64"
                    },
                    {
                        "name": "maxTwapDivergenceBps",
                        "type": "u64"
                    },
                    {
                        "name": "scopePriceIdTwap",
                        "type": "u64"
                    },
                    {
                        "name": "scopePriceChain",
                        "type": {
                            "array": [
                                "u16",
                                4
                            ]
                        }
                    },
                    {
                        "name": "name",
                        "type": {
                            "array": [
                                "u8",
                                32
                            ]
                        }
                    },
                    {
                        "name": "maxAgePriceSeconds",
                        "type": "u64"
                    },
                    {
                        "name": "maxAgeTwapSeconds",
                        "type": "u64"
                    },
                    {
                        "name": "maxIgnorableAmountAsReward",
                        "type": "u64"
                    },
                    {
                        "name": "disabled",
                        "type": "u8"
                    },
                    {
                        "name": "padding0",
                        "type": {
                            "array": [
                                "u8",
                                7
                            ]
                        }
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u64",
                                9
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "KaminoRewardInfo",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "decimals",
                        "type": "u64"
                    },
                    {
                        "name": "rewardVault",
                        "type": "publicKey"
                    },
                    {
                        "name": "rewardMint",
                        "type": "publicKey"
                    },
                    {
                        "name": "rewardCollateralId",
                        "type": "u64"
                    },
                    {
                        "name": "lastIssuanceTs",
                        "type": "u64"
                    },
                    {
                        "name": "rewardPerSecond",
                        "type": "u64"
                    },
                    {
                        "name": "amountUncollected",
                        "type": "u64"
                    },
                    {
                        "name": "amountIssuedCumulative",
                        "type": "u64"
                    },
                    {
                        "name": "amountAvailable",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "WithdrawalCaps",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "configCapacity",
                        "type": "i64"
                    },
                    {
                        "name": "currentTotal",
                        "type": "i64"
                    },
                    {
                        "name": "lastIntervalStartTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "configIntervalLengthSeconds",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "Price",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "value",
                        "type": "u64"
                    },
                    {
                        "name": "exp",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "WithdrawalCapAccumulatorAction",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "KeepAccumulator"
                    },
                    {
                        "name": "ResetAccumulator"
                    }
                ]
            }
        },
        {
            "name": "RebalanceEffects",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "NewRange",
                        "fields": [
                            "i32",
                            "i32"
                        ]
                    },
                    {
                        "name": "WithdrawAndFreeze"
                    }
                ]
            }
        },
        {
            "name": "SwapLimit",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Bps",
                        "fields": [
                            "u64"
                        ]
                    },
                    {
                        "name": "Absolute",
                        "fields": [
                            {
                                "name": "src_amount_to_swap",
                                "docs": [
                                    "Amount of src token expected by the user to perform the swap"
                                ],
                                "type": "u64"
                            },
                            {
                                "name": "dst_amount_to_vault",
                                "docs": [
                                    "Amount of dst token the user provides in exchange"
                                ],
                                "type": "u64"
                            },
                            {
                                "name": "a_to_b",
                                "type": "bool"
                            }
                        ]
                    }
                ]
            }
        },
        {
            "name": "MintingMethod",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "PriceBased"
                    },
                    {
                        "name": "Proportional"
                    }
                ]
            }
        },
        {
            "name": "GlobalConfigOption",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "EmergencyMode"
                    },
                    {
                        "name": "BlockDeposit"
                    },
                    {
                        "name": "BlockInvest"
                    },
                    {
                        "name": "BlockWithdraw"
                    },
                    {
                        "name": "BlockCollectFees"
                    },
                    {
                        "name": "BlockCollectRewards"
                    },
                    {
                        "name": "BlockSwapRewards"
                    },
                    {
                        "name": "BlockSwapUnevenVaults"
                    },
                    {
                        "name": "FeesBps"
                    },
                    {
                        "name": "SwapDiscountBps"
                    },
                    {
                        "name": "ActionsAuthority"
                    },
                    {
                        "name": "TreasuryFeeVaults"
                    },
                    {
                        "name": "AdminAuthority"
                    },
                    {
                        "name": "BlockEmergencySwap"
                    },
                    {
                        "name": "BlockLocalAdmin"
                    },
                    {
                        "name": "UpdateTokenInfos"
                    },
                    {
                        "name": "ScopeProgramId"
                    },
                    {
                        "name": "ScopePriceId"
                    },
                    {
                        "name": "MinPerformanceFeeBps"
                    }
                ]
            }
        },
        {
            "name": "StrategyConfigOption",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "UpdateDepositCap"
                    },
                    {
                        "name": "UpdateDepositCapIxn"
                    },
                    {
                        "name": "UpdateWithdrawalCapACapacity"
                    },
                    {
                        "name": "UpdateWithdrawalCapAInterval"
                    },
                    {
                        "name": "UpdateWithdrawalCapACurrentTotal"
                    },
                    {
                        "name": "UpdateWithdrawalCapBCapacity"
                    },
                    {
                        "name": "UpdateWithdrawalCapBInterval"
                    },
                    {
                        "name": "UpdateWithdrawalCapBCurrentTotal"
                    },
                    {
                        "name": "UpdateMaxDeviationBps"
                    },
                    {
                        "name": "UpdateSwapVaultMaxSlippage"
                    },
                    {
                        "name": "UpdateStrategyType"
                    },
                    {
                        "name": "UpdateDepositFee"
                    },
                    {
                        "name": "UpdateWithdrawFee"
                    },
                    {
                        "name": "UpdateCollectFeesFee"
                    },
                    {
                        "name": "UpdateReward0Fee"
                    },
                    {
                        "name": "UpdateReward1Fee"
                    },
                    {
                        "name": "UpdateReward2Fee"
                    },
                    {
                        "name": "UpdateAdminAuthority"
                    },
                    {
                        "name": "KaminoRewardIndex0TS"
                    },
                    {
                        "name": "KaminoRewardIndex1TS"
                    },
                    {
                        "name": "KaminoRewardIndex2TS"
                    },
                    {
                        "name": "KaminoRewardIndex0RewardPerSecond"
                    },
                    {
                        "name": "KaminoRewardIndex1RewardPerSecond"
                    },
                    {
                        "name": "KaminoRewardIndex2RewardPerSecond"
                    },
                    {
                        "name": "UpdateDepositBlocked"
                    },
                    {
                        "name": "UpdateRaydiumProtocolPositionOrBaseVaultAuthority"
                    },
                    {
                        "name": "UpdateRaydiumPoolConfigOrBaseVaultAuthority"
                    },
                    {
                        "name": "UpdateInvestBlocked"
                    },
                    {
                        "name": "UpdateWithdrawBlocked"
                    },
                    {
                        "name": "UpdateLocalAdminBlocked"
                    },
                    {
                        "name": "UpdateCollateralIdA"
                    },
                    {
                        "name": "UpdateCollateralIdB"
                    },
                    {
                        "name": "UpdateFlashVaultSwap"
                    },
                    {
                        "name": "AllowDepositWithoutInvest"
                    },
                    {
                        "name": "UpdateSwapVaultMaxSlippageFromRef"
                    },
                    {
                        "name": "ResetReferencePrices"
                    },
                    {
                        "name": "UpdateStrategyCreationState"
                    },
                    {
                        "name": "UpdateIsCommunity"
                    },
                    {
                        "name": "UpdateRebalanceType"
                    },
                    {
                        "name": "UpdateRebalanceParams"
                    },
                    {
                        "name": "UpdateDepositMintingMethod"
                    },
                    {
                        "name": "UpdateLookupTable"
                    },
                    {
                        "name": "UpdateReferencePriceType"
                    },
                    {
                        "name": "UpdateReward0Amount"
                    },
                    {
                        "name": "UpdateReward1Amount"
                    },
                    {
                        "name": "UpdateReward2Amount"
                    }
                ]
            }
        },
        {
            "name": "StrategyStatus",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Uninitialized"
                    },
                    {
                        "name": "Active"
                    },
                    {
                        "name": "Frozen"
                    },
                    {
                        "name": "Rebalancing"
                    },
                    {
                        "name": "NoPosition"
                    }
                ]
            }
        },
        {
            "name": "StrategyType",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Stable"
                    },
                    {
                        "name": "Pegged"
                    },
                    {
                        "name": "Volatile"
                    }
                ]
            }
        },
        {
            "name": "CreationStatus",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "IGNORED"
                    },
                    {
                        "name": "SHADOW"
                    },
                    {
                        "name": "LIVE"
                    },
                    {
                        "name": "DEPRECATED"
                    },
                    {
                        "name": "STAGING"
                    }
                ]
            }
        },
        {
            "name": "ExecutiveWithdrawAction",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Freeze"
                    },
                    {
                        "name": "Unfreeze"
                    },
                    {
                        "name": "Rebalance"
                    }
                ]
            }
        },
        {
            "name": "ReferencePriceType",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "POOL"
                    },
                    {
                        "name": "TWAP"
                    }
                ]
            }
        },
        {
            "name": "LiquidityCalculationMode",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Deposit"
                    },
                    {
                        "name": "Withdraw"
                    }
                ]
            }
        },
        {
            "name": "UpdateCollateralInfoMode",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "CollateralId"
                    },
                    {
                        "name": "LowerHeuristic"
                    },
                    {
                        "name": "UpperHeuristic"
                    },
                    {
                        "name": "ExpHeuristic"
                    },
                    {
                        "name": "TwapDivergence"
                    },
                    {
                        "name": "UpdateScopeTwap"
                    },
                    {
                        "name": "UpdateScopeChain"
                    },
                    {
                        "name": "UpdateName"
                    },
                    {
                        "name": "UpdatePriceMaxAge"
                    },
                    {
                        "name": "UpdateTwapMaxAge"
                    },
                    {
                        "name": "UpdateDisabled"
                    }
                ]
            }
        },
        {
            "name": "BalanceStatus",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Balanced"
                    },
                    {
                        "name": "Unbalanced"
                    }
                ]
            }
        },
        {
            "name": "DriftDirection",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Increasing"
                    },
                    {
                        "name": "Decreasing"
                    }
                ]
            }
        },
        {
            "name": "RebalanceDriftStep",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Uninitialized"
                    },
                    {
                        "name": "Drifting"
                    }
                ]
            }
        },
        {
            "name": "ExpanderStep",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "ExpandOrContract",
                        "fields": [
                            "u16"
                        ]
                    },
                    {
                        "name": "Recenter"
                    }
                ]
            }
        },
        {
            "name": "RebalanceTakeProfitToken",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "A"
                    },
                    {
                        "name": "B"
                    }
                ]
            }
        },
        {
            "name": "RebalanceTakeProfitStep",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Uninitialized"
                    },
                    {
                        "name": "TakingProfit"
                    },
                    {
                        "name": "Finished"
                    }
                ]
            }
        },
        {
            "name": "RebalanceAction",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "NewSqrtPriceRange",
                        "fields": [
                            "u128",
                            "u128"
                        ]
                    },
                    {
                        "name": "NewTickRange",
                        "fields": [
                            "i32",
                            "i32"
                        ]
                    },
                    {
                        "name": "WithdrawAndFreeze"
                    }
                ]
            }
        },
        {
            "name": "RebalanceType",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Manual"
                    },
                    {
                        "name": "PricePercentage"
                    },
                    {
                        "name": "PricePercentageWithReset"
                    },
                    {
                        "name": "Drift"
                    },
                    {
                        "name": "TakeProfit"
                    },
                    {
                        "name": "PeriodicRebalance"
                    },
                    {
                        "name": "Expander"
                    }
                ]
            }
        },
        {
            "name": "CollateralTestToken",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "USDC"
                    },
                    {
                        "name": "USDH"
                    },
                    {
                        "name": "SOL"
                    },
                    {
                        "name": "ETH"
                    },
                    {
                        "name": "BTC"
                    },
                    {
                        "name": "MSOL"
                    },
                    {
                        "name": "STSOL"
                    },
                    {
                        "name": "USDT"
                    },
                    {
                        "name": "ORCA"
                    },
                    {
                        "name": "MNDE"
                    },
                    {
                        "name": "HBB"
                    },
                    {
                        "name": "JSOL"
                    },
                    {
                        "name": "USH"
                    },
                    {
                        "name": "DAI"
                    },
                    {
                        "name": "LDO"
                    },
                    {
                        "name": "SCNSOL"
                    },
                    {
                        "name": "UXD"
                    },
                    {
                        "name": "HDG"
                    },
                    {
                        "name": "DUST"
                    },
                    {
                        "name": "USDR"
                    },
                    {
                        "name": "RATIO"
                    },
                    {
                        "name": "UXP"
                    },
                    {
                        "name": "JITOSOL"
                    },
                    {
                        "name": "RAY"
                    },
                    {
                        "name": "BONK"
                    },
                    {
                        "name": "SAMO"
                    },
                    {
                        "name": "LaineSOL"
                    },
                    {
                        "name": "BSOL"
                    }
                ]
            }
        },
        {
            "name": "ScopePriceIdTest",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "SOL"
                    },
                    {
                        "name": "ETH"
                    },
                    {
                        "name": "BTC"
                    },
                    {
                        "name": "SRM"
                    },
                    {
                        "name": "RAY"
                    },
                    {
                        "name": "FTT"
                    },
                    {
                        "name": "MSOL"
                    },
                    {
                        "name": "scnSOL_SOL"
                    },
                    {
                        "name": "BNB"
                    },
                    {
                        "name": "AVAX"
                    },
                    {
                        "name": "DaoSOL_SOL"
                    },
                    {
                        "name": "SaberMSOL_SOL"
                    },
                    {
                        "name": "USDH"
                    },
                    {
                        "name": "StSOL"
                    },
                    {
                        "name": "CSOL_SOL"
                    },
                    {
                        "name": "CETH_ETH"
                    },
                    {
                        "name": "CBTC_BTC"
                    },
                    {
                        "name": "CMSOL_SOL"
                    },
                    {
                        "name": "wstETH"
                    },
                    {
                        "name": "LDO"
                    },
                    {
                        "name": "USDC"
                    },
                    {
                        "name": "CUSDC_USDC"
                    },
                    {
                        "name": "USDT"
                    },
                    {
                        "name": "ORCA"
                    },
                    {
                        "name": "MNDE"
                    },
                    {
                        "name": "HBB"
                    },
                    {
                        "name": "CORCA_ORCA"
                    },
                    {
                        "name": "CSLND_SLND"
                    },
                    {
                        "name": "CSRM_SRM"
                    },
                    {
                        "name": "CRAY_RAY"
                    },
                    {
                        "name": "CFTT_FTT"
                    },
                    {
                        "name": "CSTSOL_STSOL"
                    },
                    {
                        "name": "SLND"
                    },
                    {
                        "name": "DAI"
                    },
                    {
                        "name": "JSOL_SOL"
                    },
                    {
                        "name": "USH"
                    },
                    {
                        "name": "UXD"
                    },
                    {
                        "name": "USDH_TWAP"
                    },
                    {
                        "name": "USH_TWAP"
                    },
                    {
                        "name": "UXD_TWAP"
                    },
                    {
                        "name": "HDG"
                    },
                    {
                        "name": "DUST"
                    },
                    {
                        "name": "USDR"
                    },
                    {
                        "name": "USDR_TWAP"
                    },
                    {
                        "name": "RATIO"
                    },
                    {
                        "name": "UXP"
                    },
                    {
                        "name": "KUXDUSDCORCA"
                    },
                    {
                        "name": "JITOSOL_SOL"
                    },
                    {
                        "name": "SOL_EMA"
                    },
                    {
                        "name": "ETH_EMA"
                    },
                    {
                        "name": "BTC_EMA"
                    },
                    {
                        "name": "SRM_EMA"
                    },
                    {
                        "name": "RAY_EMA"
                    },
                    {
                        "name": "FTT_EMA"
                    },
                    {
                        "name": "MSOL_EMA"
                    },
                    {
                        "name": "BNB_EMA"
                    },
                    {
                        "name": "AVAX_EMA"
                    },
                    {
                        "name": "STSOL_EMA"
                    },
                    {
                        "name": "USDC_EMA"
                    },
                    {
                        "name": "USDT_EMA"
                    },
                    {
                        "name": "SLND_EMA"
                    },
                    {
                        "name": "DAI_EMA"
                    },
                    {
                        "name": "wstETH_TWAP"
                    },
                    {
                        "name": "DUST_TWAP"
                    },
                    {
                        "name": "BONK"
                    },
                    {
                        "name": "BONK_TWAP"
                    },
                    {
                        "name": "SAMO"
                    },
                    {
                        "name": "SAMO_TWAP"
                    },
                    {
                        "name": "BSOL"
                    },
                    {
                        "name": "LaineSOL"
                    }
                ]
            }
        },
        {
            "name": "DEX",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Orca"
                    },
                    {
                        "name": "Raydium"
                    }
                ]
            }
        }
    ],
    "errors": [
        {
            "code": 6000,
            "name": "IntegerOverflow",
            "msg": "Integer overflow"
        },
        {
            "code": 6001,
            "name": "OperationForbidden",
            "msg": "Operation Forbidden"
        },
        {
            "code": 6002,
            "name": "ZeroAmount",
            "msg": "[DEPRECATED] Zero amount"
        },
        {
            "code": 6003,
            "name": "UnableToDeserializeAccount",
            "msg": "Unable to deserialize account"
        },
        {
            "code": 6004,
            "name": "VaultBalanceDoesNotMatchTokenA",
            "msg": "[DEPRECATED] Vault balance does not match for token A"
        },
        {
            "code": 6005,
            "name": "VaultBalanceDoesNotMatchTokenB",
            "msg": "[DEPRECATED] Vault balance does not match for token B"
        },
        {
            "code": 6006,
            "name": "SharesIssuedAmountDoesNotMatch",
            "msg": "[DEPRECATED] Shares issued amount does not match"
        },
        {
            "code": 6007,
            "name": "GlobalConfigKeyError",
            "msg": "Key is not present in global config"
        },
        {
            "code": 6008,
            "name": "SystemInEmergencyMode",
            "msg": "[DEPRECATED] System is in emergency mode"
        },
        {
            "code": 6009,
            "name": "GlobalDepositBlocked",
            "msg": "Global deposit is currently blocked"
        },
        {
            "code": 6010,
            "name": "GlobalWithdrawBlocked",
            "msg": "Global withdraw is currently blocked"
        },
        {
            "code": 6011,
            "name": "GlobalInvestBlocked",
            "msg": "Global invest is currently blocked"
        },
        {
            "code": 6012,
            "name": "OutOfRangeIntegralConversion",
            "msg": "Out of range integral conversion attempted"
        },
        {
            "code": 6013,
            "name": "MathOverflow",
            "msg": "[DEPRECATED] Mathematical operation with overflow"
        },
        {
            "code": 6014,
            "name": "TooMuchLiquidityToWithdraw",
            "msg": "Unable to withdraw more liquidity than available in position"
        },
        {
            "code": 6015,
            "name": "DepositAmountsZero",
            "msg": "Deposit amounts must be greater than zero"
        },
        {
            "code": 6016,
            "name": "SharesZero",
            "msg": "Number of shares to withdraw must be greater than zero"
        },
        {
            "code": 6017,
            "name": "StrategyNotActive",
            "msg": "Strategy not active"
        },
        {
            "code": 6018,
            "name": "UnharvestedAmounts",
            "msg": "There are unharvested gains"
        },
        {
            "code": 6019,
            "name": "InvalidRewardMapping",
            "msg": "Reward mapping incorrect"
        },
        {
            "code": 6020,
            "name": "InvalidRewardIndex",
            "msg": "Reward index incorrect"
        },
        {
            "code": 6021,
            "name": "OwnRewardUninitialized",
            "msg": "Cannot use uninitialized reward vault"
        },
        {
            "code": 6022,
            "name": "PriceNotValid",
            "msg": "Price is not valid"
        },
        {
            "code": 6023,
            "name": "SwapRewardImbalanced",
            "msg": "Must provide almost equal amounts of tokens"
        },
        {
            "code": 6024,
            "name": "SwapRewardTooSmall",
            "msg": "Swap reward is zero or less than requested"
        },
        {
            "code": 6025,
            "name": "SwapRewardLessThanRequested",
            "msg": "Swap reward is less than what user requested as minimum"
        },
        {
            "code": 6026,
            "name": "SwapRewardLessThanMinimum",
            "msg": "Swap reward is less than minimum acceptable"
        },
        {
            "code": 6027,
            "name": "WrongDiscriminator",
            "msg": "Wrong discriminator"
        },
        {
            "code": 6028,
            "name": "WrongMint",
            "msg": "Wrong mint"
        },
        {
            "code": 6029,
            "name": "WrongVault",
            "msg": "Wrong vault"
        },
        {
            "code": 6030,
            "name": "SwapAmountsZero",
            "msg": "Swap amounts must be greater than zero"
        },
        {
            "code": 6031,
            "name": "PriceTooOld",
            "msg": "Price too old"
        },
        {
            "code": 6032,
            "name": "CannotInvestZeroAmount",
            "msg": "Cannot invest zero amount"
        },
        {
            "code": 6033,
            "name": "MaxInvestableZero",
            "msg": "Cannot have zero investable amount"
        },
        {
            "code": 6034,
            "name": "CollectFeesBlocked",
            "msg": "Collect fees is blocked"
        },
        {
            "code": 6035,
            "name": "CollectRewardsBlocked",
            "msg": "Collect rewards is blocked"
        },
        {
            "code": 6036,
            "name": "SwapRewardsBlocked",
            "msg": "Swap rewards is blocked"
        },
        {
            "code": 6037,
            "name": "WrongRewardCollateralID",
            "msg": "Reward collateral ID is incorrect for strategy"
        },
        {
            "code": 6038,
            "name": "InvalidPositionAccount",
            "msg": "Position account doesn't match internal records"
        },
        {
            "code": 6039,
            "name": "CouldNotDeserializeScope",
            "msg": "Scope account could not be deserialized"
        },
        {
            "code": 6040,
            "name": "WrongCollateralID",
            "msg": "[DEPRECATED] Collateral ID invalid for strategy"
        },
        {
            "code": 6041,
            "name": "CollateralTokensExceedDepositCap",
            "msg": "Collaterals exceed deposit cap"
        },
        {
            "code": 6042,
            "name": "SwapUnevenVaultsBlocked",
            "msg": "Swap uneven vaults is blocked"
        },
        {
            "code": 6043,
            "name": "VaultsAreAlreadyBalanced",
            "msg": "Cannot swap as vaults are already balanced"
        },
        {
            "code": 6044,
            "name": "CannotSwapUnevenOutOfRange",
            "msg": "Cannot swap uneven vaults when position is out of range"
        },
        {
            "code": 6045,
            "name": "DivideByZero",
            "msg": "Cannot divide by zero"
        },
        {
            "code": 6046,
            "name": "DeltaATooLarge",
            "msg": "[DEPRECATED] Delta A too large"
        },
        {
            "code": 6047,
            "name": "DeltaBTooLarge",
            "msg": "[DEPRECATED] Delta B too large"
        },
        {
            "code": 6048,
            "name": "CannotExecutiveWithdrawZeroAmount",
            "msg": "[DEPRECATED] Cannot executive withdraw zero amount"
        },
        {
            "code": 6049,
            "name": "CannotWithdrawZeroAmount",
            "msg": "Cannot withdraw zero amount"
        },
        {
            "code": 6050,
            "name": "CannotCollectFeesOnZeroLiquidityPosition",
            "msg": "[DEPRECATED] Cannot collect fees on zero liquidity position"
        },
        {
            "code": 6051,
            "name": "StrategyNotActiveWhenDepositing",
            "msg": "Cannot deposit inactive position"
        },
        {
            "code": 6052,
            "name": "StrategyNotActiveWhenOpeningPosition",
            "msg": "Cannot open position with existing opened position"
        },
        {
            "code": 6053,
            "name": "CollateralTokensExceedDepositCapPerIxn",
            "msg": "Collaterals exceed deposit ixn cap"
        },
        {
            "code": 6054,
            "name": "CannotDepositOutOfRange",
            "msg": "Cannot deposit when strategy out of range"
        },
        {
            "code": 6055,
            "name": "CannotInvestOutOfRange",
            "msg": "Cannot invest when strategy out of range"
        },
        {
            "code": 6056,
            "name": "WithdrawalCapReached",
            "msg": "Withdrawal cap is reached"
        },
        {
            "code": 6057,
            "name": "TimestampDecrease",
            "msg": "Timestamp decrease"
        },
        {
            "code": 6058,
            "name": "CPINotAllowed",
            "msg": "CPI not allowed"
        },
        {
            "code": 6059,
            "name": "OrcaPriceTooDifferentFromScope",
            "msg": "Cannot use orca price as it is too different from scope price"
        },
        {
            "code": 6060,
            "name": "LowerTickLargerThanUpperTick",
            "msg": "Lower tick larger than upper tick"
        },
        {
            "code": 6061,
            "name": "LowerTickTooLow",
            "msg": "Lower tick is lower than the minimal supported low tick"
        },
        {
            "code": 6062,
            "name": "UpperTickTooLarge",
            "msg": "Upper tick is larger than the maximum supported tick"
        },
        {
            "code": 6063,
            "name": "LowerTickNotMultipleOfTickSpacing",
            "msg": "Lower tick is not a multiple of tick spacing"
        },
        {
            "code": 6064,
            "name": "UpperTickNotMultipleOfTickSpacing",
            "msg": "Upper tick is not a multiple of tick spacing"
        },
        {
            "code": 6065,
            "name": "CannotChangeAdminAuthority",
            "msg": "Cannot change admin authority"
        },
        {
            "code": 6066,
            "name": "CannotResizeAccount",
            "msg": "Cannot resize with smaller new size"
        },
        {
            "code": 6067,
            "name": "ScopeChainUpdateFailed",
            "msg": "Scope chain update failed"
        },
        {
            "code": 6068,
            "name": "PriceTooDivergentFromTwap",
            "msg": "Price too divergent from twap"
        },
        {
            "code": 6069,
            "name": "ExistingRewardOverride",
            "msg": "[DEPRECATED] Can not override the existing reward"
        },
        {
            "code": 6070,
            "name": "WrongKaminoRewardId",
            "msg": "Kamino reward id exceeds the available slots"
        },
        {
            "code": 6071,
            "name": "KaminoRewardNotExist",
            "msg": "Kamino reward is not initialized"
        },
        {
            "code": 6072,
            "name": "KaminoRewardAlreadyExists",
            "msg": "Kamino reward is already initialized"
        },
        {
            "code": 6073,
            "name": "KaminoCollateralNotValid",
            "msg": "Kamino collateral is not valid"
        },
        {
            "code": 6074,
            "name": "KaminoRewardExceedsAvailableAmount",
            "msg": "[DEPRECATED] Expected kamino reward is bigger then the available amount within the vault"
        },
        {
            "code": 6075,
            "name": "SwapUnevenVaultsOvershoot",
            "msg": "Swap uneven vaults result in the opposite unbalance of the vaults"
        },
        {
            "code": 6076,
            "name": "BpsNotInRange",
            "msg": "Bps parameter passed to instruction is not in range"
        },
        {
            "code": 6077,
            "name": "EmergencySwapBlocked",
            "msg": "Emergency Swap is blocked"
        },
        {
            "code": 6078,
            "name": "StrategyNotFrozen",
            "msg": "Strategy is expected to be frozen for this operation"
        },
        {
            "code": 6079,
            "name": "UnexpectedTokenAmountsPostSwap",
            "msg": "Token left in vault post swap are lower than expected"
        },
        {
            "code": 6080,
            "name": "AccountNotBelongToDEX",
            "msg": "Account doesn't belong to the DEX"
        },
        {
            "code": 6081,
            "name": "WrongDEXProgramID",
            "msg": "Wrong DEX program ID"
        },
        {
            "code": 6082,
            "name": "OrcaRewardUninitialized",
            "msg": "Cannot use uninitialized orca reward vault"
        },
        {
            "code": 6083,
            "name": "InvalidAdminAuthority",
            "msg": "Invalid admin authority"
        },
        {
            "code": 6084,
            "name": "PriceIsBiggerThanHeuristic",
            "msg": "Token price is bigger than heuristic"
        },
        {
            "code": 6085,
            "name": "PriceIsLowerThanHeuristic",
            "msg": "Token price is lower than heuristic"
        },
        {
            "code": 6086,
            "name": "AccountDifferentThanExpected",
            "msg": "Account different than expected"
        },
        {
            "code": 6087,
            "name": "SwapAmountsTooSmall",
            "msg": "Swap amount below the minimum value"
        },
        {
            "code": 6088,
            "name": "InvalidDexProgramId",
            "msg": "Invalid dex program id"
        },
        {
            "code": 6089,
            "name": "StrategyDepositBlocked",
            "msg": "Strategy deposit is currently blocked"
        },
        {
            "code": 6090,
            "name": "StrategyInvestBlocked",
            "msg": "Strategy invest is currently blocked"
        },
        {
            "code": 6091,
            "name": "StrategyWithdrawBlocked",
            "msg": "Strategy withdraw is currently blocked"
        },
        {
            "code": 6092,
            "name": "WrongSwapVaultDirection",
            "msg": "Vault swap can't be performed in the required direction"
        },
        {
            "code": 6093,
            "name": "SwapVaultsTooBig",
            "msg": "Provided amount for vault swap is over the limit"
        },
        {
            "code": 6094,
            "name": "SwapVaultsCashOutputBelowMinimum",
            "msg": "Token out for cash based vault swap is below minimum expected"
        },
        {
            "code": 6095,
            "name": "FlashIxsNotEnded",
            "msg": "Flash ixs initiated without the closing ix in the transaction"
        },
        {
            "code": 6096,
            "name": "FlashTxWithUnexpectedIxs",
            "msg": "Some unexpected instructions are present in the tx. Either before or after the flash ixs, or some ix target the same program between"
        },
        {
            "code": 6097,
            "name": "FlashIxsAccountMismatch",
            "msg": "Some accounts differ between the two flash ixs"
        },
        {
            "code": 6098,
            "name": "FlashIxsIncludeScope",
            "msg": "A scope ix is present in a flash tx"
        },
        {
            "code": 6099,
            "name": "FlashVaultSwapBlocked",
            "msg": "Flash vault swap is blocked on this strategy"
        },
        {
            "code": 6100,
            "name": "FlashVaultSwapWrongAmountToLeave",
            "msg": "Unexpected amount of tokens in ata prior flash vault swap (wrong amount_to_leave_to_user)"
        },
        {
            "code": 6101,
            "name": "DepositLessThanMinimum",
            "msg": "Deposit amount less than minimal allowed"
        },
        {
            "code": 6102,
            "name": "DepositWithoutInvestDisallowed",
            "msg": "Cannot deposit without invest"
        },
        {
            "code": 6103,
            "name": "InvalidScopeChain",
            "msg": "Invalid Scope Chain"
        },
        {
            "code": 6104,
            "name": "InvalidTwapId",
            "msg": "Invalid Twap Value"
        },
        {
            "code": 6105,
            "name": "PositionHasRemainingLiquidity",
            "msg": "Existent position has liquidity, new position creation is forbidden"
        },
        {
            "code": 6106,
            "name": "PoolRebalancing",
            "msg": "Deposit is not allowed as pool is rebalancing"
        },
        {
            "code": 6107,
            "name": "PermissionlessRebalancingDisabled",
            "msg": "Permissionless rebalancing is disabled"
        },
        {
            "code": 6108,
            "name": "ManualRebalanceInvalidOwner",
            "msg": "Only the owner of the strategy can manually rebalance it"
        },
        {
            "code": 6109,
            "name": "InvalidRebalanceType",
            "msg": "Invalid rebalance type for the strategy"
        },
        {
            "code": 6110,
            "name": "NoRebalanceNecessary",
            "msg": "No rebalance necessary based on current rebalance type/parameters"
        },
        {
            "code": 6111,
            "name": "TickArraysDoNotMatchRebalance",
            "msg": "The given tick arrays do not match the rebalance result"
        },
        {
            "code": 6112,
            "name": "StrategyPositionNotValid",
            "msg": "Expected strategy position to be initialized"
        },
        {
            "code": 6113,
            "name": "CouldNotDeserializeRebalanceState",
            "msg": "Rebalance state could not be deserialized"
        },
        {
            "code": 6114,
            "name": "CouldNotSerializeRebalanceState",
            "msg": "Rebalance state could not be serialized"
        },
        {
            "code": 6115,
            "name": "CouldNotDeserializeRebalanceParams",
            "msg": "Rebalance params could not be deserialized"
        },
        {
            "code": 6116,
            "name": "NotEnoughTokensForRatio",
            "msg": "Deposit is not allowed as token amounts are not enough to match our holdings ratio"
        },
        {
            "code": 6117,
            "name": "AmountsRepresentZeroShares",
            "msg": "The provided amounts are too small"
        },
        {
            "code": 6118,
            "name": "MaxLossExceeded",
            "msg": "Rouding errors exceed the maximal loss tolerance"
        },
        {
            "code": 6119,
            "name": "RewardNotStrategyToken",
            "msg": "Reward does not match strategy token"
        },
        {
            "code": 6120,
            "name": "DecimalToU64ConversionFailed",
            "msg": "Decimal to u64 conversion failed"
        },
        {
            "code": 6121,
            "name": "DecimalOperationFailed",
            "msg": "Decimal operation failed"
        },
        {
            "code": 6122,
            "name": "VaultBalancesCausesWrongSharesIssuance",
            "msg": "Deposit is not allowed as the strategy is not fully invested in the pool "
        },
        {
            "code": 6123,
            "name": "TokenDisabled",
            "msg": "Token cannot be used in strategy creation"
        },
        {
            "code": 6124,
            "name": "InvalidReferencePriceType",
            "msg": "Invalid reference price type"
        },
        {
            "code": 6125,
            "name": "TokenToSwapNotEnough",
            "msg": "Token amount to be swapped is not enough"
        },
        {
            "code": 6126,
            "name": "TokenAccountBalanceMismatch",
            "msg": "Token amount in ata is different than the expected amount"
        },
        {
            "code": 6127,
            "name": "UnexpectedProgramIdForPrerequisiteIx",
            "msg": "Unexpected programID for prerequisite ix"
        },
        {
            "code": 6128,
            "name": "ComputeFeesAndRewardsUpdateError",
            "msg": "Got an error from the dex specific function while computing the fees/rewards update"
        },
        {
            "code": 6129,
            "name": "SharesNotZero",
            "msg": "There must be no shares issued when closing a strategy"
        }
    ]
}
