UNPKG

@kamino-finance/klend-sdk

Version:

Typescript SDK for interacting with the Kamino Lending (klend) protocol

1,150 lines 60.4 kB
{ "version": "0.1.0", "name": "perpetuals", "instructions": [ { "name": "init", "accounts": [ { "name": "upgradeAuthority", "isMut": true, "isSigner": true }, { "name": "admin", "isMut": false, "isSigner": false }, { "name": "transferAuthority", "isMut": true, "isSigner": false }, { "name": "perpetuals", "isMut": true, "isSigner": false }, { "name": "perpetualsProgram", "isMut": false, "isSigner": false }, { "name": "perpetualsProgramData", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "InitParams" } }] }, { "name": "addPool", "accounts": [ { "name": "admin", "isMut": true, "isSigner": true }, { "name": "transferAuthority", "isMut": false, "isSigner": false }, { "name": "perpetuals", "isMut": true, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "lpTokenMint", "isMut": true, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "AddPoolParams" } }] }, { "name": "addCustody", "accounts": [ { "name": "admin", "isMut": true, "isSigner": true }, { "name": "transferAuthority", "isMut": false, "isSigner": false }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "custody", "isMut": true, "isSigner": false }, { "name": "custodyTokenAccount", "isMut": true, "isSigner": false }, { "name": "custodyTokenMint", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "AddCustodyParams" } }] }, { "name": "setCustodyConfig", "accounts": [ { "name": "admin", "isMut": true, "isSigner": true }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "custody", "isMut": true, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "SetCustodyConfigParams" } }] }, { "name": "setCustodyGlobalLimit", "accounts": [ { "name": "keeper", "isMut": false, "isSigner": true }, { "name": "custody", "isMut": true, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "SetCustodyGlobalLimitParams" } }] }, { "name": "setPoolConfig", "accounts": [ { "name": "admin", "isMut": false, "isSigner": true }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "SetPoolConfigParams" } }] }, { "name": "setPerpetualsConfig", "accounts": [ { "name": "admin", "isMut": false, "isSigner": true }, { "name": "perpetuals", "isMut": true, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "SetPerpetualsConfigParams" } }] }, { "name": "transferAdmin", "accounts": [ { "name": "admin", "isMut": true, "isSigner": true }, { "name": "newAdmin", "isMut": false, "isSigner": false }, { "name": "perpetuals", "isMut": true, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "TransferAdminParams" } }] }, { "name": "withdrawFees", "accounts": [ { "name": "keeper", "isMut": false, "isSigner": true }, { "name": "transferAuthority", "isMut": false, "isSigner": false }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "custody", "isMut": true, "isSigner": false }, { "name": "custodyTokenAccount", "isMut": true, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "receivingTokenAccount", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "WithdrawFeesParams" } }] }, { "name": "testInit", "accounts": [ { "name": "upgradeAuthority", "isMut": true, "isSigner": true }, { "name": "admin", "isMut": false, "isSigner": false }, { "name": "transferAuthority", "isMut": true, "isSigner": false }, { "name": "perpetuals", "isMut": true, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "TestInitParams" } }] }, { "name": "setTestOraclePrice", "accounts": [ { "name": "admin", "isMut": true, "isSigner": true }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "oracleAccount", "isMut": true, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "SetTestOraclePriceParams" } }] }, { "name": "setTestTime", "accounts": [ { "name": "admin", "isMut": false, "isSigner": true }, { "name": "perpetuals", "isMut": true, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "SetTestTimeParams" } }] }, { "name": "swap", "accounts": [ { "name": "owner", "isMut": true, "isSigner": true }, { "name": "fundingAccount", "isMut": true, "isSigner": false }, { "name": "receivingAccount", "isMut": true, "isSigner": false }, { "name": "transferAuthority", "isMut": false, "isSigner": false }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "receivingCustody", "isMut": true, "isSigner": false }, { "name": "receivingCustodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "receivingCustodyTokenAccount", "isMut": true, "isSigner": false }, { "name": "dispensingCustody", "isMut": true, "isSigner": false }, { "name": "dispensingCustodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "dispensingCustodyTokenAccount", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "SwapParams" } }] }, { "name": "swapExactOut", "accounts": [ { "name": "owner", "isMut": true, "isSigner": true }, { "name": "fundingAccount", "isMut": true, "isSigner": false }, { "name": "receivingAccount", "isMut": true, "isSigner": false }, { "name": "transferAuthority", "isMut": false, "isSigner": false }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "receivingCustody", "isMut": true, "isSigner": false }, { "name": "receivingCustodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "receivingCustodyTokenAccount", "isMut": true, "isSigner": false }, { "name": "dispensingCustody", "isMut": true, "isSigner": false }, { "name": "dispensingCustodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "dispensingCustodyTokenAccount", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "SwapExactOutParams" } }] }, { "name": "addLiquidity", "accounts": [ { "name": "owner", "isMut": true, "isSigner": true }, { "name": "fundingAccount", "isMut": true, "isSigner": false }, { "name": "lpTokenAccount", "isMut": true, "isSigner": false }, { "name": "transferAuthority", "isMut": false, "isSigner": false }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "custody", "isMut": true, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "custodyTokenAccount", "isMut": true, "isSigner": false }, { "name": "lpTokenMint", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "AddLiquidityParams" } }] }, { "name": "removeLiquidity", "accounts": [ { "name": "owner", "isMut": true, "isSigner": true }, { "name": "receivingAccount", "isMut": true, "isSigner": false }, { "name": "lpTokenAccount", "isMut": true, "isSigner": false }, { "name": "transferAuthority", "isMut": false, "isSigner": false }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "custody", "isMut": true, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "custodyTokenAccount", "isMut": true, "isSigner": false }, { "name": "lpTokenMint", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "RemoveLiquidityParams" } }] }, { "name": "createIncreasePositionRequest", "accounts": [ { "name": "owner", "isMut": true, "isSigner": true }, { "name": "fundingAccount", "isMut": true, "isSigner": false }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "position", "isMut": true, "isSigner": false }, { "name": "positionRequest", "isMut": true, "isSigner": false }, { "name": "positionRequestAta", "isMut": true, "isSigner": false }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustody", "isMut": false, "isSigner": false }, { "name": "inputMint", "isMut": false, "isSigner": false }, { "name": "referral", "isMut": false, "isSigner": false, "isOptional": true }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "associatedTokenProgram", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "CreateIncreasePositionRequestParams" } }] }, { "name": "updateIncreasePositionRequest", "accounts": [ { "name": "owner", "isMut": true, "isSigner": true }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "position", "isMut": false, "isSigner": false }, { "name": "positionRequest", "isMut": true, "isSigner": false }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "UpdateIncreasePositionRequestParams" } }] }, { "name": "createDecreasePositionRequest", "accounts": [ { "name": "owner", "isMut": true, "isSigner": true }, { "name": "receivingAccount", "isMut": true, "isSigner": false }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "position", "isMut": false, "isSigner": false }, { "name": "positionRequest", "isMut": true, "isSigner": false }, { "name": "positionRequestAta", "isMut": true, "isSigner": false }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustody", "isMut": false, "isSigner": false }, { "name": "desiredMint", "isMut": false, "isSigner": false }, { "name": "referral", "isMut": false, "isSigner": false, "isOptional": true }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "associatedTokenProgram", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "CreateDecreasePositionRequestParams" } }] }, { "name": "updateDecreasePositionRequest", "accounts": [ { "name": "owner", "isMut": true, "isSigner": true }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "position", "isMut": false, "isSigner": false }, { "name": "positionRequest", "isMut": true, "isSigner": false }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "UpdateDecreasePositionRequestParams" } }] }, { "name": "closePositionRequest", "accounts": [ { "name": "keeper", "isMut": false, "isSigner": true, "isOptional": true }, { "name": "owner", "isMut": true, "isSigner": false }, { "name": "ownerAta", "isMut": true, "isSigner": false, "isOptional": true }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "positionRequest", "isMut": true, "isSigner": false }, { "name": "positionRequestAta", "isMut": true, "isSigner": false }, { "name": "position", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "ClosePositionRequestParams" } }] }, { "name": "increasePosition", "accounts": [ { "name": "keeper", "isMut": false, "isSigner": true }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "positionRequest", "isMut": true, "isSigner": false }, { "name": "positionRequestAta", "isMut": true, "isSigner": false }, { "name": "position", "isMut": true, "isSigner": false }, { "name": "custody", "isMut": true, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustody", "isMut": true, "isSigner": false }, { "name": "collateralCustodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustodyTokenAccount", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "IncreasePositionParams" } }] }, { "name": "increasePositionPreSwap", "accounts": [ { "name": "keeper", "isMut": false, "isSigner": true }, { "name": "keeperAta", "isMut": true, "isSigner": false }, { "name": "positionRequest", "isMut": true, "isSigner": false }, { "name": "positionRequestAta", "isMut": true, "isSigner": false }, { "name": "position", "isMut": false, "isSigner": false }, { "name": "collateralCustody", "isMut": false, "isSigner": false }, { "name": "collateralCustodyTokenAccount", "isMut": false, "isSigner": false }, { "name": "instruction", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "IncreasePositionPreSwapParams" } }] }, { "name": "decreasePosition", "accounts": [ { "name": "keeper", "isMut": false, "isSigner": true }, { "name": "keeperAta", "isMut": true, "isSigner": false, "isOptional": true }, { "name": "owner", "isMut": true, "isSigner": false }, { "name": "transferAuthority", "isMut": false, "isSigner": false }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "positionRequest", "isMut": true, "isSigner": false }, { "name": "positionRequestAta", "isMut": true, "isSigner": false }, { "name": "position", "isMut": true, "isSigner": false }, { "name": "custody", "isMut": true, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustody", "isMut": true, "isSigner": false }, { "name": "collateralCustodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustodyTokenAccount", "isMut": true, "isSigner": false }, { "name": "instruction", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "DecreasePositionParams" } }] }, { "name": "decreasePositionPostSwap", "accounts": [ { "name": "keeper", "isMut": false, "isSigner": true }, { "name": "positionRequest", "isMut": false, "isSigner": false }, { "name": "positionRequestAta", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "DecreasePositionPostSwapParams" } }] }, { "name": "liquidatePosition", "accounts": [ { "name": "signer", "isMut": true, "isSigner": true }, { "name": "receivingAccount", "isMut": true, "isSigner": false }, { "name": "rewardReceivingAccount", "isMut": true, "isSigner": false }, { "name": "transferAuthority", "isMut": false, "isSigner": false }, { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": true, "isSigner": false }, { "name": "position", "isMut": true, "isSigner": false }, { "name": "custody", "isMut": true, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustody", "isMut": true, "isSigner": false }, { "name": "collateralCustodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustodyTokenAccount", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "eventAuthority", "isMut": false, "isSigner": false }, { "name": "program", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "LiquidatePositionParams" } }] }, { "name": "getAddLiquidityAmountAndFee", "accounts": [ { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "lpTokenMint", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "GetAddLiquidityAmountAndFeeParams" } }], "returns": { "defined": "AmountAndFee" } }, { "name": "getRemoveLiquidityAmountAndFee", "accounts": [ { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "lpTokenMint", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "GetRemoveLiquidityAmountAndFeeParams" } }], "returns": { "defined": "AmountAndFee" } }, { "name": "getIncreasePosition", "accounts": [ { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "position", "isMut": false, "isSigner": false, "isOptional": true }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustody", "isMut": false, "isSigner": false }, { "name": "collateralCustodyOracleAccount", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "GetIncreasePositionParams" } }], "returns": { "defined": "IncreasePositionInfo" } }, { "name": "getDecreasePosition", "accounts": [ { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "position", "isMut": false, "isSigner": false }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustody", "isMut": false, "isSigner": false }, { "name": "collateralCustodyOracleAccount", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "GetDecreasePositionParams" } }], "returns": { "defined": "DecreasePositionInfo" } }, { "name": "getPnl", "accounts": [ { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "position", "isMut": false, "isSigner": false }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustody", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "GetPnlAndFeeParams" } }], "returns": { "defined": "PnlAndFee" } }, { "name": "getLiquidationState", "accounts": [ { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "position", "isMut": false, "isSigner": false }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "collateralCustody", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "GetLiquidationStateParams" } }], "returns": "bool" }, { "name": "getOraclePrice", "accounts": [ { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "custody", "isMut": false, "isSigner": false }, { "name": "custodyOracleAccount", "isMut": false, "isSigner": false } ], "args": [], "returns": { "defined": "OraclePriceInfo" } }, { "name": "getSwapAmountAndFees", "accounts": [ { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "receivingCustody", "isMut": false, "isSigner": false }, { "name": "receivingCustodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "dispensingCustody", "isMut": false, "isSigner": false }, { "name": "dispensingCustodyOracleAccount", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "GetSwapAmountAndFeesParams" } }], "returns": { "defined": "SwapAmountAndFees" } }, { "name": "getExactOutSwapAmountAndFees", "accounts": [ { "name": "perpetuals", "isMut": false, "isSigner": false }, { "name": "pool", "isMut": false, "isSigner": false }, { "name": "receivingCustody", "isMut": false, "isSigner": false }, { "name": "receivingCustodyOracleAccount", "isMut": false, "isSigner": false }, { "name": "dispensingCustody", "isMut": false, "isSigner": false }, { "name": "dispensingCustodyOracleAccount", "isMut": false, "isSigner": false } ], "args": [{ "name": "params", "type": { "defined": "GetExactOutSwapAmountAndFeesParams" } }], "returns": { "defined": "SwapAmountAndFees" } } ], "accounts": [ { "name": "Custody", "type": { "kind": "struct", "fields": [ { "name": "pool", "type": "publicKey" }, { "name": "mint", "type": "publicKey" }, { "name": "tokenAccount", "type": "publicKey" }, { "name": "decimals", "type": "u8" }, { "name": "isStable", "type": "bool" }, { "name": "oracle", "type": { "defined": "OracleParams" } }, { "name": "pricing", "type": { "defined": "PricingParams" } }, { "name": "permissions", "type": { "defined": "Permissions" } }, { "name": "targetRatioBps", "type": "u64" }, { "name": "assets", "type": { "defined": "Assets" } }, { "name": "fundingRateState", "type": { "defined": "FundingRateState" } }, { "name": "bump", "type": "u8" }, { "name": "tokenAccountBump", "type": "u8" } ] } }, { "name": "TestOracle", "type": { "kind": "struct", "fields": [ { "name": "price", "type": "u64" }, { "name": "expo", "type": "i32" }, { "name": "conf", "type": "u64" }, { "name": "publishTime", "type": "i64" } ] } }, { "name": "Perpetuals", "type": { "kind": "struct", "fields": [ { "name": "permissions", "type": { "defined": "Permissions" } }, { "name": "pools", "type": { "vec": "publicKey" } }, { "name": "admin", "type": "publicKey" }, { "name": "transferAuthorityBump", "type": "u8" }, { "name": "perpetualsBump", "type": "u8" }, { "name": "inceptionTime", "type": "i64" } ] } }, { "name": "Pool", "type": { "kind": "struct", "fields": [ { "name": "name", "type": "string" }, { "name": "custodies", "type": { "vec": "publicKey" } }, { "name": "aumUsd", "type": "u128" }, { "name": "limit", "type": { "defined": "Limit" } }, { "name": "fees", "type": { "defined": "Fees" } }, { "name": "poolApr", "type": { "defined": "PoolApr" } }, { "name": "maxRequestExecutionSec", "type": "i64" }, { "name": "bump", "type": "u8" }, { "name": "lpTokenBump", "type": "u8" }, { "name": "inceptionTime", "type": "i64" } ] } }, { "name": "PositionRequest", "type": { "kind": "struct", "fields": [ { "name": "owner", "type": "publicKey" }, { "name": "pool", "type": "publicKey" }, { "name": "custody", "type": "publicKey" }, { "name": "position", "type": "publicKey" }, { "name": "mint", "type": "publicKey" }, { "name": "openTime", "type": "i64" }, { "name": "updateTime", "type": "i64" }, { "name": "sizeUsdDelta", "type": "u64" }, { "name": "collateralDelta", "type": "u64" }, { "name": "requestChange", "type": { "defined": "RequestChange" } }, { "name": "requestType", "type": { "defined": "RequestType" } }, { "name": "side", "type": { "defined": "Side" } }, { "name": "priceSlippage", "type": { "option": "u64" } }, { "name": "jupiterMinimumOut", "type": { "option": "u64" } }, { "name": "preSwapAmount", "type": { "option": "u64" } }, { "name": "triggerPrice", "type": { "option": "u64" } }, { "name": "triggerAboveThreshold", "type": { "option": "bool" } }, { "name": "entirePosition", "type": { "option": "bool" } }, { "name": "executed", "type": "bool" }, { "name": "counter", "type": "u64" }, { "name": "bump", "type": "u8" }, { "name": "referral", "type": { "option": "publicKey" } } ] } }, { "name": "Position", "type": { "kind": "struct", "fields": [ { "name": "owner", "type": "publicKey" }, { "name": "pool", "type": "publicKey" }, { "name": "custody", "type": "publicKey" }, { "name": "collateralCustody", "type": "publicKey" }, { "name": "openTime", "type": "i64" }, { "name": "updateTime", "type": "i64" }, { "name": "side", "type": { "defined": "Side" } }, { "name": "price", "type": "u64" }, { "name": "sizeUsd", "type": "u64" }, { "name": "collateralUsd", "type": "u64" }, { "name": "realisedPnlUsd", "type": "i64" }, { "name": "cumulativeInterestSnapshot", "type": "u128" }, { "name": "lockedAmount", "type": "u64" }, { "name": "bump", "type": "u8" } ] } } ], "types": [ { "name": "AddCustodyParams", "type": { "kind": "struct", "fields": [ { "name": "isStable", "type": "bool" }, { "name": "oracle", "type": { "defined": "OracleParams" } }, { "name": "pricing", "type": { "defined": "PricingParams" } }, { "name": "permissions", "type": { "defined": "Permissions" } }, { "name": "hourlyFundingBps", "type": "u64" }, { "name": "targetRatioBps", "type": "u64" } ] } }, { "name": "AddLiquidityParams", "type": { "kind": "struct", "fields": [ { "name": "tokenAmountIn", "type": "u64" }, { "name": "minLpAmountOut", "type": "u64" }, { "name": "tokenAmountPreSwap", "type": { "option": "u64" } } ] } }, { "name": "AddPoolParams", "type": { "kind": "struct", "fields": [ { "name": "name", "type": "string" }, { "name": "limit", "type": { "defined": "Limit" } }, { "name": "fees", "type": { "defined": "Fees" } }, { "name": "maxRequestExecutionSec", "type": "i64" } ] } }, { "name": "ClosePositionRequestParams", "type": { "kind": "struct", "fields": [] } }, { "name": "CreateDecreasePositionRequestParams", "type": { "kind": "struct", "fields": [ { "name": "collateralUsdDelta", "type": "u64" }, { "name": "sizeUsdDelta", "type": "u64" }, { "name": "requestType", "type": { "defined": "RequestType" } }, { "name": "priceSlippage", "type": { "option": "u64" } }, { "name": "jupiterMinimumOut", "type": { "option": "u64" } }, { "name": "triggerPrice", "type": { "option": "u64" } }, { "name": "triggerAboveThreshold", "type": { "option": "bool" } }, { "name": "entirePosition", "type": { "option": "bool" } }, { "name": "counter", "type": "u64" } ] } }, { "name": "CreateIncreasePositionRequestParams", "type": { "kind": "struct", "fields": [ { "name": "sizeUsdDelta", "type": "u64" }, { "name": "collateralTokenDelta", "type": "u64" }, { "name": "side", "type": { "defined": "Side" } }, { "name": "requestType", "type": { "defined": "RequestType" } }, { "name": "priceSlippage", "type": { "option": "u64" } }, { "name": "jupiterMinimumOut", "type": { "option": "u64" } }, { "name": "triggerPrice", "type": { "option": "u64" } }, { "name": "triggerAboveThreshold", "type": { "option": "bool" } }, { "name": "counter", "type": "u64" } ] } }, { "name": "DecreasePositionPostSwapParams", "type": { "kind": "struct", "fields": [] } }, { "name": "DecreasePositionParams", "type": { "kind": "struct", "fields": [] } }, { "name": "GetAddLiquidityAmountAndFeeParams", "type": { "kind": "struct", "fields": [{ "name": "tokenAmountIn", "type": "u64" }] } }, { "name": "GetDecreasePositionParams", "type": { "kind": "struct", "fields": [ { "name": "collateralUsdDelta", "type": "u64" }, { "name": "sizeUsdDelta", "type": "u64" } ] } }, { "name": "GetExactOutSwapAmountAndFeesParams", "type": { "kind": "struct", "fields": [{ "name": "amountOut", "type": "u64" }] } }, { "name": "GetIncreasePositionParams", "type": { "kind": "struct", "fields": [ { "name": "collateralTokenDelta", "type": "u64" }, { "name": "sizeUsdDelta", "type": "u64" }, { "name": "side", "type": { "defined": "Side" } } ] } }, { "name": "GetLiquidationStateParams", "type": { "kind": "struct", "fields": [] } }, { "name": "GetPnlAndFeeParams", "type": { "kind": "struct", "fields": [] } }, { "name": "GetRemoveLiquidityAmountAndFeeParams", "type": { "kind": "struct", "fields": [{ "name": "lpAmountIn", "type": "u64" }] } }, { "name": "GetSwapAmountAndFeesParams", "type": { "kind": "struct", "fields": [{ "name": "amountIn", "type": "u64" }] } }, { "name": "IncreasePositionPreSwapParams", "type": { "kind": "struct", "fields": [] } }, { "name": "IncreasePositionParams", "type": { "kind": "struct", "fields": [] } }, { "name": "InitParams", "type": { "kind": "struct", "fields": [ { "name": "allowSwap", "type": "bool" }, { "name": "allowAddLiquidity", "type": "bool" }, { "name": "allowRemoveLiquidity", "type": "bool" }, { "name": "allowIncreasePosition", "type": "bool" }, { "name": "allowDecreasePosition", "type": "bool" }, { "name": "allowCollateralWithdrawal", "type": "bool" }, { "name": "allowLiquidatePosition", "type": "bool" } ] } }, { "name": "LiquidatePositionParams", "type": { "kind": "struct", "fields": [] } }, { "name": "RemoveLiquidityParams", "type": { "kind": "struct", "fields": [ { "name": "lpAmountIn", "type": "u64" }, { "name": "minAmountOut", "type": "u64" } ] } }, { "name": "SetCustodyConfigParams", "type": { "kind": "struct", "fields": [ { "name": "oracle", "type": { "defined": "OracleParams" } }, { "name": "pricing", "type": { "defined": "PricingParams" } }, { "name": "permissions", "type": { "defined": "Permissions" } }, { "name": "hourlyFundingBps", "type": "u64" }, { "name": "targetRatioBps", "type": "u64" } ] } }, { "name": "SetCustodyGlobalLimitParams", "type": { "kind": "struct", "fields": [ { "name": "maxGlobalLongSizes", "type": "u64" }, { "name": "maxGlobalShortSizes", "type": "u64" } ] } }, { "name": "SetPerpetualsConfigParams", "type": { "kind": "struct", "fields": [{ "name": "permissions", "type": { "defined": "Permissions" } }] } }, { "name": "SetPoolConfigParams", "type": { "kind": "struct", "fields": [ { "name": "fees", "type": { "defined": "Fees" } }, { "name": "limit", "type": { "defined": "Limit" } }, { "name": "maxRequestExecutionSec", "type": "i64" } ] } }, { "name": "SetTestOraclePriceParams", "type": { "kind": "struct", "fields": [ { "name": "price", "type": "u64" }, { "name": "expo", "type": "i32" }, { "name": "conf", "type": "u64" }, { "name": "publishTime", "type": "i64" } ] } }, { "name": "SetTestTimeParams", "type": { "kind": "struct", "fields": [{ "name": "time", "type": "i64" }] } }, { "name": "SwapExactOutParams", "type": { "kind": "struct", "fields": [ { "name": "amountOut", "type": "u64" }, { "name": "maxAmountIn", "type": "u64" } ] } }, { "name": "SwapParams", "type": { "kind": "struct", "fields": [ { "name": "amountIn", "type": "u64" }, { "name": "minAmountOut", "type": "u64" } ] } }, { "name": "TestInitParams", "type": { "kind": "struct", "fields": [ { "name": "allowSwap", "type": "bool" }, { "name": "allowAddLiquidity", "type": "bool" }, { "name": "allowRemoveLiquidity", "type": "bool" }, { "name": "allowIncreasePosition", "type": "bool" }, { "name": "allowDecreasePosition", "type": "bool" }, { "name": "allowCollateralWithdrawal", "type": "bool" }, { "name": "allowLiquidatePosition", "type": "bool" } ] } }, { "name": "TransferAdminParams", "type": { "kind": "struct", "fields": [] } }, { "name": "UpdateDecreasePositionRequestParams", "type": { "kind": "struct", "fields": [ { "name": "sizeUsdDelta", "type": "u64" }, { "name": "triggerPrice", "type": "u64" } ] } }, { "name": "UpdateIncreasePositionRequestParams", "type": { "kind": "struct", "fields": [ { "name": "sizeUsdDelta", "type": "u64" }, { "name": "triggerPrice", "type": "u64" } ] } }, { "name": "WithdrawFeesParams", "type": { "kind": "struct", "fields": [] } }, { "name": "Assets", "type": { "kind": "struct", "fields": [ { "name": "feesReserves", "type": "u64" }, { "name": "owned", "type": "u64" }, { "name": "locked", "type": "u64" }, { "name": "guaranteedUsd", "type": "u64" }, { "name": "globalShortSizes", "type": "u64" }, { "name": "globalShortAveragePrices", "type": "u64" } ] } }, { "name": "PricingParams", "type": { "kind": "struct", "fields": [ { "name": "tradeSpreadLong", "type": "u64" }, { "name": "tradeSpreadShort", "type": "u64" }, { "name": "swapSpread", "type": "u64" }, { "name": "maxLeverage", "type": "u64" }, { "name": "maxGlobalLongSizes", "type": "u64" }, { "name": "maxGlobalShortSizes", "type": "u64" } ] } }, { "name": "FundingRateState", "type": { "kind": "struct", "fields": [ { "name": "cumulativeInterestRate", "type": "u128" }, { "name": "lastUpdate", "type": "i64" }, { "name": "hourlyFundingBps", "type": "u64" } ] } }, { "name": "OraclePrice", "type": { "kind": "struct", "fields": [ { "name": "price", "type": "u64" }, { "name": "exponent", "type": "i32" } ] } }, { "name": "OracleParams", "type": { "kind": "struct", "fields": [ { "name": "oracleAccount", "type": "publicKey" }, { "name": "oracleType", "type": { "defined": "OracleType" } }, { "name": "maxPriceError", "type": "u64" }, { "name": "maxPriceAgeSec", "type": "u32" } ] } }, { "name": "AmountAndFee", "type": { "kind": "struct", "fields": [ { "name": "amount", "type": "u64" }, { "name": "fee", "type": "u64" }, { "name": "feeBps", "type": "u64" } ] } }, { "name": "IncreasePositionInfo", "type": { "kind": "struct", "fields": [ { "name": "price", "type": "u64" }, { "name": "liquidationPrice", "type": "u64" }, { "name": "feeUsd", "type": "u64" }, { "name": "collateralUsd", "type": "u64" } ] } }, { "name": "DecreasePositionInfo", "type": { "kind": "struct", "fields": [ { "name": "price", "type": "u64" }, { "name": "liquidationPrice", "type": "u64" }, { "name": "feeUsd", "type": "u64" }, { "name": "collateralUsd", "type": "u64" }, { "name": "hasProfit", "type": "bool" }, { "name": "pnlDelta", "type": "u64" }, { "name": "transferAmountUsd", "type": "u64" }, { "name": "transferToken", "type": "u64" } ] } }, { "name": "SwapAmountAndFees", "type": { "kind": "struct", "fields": [ { "name": "amountIn", "type": "u64" }, { "name": "amountOut", "type": "u64" }, { "name": "feeBps", "type": "u64" }, { "name": "feeToken", "type": "u64" } ] } }, { "name": "PnlAndFee", "type": { "kind": "struct", "fields": [ { "name": "hasProfit", "type": "bool" }, { "name": "pnlDelta", "type": "u64" }, { "name": "openPositionFeeUsd", "type": "u64" }, { "name": "closePositionFeeUsd", "type": "u64" }, { "name": "fundingFeeUsd", "type": "u64" }, { "name": "liquidationPrice", "type": "u64" } ] } }, { "name": "OraclePriceInfo", "type": { "kind": "struct", "fields": [ { "name": "increaseLong", "type": "u64" }, { "name": "increaseShort", "type": "u64" }, { "name": "decreaseLong", "type": "u64" }, { "name": "decreaseShort", "type": "u64" }, { "name": "buyLp", "type": "u64" }, { "name": "sellLp", "type": "u64" } ] } }, { "name": "Permissions", "type": { "kind": "struct", "fields": [ { "name": "allowSwap", "type": "bool" }, { "name": "allowAddLiquidity", "type": "bool" }, { "name": "allowRemoveLiquidity", "type": "bool" }, { "name": "allowIncreasePosition", "type": "bool" }, { "name": "allowDecreasePosition", "type": "bool" }, { "name": "allowCollateralWithdrawal", "type": "bool" }, { "name": "allowLiquidatePosition", "type": "bool" } ] } }, { "name": "Fees", "type": { "kind": "struct", "fields": [ { "name": "increasePositionBps", "type": "u64" }, { "name": "decreasePositionBps", "type": "u64" }, { "name": "addRemoveLiquidityBps", "type": "u64" }, { "name": "swapBps", "type": "u64" }, { "name": "taxBps", "type": "u64" }, { "name": "stableSwapBps", "type": "u64" }, { "name": "stableSwapTaxBps", "type": "u64" }, { "name": "liquidationRewardBps", "type": "u64" }, { "name": "protocolShareBps", "type": "u64" } ] } }, { "name": "PoolApr", "type": { "kind": "struct", "fields": [ { "name": "lastUpdated", "type": "i64" }, { "name": "feeAprBps", "type": "u64" }, { "name": "realizedFeeUsd", "type": "u64" } ] } }, { "name": "Limit", "type": { "kind": "struct", "fields": [ { "name": "maxAumUsd", "type": "u128" }, { "name": "maxIndividualLpToken", "type": "u128" }, { "name": "maxPositionUsd", "type": "u64" } ] } }, { "name": "OracleType", "type": { "kind": "enum", "variants": [{ "name": "None" }, { "name": "Test" }, { "name": "Pyth" }] } }, { "name": "PriceCalcMode", "type": { "kind": "enum", "variants": [{ "name": "Min" }, { "name": "Max" }, { "name": "Ignore" }] } }, { "name": "RequestType", "type": { "kind": "enum", "variants": [{ "name": "Market" }, { "name": "Trigger" }] } }, { "name": "RequestChange", "type": { "kind": "enum", "variants": [{ "name": "None" }, { "name": "Increase" }, { "name": "Decrease" }] } }, { "name": "Side", "type": { "kind": "enum", "variants": [{ "name": "None" }, { "name": "Long" }, { "name": "Short" }] } } ], "events": [ { "name": "CreatePositionRequestEvent", "fields": [ { "name": "owner", "type": "publicKey", "index": false }, { "name": "pool", "type": "publicKey", "index": false }, { "name": "positionKey", "type": "publicKey", "index": false }, { "name": "positionSide", "type": "u8", "index": false }, { "name": "positionMint", "type": "publicKey", "index": false }, { "name": "positionCustody", "type": "publicKey", "index": false }, { "name": "positionCollateralMint", "type": "publicKey", "index": false }, { "name": "positionCollateralCustody", "type": "publicKey", "index": false }, { "name": "positionRequestKey", "type": "publicKey", "index": false }, { "name": "positionRequestMint", "type": "publicKey", "index": false }, { "name": "sizeUsdDelta", "type": "u64", "index": false }, { "name": "collateralDelta", "type": "u64", "index": false }, { "name": "priceSlippage", "type": { "option": "u64" }, "index": false }, { "name": "jupiterMinimumOut", "type": { "option": "u64" }, "index": false }, { "name": "preSwapAmount", "type": { "option": "u64" }, "index": false }, { "name": "requestChange", "type": "u8", "index": false }, { "name": "openTime", "type": "i64", "index": false }, { "name": "referral", "type": { "option": "publicKey" }, "index": false } ] }, { "name": "ClosePositionRequestEvent", "fields": [ { "name": "positionRequestKey", "type": "publicKey", "index": false }, { "name": "owner", "type": "publicKey", "index": false }, { "name": "mint", "type": "publicKey", "index": false }, { "name": "amount", "type": "u64", "index": false } ] }, { "name": "IncreasePositionEvent", "fields": [ { "name": "positionKey", "type": "publicKey", "index": false }, { "name": "positionSide", "type": "u8", "index": false }, { "name": "positionCustody", "type": "publicKey", "index": false }, { "name": "positionCollateralCustody", "type": "publicKey", "index": false }, { "name": "positionSizeUsd", "type": "u64", "index": false }, { "name": "positionMint", "type": "publicKey", "index": false }, { "name": "positionRequestKey", "type": "publicKey", "index": false }, { "name": "positionRequestMint", "type": "publicKey", "index": false }, { "name": "positionRequestChange", "type": "u8", "index": false }, { "name": "positionRequestType", "type": "u8", "index": false }, { "name": "positionRequestCollateralDelta", "type": "u64", "index": false }, { "name": "owner", "type": "publicKey", "index": false }, { "name": "pool", "type": "publicKey", "index": false }, { "name": "sizeUsdDelta", "type": "u64", "index": false }, { "name": "collateralUsdDelta", "type": "u64", "index": false }, { "name": "collateralTokenDelta", "type": "u64", "index": false }, { "name": "price", "type": "u64", "index": false }, { "name": "priceSlippage", "type": { "opt