{
    "version": "1.24.0",
    "name": "kamino_lending",
    "instructions": [
        {
            "name": "initLendingMarket",
            "accounts": [
                {
                    "name": "lendingMarketOwner",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "quoteCurrency",
                    "type": {
                        "array": [
                            "u8",
                            32
                        ]
                    }
                }
            ]
        },
        {
            "name": "updateLendingMarket",
            "accounts": [
                {
                    "name": "signer",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "mode",
                    "type": "u64"
                },
                {
                    "name": "value",
                    "type": {
                        "array": [
                            "u8",
                            72
                        ]
                    }
                }
            ]
        },
        {
            "name": "updateLendingMarketOwner",
            "accounts": [
                {
                    "name": "lendingMarketOwnerCached",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "initReserve",
            "accounts": [
                {
                    "name": "signer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquiditySupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "feeReceiver",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveCollateralMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveCollateralSupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "initialLiquiditySource",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "liquidityTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "collateralTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "cloneReserveConfig",
            "accounts": [
                {
                    "name": "signer",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "targetLendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "sourceReserve",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "targetReserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "customizations",
                    "type": {
                        "defined": "ReserveConfigCustomizationArgs"
                    }
                }
            ]
        },
        {
            "name": "initFarmsForReserve",
            "accounts": [
                {
                    "name": "lendingMarketOwner",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "farmsGlobalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "farmState",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "farmsVaultAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "mode",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "updateReserveConfig",
            "accounts": [
                {
                    "name": "signer",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "mode",
                    "type": {
                        "defined": "UpdateConfigMode"
                    }
                },
                {
                    "name": "value",
                    "type": "bytes"
                },
                {
                    "name": "skipConfigIntegrityValidation",
                    "type": "bool"
                }
            ]
        },
        {
            "name": "redeemFees",
            "accounts": [
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityFeeReceiver",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveSupplyLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "withdrawProtocolFee",
            "accounts": [
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "feeVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "feeCollectorAta",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "amount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "seedDepositOnInitReserve",
            "accounts": [
                {
                    "name": "signer",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquiditySupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "initialLiquiditySource",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "liquidityTokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "topupReserveRewards",
            "accounts": [
                {
                    "name": "signer",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquiditySupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "sourceLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "liquidityTokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "amount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "socializeLoss",
            "accounts": [
                {
                    "name": "lendingMarketOwner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "socializeLossV2",
            "accounts": [
                {
                    "name": "socializeLossAccounts",
                    "accounts": [
                        {
                            "name": "lendingMarketOwner",
                            "isMut": false,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "farmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "markObligationForDeleveraging",
            "accounts": [
                {
                    "name": "lendingMarketOwner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "autodeleverageTargetLtvPct",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "refreshReserve",
            "accounts": [
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "pythOracle",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "switchboardPriceOracle",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "switchboardTwapOracle",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "scopePrices",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                }
            ],
            "args": []
        },
        {
            "name": "refreshReservesBatch",
            "accounts": [],
            "args": [
                {
                    "name": "skipPriceUpdates",
                    "type": "bool"
                }
            ]
        },
        {
            "name": "calculateCtokenExchangeRate",
            "accounts": [
                {
                    "name": "reserve",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [],
            "returns": {
                "defined": "ExchangeRateWithDecimals"
            }
        },
        {
            "name": "depositReserveLiquidity",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquiditySupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveCollateralMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSourceLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userDestinationCollateral",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collateralTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "liquidityTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "redeemReserveCollateral",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveCollateralMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquiditySupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSourceCollateral",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userDestinationLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collateralTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "liquidityTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "collateralAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "initObligation",
            "accounts": [
                {
                    "name": "obligationOwner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "feePayer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "seed1Account",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "seed2Account",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "ownerUserMetadata",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "args",
                    "type": {
                        "defined": "InitObligationArgs"
                    }
                }
            ]
        },
        {
            "name": "initObligationFarmsForReserve",
            "accounts": [
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveFarmState",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "obligationFarm",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "mode",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "refreshObligationFarmsForReserve",
            "accounts": [
                {
                    "name": "crank",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "baseAccounts",
                    "accounts": [
                        {
                            "name": "obligation",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserve",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "mode",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "refreshObligation",
            "accounts": [
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "depositObligationCollateral",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "depositReserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveDestinationCollateral",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSourceCollateral",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "collateralAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "depositObligationCollateralV2",
            "accounts": [
                {
                    "name": "depositAccounts",
                    "accounts": [
                        {
                            "name": "owner",
                            "isMut": false,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "depositReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveDestinationCollateral",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userSourceCollateral",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "tokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "farmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "collateralAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "withdrawObligationCollateral",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "withdrawReserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveSourceCollateral",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userDestinationCollateral",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "collateralAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "withdrawObligationCollateralV2",
            "accounts": [
                {
                    "name": "withdrawAccounts",
                    "accounts": [
                        {
                            "name": "owner",
                            "isMut": true,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "withdrawReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveSourceCollateral",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userDestinationCollateral",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "tokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "farmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "collateralAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "borrowObligationLiquidity",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "borrowReserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "borrowReserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveSourceLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "borrowReserveLiquidityFeeReceiver",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userDestinationLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "referrerTokenState",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "borrowObligationLiquidityV2",
            "accounts": [
                {
                    "name": "borrowAccounts",
                    "accounts": [
                        {
                            "name": "owner",
                            "isMut": false,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "borrowReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "borrowReserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserveSourceLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "borrowReserveLiquidityFeeReceiver",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userDestinationLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "referrerTokenState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "tokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "farmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "repayObligationLiquidity",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "repayReserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveDestinationLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSourceLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "repayObligationLiquidityV2",
            "accounts": [
                {
                    "name": "repayAccounts",
                    "accounts": [
                        {
                            "name": "owner",
                            "isMut": false,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "repayReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserveDestinationLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userSourceLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "tokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "farmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "repayAndWithdrawAndRedeem",
            "accounts": [
                {
                    "name": "repayAccounts",
                    "accounts": [
                        {
                            "name": "owner",
                            "isMut": false,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "repayReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserveDestinationLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userSourceLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "tokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "withdrawAccounts",
                    "accounts": [
                        {
                            "name": "owner",
                            "isMut": true,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "withdrawReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserveSourceCollateral",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveCollateralMint",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquiditySupply",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userDestinationLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "placeholderUserDestinationCollateral",
                            "isMut": false,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "collateralTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "liquidityTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "collateralFarmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "debtFarmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "repayAmount",
                    "type": "u64"
                },
                {
                    "name": "withdrawCollateralAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "depositAndWithdraw",
            "accounts": [
                {
                    "name": "depositAccounts",
                    "accounts": [
                        {
                            "name": "owner",
                            "isMut": true,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquiditySupply",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveCollateralMint",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveDestinationDepositCollateral",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userSourceLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "placeholderUserDestinationCollateral",
                            "isMut": false,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "collateralTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "liquidityTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "withdrawAccounts",
                    "accounts": [
                        {
                            "name": "owner",
                            "isMut": true,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "withdrawReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserveSourceCollateral",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveCollateralMint",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquiditySupply",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userDestinationLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "placeholderUserDestinationCollateral",
                            "isMut": false,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "collateralTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "liquidityTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "depositFarmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "withdrawFarmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                },
                {
                    "name": "withdrawCollateralAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "depositReserveLiquidityAndObligationCollateral",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquiditySupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveCollateralMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveDestinationDepositCollateral",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSourceLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "placeholderUserDestinationCollateral",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "collateralTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "liquidityTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "depositReserveLiquidityAndObligationCollateralV2",
            "accounts": [
                {
                    "name": "depositAccounts",
                    "accounts": [
                        {
                            "name": "owner",
                            "isMut": true,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquiditySupply",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveCollateralMint",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveDestinationDepositCollateral",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userSourceLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "placeholderUserDestinationCollateral",
                            "isMut": false,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "collateralTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "liquidityTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "farmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "withdrawObligationCollateralAndRedeemReserveCollateral",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "withdrawReserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveSourceCollateral",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveCollateralMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquiditySupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userDestinationLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "placeholderUserDestinationCollateral",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "collateralTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "liquidityTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "collateralAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "withdrawObligationCollateralAndRedeemReserveCollateralV2",
            "accounts": [
                {
                    "name": "withdrawAccounts",
                    "accounts": [
                        {
                            "name": "owner",
                            "isMut": true,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "withdrawReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserveSourceCollateral",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveCollateralMint",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "reserveLiquiditySupply",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userDestinationLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "placeholderUserDestinationCollateral",
                            "isMut": false,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "collateralTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "liquidityTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "farmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "collateralAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "liquidateObligationAndRedeemReserveCollateral",
            "accounts": [
                {
                    "name": "liquidator",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "repayReserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "repayReserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "repayReserveLiquiditySupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "withdrawReserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "withdrawReserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "withdrawReserveCollateralMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "withdrawReserveCollateralSupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "withdrawReserveLiquiditySupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "withdrawReserveLiquidityFeeReceiver",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSourceLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userDestinationCollateral",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userDestinationLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collateralTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "repayLiquidityTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "withdrawLiquidityTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                },
                {
                    "name": "minAcceptableReceivedLiquidityAmount",
                    "type": "u64"
                },
                {
                    "name": "maxAllowedLtvOverridePercent",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "liquidateObligationAndRedeemReserveCollateralV2",
            "accounts": [
                {
                    "name": "liquidationAccounts",
                    "accounts": [
                        {
                            "name": "liquidator",
                            "isMut": false,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "repayReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "repayReserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "repayReserveLiquiditySupply",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "withdrawReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "withdrawReserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "withdrawReserveCollateralMint",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "withdrawReserveCollateralSupply",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "withdrawReserveLiquiditySupply",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "withdrawReserveLiquidityFeeReceiver",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userSourceLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userDestinationCollateral",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userDestinationLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "collateralTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "repayLiquidityTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "withdrawLiquidityTokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "collateralFarmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "debtFarmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                },
                {
                    "name": "minAcceptableReceivedLiquidityAmount",
                    "type": "u64"
                },
                {
                    "name": "maxAllowedLtvOverridePercent",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "flashRepayReserveLiquidity",
            "accounts": [
                {
                    "name": "userTransferAuthority",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveDestinationLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSourceLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityFeeReceiver",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "referrerTokenState",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "referrerAccount",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "sysvarInfo",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                },
                {
                    "name": "borrowInstructionIndex",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "flashBorrowReserveLiquidity",
            "accounts": [
                {
                    "name": "userTransferAuthority",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveSourceLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userDestinationLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityFeeReceiver",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "referrerTokenState",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "referrerAccount",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "sysvarInfo",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "liquidityAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "requestElevationGroup",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "elevationGroup",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "initReferrerTokenState",
            "accounts": [
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "referrer",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "referrerTokenState",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "initUserMetadata",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "feePayer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "userMetadata",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "referrerUserMetadata",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "userLookupTable",
                    "type": "publicKey"
                }
            ]
        },
        {
            "name": "withdrawReferrerFees",
            "accounts": [
                {
                    "name": "referrer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "referrerTokenState",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveSupplyLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "referrerTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "initReferrerStateAndShortUrl",
            "accounts": [
                {
                    "name": "referrer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "referrerState",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "referrerShortUrl",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "referrerUserMetadata",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "shortUrl",
                    "type": "string"
                }
            ]
        },
        {
            "name": "deleteReferrerStateAndShortUrl",
            "accounts": [
                {
                    "name": "referrer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "referrerState",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "shortUrl",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "setObligationOrder",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "index",
                    "type": "u8"
                },
                {
                    "name": "order",
                    "type": {
                        "defined": "ObligationOrder"
                    }
                }
            ]
        },
        {
            "name": "setBorrowOrder",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "filledDebtDestination",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "debtLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "eventAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "program",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "orderConfig",
                    "type": {
                        "defined": "BorrowOrderConfigArgs"
                    }
                },
                {
                    "name": "minExpectedCurrentRemainingDebtAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "setBorrowOrderV2",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "filledDebtDestination",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "debtLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "eventAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "program",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "orderIdx",
                    "type": "u8"
                },
                {
                    "name": "orderConfig",
                    "type": {
                        "defined": "BorrowOrderConfigArgs"
                    }
                },
                {
                    "name": "minExpectedCurrentRemainingDebtAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "updateObligationConfig",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "borrowReserve",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "depositReserve",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "mode",
                    "type": {
                        "defined": "UpdateObligationConfigMode"
                    }
                },
                {
                    "name": "value",
                    "type": "bytes"
                }
            ]
        },
        {
            "name": "rolloverFixedTermBorrow",
            "accounts": [
                {
                    "name": "rolloverAccounts",
                    "accounts": [
                        {
                            "name": "payer",
                            "isMut": false,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "sourceBorrowReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "targetBorrowReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "liquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "sourceBorrowReserveLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "targetBorrowReserveLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "tokenProgram",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "sourceFarmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "targetFarmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "fillBorrowOrder",
            "accounts": [
                {
                    "name": "borrowAccounts",
                    "accounts": [
                        {
                            "name": "payer",
                            "isMut": false,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "borrowReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "borrowReserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserveSourceLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "borrowReserveLiquidityFeeReceiver",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userDestinationLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "referrerTokenState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "tokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "farmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "eventAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "program",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "fillBorrowOrderV2",
            "accounts": [
                {
                    "name": "borrowAccounts",
                    "accounts": [
                        {
                            "name": "payer",
                            "isMut": false,
                            "isSigner": true
                        },
                        {
                            "name": "obligation",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarket",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "lendingMarketAuthority",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "borrowReserve",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "borrowReserveLiquidityMint",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "reserveSourceLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "borrowReserveLiquidityFeeReceiver",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "userDestinationLiquidity",
                            "isMut": true,
                            "isSigner": false
                        },
                        {
                            "name": "referrerTokenState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "tokenProgram",
                            "isMut": false,
                            "isSigner": false
                        },
                        {
                            "name": "instructionSysvarAccount",
                            "isMut": false,
                            "isSigner": false
                        }
                    ]
                },
                {
                    "name": "farmsAccounts",
                    "accounts": [
                        {
                            "name": "obligationFarmUserState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        },
                        {
                            "name": "reserveFarmState",
                            "isMut": true,
                            "isSigner": false,
                            "isOptional": true
                        }
                    ]
                },
                {
                    "name": "farmsProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "eventAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "program",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "orderIdx",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "initiateObligationOwnershipTransfer",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "newOwner",
                    "type": "publicKey"
                }
            ]
        },
        {
            "name": "approveObligationOwnershipTransfer",
            "accounts": [
                {
                    "name": "globalAdmin",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "pendingOwner",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "acceptObligationOwnership",
            "accounts": [
                {
                    "name": "pendingOwner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "abortObligationOwnershipTransfer",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "obligation",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "enqueueToWithdraw",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSourceCollateralTa",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userDestinationLiquidityTa",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveCollateralMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "collateralTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "withdrawTicket",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "ownerQueuedCollateralVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "progressCallbackCustomAccount0",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "progressCallbackCustomAccount1",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "collateralAmount",
                    "type": "u64"
                },
                {
                    "name": "progressCallbackType",
                    "type": {
                        "defined": "ProgressCallbackType"
                    }
                }
            ]
        },
        {
            "name": "withdrawQueuedLiquidity",
            "accounts": [
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquidityMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveCollateralMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveLiquiditySupply",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "ownerQueuedCollateralVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userDestinationLiquidity",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collateralTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "liquidityTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "withdrawTicket",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "withdrawTicketOwner",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "associatedTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "progressCallbackProgram",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "progressCallbackCustomAccount0",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "progressCallbackCustomAccount1",
                    "isMut": false,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [],
            "returns": "bool"
        },
        {
            "name": "recoverInvalidTicketCollateral",
            "accounts": [
                {
                    "name": "payer",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserveCollateralMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "ownerQueuedCollateralVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userSourceCollateral",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collateralTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "withdrawTicket",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "withdrawTicketOwner",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "ticketSequenceNumber",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "cancelWithdrawTicket",
            "accounts": [
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarketAuthority",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "reserveCollateralMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "ownerQueuedCollateralVault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userDestinationCollateral",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collateralTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "withdrawTicket",
                    "isMut": true,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "ticketSequenceNumber",
                    "type": "u64"
                },
                {
                    "name": "collateralAmountToCancel",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "initGlobalConfig",
            "accounts": [
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "programData",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "updateGlobalConfig",
            "accounts": [
                {
                    "name": "globalAdmin",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "mode",
                    "type": {
                        "defined": "UpdateGlobalConfigMode"
                    }
                },
                {
                    "name": "value",
                    "type": "bytes"
                }
            ]
        },
        {
            "name": "updateGlobalConfigAdmin",
            "accounts": [
                {
                    "name": "pendingAdmin",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "idlMissingTypes",
            "accounts": [
                {
                    "name": "signer",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "globalConfig",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lendingMarket",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "reserve",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionSysvarAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "reserveFarmKind",
                    "type": {
                        "defined": "ReserveFarmKind"
                    }
                },
                {
                    "name": "feeCalculation",
                    "type": {
                        "defined": "FeeCalculation"
                    }
                },
                {
                    "name": "reserveStatus",
                    "type": {
                        "defined": "ReserveStatus"
                    }
                },
                {
                    "name": "updateConfigMode",
                    "type": {
                        "defined": "UpdateConfigMode"
                    }
                },
                {
                    "name": "updateLendingMarketConfigValue",
                    "type": {
                        "defined": "UpdateLendingMarketConfigValue"
                    }
                },
                {
                    "name": "updateLendingMarketConfigMode",
                    "type": {
                        "defined": "UpdateLendingMarketMode"
                    }
                }
            ]
        }
    ],
    "accounts": [
        {
            "name": "UserState",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "userId",
                        "type": "u64"
                    },
                    {
                        "name": "farmState",
                        "type": "publicKey"
                    },
                    {
                        "name": "owner",
                        "type": "publicKey"
                    },
                    {
                        "name": "isFarmDelegated",
                        "type": "u8"
                    },
                    {
                        "name": "padding0",
                        "type": {
                            "array": [
                                "u8",
                                7
                            ]
                        }
                    },
                    {
                        "name": "rewardsTallyScaled",
                        "type": {
                            "array": [
                                "u128",
                                10
                            ]
                        }
                    },
                    {
                        "name": "rewardsIssuedUnclaimed",
                        "type": {
                            "array": [
                                "u64",
                                10
                            ]
                        }
                    },
                    {
                        "name": "lastClaimTs",
                        "type": {
                            "array": [
                                "u64",
                                10
                            ]
                        }
                    },
                    {
                        "name": "activeStakeScaled",
                        "type": "u128"
                    },
                    {
                        "name": "pendingDepositStakeScaled",
                        "type": "u128"
                    },
                    {
                        "name": "pendingDepositStakeTs",
                        "type": "u64"
                    },
                    {
                        "name": "pendingWithdrawalUnstakeScaled",
                        "type": "u128"
                    },
                    {
                        "name": "pendingWithdrawalUnstakeTs",
                        "type": "u64"
                    },
                    {
                        "name": "bump",
                        "type": "u64"
                    },
                    {
                        "name": "delegatee",
                        "type": "publicKey"
                    },
                    {
                        "name": "lastStakeTs",
                        "type": "u64"
                    },
                    {
                        "name": "padding1",
                        "type": {
                            "array": [
                                "u64",
                                50
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "GlobalConfig",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "globalAdmin",
                        "type": "publicKey"
                    },
                    {
                        "name": "pendingAdmin",
                        "type": "publicKey"
                    },
                    {
                        "name": "feeCollector",
                        "type": "publicKey"
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u8",
                                928
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "LendingMarket",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "version",
                        "type": "u64"
                    },
                    {
                        "name": "bumpSeed",
                        "type": "u64"
                    },
                    {
                        "name": "lendingMarketOwner",
                        "type": "publicKey"
                    },
                    {
                        "name": "lendingMarketOwnerCached",
                        "type": "publicKey"
                    },
                    {
                        "name": "quoteCurrency",
                        "type": {
                            "array": [
                                "u8",
                                32
                            ]
                        }
                    },
                    {
                        "name": "referralFeeBps",
                        "type": "u16"
                    },
                    {
                        "name": "emergencyMode",
                        "type": "u8"
                    },
                    {
                        "name": "autodeleverageEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "borrowDisabled",
                        "type": "u8"
                    },
                    {
                        "name": "priceRefreshTriggerToMaxAgePct",
                        "type": "u8"
                    },
                    {
                        "name": "liquidationMaxDebtCloseFactorPct",
                        "type": "u8"
                    },
                    {
                        "name": "insolvencyRiskUnhealthyLtvPct",
                        "type": "u8"
                    },
                    {
                        "name": "minFullLiquidationValueThreshold",
                        "type": "u64"
                    },
                    {
                        "name": "maxLiquidatableDebtMarketValueAtOnce",
                        "type": "u64"
                    },
                    {
                        "name": "reserved0",
                        "type": {
                            "array": [
                                "u8",
                                8
                            ]
                        }
                    },
                    {
                        "name": "globalAllowedBorrowValue",
                        "type": "u64"
                    },
                    {
                        "name": "emergencyCouncil",
                        "type": "publicKey"
                    },
                    {
                        "name": "reserved1",
                        "type": {
                            "array": [
                                "u8",
                                8
                            ]
                        }
                    },
                    {
                        "name": "elevationGroups",
                        "type": {
                            "array": [
                                {
                                    "defined": "ElevationGroup"
                                },
                                32
                            ]
                        }
                    },
                    {
                        "name": "elevationGroupPadding",
                        "type": {
                            "array": [
                                "u64",
                                90
                            ]
                        }
                    },
                    {
                        "name": "minNetValueInObligationSf",
                        "type": "u128"
                    },
                    {
                        "name": "minValueSkipLiquidationLtvChecks",
                        "type": "u64"
                    },
                    {
                        "name": "name",
                        "type": {
                            "array": [
                                "u8",
                                32
                            ]
                        }
                    },
                    {
                        "name": "minValueSkipLiquidationBfChecks",
                        "type": "u64"
                    },
                    {
                        "name": "individualAutodeleverageMarginCallPeriodSecs",
                        "type": "u64"
                    },
                    {
                        "name": "minInitialDepositAmount",
                        "type": "u64"
                    },
                    {
                        "name": "obligationOrderExecutionEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "immutable",
                        "type": "u8"
                    },
                    {
                        "name": "obligationOrderCreationEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "priceTriggeredLiquidationDisabled",
                        "type": "u8"
                    },
                    {
                        "name": "matureReserveDebtLiquidationEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "obligationBorrowDebtTermLiquidationEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "borrowOrderCreationEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "borrowOrderExecutionEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "proposerAuthority",
                        "type": "publicKey"
                    },
                    {
                        "name": "minBorrowOrderFillValue",
                        "type": "u64"
                    },
                    {
                        "name": "withdrawTicketIssuanceEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "withdrawTicketRedemptionEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "obligationBorrowRolloverConfigurationEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "obligationBorrowMigrationToFixedExecutionEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "withdrawTicketCancellationEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "disableNonceBlock",
                        "type": "u8"
                    },
                    {
                        "name": "reserveRewardsMaxAprBps",
                        "type": "u16"
                    },
                    {
                        "name": "minWithdrawQueuedLiquidityValue",
                        "type": "u64"
                    },
                    {
                        "name": "fixedTermRolloverWindowDurationSeconds",
                        "type": "u64"
                    },
                    {
                        "name": "openTermRolloverWindowDurationSeconds",
                        "type": "u64"
                    },
                    {
                        "name": "minPartialRolloverValue",
                        "type": "u64"
                    },
                    {
                        "name": "termBasedFullLiquidationDurationSecs",
                        "type": "u64"
                    },
                    {
                        "name": "permissioningAuthority",
                        "type": "publicKey"
                    },
                    {
                        "name": "permissionedOps",
                        "type": "u64"
                    },
                    {
                        "name": "padding1",
                        "type": {
                            "array": [
                                "u64",
                                153
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "Obligation",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "tag",
                        "type": "u64"
                    },
                    {
                        "name": "lastUpdate",
                        "type": {
                            "defined": "LastUpdate"
                        }
                    },
                    {
                        "name": "lendingMarket",
                        "type": "publicKey"
                    },
                    {
                        "name": "owner",
                        "type": "publicKey"
                    },
                    {
                        "name": "deposits",
                        "type": {
                            "array": [
                                {
                                    "defined": "ObligationCollateral"
                                },
                                8
                            ]
                        }
                    },
                    {
                        "name": "lowestReserveDepositLiquidationLtv",
                        "type": "u64"
                    },
                    {
                        "name": "depositedValueSf",
                        "type": "u128"
                    },
                    {
                        "name": "borrows",
                        "type": {
                            "array": [
                                {
                                    "defined": "ObligationLiquidity"
                                },
                                5
                            ]
                        }
                    },
                    {
                        "name": "borrowFactorAdjustedDebtValueSf",
                        "type": "u128"
                    },
                    {
                        "name": "borrowedAssetsMarketValueSf",
                        "type": "u128"
                    },
                    {
                        "name": "allowedBorrowValueSf",
                        "type": "u128"
                    },
                    {
                        "name": "unhealthyBorrowValueSf",
                        "type": "u128"
                    },
                    {
                        "name": "paddingDeprecatedAssetTiers",
                        "type": {
                            "array": [
                                "u8",
                                13
                            ]
                        }
                    },
                    {
                        "name": "elevationGroup",
                        "type": "u8"
                    },
                    {
                        "name": "numOfObsoleteDepositReserves",
                        "type": "u8"
                    },
                    {
                        "name": "hasDebt",
                        "type": "u8"
                    },
                    {
                        "name": "referrer",
                        "type": "publicKey"
                    },
                    {
                        "name": "borrowingDisabled",
                        "type": "u8"
                    },
                    {
                        "name": "autodeleverageTargetLtvPct",
                        "type": "u8"
                    },
                    {
                        "name": "lowestReserveDepositMaxLtvPct",
                        "type": "u8"
                    },
                    {
                        "name": "numOfObsoleteBorrowReserves",
                        "type": "u8"
                    },
                    {
                        "name": "ownershipTransferState",
                        "type": "u8"
                    },
                    {
                        "name": "reserved",
                        "type": {
                            "array": [
                                "u8",
                                3
                            ]
                        }
                    },
                    {
                        "name": "highestBorrowFactorPct",
                        "type": "u64"
                    },
                    {
                        "name": "autodeleverageMarginCallStartedTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "obligationOrders",
                        "type": {
                            "array": [
                                {
                                    "defined": "ObligationOrder"
                                },
                                2
                            ]
                        }
                    },
                    {
                        "name": "headBorrowOrder",
                        "type": {
                            "defined": "BorrowOrder"
                        }
                    },
                    {
                        "name": "pendingOwner",
                        "type": "publicKey"
                    },
                    {
                        "name": "tailBorrowOrders",
                        "type": {
                            "array": [
                                {
                                    "defined": "BorrowOrder"
                                },
                                2
                            ]
                        }
                    },
                    {
                        "name": "padding3",
                        "type": {
                            "array": [
                                "u64",
                                29
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "ReferrerState",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "shortUrl",
                        "type": "publicKey"
                    },
                    {
                        "name": "owner",
                        "type": "publicKey"
                    }
                ]
            }
        },
        {
            "name": "ReferrerTokenState",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "referrer",
                        "type": "publicKey"
                    },
                    {
                        "name": "mint",
                        "type": "publicKey"
                    },
                    {
                        "name": "amountUnclaimedSf",
                        "type": "u128"
                    },
                    {
                        "name": "amountCumulativeSf",
                        "type": "u128"
                    },
                    {
                        "name": "bump",
                        "type": "u64"
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u64",
                                31
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "ShortUrl",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "referrer",
                        "type": "publicKey"
                    },
                    {
                        "name": "shortUrl",
                        "type": "string"
                    }
                ]
            }
        },
        {
            "name": "UserMetadata",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "referrer",
                        "type": "publicKey"
                    },
                    {
                        "name": "bump",
                        "type": "u64"
                    },
                    {
                        "name": "userLookupTable",
                        "type": "publicKey"
                    },
                    {
                        "name": "owner",
                        "type": "publicKey"
                    },
                    {
                        "name": "padding1",
                        "type": {
                            "array": [
                                "u64",
                                51
                            ]
                        }
                    },
                    {
                        "name": "padding2",
                        "type": {
                            "array": [
                                "u64",
                                64
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "Reserve",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "version",
                        "type": "u64"
                    },
                    {
                        "name": "lastUpdate",
                        "type": {
                            "defined": "LastUpdate"
                        }
                    },
                    {
                        "name": "lendingMarket",
                        "type": "publicKey"
                    },
                    {
                        "name": "farmCollateral",
                        "type": "publicKey"
                    },
                    {
                        "name": "farmDebt",
                        "type": "publicKey"
                    },
                    {
                        "name": "liquidity",
                        "type": {
                            "defined": "ReserveLiquidity"
                        }
                    },
                    {
                        "name": "reserveLiquidityPadding",
                        "type": {
                            "array": [
                                "u64",
                                150
                            ]
                        }
                    },
                    {
                        "name": "collateral",
                        "type": {
                            "defined": "ReserveCollateral"
                        }
                    },
                    {
                        "name": "reserveCollateralPadding",
                        "type": {
                            "array": [
                                "u64",
                                150
                            ]
                        }
                    },
                    {
                        "name": "config",
                        "type": {
                            "defined": "ReserveConfig"
                        }
                    },
                    {
                        "name": "configPadding",
                        "type": {
                            "array": [
                                "u64",
                                112
                            ]
                        }
                    },
                    {
                        "name": "borrowedAmountOutsideElevationGroup",
                        "type": "u64"
                    },
                    {
                        "name": "borrowedAmountsAgainstThisReserveInElevationGroups",
                        "type": {
                            "array": [
                                "u64",
                                32
                            ]
                        }
                    },
                    {
                        "name": "withdrawQueue",
                        "type": {
                            "defined": "WithdrawQueue"
                        }
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u64",
                                204
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "WithdrawTicket",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "sequenceNumber",
                        "type": "u64"
                    },
                    {
                        "name": "owner",
                        "type": "publicKey"
                    },
                    {
                        "name": "reserve",
                        "type": "publicKey"
                    },
                    {
                        "name": "userDestinationLiquidityTa",
                        "type": "publicKey"
                    },
                    {
                        "name": "queuedCollateralAmount",
                        "type": "u64"
                    },
                    {
                        "name": "createdAtTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "invalid",
                        "type": "u8"
                    },
                    {
                        "name": "progressCallbackType",
                        "type": "u8"
                    },
                    {
                        "name": "alignmentPadding",
                        "type": {
                            "array": [
                                "u8",
                                6
                            ]
                        }
                    },
                    {
                        "name": "progressCallbackCustomAccounts",
                        "type": {
                            "array": [
                                "publicKey",
                                2
                            ]
                        }
                    },
                    {
                        "name": "endPadding",
                        "type": {
                            "array": [
                                "u64",
                                40
                            ]
                        }
                    }
                ]
            }
        }
    ],
    "types": [
        {
            "name": "ExchangeRateWithDecimals",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "exchangeRateSf",
                        "type": "u128"
                    },
                    {
                        "name": "mintDecimals",
                        "type": "u8"
                    }
                ]
            }
        },
        {
            "name": "ReserveConfigCustomizationArgs",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "overrideFixedRateBps",
                        "type": "u8"
                    },
                    {
                        "name": "fixedBorrowRateBps",
                        "type": "u32"
                    },
                    {
                        "name": "overrideDebtTermSeconds",
                        "type": "u8"
                    },
                    {
                        "name": "debtTermSeconds",
                        "type": "u64"
                    },
                    {
                        "name": "clearElevationGroups",
                        "type": "u8"
                    }
                ]
            }
        },
        {
            "name": "BorrowOrderConfigArgs",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "remainingDebtAmount",
                        "type": "u64"
                    },
                    {
                        "name": "maxBorrowRateBps",
                        "type": "u32"
                    },
                    {
                        "name": "minDebtTermSeconds",
                        "type": "u64"
                    },
                    {
                        "name": "fillableUntilTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "enableAutoRolloverOnFilledBorrows",
                        "type": "bool"
                    }
                ]
            }
        },
        {
            "name": "UpdateConfigMode",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "UpdateLoanToValuePct"
                    },
                    {
                        "name": "UpdateMaxLiquidationBonusBps"
                    },
                    {
                        "name": "UpdateLiquidationThresholdPct"
                    },
                    {
                        "name": "UpdateProtocolLiquidationFee"
                    },
                    {
                        "name": "UpdateProtocolTakeRate"
                    },
                    {
                        "name": "UpdateFeesOriginationFee"
                    },
                    {
                        "name": "UpdateFeesFlashLoanFee"
                    },
                    {
                        "name": "DeprecatedUpdateFeesReferralFeeBps"
                    },
                    {
                        "name": "UpdateDepositLimit"
                    },
                    {
                        "name": "UpdateBorrowLimit"
                    },
                    {
                        "name": "UpdateTokenInfoLowerHeuristic"
                    },
                    {
                        "name": "UpdateTokenInfoUpperHeuristic"
                    },
                    {
                        "name": "UpdateTokenInfoExpHeuristic"
                    },
                    {
                        "name": "UpdateTokenInfoTwapDivergence"
                    },
                    {
                        "name": "UpdateTokenInfoScopeTwap"
                    },
                    {
                        "name": "UpdateTokenInfoScopeChain"
                    },
                    {
                        "name": "UpdateTokenInfoName"
                    },
                    {
                        "name": "UpdateTokenInfoPriceMaxAge"
                    },
                    {
                        "name": "UpdateTokenInfoTwapMaxAge"
                    },
                    {
                        "name": "UpdateScopePriceFeed"
                    },
                    {
                        "name": "UpdatePythPrice"
                    },
                    {
                        "name": "UpdateSwitchboardFeed"
                    },
                    {
                        "name": "UpdateSwitchboardTwapFeed"
                    },
                    {
                        "name": "UpdateBorrowRateCurve"
                    },
                    {
                        "name": "DeprecatedUpdateEntireReserveConfig"
                    },
                    {
                        "name": "UpdateDebtWithdrawalCap"
                    },
                    {
                        "name": "UpdateDepositWithdrawalCap"
                    },
                    {
                        "name": "DeprecatedUpdateDebtWithdrawalCapCurrentTotal"
                    },
                    {
                        "name": "DeprecatedUpdateDepositWithdrawalCapCurrentTotal"
                    },
                    {
                        "name": "UpdateBadDebtLiquidationBonusBps"
                    },
                    {
                        "name": "UpdateMinLiquidationBonusBps"
                    },
                    {
                        "name": "UpdateDeleveragingMarginCallPeriod"
                    },
                    {
                        "name": "UpdateBorrowFactor"
                    },
                    {
                        "name": "DeprecatedUpdateAssetTier"
                    },
                    {
                        "name": "UpdateElevationGroup"
                    },
                    {
                        "name": "UpdateDeleveragingThresholdDecreaseBpsPerDay"
                    },
                    {
                        "name": "DeprecatedUpdateMultiplierSideBoost"
                    },
                    {
                        "name": "DeprecatedUpdateMultiplierTagBoost"
                    },
                    {
                        "name": "UpdateReserveStatus"
                    },
                    {
                        "name": "UpdateFarmCollateral"
                    },
                    {
                        "name": "UpdateFarmDebt"
                    },
                    {
                        "name": "UpdateDisableUsageAsCollateralOutsideEmode"
                    },
                    {
                        "name": "UpdateBlockBorrowingAboveUtilizationPct"
                    },
                    {
                        "name": "UpdateBlockPriceUsage"
                    },
                    {
                        "name": "UpdateBorrowLimitOutsideElevationGroup"
                    },
                    {
                        "name": "UpdateBorrowLimitsInElevationGroupAgainstThisReserve"
                    },
                    {
                        "name": "UpdateHostFixedInterestRateBps"
                    },
                    {
                        "name": "UpdateAutodeleverageEnabled"
                    },
                    {
                        "name": "UpdateDeleveragingBonusIncreaseBpsPerDay"
                    },
                    {
                        "name": "UpdateProtocolOrderExecutionFee"
                    },
                    {
                        "name": "UpdateProposerAuthorityLock"
                    },
                    {
                        "name": "UpdateMinDeleveragingBonusBps"
                    },
                    {
                        "name": "UpdateBlockCTokenUsage"
                    },
                    {
                        "name": "UpdateDebtMaturityTimestamp"
                    },
                    {
                        "name": "UpdateDebtTermSeconds"
                    },
                    {
                        "name": "UpdateEarlyRepayRemainingInterestPct"
                    },
                    {
                        "name": "UpdateReserveEmergencyMode"
                    },
                    {
                        "name": "UpdateRewardsAmountPerSlot"
                    },
                    {
                        "name": "UpdateReservePermissionedOps"
                    }
                ]
            }
        },
        {
            "name": "UpdateLendingMarketConfigValue",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Bool",
                        "fields": [
                            "bool"
                        ]
                    },
                    {
                        "name": "U8",
                        "fields": [
                            "u8"
                        ]
                    },
                    {
                        "name": "U8Array",
                        "fields": [
                            {
                                "array": [
                                    "u8",
                                    8
                                ]
                            }
                        ]
                    },
                    {
                        "name": "U16",
                        "fields": [
                            "u16"
                        ]
                    },
                    {
                        "name": "U64",
                        "fields": [
                            "u64"
                        ]
                    },
                    {
                        "name": "U128",
                        "fields": [
                            "u128"
                        ]
                    },
                    {
                        "name": "Pubkey",
                        "fields": [
                            "publicKey"
                        ]
                    },
                    {
                        "name": "ElevationGroup",
                        "fields": [
                            {
                                "defined": "ElevationGroup"
                            }
                        ]
                    },
                    {
                        "name": "Name",
                        "fields": [
                            {
                                "array": [
                                    "u8",
                                    32
                                ]
                            }
                        ]
                    }
                ]
            }
        },
        {
            "name": "UpdateLendingMarketMode",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "UpdateOwner"
                    },
                    {
                        "name": "UpdateEmergencyMode"
                    },
                    {
                        "name": "UpdateLiquidationCloseFactor"
                    },
                    {
                        "name": "UpdateLiquidationMaxValue"
                    },
                    {
                        "name": "DeprecatedUpdateGlobalUnhealthyBorrow"
                    },
                    {
                        "name": "UpdateGlobalAllowedBorrow"
                    },
                    {
                        "name": "UpdateEmergencyCouncil"
                    },
                    {
                        "name": "UpdateMinFullLiquidationThreshold"
                    },
                    {
                        "name": "UpdateInsolvencyRiskLtv"
                    },
                    {
                        "name": "UpdateElevationGroup"
                    },
                    {
                        "name": "UpdateReferralFeeBps"
                    },
                    {
                        "name": "DeprecatedUpdateMultiplierPoints"
                    },
                    {
                        "name": "UpdatePriceRefreshTriggerToMaxAgePct"
                    },
                    {
                        "name": "UpdateAutodeleverageEnabled"
                    },
                    {
                        "name": "UpdateBorrowingDisabled"
                    },
                    {
                        "name": "UpdateMinNetValueObligationPostAction"
                    },
                    {
                        "name": "UpdateMinValueLtvSkipPriorityLiqCheck"
                    },
                    {
                        "name": "UpdateMinValueBfSkipPriorityLiqCheck"
                    },
                    {
                        "name": "UpdatePaddingFields"
                    },
                    {
                        "name": "UpdateName"
                    },
                    {
                        "name": "UpdateIndividualAutodeleverageMarginCallPeriodSecs"
                    },
                    {
                        "name": "UpdateInitialDepositAmount"
                    },
                    {
                        "name": "UpdateObligationOrderExecutionEnabled"
                    },
                    {
                        "name": "UpdateImmutableFlag"
                    },
                    {
                        "name": "UpdateObligationOrderCreationEnabled"
                    },
                    {
                        "name": "UpdateProposerAuthority"
                    },
                    {
                        "name": "UpdatePriceTriggeredLiquidationDisabled"
                    },
                    {
                        "name": "UpdateMatureReserveDebtLiquidationEnabled"
                    },
                    {
                        "name": "UpdateObligationBorrowDebtTermLiquidationEnabled"
                    },
                    {
                        "name": "UpdateBorrowOrderCreationEnabled"
                    },
                    {
                        "name": "UpdateBorrowOrderExecutionEnabled"
                    },
                    {
                        "name": "UpdateMinBorrowOrderFillValue"
                    },
                    {
                        "name": "UpdateWithdrawTicketIssuanceEnabled"
                    },
                    {
                        "name": "UpdateWithdrawTicketRedemptionEnabled"
                    },
                    {
                        "name": "UpdateMinWithdrawQueuedLiquidityValue"
                    },
                    {
                        "name": "UpdateFixedTermRolloverWindowDurationSeconds"
                    },
                    {
                        "name": "UpdateOpenTermRolloverWindowDurationSeconds"
                    },
                    {
                        "name": "UpdateObligationBorrowRolloverConfigurationEnabled"
                    },
                    {
                        "name": "UpdateTermBasedFullLiquidationDurationSecs"
                    },
                    {
                        "name": "UpdateObligationBorrowMigrationToFixedExecutionEnabled"
                    },
                    {
                        "name": "UpdateMinPartialRolloverValue"
                    },
                    {
                        "name": "UpdateWithdrawTicketCancellationEnabled"
                    },
                    {
                        "name": "UpdatePermissioningAuthority"
                    },
                    {
                        "name": "UpdatePermissionedOps"
                    },
                    {
                        "name": "DeprecatedUpdateReserveRewardsMaxAprPct"
                    },
                    {
                        "name": "UpdateReserveRewardsMaxAprBps"
                    },
                    {
                        "name": "UpdateDisableNonceBlock"
                    }
                ]
            }
        },
        {
            "name": "UpdateGlobalConfigMode",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "PendingAdmin"
                    },
                    {
                        "name": "FeeCollector"
                    }
                ]
            }
        },
        {
            "name": "LastUpdate",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "slot",
                        "type": "u64"
                    },
                    {
                        "name": "stale",
                        "type": "u8"
                    },
                    {
                        "name": "priceStatus",
                        "type": "u8"
                    },
                    {
                        "name": "placeholder",
                        "type": {
                            "array": [
                                "u8",
                                6
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "ElevationGroup",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "maxLiquidationBonusBps",
                        "type": "u16"
                    },
                    {
                        "name": "id",
                        "type": "u8"
                    },
                    {
                        "name": "ltvPct",
                        "type": "u8"
                    },
                    {
                        "name": "liquidationThresholdPct",
                        "type": "u8"
                    },
                    {
                        "name": "allowNewLoans",
                        "type": "u8"
                    },
                    {
                        "name": "maxReservesAsCollateral",
                        "type": "u8"
                    },
                    {
                        "name": "padding0",
                        "type": "u8"
                    },
                    {
                        "name": "debtReserve",
                        "type": "publicKey"
                    },
                    {
                        "name": "padding1",
                        "type": {
                            "array": [
                                "u64",
                                4
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "BorrowOrder",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "debtLiquidityMint",
                        "type": "publicKey"
                    },
                    {
                        "name": "remainingDebtAmount",
                        "type": "u64"
                    },
                    {
                        "name": "filledDebtDestination",
                        "type": "publicKey"
                    },
                    {
                        "name": "minDebtTermSeconds",
                        "type": "u64"
                    },
                    {
                        "name": "fillableUntilTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "placedAtTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "lastUpdatedAtTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "requestedDebtAmount",
                        "type": "u64"
                    },
                    {
                        "name": "maxBorrowRateBps",
                        "type": "u32"
                    },
                    {
                        "name": "active",
                        "type": "u8"
                    },
                    {
                        "name": "enableAutoRolloverOnFilledBorrows",
                        "type": "u8"
                    },
                    {
                        "name": "padding1",
                        "type": {
                            "array": [
                                "u8",
                                2
                            ]
                        }
                    },
                    {
                        "name": "endPadding",
                        "type": {
                            "array": [
                                "u64",
                                5
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "FixedTermBorrowRolloverConfig",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "autoRolloverEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "openTermAllowed",
                        "type": "u8"
                    },
                    {
                        "name": "migrationToFixedEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "fixedTermRolloverWindowDurationDays",
                        "type": "u8"
                    },
                    {
                        "name": "maxBorrowRateBps",
                        "type": "u32"
                    },
                    {
                        "name": "minDebtTermSeconds",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "InitObligationArgs",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "tag",
                        "type": "u8"
                    },
                    {
                        "name": "id",
                        "type": "u8"
                    }
                ]
            }
        },
        {
            "name": "ObligationCollateral",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "depositReserve",
                        "type": "publicKey"
                    },
                    {
                        "name": "depositedAmount",
                        "type": "u64"
                    },
                    {
                        "name": "marketValueSf",
                        "type": "u128"
                    },
                    {
                        "name": "borrowedAmountAgainstThisCollateralInElevationGroup",
                        "type": "u64"
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u64",
                                9
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "ObligationLiquidity",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "borrowReserve",
                        "type": "publicKey"
                    },
                    {
                        "name": "cumulativeBorrowRateBsf",
                        "type": {
                            "defined": "BigFractionBytes"
                        }
                    },
                    {
                        "name": "lastBorrowedAtTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "borrowedAmountSf",
                        "type": "u128"
                    },
                    {
                        "name": "marketValueSf",
                        "type": "u128"
                    },
                    {
                        "name": "borrowFactorAdjustedMarketValueSf",
                        "type": "u128"
                    },
                    {
                        "name": "borrowedAmountOutsideElevationGroups",
                        "type": "u64"
                    },
                    {
                        "name": "fixedTermBorrowRolloverConfig",
                        "type": {
                            "defined": "FixedTermBorrowRolloverConfig"
                        }
                    },
                    {
                        "name": "borrowedAmountAtExpiration",
                        "type": "u64"
                    },
                    {
                        "name": "padding2",
                        "type": {
                            "array": [
                                "u64",
                                4
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "ObligationOrder",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "conditionThresholdSf",
                        "type": "u128"
                    },
                    {
                        "name": "opportunityParameterSf",
                        "type": "u128"
                    },
                    {
                        "name": "minExecutionBonusBps",
                        "type": "u16"
                    },
                    {
                        "name": "maxExecutionBonusBps",
                        "type": "u16"
                    },
                    {
                        "name": "conditionType",
                        "type": "u8"
                    },
                    {
                        "name": "opportunityType",
                        "type": "u8"
                    },
                    {
                        "name": "padding1",
                        "type": {
                            "array": [
                                "u8",
                                10
                            ]
                        }
                    },
                    {
                        "name": "padding2",
                        "type": {
                            "array": [
                                "u128",
                                5
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "UpdateObligationConfigMode",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "FixedTermRolloverEnabled"
                    },
                    {
                        "name": "FixedTermRolloverMaxBorrowRateBps"
                    },
                    {
                        "name": "FixedTermRolloverMinDebtTermSeconds"
                    },
                    {
                        "name": "FixedTermRolloverOpenTermAllowed"
                    },
                    {
                        "name": "MigrationToFixedEnabled"
                    },
                    {
                        "name": "FixedTermRolloverWindowDurationDays"
                    }
                ]
            }
        },
        {
            "name": "BigFractionBytes",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "value",
                        "type": {
                            "array": [
                                "u64",
                                4
                            ]
                        }
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u64",
                                2
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "FeeCalculation",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Exclusive"
                    },
                    {
                        "name": "Inclusive"
                    }
                ]
            }
        },
        {
            "name": "ReserveCollateral",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "mintPubkey",
                        "type": "publicKey"
                    },
                    {
                        "name": "mintTotalSupply",
                        "type": "u64"
                    },
                    {
                        "name": "supplyVault",
                        "type": "publicKey"
                    },
                    {
                        "name": "padding1",
                        "type": {
                            "array": [
                                "u128",
                                32
                            ]
                        }
                    },
                    {
                        "name": "padding2",
                        "type": {
                            "array": [
                                "u128",
                                32
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "ReserveConfig",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "status",
                        "type": "u8"
                    },
                    {
                        "name": "paddingDeprecatedAssetTier",
                        "type": "u8"
                    },
                    {
                        "name": "hostFixedInterestRateBps",
                        "type": "u16"
                    },
                    {
                        "name": "minDeleveragingBonusBps",
                        "type": "u16"
                    },
                    {
                        "name": "blockCtokenUsage",
                        "type": "u8"
                    },
                    {
                        "name": "earlyRepayRemainingInterestPct",
                        "type": "u8"
                    },
                    {
                        "name": "emergencyMode",
                        "type": "u8"
                    },
                    {
                        "name": "reserved1",
                        "type": {
                            "array": [
                                "u8",
                                4
                            ]
                        }
                    },
                    {
                        "name": "protocolOrderExecutionFeePct",
                        "type": "u8"
                    },
                    {
                        "name": "protocolTakeRatePct",
                        "type": "u8"
                    },
                    {
                        "name": "protocolLiquidationFeePct",
                        "type": "u8"
                    },
                    {
                        "name": "loanToValuePct",
                        "type": "u8"
                    },
                    {
                        "name": "liquidationThresholdPct",
                        "type": "u8"
                    },
                    {
                        "name": "minLiquidationBonusBps",
                        "type": "u16"
                    },
                    {
                        "name": "maxLiquidationBonusBps",
                        "type": "u16"
                    },
                    {
                        "name": "badDebtLiquidationBonusBps",
                        "type": "u16"
                    },
                    {
                        "name": "deleveragingMarginCallPeriodSecs",
                        "type": "u64"
                    },
                    {
                        "name": "deleveragingThresholdDecreaseBpsPerDay",
                        "type": "u64"
                    },
                    {
                        "name": "fees",
                        "type": {
                            "defined": "ReserveFees"
                        }
                    },
                    {
                        "name": "borrowRateCurve",
                        "type": {
                            "defined": "BorrowRateCurve"
                        }
                    },
                    {
                        "name": "borrowFactorPct",
                        "type": "u64"
                    },
                    {
                        "name": "depositLimit",
                        "type": "u64"
                    },
                    {
                        "name": "borrowLimit",
                        "type": "u64"
                    },
                    {
                        "name": "tokenInfo",
                        "type": {
                            "defined": "TokenInfo"
                        }
                    },
                    {
                        "name": "depositWithdrawalCap",
                        "type": {
                            "defined": "WithdrawalCaps"
                        }
                    },
                    {
                        "name": "debtWithdrawalCap",
                        "type": {
                            "defined": "WithdrawalCaps"
                        }
                    },
                    {
                        "name": "elevationGroups",
                        "type": {
                            "array": [
                                "u8",
                                20
                            ]
                        }
                    },
                    {
                        "name": "disableUsageAsCollOutsideEmode",
                        "type": "u8"
                    },
                    {
                        "name": "utilizationLimitBlockBorrowingAbovePct",
                        "type": "u8"
                    },
                    {
                        "name": "autodeleverageEnabled",
                        "type": "u8"
                    },
                    {
                        "name": "proposerAuthorityLocked",
                        "type": "u8"
                    },
                    {
                        "name": "borrowLimitOutsideElevationGroup",
                        "type": "u64"
                    },
                    {
                        "name": "borrowLimitAgainstThisCollateralInElevationGroup",
                        "type": {
                            "array": [
                                "u64",
                                32
                            ]
                        }
                    },
                    {
                        "name": "deleveragingBonusIncreaseBpsPerDay",
                        "type": "u64"
                    },
                    {
                        "name": "debtMaturityTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "debtTermSeconds",
                        "type": "u64"
                    },
                    {
                        "name": "rewardsAmountPerSlot",
                        "type": "u64"
                    },
                    {
                        "name": "permissionedOps",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "ReserveFarmKind",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Collateral"
                    },
                    {
                        "name": "Debt"
                    }
                ]
            }
        },
        {
            "name": "ReserveFees",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "originationFeeSf",
                        "type": "u64"
                    },
                    {
                        "name": "flashLoanFeeSf",
                        "type": "u64"
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u8",
                                8
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "ReserveLiquidity",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "mintPubkey",
                        "type": "publicKey"
                    },
                    {
                        "name": "supplyVault",
                        "type": "publicKey"
                    },
                    {
                        "name": "feeVault",
                        "type": "publicKey"
                    },
                    {
                        "name": "totalAvailableAmount",
                        "type": "u64"
                    },
                    {
                        "name": "borrowedAmountSf",
                        "type": "u128"
                    },
                    {
                        "name": "marketPriceSf",
                        "type": "u128"
                    },
                    {
                        "name": "marketPriceLastUpdatedTs",
                        "type": "u64"
                    },
                    {
                        "name": "mintDecimals",
                        "type": "u64"
                    },
                    {
                        "name": "depositLimitCrossedTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "borrowLimitCrossedTimestamp",
                        "type": "u64"
                    },
                    {
                        "name": "cumulativeBorrowRateBsf",
                        "type": {
                            "defined": "BigFractionBytes"
                        }
                    },
                    {
                        "name": "accumulatedProtocolFeesSf",
                        "type": "u128"
                    },
                    {
                        "name": "accumulatedReferrerFeesSf",
                        "type": "u128"
                    },
                    {
                        "name": "pendingReferrerFeesSf",
                        "type": "u128"
                    },
                    {
                        "name": "absoluteReferralRateSf",
                        "type": "u128"
                    },
                    {
                        "name": "tokenProgram",
                        "type": "publicKey"
                    },
                    {
                        "name": "rewardsAmountAvailable",
                        "type": "u64"
                    },
                    {
                        "name": "padding2",
                        "type": {
                            "array": [
                                "u64",
                                50
                            ]
                        }
                    },
                    {
                        "name": "padding3",
                        "type": {
                            "array": [
                                "u128",
                                32
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "ReserveStatus",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Active"
                    },
                    {
                        "name": "Obsolete"
                    },
                    {
                        "name": "Hidden"
                    }
                ]
            }
        },
        {
            "name": "WithdrawQueue",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "queuedCollateralAmount",
                        "type": "u64"
                    },
                    {
                        "name": "nextIssuedTicketSequenceNumber",
                        "type": "u64"
                    },
                    {
                        "name": "nextWithdrawableTicketSequenceNumber",
                        "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": "PriceHeuristic",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "lower",
                        "type": "u64"
                    },
                    {
                        "name": "upper",
                        "type": "u64"
                    },
                    {
                        "name": "exp",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "PythConfiguration",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "price",
                        "type": "publicKey"
                    }
                ]
            }
        },
        {
            "name": "ScopeConfiguration",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "priceFeed",
                        "type": "publicKey"
                    },
                    {
                        "name": "priceChain",
                        "type": {
                            "array": [
                                "u16",
                                4
                            ]
                        }
                    },
                    {
                        "name": "twapChain",
                        "type": {
                            "array": [
                                "u16",
                                4
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "SwitchboardConfiguration",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "priceAggregator",
                        "type": "publicKey"
                    },
                    {
                        "name": "twapAggregator",
                        "type": "publicKey"
                    }
                ]
            }
        },
        {
            "name": "TokenInfo",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "name",
                        "type": {
                            "array": [
                                "u8",
                                32
                            ]
                        }
                    },
                    {
                        "name": "heuristic",
                        "type": {
                            "defined": "PriceHeuristic"
                        }
                    },
                    {
                        "name": "maxTwapDivergenceBps",
                        "type": "u64"
                    },
                    {
                        "name": "maxAgePriceSeconds",
                        "type": "u64"
                    },
                    {
                        "name": "maxAgeTwapSeconds",
                        "type": "u64"
                    },
                    {
                        "name": "scopeConfiguration",
                        "type": {
                            "defined": "ScopeConfiguration"
                        }
                    },
                    {
                        "name": "switchboardConfiguration",
                        "type": {
                            "defined": "SwitchboardConfiguration"
                        }
                    },
                    {
                        "name": "pythConfiguration",
                        "type": {
                            "defined": "PythConfiguration"
                        }
                    },
                    {
                        "name": "blockPriceUsage",
                        "type": "u8"
                    },
                    {
                        "name": "reserved",
                        "type": {
                            "array": [
                                "u8",
                                7
                            ]
                        }
                    },
                    {
                        "name": "padding",
                        "type": {
                            "array": [
                                "u64",
                                19
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "ProgressCallbackType",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "None"
                    },
                    {
                        "name": "KlendQueueAccountingHandlerOnKvault"
                    }
                ]
            }
        },
        {
            "name": "BorrowRateCurve",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "points",
                        "type": {
                            "array": [
                                {
                                    "defined": "CurvePoint"
                                },
                                11
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "CurvePoint",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "utilizationRateBps",
                        "type": "u32"
                    },
                    {
                        "name": "borrowRateBps",
                        "type": "u32"
                    }
                ]
            }
        }
    ],
    "events": [
        {
            "name": "BorrowOrderCancelEvent",
            "fields": [
                {
                    "name": "before",
                    "type": {
                        "defined": "BorrowOrder"
                    },
                    "index": false
                }
            ]
        },
        {
            "name": "BorrowOrderFullFillEvent",
            "fields": [
                {
                    "name": "before",
                    "type": {
                        "defined": "BorrowOrder"
                    },
                    "index": false
                }
            ]
        },
        {
            "name": "BorrowOrderPartialFillEvent",
            "fields": [
                {
                    "name": "before",
                    "type": {
                        "defined": "BorrowOrder"
                    },
                    "index": false
                },
                {
                    "name": "after",
                    "type": {
                        "defined": "BorrowOrder"
                    },
                    "index": false
                }
            ]
        },
        {
            "name": "BorrowOrderPlaceEvent",
            "fields": [
                {
                    "name": "after",
                    "type": {
                        "defined": "BorrowOrder"
                    },
                    "index": false
                }
            ]
        },
        {
            "name": "BorrowOrderUpdateEvent",
            "fields": [
                {
                    "name": "before",
                    "type": {
                        "defined": "BorrowOrder"
                    },
                    "index": false
                },
                {
                    "name": "after",
                    "type": {
                        "defined": "BorrowOrder"
                    },
                    "index": false
                }
            ]
        }
    ],
    "errors": [
        {
            "code": 6000,
            "name": "InvalidMarketAuthority",
            "msg": "Market authority is invalid"
        },
        {
            "code": 6001,
            "name": "InvalidMarketOwner",
            "msg": "Market owner is invalid"
        },
        {
            "code": 6002,
            "name": "InvalidAccountOwner",
            "msg": "Input account owner is not the program address"
        },
        {
            "code": 6003,
            "name": "InvalidAmount",
            "msg": "Input amount is invalid"
        },
        {
            "code": 6004,
            "name": "InvalidConfig",
            "msg": "Input config value is invalid"
        },
        {
            "code": 6005,
            "name": "InvalidSigner",
            "msg": "Signer is not allowed to perform this action"
        },
        {
            "code": 6006,
            "name": "InvalidAccountInput",
            "msg": "Invalid account input"
        },
        {
            "code": 6007,
            "name": "MathOverflow",
            "msg": "Math operation overflow"
        },
        {
            "code": 6008,
            "name": "InsufficientLiquidity",
            "msg": "Insufficient liquidity available"
        },
        {
            "code": 6009,
            "name": "ReserveStale",
            "msg": "Reserve state needs to be refreshed"
        },
        {
            "code": 6010,
            "name": "WithdrawTooSmall",
            "msg": "Withdraw amount too small"
        },
        {
            "code": 6011,
            "name": "WithdrawTooLarge",
            "msg": "Withdraw amount too large"
        },
        {
            "code": 6012,
            "name": "BorrowTooSmall",
            "msg": "Borrow amount too small to receive liquidity after fees"
        },
        {
            "code": 6013,
            "name": "BorrowTooLarge",
            "msg": "Borrow amount too large for deposited collateral"
        },
        {
            "code": 6014,
            "name": "RepayTooSmall",
            "msg": "Repay amount too small to transfer liquidity"
        },
        {
            "code": 6015,
            "name": "LiquidationTooSmall",
            "msg": "Liquidation amount too small to receive collateral"
        },
        {
            "code": 6016,
            "name": "ObligationHealthy",
            "msg": "Cannot liquidate healthy obligations"
        },
        {
            "code": 6017,
            "name": "ObligationStale",
            "msg": "Obligation state needs to be refreshed"
        },
        {
            "code": 6018,
            "name": "ObligationReserveLimit",
            "msg": "Obligation reserve limit exceeded"
        },
        {
            "code": 6019,
            "name": "InvalidObligationOwner",
            "msg": "Obligation owner is invalid"
        },
        {
            "code": 6020,
            "name": "ObligationDepositsEmpty",
            "msg": "Obligation deposits are empty"
        },
        {
            "code": 6021,
            "name": "ObligationBorrowsEmpty",
            "msg": "Obligation borrows are empty"
        },
        {
            "code": 6022,
            "name": "ObligationDepositsZero",
            "msg": "Obligation deposits have zero value"
        },
        {
            "code": 6023,
            "name": "ObligationBorrowsZero",
            "msg": "Obligation borrows have zero value"
        },
        {
            "code": 6024,
            "name": "InvalidObligationCollateral",
            "msg": "Invalid obligation collateral"
        },
        {
            "code": 6025,
            "name": "InvalidObligationLiquidity",
            "msg": "Invalid obligation liquidity"
        },
        {
            "code": 6026,
            "name": "ObligationCollateralEmpty",
            "msg": "Obligation collateral is empty"
        },
        {
            "code": 6027,
            "name": "ObligationLiquidityEmpty",
            "msg": "Obligation liquidity is empty"
        },
        {
            "code": 6028,
            "name": "NegativeInterestRate",
            "msg": "Interest rate is negative"
        },
        {
            "code": 6029,
            "name": "InvalidOracleConfig",
            "msg": "Input oracle config is invalid"
        },
        {
            "code": 6030,
            "name": "InsufficientProtocolFeesToRedeem",
            "msg": "Insufficient protocol fees to claim or no liquidity available"
        },
        {
            "code": 6031,
            "name": "FlashBorrowCpi",
            "msg": "No cpi flash borrows allowed"
        },
        {
            "code": 6032,
            "name": "NoFlashRepayFound",
            "msg": "No corresponding repay found for flash borrow"
        },
        {
            "code": 6033,
            "name": "InvalidFlashRepay",
            "msg": "Invalid repay found"
        },
        {
            "code": 6034,
            "name": "FlashRepayCpi",
            "msg": "No cpi flash repays allowed"
        },
        {
            "code": 6035,
            "name": "MultipleFlashBorrows",
            "msg": "Multiple flash borrows not allowed in the same transaction"
        },
        {
            "code": 6036,
            "name": "FlashLoansDisabled",
            "msg": "Flash loans are disabled for this reserve"
        },
        {
            "code": 6037,
            "name": "SwitchboardV2Error",
            "msg": "Switchboard error"
        },
        {
            "code": 6038,
            "name": "CouldNotDeserializeScope",
            "msg": "Cannot deserialize the scope price account"
        },
        {
            "code": 6039,
            "name": "PriceTooOld",
            "msg": "Price too old"
        },
        {
            "code": 6040,
            "name": "PriceTooDivergentFromTwap",
            "msg": "Price too divergent from twap"
        },
        {
            "code": 6041,
            "name": "InvalidTwapPrice",
            "msg": "Invalid twap price"
        },
        {
            "code": 6042,
            "name": "GlobalEmergencyMode",
            "msg": "Emergency mode is enabled"
        },
        {
            "code": 6043,
            "name": "InvalidFlag",
            "msg": "Invalid lending market config"
        },
        {
            "code": 6044,
            "name": "PriceNotValid",
            "msg": "Price is not valid"
        },
        {
            "code": 6045,
            "name": "PriceIsBiggerThanHeuristic",
            "msg": "Price is bigger than allowed by heuristic"
        },
        {
            "code": 6046,
            "name": "PriceIsLowerThanHeuristic",
            "msg": "Price lower than allowed by heuristic"
        },
        {
            "code": 6047,
            "name": "PriceIsZero",
            "msg": "Price is zero"
        },
        {
            "code": 6048,
            "name": "PriceConfidenceTooWide",
            "msg": "Price confidence too wide"
        },
        {
            "code": 6049,
            "name": "IntegerOverflow",
            "msg": "Conversion between integers failed"
        },
        {
            "code": 6050,
            "name": "NoFarmForReserve",
            "msg": "This reserve does not have a farm"
        },
        {
            "code": 6051,
            "name": "IncorrectInstructionInPosition",
            "msg": "Wrong instruction at expected position"
        },
        {
            "code": 6052,
            "name": "NoPriceFound",
            "msg": "No price found"
        },
        {
            "code": 6053,
            "name": "InvalidTwapConfig",
            "msg": "Invalid Twap configuration: Twap is enabled but one of the enabled price doesn't have a twap"
        },
        {
            "code": 6054,
            "name": "InvalidPythPriceAccount",
            "msg": "Pyth price account does not match configuration"
        },
        {
            "code": 6055,
            "name": "InvalidSwitchboardAccount",
            "msg": "Switchboard account(s) do not match configuration"
        },
        {
            "code": 6056,
            "name": "InvalidScopePriceAccount",
            "msg": "Scope price account does not match configuration"
        },
        {
            "code": 6057,
            "name": "ObligationCollateralLtvZero",
            "msg": "The obligation has one collateral with an LTV set to 0. Withdraw it before withdrawing other collaterals"
        },
        {
            "code": 6058,
            "name": "InvalidObligationSeedsValue",
            "msg": "Seeds must be default pubkeys for tag 0, and mint addresses for tag 1 or 2"
        },
        {
            "code": 6059,
            "name": "DeprecatedInvalidObligationId",
            "msg": "[DEPRECATED] Obligation id must be 0"
        },
        {
            "code": 6060,
            "name": "InvalidBorrowRateCurvePoint",
            "msg": "Invalid borrow rate curve point"
        },
        {
            "code": 6061,
            "name": "InvalidUtilizationRate",
            "msg": "Invalid utilization rate"
        },
        {
            "code": 6062,
            "name": "CannotSocializeObligationWithCollateral",
            "msg": "Obligation hasn't been fully liquidated and debt cannot be socialized."
        },
        {
            "code": 6063,
            "name": "ObligationEmpty",
            "msg": "Obligation has no borrows or deposits."
        },
        {
            "code": 6064,
            "name": "WithdrawalCapReached",
            "msg": "Withdrawal cap is reached"
        },
        {
            "code": 6065,
            "name": "LastTimestampGreaterThanCurrent",
            "msg": "The last interval start timestamp is greater than the current timestamp"
        },
        {
            "code": 6066,
            "name": "LiquidationRewardTooSmall",
            "msg": "The reward amount is less than the minimum acceptable received liquidity"
        },
        {
            "code": 6067,
            "name": "IsolatedAssetTierViolation",
            "msg": "Isolated Asset Tier Violation"
        },
        {
            "code": 6068,
            "name": "InconsistentElevationGroup",
            "msg": "The obligation's elevation group and the reserve's are not the same"
        },
        {
            "code": 6069,
            "name": "InvalidElevationGroup",
            "msg": "The elevation group chosen for the reserve does not exist in the lending market"
        },
        {
            "code": 6070,
            "name": "InvalidElevationGroupConfig",
            "msg": "The elevation group updated has wrong parameters set"
        },
        {
            "code": 6071,
            "name": "UnhealthyElevationGroupLtv",
            "msg": "The current obligation must have most or all its debt repaid before changing the elevation group"
        },
        {
            "code": 6072,
            "name": "ElevationGroupNewLoansDisabled",
            "msg": "Elevation group does not accept any new loans or any new borrows/withdrawals"
        },
        {
            "code": 6073,
            "name": "ReserveDeprecated",
            "msg": "Reserve was deprecated, no longer usable"
        },
        {
            "code": 6074,
            "name": "ReferrerAccountNotInitialized",
            "msg": "Referrer account not initialized"
        },
        {
            "code": 6075,
            "name": "ReferrerAccountMintMissmatch",
            "msg": "Referrer account mint does not match the operation reserve mint"
        },
        {
            "code": 6076,
            "name": "ReferrerAccountWrongAddress",
            "msg": "Referrer account address is not a valid program address"
        },
        {
            "code": 6077,
            "name": "ReferrerAccountReferrerMissmatch",
            "msg": "Referrer account referrer does not match the owner referrer"
        },
        {
            "code": 6078,
            "name": "ReferrerAccountMissing",
            "msg": "Referrer account missing for obligation with referrer"
        },
        {
            "code": 6079,
            "name": "InsufficientReferralFeesToRedeem",
            "msg": "Insufficient referral fees to claim or no liquidity available"
        },
        {
            "code": 6080,
            "name": "CpiDisabled",
            "msg": "CPI disabled for this instruction"
        },
        {
            "code": 6081,
            "name": "ShortUrlNotAsciiAlphanumeric",
            "msg": "Referrer short_url is not ascii alphanumeric"
        },
        {
            "code": 6082,
            "name": "ReserveObsolete",
            "msg": "Reserve is marked as obsolete"
        },
        {
            "code": 6083,
            "name": "ElevationGroupAlreadyActivated",
            "msg": "Obligation already part of the same elevation group"
        },
        {
            "code": 6084,
            "name": "ObligationInObsoleteReserve",
            "msg": "Obligation has a deposit or borrow in an obsolete reserve"
        },
        {
            "code": 6085,
            "name": "ReferrerStateOwnerMismatch",
            "msg": "Referrer state owner does not match the given signer"
        },
        {
            "code": 6086,
            "name": "UserMetadataOwnerAlreadySet",
            "msg": "User metadata owner is already set"
        },
        {
            "code": 6087,
            "name": "CollateralNonLiquidatable",
            "msg": "This collateral cannot be liquidated (LTV set to 0)"
        },
        {
            "code": 6088,
            "name": "BorrowingDisabled",
            "msg": "Borrowing is disabled"
        },
        {
            "code": 6089,
            "name": "BorrowLimitExceeded",
            "msg": "Cannot borrow above borrow limit"
        },
        {
            "code": 6090,
            "name": "DepositLimitExceeded",
            "msg": "Cannot deposit above deposit limit"
        },
        {
            "code": 6091,
            "name": "BorrowingDisabledOutsideElevationGroup",
            "msg": "Reserve does not accept any new borrows outside elevation group"
        },
        {
            "code": 6092,
            "name": "NetValueRemainingTooSmall",
            "msg": "Net value remaining too small"
        },
        {
            "code": 6093,
            "name": "WorseLtvBlocked",
            "msg": "Cannot get the obligation in a worse position"
        },
        {
            "code": 6094,
            "name": "LiabilitiesBiggerThanAssets",
            "msg": "Cannot have more liabilities than assets in a position"
        },
        {
            "code": 6095,
            "name": "ReserveTokenBalanceMismatch",
            "msg": "Reserve state and token account cannot drift"
        },
        {
            "code": 6096,
            "name": "ReserveVaultBalanceMismatch",
            "msg": "Reserve token account has been unexpectedly modified"
        },
        {
            "code": 6097,
            "name": "ReserveAccountingMismatch",
            "msg": "Reserve internal state accounting has been unexpectedly modified"
        },
        {
            "code": 6098,
            "name": "BorrowingAboveUtilizationRateDisabled",
            "msg": "Borrowing above set utilization rate is disabled"
        },
        {
            "code": 6099,
            "name": "LiquidationBorrowFactorPriority",
            "msg": "Liquidation must prioritize the debt with the highest borrow factor"
        },
        {
            "code": 6100,
            "name": "LiquidationLowestLiquidationLtvPriority",
            "msg": "Liquidation must prioritize the collateral with the lowest liquidation LTV"
        },
        {
            "code": 6101,
            "name": "ElevationGroupBorrowLimitExceeded",
            "msg": "Elevation group borrow limit exceeded"
        },
        {
            "code": 6102,
            "name": "ElevationGroupWithoutDebtReserve",
            "msg": "The elevation group does not have a debt reserve defined"
        },
        {
            "code": 6103,
            "name": "ElevationGroupMaxCollateralReserveZero",
            "msg": "The elevation group does not allow any collateral reserves"
        },
        {
            "code": 6104,
            "name": "ElevationGroupHasAnotherDebtReserve",
            "msg": "In elevation group attempt to borrow from a reserve that is not the debt reserve"
        },
        {
            "code": 6105,
            "name": "ElevationGroupDebtReserveAsCollateral",
            "msg": "The elevation group's debt reserve cannot be used as a collateral reserve"
        },
        {
            "code": 6106,
            "name": "ObligationCollateralExceedsElevationGroupLimit",
            "msg": "Obligation have more collateral than the maximum allowed by the elevation group"
        },
        {
            "code": 6107,
            "name": "ObligationElevationGroupMultipleDebtReserve",
            "msg": "Obligation is an elevation group but have more than one debt reserve"
        },
        {
            "code": 6108,
            "name": "UnsupportedTokenExtension",
            "msg": "Mint has a token (2022) extension that is not supported"
        },
        {
            "code": 6109,
            "name": "InvalidTokenAccount",
            "msg": "Can't have an spl token mint with a t22 account"
        },
        {
            "code": 6110,
            "name": "DepositDisabledOutsideElevationGroup",
            "msg": "Can't deposit into this reserve outside elevation group"
        },
        {
            "code": 6111,
            "name": "CannotCalculateReferralAmountDueToSlotsMismatch",
            "msg": "Cannot calculate referral amount due to slots mismatch"
        },
        {
            "code": 6112,
            "name": "ObligationOwnersMustMatch",
            "msg": "Obligation owners must match"
        },
        {
            "code": 6113,
            "name": "ObligationsMustMatch",
            "msg": "Obligations must match"
        },
        {
            "code": 6114,
            "name": "LendingMarketsMustMatch",
            "msg": "Lending markets must match"
        },
        {
            "code": 6115,
            "name": "ObligationCurrentlyMarkedForDeleveraging",
            "msg": "Obligation is already marked for deleveraging"
        },
        {
            "code": 6116,
            "name": "MaximumWithdrawValueZero",
            "msg": "Maximum withdrawable value of this collateral is zero, LTV needs improved"
        },
        {
            "code": 6117,
            "name": "ZeroMaxLtvAssetsInDeposits",
            "msg": "No max LTV 0 assets allowed in deposits for repay and withdraw"
        },
        {
            "code": 6118,
            "name": "LowestLtvAssetsPriority",
            "msg": "Withdrawing must prioritize the collateral with the lowest reserve max-LTV"
        },
        {
            "code": 6119,
            "name": "WorseLtvThanUnhealthyLtv",
            "msg": "Cannot get the obligation liquidatable"
        },
        {
            "code": 6120,
            "name": "FarmAccountsMissing",
            "msg": "Farm accounts to refresh are missing"
        },
        {
            "code": 6121,
            "name": "RepayTooSmallForFullLiquidation",
            "msg": "Repay amount is too small to satisfy the mandatory full liquidation"
        },
        {
            "code": 6122,
            "name": "InsufficientRepayAmount",
            "msg": "Liquidator provided repay amount lower than required by liquidation rules"
        },
        {
            "code": 6123,
            "name": "OrderIndexOutOfBounds",
            "msg": "Order of the given index cannot exist"
        },
        {
            "code": 6124,
            "name": "InvalidOrderConfiguration",
            "msg": "Given order configuration has wrong parameters"
        },
        {
            "code": 6125,
            "name": "OrderConfigurationNotSupportedByObligation",
            "msg": "Given order configuration cannot be used with the current state of the obligation"
        },
        {
            "code": 6126,
            "name": "OperationNotPermittedWithCurrentObligationOrders",
            "msg": "Single debt, single collateral obligation orders have to be cancelled before changing the deposit/borrow count"
        },
        {
            "code": 6127,
            "name": "OperationNotPermittedMarketImmutable",
            "msg": "Cannot update lending market because it is set as immutable"
        },
        {
            "code": 6128,
            "name": "OrderCreationDisabled",
            "msg": "Creation of new orders is disabled"
        },
        {
            "code": 6129,
            "name": "NoUpgradeAuthority",
            "msg": "Cannot initialize global config because there is no upgrade authority to the program"
        },
        {
            "code": 6130,
            "name": "InitialAdminDepositExecuted",
            "msg": "Initial admin deposit in reserve already executed"
        },
        {
            "code": 6131,
            "name": "ReserveHasNotReceivedInitialDeposit",
            "msg": "Reserve has not received the initial deposit, cannot update config"
        },
        {
            "code": 6132,
            "name": "CTokenUsageBlocked",
            "msg": "CToken minting/redeeming is blocked for this reserve"
        },
        {
            "code": 6133,
            "name": "CannotUseSameReserve",
            "msg": "Cannot call ix with same reserve"
        },
        {
            "code": 6134,
            "name": "TransactionIncludesRestrictedPrograms",
            "msg": "Transaction includes restricted programs"
        },
        {
            "code": 6135,
            "name": "BorrowOrderDebtLiquidityMintMismatch",
            "msg": "There is no borrow order requesting debt in the given asset"
        },
        {
            "code": 6136,
            "name": "BorrowOrderMaxBorrowRateExceeded",
            "msg": "Reserve used for fill exceeds the maximum borrow rate specified by the order"
        },
        {
            "code": 6137,
            "name": "BorrowOrderMinDebtTermInsufficient",
            "msg": "Reserve used for fill defines a debt term shorter than specified by the order"
        },
        {
            "code": 6138,
            "name": "BorrowOrderFillTimeLimitExceeded",
            "msg": "Borrow order can no longer be filled"
        },
        {
            "code": 6139,
            "name": "ReserveDebtMaturityReached",
            "msg": "Cannot borrow from a reserve that reached its debt maturity timestamp"
        },
        {
            "code": 6140,
            "name": "NonUpdatableOrderConfiguration",
            "msg": "Some piece of the order's configuration cannot be updated (the order should be cancelled and placed again)"
        },
        {
            "code": 6141,
            "name": "BorrowOrderExecutionDisabled",
            "msg": "Execution of borrow orders is disabled"
        },
        {
            "code": 6142,
            "name": "DebtReachedReserveDebtTerm",
            "msg": "Cannot increase the debt that has reached its end of term configured by the reserve"
        },
        {
            "code": 6143,
            "name": "ExpectationNotMet",
            "msg": "The on-chain state does not meet expectation specified by the caller, so the operation must be aborted (to avoid race conditions)"
        },
        {
            "code": 6144,
            "name": "BorrowOrderFillValueTooSmall",
            "msg": "Available liquidity could not satisfy the minimum required borrow order fill value"
        },
        {
            "code": 6145,
            "name": "WithdrawTicketIssuanceDisabled",
            "msg": "Issuing new withdraw tickets is disabled by the market"
        },
        {
            "code": 6146,
            "name": "WithdrawTicketRedemptionDisabled",
            "msg": "Redeeming withdraw tickets is disabled by the market"
        },
        {
            "code": 6147,
            "name": "WithdrawTicketStillValid",
            "msg": "Recovering collateral is only available after the withdraw ticket has been marked invalid"
        },
        {
            "code": 6148,
            "name": "WithdrawTicketRequiresFullRedemption",
            "msg": "The withdraw ticket's current state requires that it is fully redeemed (e.g. due to owner ATA creation), but there is not enough liquidity"
        },
        {
            "code": 6149,
            "name": "UserTokenBalanceMismatch",
            "msg": "The user's token account has changed its balance in an unexpected way"
        },
        {
            "code": 6150,
            "name": "WithdrawQueuedLiquidityValueTooSmall",
            "msg": "Available liquidity could not satisfy the minimum required ticketed withdrawal value"
        },
        {
            "code": 6151,
            "name": "InvalidTokenAccountState",
            "msg": "Token account is in a state preventing the handler's operation (e.g. frozen or delegate)"
        },
        {
            "code": 6152,
            "name": "WithdrawTicketInvalid",
            "msg": "Cannot use ticket that was already marked invalid"
        },
        {
            "code": 6153,
            "name": "BorrowOrderValueTooSmall",
            "msg": "Borrow order's value would be below the market-configured minimum"
        },
        {
            "code": 6154,
            "name": "WithdrawTicketValueTooSmall",
            "msg": "Withdraw ticket's value would be below the market-configured minimum"
        },
        {
            "code": 6155,
            "name": "InvalidWithdrawTicketProgressCallbackConfig",
            "msg": "Invalid configuration or required custom accounts for the requested withdraw ticket callback type"
        },
        {
            "code": 6156,
            "name": "WithdrawTicketProgressCallbackAccountsMissing",
            "msg": "One or more accounts required by the ticket's configured progress callback are missing"
        },
        {
            "code": 6157,
            "name": "BorrowRolloverConfigurationDisabled",
            "msg": "Configuring auto-rollover on loans is disabled by market owner"
        },
        {
            "code": 6158,
            "name": "InvalidObligationConfigUpdateSubject",
            "msg": "Invalid specification of the Obligation's part to be configured"
        },
        {
            "code": 6159,
            "name": "BorrowRolloverLiquidityMintMismatch",
            "msg": "Auto-rollover must use a target reserve of the same token"
        },
        {
            "code": 6160,
            "name": "ObligationBorrowRolloverNotApplicable",
            "msg": "The given borrow is not fixed-term and does not require rolling over"
        },
        {
            "code": 6161,
            "name": "ObligationBorrowOutsideRolloverWindow",
            "msg": "The given borrow is outside the corresponding market-configured rollover window"
        },
        {
            "code": 6162,
            "name": "ObligationBorrowRolloverNotEnabledByOwner",
            "msg": "Obligation's owner did not opt-in for auto-rollover of the given borrow"
        },
        {
            "code": 6163,
            "name": "ObligationBorrowRolloverTargetReserveMismatch",
            "msg": "Obligation's owner did not allow to roll over into terms offered by the given reserve"
        },
        {
            "code": 6164,
            "name": "BorrowRolloverExecutionDisabled",
            "msg": "Executing auto-rollover is disabled by market owner"
        },
        {
            "code": 6165,
            "name": "ObligationAccountingMismatch",
            "msg": "Obligation internal state accounting has been unexpectedly modified"
        },
        {
            "code": 6166,
            "name": "PartialRolloverValueTooSmall",
            "msg": "Partial rollover amount is below the market-configured minimum value"
        },
        {
            "code": 6167,
            "name": "ObligationBorrowRolloverConfigMismatch",
            "msg": "Pre-existing rollover configuration of the loan cannot be overwritten by the operation"
        },
        {
            "code": 6168,
            "name": "ObligationBorrowRolloverMustProlongDebtTerm",
            "msg": "Rollover into existing borrow must prolong the remaining debt term"
        },
        {
            "code": 6169,
            "name": "RolloverNotSupportedInElevationGroup",
            "msg": "Rollover is not supported for obligations in an elevation group"
        },
        {
            "code": 6170,
            "name": "WithdrawTicketCancellationDisabled",
            "msg": "Cancelling withdraw tickets is disabled by the market"
        },
        {
            "code": 6171,
            "name": "WithdrawTicketFullyCancelled",
            "msg": "Cannot use ticket that was already fully-cancelled"
        },
        {
            "code": 6172,
            "name": "CloneSourceReserveDisabled",
            "msg": "Cannot clone config from a reserve that is disabled"
        },
        {
            "code": 6173,
            "name": "CloneTargetReserveAlreadyInUse",
            "msg": "Cannot clone config into a reserve that has been in use"
        },
        {
            "code": 6174,
            "name": "ClonedReserveLiquidityMintMismatch",
            "msg": "Cannot clone config between reserves of different mints"
        },
        {
            "code": 6175,
            "name": "ReserveEmergencyMode",
            "msg": "Reserve emergency mode is enabled"
        },
        {
            "code": 6176,
            "name": "ObligationOwnershipTransferInProgress",
            "msg": "Obligation ownership transfer is in progress"
        },
        {
            "code": 6177,
            "name": "ObligationOwnershipTransferNotInInitiatedState",
            "msg": "Obligation ownership transfer is not in initiated state"
        },
        {
            "code": 6178,
            "name": "ObligationPendingOwnerNotSet",
            "msg": "Obligation pending owner not set"
        },
        {
            "code": 6179,
            "name": "ObligationInvalidPendingOwner",
            "msg": "Invalid pending owner address"
        },
        {
            "code": 6180,
            "name": "ObligationOwnershipTransferNotApproved",
            "msg": "Obligation ownership transfer not approved by admin"
        },
        {
            "code": 6181,
            "name": "ObligationHasActiveBorrowOrders",
            "msg": "Obligation has active borrow orders"
        },
        {
            "code": 6182,
            "name": "OnlyComputeBudgetCompanionIxsAllowed",
            "msg": "Only ComputeBudget instructions may accompany this instruction"
        },
        {
            "code": 6183,
            "name": "MissingPermissioner",
            "msg": "Required permissioning account is missing"
        },
        {
            "code": 6184,
            "name": "ReserveRewardsDisabled",
            "msg": "Reserve rewards are disabled on this market (reserve_rewards_max_apr_bps is 0)"
        },
        {
            "code": 6185,
            "name": "TransactionIncludesNonceInstruction",
            "msg": "Transaction includes a nonce instruction, which is not allowed for admin operations"
        }
    ]
}
