2192 lines
72 KiB
JSON
2192 lines
72 KiB
JSON
{
|
|
"version": "0.1.0",
|
|
"name": "kamino_vault",
|
|
"instructions": [
|
|
{
|
|
"name": "initVault",
|
|
"accounts": [
|
|
{
|
|
"name": "adminAuthority",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseVaultAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseTokenMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "sharesMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "adminTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "rent",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "sharesTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "updateReserveAllocation",
|
|
"accounts": [
|
|
{
|
|
"name": "signer",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseVaultAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserveCollateralMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserve",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "ctokenVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserveCollateralTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "rent",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "weight",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "cap",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "deposit",
|
|
"accounts": [
|
|
{
|
|
"name": "user",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseVaultAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "sharesMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "userTokenAta",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "userSharesAta",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "klendProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "sharesTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "maxAmount",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "withdraw",
|
|
"accounts": [
|
|
{
|
|
"name": "withdrawFromAvailable",
|
|
"accounts": [
|
|
{
|
|
"name": "user",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseVaultAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "userTokenAta",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "userSharesAta",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "sharesMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "sharesTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "klendProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "withdrawFromReserveAccounts",
|
|
"accounts": [
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserve",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "ctokenVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "lendingMarket",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "lendingMarketAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserveLiquiditySupply",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserveCollateralMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserveCollateralTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "instructionSysvarAccount",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "sharesAmount",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "invest",
|
|
"accounts": [
|
|
{
|
|
"name": "payer",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "payerTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseVaultAuthority",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "ctokenVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserve",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"docs": [
|
|
"CPI accounts"
|
|
]
|
|
},
|
|
{
|
|
"name": "lendingMarket",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "lendingMarketAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserveLiquiditySupply",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserveCollateralMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "klendProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserveCollateralTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "instructionSysvarAccount",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "updateVaultConfig",
|
|
"accounts": [
|
|
{
|
|
"name": "vaultAdminAuthority",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "klendProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "entry",
|
|
"type": {
|
|
"defined": "VaultConfigField"
|
|
}
|
|
},
|
|
{
|
|
"name": "data",
|
|
"type": "bytes"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "withdrawPendingFees",
|
|
"accounts": [
|
|
{
|
|
"name": "vaultAdminAuthority",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserve",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "ctokenVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseVaultAuthority",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenAta",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "lendingMarket",
|
|
"isMut": false,
|
|
"isSigner": false,
|
|
"docs": [
|
|
"CPI accounts"
|
|
]
|
|
},
|
|
{
|
|
"name": "lendingMarketAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserveLiquiditySupply",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserveCollateralMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "klendProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "reserveCollateralTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "instructionSysvarAccount",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "updateAdmin",
|
|
"accounts": [
|
|
{
|
|
"name": "pendingAdmin",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "giveUpPendingFees",
|
|
"accounts": [
|
|
{
|
|
"name": "vaultAdminAuthority",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "klendProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "maxAmountToGiveUp",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "initializeSharesMetadata",
|
|
"accounts": [
|
|
{
|
|
"name": "vaultAdminAuthority",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "sharesMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseVaultAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "sharesMetadata",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "rent",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "metadataProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "name",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "symbol",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "uri",
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "updateSharesMetadata",
|
|
"accounts": [
|
|
{
|
|
"name": "vaultAdminAuthority",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseVaultAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "sharesMetadata",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "metadataProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "name",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "symbol",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "uri",
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "withdrawFromAvailable",
|
|
"accounts": [
|
|
{
|
|
"name": "user",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultState",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "baseVaultAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "userTokenAta",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "userSharesAta",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "sharesMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "sharesTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "klendProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "sharesAmount",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "Reserve",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "version",
|
|
"docs": [
|
|
"Version of the reserve"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "lastUpdate",
|
|
"docs": [
|
|
"Last slot when supply and rates updated"
|
|
],
|
|
"type": {
|
|
"defined": "LastUpdate"
|
|
}
|
|
},
|
|
{
|
|
"name": "lendingMarket",
|
|
"docs": [
|
|
"Lending market address"
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "farmCollateral",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "farmDebt",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "liquidity",
|
|
"docs": [
|
|
"Reserve liquidity"
|
|
],
|
|
"type": {
|
|
"defined": "ReserveLiquidity"
|
|
}
|
|
},
|
|
{
|
|
"name": "reserveLiquidityPadding",
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
150
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "collateral",
|
|
"docs": [
|
|
"Reserve collateral"
|
|
],
|
|
"type": {
|
|
"defined": "ReserveCollateral"
|
|
}
|
|
},
|
|
{
|
|
"name": "reserveCollateralPadding",
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
150
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "config",
|
|
"docs": [
|
|
"Reserve configuration values"
|
|
],
|
|
"type": {
|
|
"defined": "ReserveConfig"
|
|
}
|
|
},
|
|
{
|
|
"name": "configPadding",
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
116
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "borrowedAmountOutsideElevationGroup",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "borrowedAmountsAgainstThisReserveInElevationGroups",
|
|
"docs": [
|
|
"Amount of token borrowed in lamport of debt asset in the given",
|
|
"elevation group when this reserve is part of the collaterals."
|
|
],
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
32
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "padding",
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
207
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "VaultState",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "vaultAdminAuthority",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "baseVaultAuthority",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "baseVaultAuthorityBump",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "tokenMint",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "tokenMintDecimals",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "tokenVault",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "sharesMint",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "sharesMintDecimals",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "tokenAvailable",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "sharesIssued",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "availableCrankFunds",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "padding0",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "performanceFeeBps",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "managementFeeBps",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "lastFeeChargeTimestamp",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "prevAumSf",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "pendingFeesSf",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "vaultAllocationStrategy",
|
|
"type": {
|
|
"array": [
|
|
{
|
|
"defined": "VaultAllocation"
|
|
},
|
|
10
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "minDepositAmount",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "minWithdrawAmount",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "minInvestAmount",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "minInvestDelaySlots",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "crankFundFeePerReserve",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "pendingAdmin",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "cumulativeEarnedInterestSf",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "cumulativeMgmtFeesSf",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "cumulativePerfFeesSf",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
40
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "vaultLookupTable",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "vaultFarm",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "creationTimestamp",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "padding1",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "allocationAdmin",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "padding2",
|
|
"type": {
|
|
"array": [
|
|
"u128",
|
|
242
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"types": [
|
|
{
|
|
"name": "LastUpdate",
|
|
"docs": [
|
|
"Last update state"
|
|
],
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "slot",
|
|
"docs": [
|
|
"Last slot when updated"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "stale",
|
|
"docs": [
|
|
"True when marked stale, false when slot updated"
|
|
],
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "priceStatus",
|
|
"docs": [
|
|
"Status of the prices used to calculate the last update"
|
|
],
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "placeholder",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
6
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "BigFractionBytes",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "value",
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
4
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "padding",
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
2
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ReserveCollateral",
|
|
"docs": [
|
|
"Reserve collateral"
|
|
],
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "mintPubkey",
|
|
"docs": [
|
|
"Reserve collateral mint address"
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "mintTotalSupply",
|
|
"docs": [
|
|
"Reserve collateral mint supply, used for exchange rate"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "supplyVault",
|
|
"docs": [
|
|
"Reserve collateral supply address"
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "padding1",
|
|
"type": {
|
|
"array": [
|
|
"u128",
|
|
32
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "padding2",
|
|
"type": {
|
|
"array": [
|
|
"u128",
|
|
32
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ReserveConfig",
|
|
"docs": [
|
|
"Reserve configuration values"
|
|
],
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "status",
|
|
"docs": [
|
|
"Status of the reserve Active/Obsolete/Hidden"
|
|
],
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "assetTier",
|
|
"docs": [
|
|
"Asset tier -> 0 - regular (collateral & debt), 1 - isolated collateral, 2 - isolated debt"
|
|
],
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "hostFixedInterestRateBps",
|
|
"docs": [
|
|
"Flat rate that goes to the host"
|
|
],
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "reserved2",
|
|
"docs": [
|
|
"[DEPRECATED] Boost for side (debt or collateral)"
|
|
],
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
2
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "reserved3",
|
|
"docs": [
|
|
"[DEPRECATED] Reward points multiplier per obligation type"
|
|
],
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
8
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "protocolTakeRatePct",
|
|
"docs": [
|
|
"Protocol take rate is the amount borrowed interest protocol receives, as a percentage"
|
|
],
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "protocolLiquidationFeePct",
|
|
"docs": [
|
|
"Cut of the liquidation bonus that the protocol receives, as a percentage"
|
|
],
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "loanToValuePct",
|
|
"docs": [
|
|
"Target ratio of the value of borrows to deposits, as a percentage",
|
|
"0 if use as collateral is disabled"
|
|
],
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "liquidationThresholdPct",
|
|
"docs": [
|
|
"Loan to value ratio at which an obligation can be liquidated, as percentage"
|
|
],
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "minLiquidationBonusBps",
|
|
"docs": [
|
|
"Minimum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps"
|
|
],
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "maxLiquidationBonusBps",
|
|
"docs": [
|
|
"Maximum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps"
|
|
],
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "badDebtLiquidationBonusBps",
|
|
"docs": [
|
|
"Bad debt liquidation bonus for an undercollateralized obligation, as bps"
|
|
],
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "deleveragingMarginCallPeriodSecs",
|
|
"docs": [
|
|
"Time in seconds that must pass before redemptions are enabled after the deposit limit is",
|
|
"crossed.",
|
|
"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "deleveragingThresholdDecreaseBpsPerDay",
|
|
"docs": [
|
|
"The rate at which the deleveraging threshold decreases, in bps per day.",
|
|
"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "fees",
|
|
"docs": [
|
|
"Program owner fees assessed, separate from gains due to interest accrual"
|
|
],
|
|
"type": {
|
|
"defined": "ReserveFees"
|
|
}
|
|
},
|
|
{
|
|
"name": "borrowRateCurve",
|
|
"docs": [
|
|
"Borrow rate curve based on utilization"
|
|
],
|
|
"type": {
|
|
"defined": "BorrowRateCurve"
|
|
}
|
|
},
|
|
{
|
|
"name": "borrowFactorPct",
|
|
"docs": [
|
|
"Borrow factor in percentage - used for risk adjustment"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "depositLimit",
|
|
"docs": [
|
|
"Maximum deposit limit of liquidity in native units, u64::MAX for inf"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "borrowLimit",
|
|
"docs": [
|
|
"Maximum amount borrowed, u64::MAX for inf, 0 to disable borrows (protected deposits)"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "tokenInfo",
|
|
"docs": [
|
|
"Token id from TokenInfos struct"
|
|
],
|
|
"type": {
|
|
"defined": "TokenInfo"
|
|
}
|
|
},
|
|
{
|
|
"name": "depositWithdrawalCap",
|
|
"docs": [
|
|
"Deposit withdrawal caps - deposit & redeem"
|
|
],
|
|
"type": {
|
|
"defined": "WithdrawalCaps"
|
|
}
|
|
},
|
|
{
|
|
"name": "debtWithdrawalCap",
|
|
"docs": [
|
|
"Debt withdrawal caps - borrow & repay"
|
|
],
|
|
"type": {
|
|
"defined": "WithdrawalCaps"
|
|
}
|
|
},
|
|
{
|
|
"name": "elevationGroups",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
20
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "disableUsageAsCollOutsideEmode",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "utilizationLimitBlockBorrowingAbovePct",
|
|
"docs": [
|
|
"Utilization (in percentage) above which borrowing is blocked. 0 to disable."
|
|
],
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "autodeleverageEnabled",
|
|
"docs": [
|
|
"Whether this reserve should be subject to auto-deleveraging after deposit or borrow limit is",
|
|
"crossed.",
|
|
"Besides this flag, the lending market's flag also needs to be enabled (logical `AND`).",
|
|
"**NOTE:** the manual \"target LTV\" deleveraging (enabled by the risk council for individual",
|
|
"obligations) is NOT affected by this flag."
|
|
],
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "reserved1",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
1
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "borrowLimitOutsideElevationGroup",
|
|
"docs": [
|
|
"Maximum amount liquidity of this reserve borrowed outside all elevation groups",
|
|
"- u64::MAX for inf",
|
|
"- 0 to disable borrows outside elevation groups"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "borrowLimitAgainstThisCollateralInElevationGroup",
|
|
"docs": [
|
|
"Defines the maximum amount (in lamports of elevation group debt asset)",
|
|
"that can be borrowed when this reserve is used as collateral.",
|
|
"- u64::MAX for inf",
|
|
"- 0 to disable borrows in this elevation group (expected value for the debt asset)"
|
|
],
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
32
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "deleveragingBonusIncreaseBpsPerDay",
|
|
"docs": [
|
|
"The rate at which the deleveraging-related liquidation bonus increases, in bps per day.",
|
|
"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case."
|
|
],
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ReserveFees",
|
|
"docs": [
|
|
"Additional fee information on a reserve",
|
|
"",
|
|
"These exist separately from interest accrual fees, and are specifically for the program owner",
|
|
"and referral fee. The fees are paid out as a percentage of liquidity token amounts during",
|
|
"repayments and liquidations."
|
|
],
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "borrowFeeSf",
|
|
"docs": [
|
|
"Fee assessed on `BorrowObligationLiquidity`, as scaled fraction (60 bits fractional part)",
|
|
"Must be between `0` and `2^60`, such that `2^60 = 1`. A few examples for",
|
|
"clarity:",
|
|
"1% = (1 << 60) / 100 = 11529215046068470",
|
|
"0.01% (1 basis point) = 115292150460685",
|
|
"0.00001% (Aave borrow fee) = 115292150461"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "flashLoanFeeSf",
|
|
"docs": [
|
|
"Fee for flash loan, expressed as scaled fraction.",
|
|
"0.3% (Aave flash loan fee) = 0.003 * 2^60 = 3458764513820541"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "padding",
|
|
"docs": [
|
|
"Used for allignment"
|
|
],
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
8
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ReserveLiquidity",
|
|
"docs": [
|
|
"Reserve liquidity"
|
|
],
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "mintPubkey",
|
|
"docs": [
|
|
"Reserve liquidity mint address"
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "supplyVault",
|
|
"docs": [
|
|
"Reserve liquidity supply address"
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "feeVault",
|
|
"docs": [
|
|
"Reserve liquidity fee collection address"
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "availableAmount",
|
|
"docs": [
|
|
"Reserve liquidity available"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "borrowedAmountSf",
|
|
"docs": [
|
|
"Reserve liquidity borrowed (scaled fraction)"
|
|
],
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "marketPriceSf",
|
|
"docs": [
|
|
"Reserve liquidity market price in quote currency (scaled fraction)"
|
|
],
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "marketPriceLastUpdatedTs",
|
|
"docs": [
|
|
"Unix timestamp of the market price (from the oracle)"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "mintDecimals",
|
|
"docs": [
|
|
"Reserve liquidity mint decimals"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "depositLimitCrossedTimestamp",
|
|
"docs": [
|
|
"Timestamp when the last refresh reserve detected that the liquidity amount is above the deposit cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.",
|
|
"If the threshold is not crossed, then the timestamp is set to 0"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "borrowLimitCrossedTimestamp",
|
|
"docs": [
|
|
"Timestamp when the last refresh reserve detected that the borrowed amount is above the borrow cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.",
|
|
"If the threshold is not crossed, then the timestamp is set to 0"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "cumulativeBorrowRateBsf",
|
|
"docs": [
|
|
"Reserve liquidity cumulative borrow rate (scaled fraction)"
|
|
],
|
|
"type": {
|
|
"defined": "BigFractionBytes"
|
|
}
|
|
},
|
|
{
|
|
"name": "accumulatedProtocolFeesSf",
|
|
"docs": [
|
|
"Reserve cumulative protocol fees (scaled fraction)"
|
|
],
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "accumulatedReferrerFeesSf",
|
|
"docs": [
|
|
"Reserve cumulative referrer fees (scaled fraction)"
|
|
],
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "pendingReferrerFeesSf",
|
|
"docs": [
|
|
"Reserve pending referrer fees, to be claimed in refresh_obligation by referrer or protocol (scaled fraction)"
|
|
],
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "absoluteReferralRateSf",
|
|
"docs": [
|
|
"Reserve referrer fee absolute rate calculated at each refresh_reserve operation (scaled fraction)"
|
|
],
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"docs": [
|
|
"Token program of the liquidity mint"
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "padding2",
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
51
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "padding3",
|
|
"type": {
|
|
"array": [
|
|
"u128",
|
|
32
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "WithdrawalCaps",
|
|
"docs": [
|
|
"Reserve Withdrawal Caps State"
|
|
],
|
|
"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",
|
|
"docs": [
|
|
"Lower value of acceptable price"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "upper",
|
|
"docs": [
|
|
"Upper value of acceptable price"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "exp",
|
|
"docs": [
|
|
"Number of decimals of the previously defined values"
|
|
],
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "PythConfiguration",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "price",
|
|
"docs": [
|
|
"Pubkey of the base price feed (disabled if `null` or `default`)"
|
|
],
|
|
"type": "publicKey"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ScopeConfiguration",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "priceFeed",
|
|
"docs": [
|
|
"Pubkey of the scope price feed (disabled if `null` or `default`)"
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "priceChain",
|
|
"docs": [
|
|
"This is the scope_id price chain that results in a price for the token"
|
|
],
|
|
"type": {
|
|
"array": [
|
|
"u16",
|
|
4
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "twapChain",
|
|
"docs": [
|
|
"This is the scope_id price chain for the twap"
|
|
],
|
|
"type": {
|
|
"array": [
|
|
"u16",
|
|
4
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "SwitchboardConfiguration",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "priceAggregator",
|
|
"docs": [
|
|
"Pubkey of the base price feed (disabled if `null` or `default`)"
|
|
],
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "twapAggregator",
|
|
"type": "publicKey"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "TokenInfo",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "name",
|
|
"docs": [
|
|
"UTF-8 encoded name of the token (null-terminated)"
|
|
],
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
32
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "heuristic",
|
|
"docs": [
|
|
"Heuristics limits of acceptable price"
|
|
],
|
|
"type": {
|
|
"defined": "PriceHeuristic"
|
|
}
|
|
},
|
|
{
|
|
"name": "maxTwapDivergenceBps",
|
|
"docs": [
|
|
"Max divergence between twap and price in bps"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "maxAgePriceSeconds",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "maxAgeTwapSeconds",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "scopeConfiguration",
|
|
"docs": [
|
|
"Scope price configuration"
|
|
],
|
|
"type": {
|
|
"defined": "ScopeConfiguration"
|
|
}
|
|
},
|
|
{
|
|
"name": "switchboardConfiguration",
|
|
"docs": [
|
|
"Switchboard configuration"
|
|
],
|
|
"type": {
|
|
"defined": "SwitchboardConfiguration"
|
|
}
|
|
},
|
|
{
|
|
"name": "pythConfiguration",
|
|
"docs": [
|
|
"Pyth configuration"
|
|
],
|
|
"type": {
|
|
"defined": "PythConfiguration"
|
|
}
|
|
},
|
|
{
|
|
"name": "blockPriceUsage",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "reserved",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
7
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "padding",
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
19
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "VaultConfigField",
|
|
"type": {
|
|
"kind": "enum",
|
|
"variants": [
|
|
{
|
|
"name": "PerformanceFeeBps"
|
|
},
|
|
{
|
|
"name": "ManagementFeeBps"
|
|
},
|
|
{
|
|
"name": "MinDepositAmount"
|
|
},
|
|
{
|
|
"name": "MinWithdrawAmount"
|
|
},
|
|
{
|
|
"name": "MinInvestAmount"
|
|
},
|
|
{
|
|
"name": "MinInvestDelaySlots"
|
|
},
|
|
{
|
|
"name": "CrankFundFeePerReserve"
|
|
},
|
|
{
|
|
"name": "PendingVaultAdmin"
|
|
},
|
|
{
|
|
"name": "Name"
|
|
},
|
|
{
|
|
"name": "LookupTable"
|
|
},
|
|
{
|
|
"name": "Farm"
|
|
},
|
|
{
|
|
"name": "AllocationAdmin"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "VaultAllocation",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "reserve",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "ctokenVault",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "targetAllocationWeight",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "tokenAllocationCap",
|
|
"docs": [
|
|
"Maximum token invested in this reserve"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "ctokenVaultBump",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "configPadding",
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
127
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ctokenAllocation",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "lastInvestSlot",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "tokenTargetAllocationSf",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "statePadding",
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
128
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"errors": [
|
|
{
|
|
"code": 7000,
|
|
"name": "DepositAmountsZero",
|
|
"msg": "DepositAmountsZero"
|
|
},
|
|
{
|
|
"code": 7001,
|
|
"name": "SharesIssuedAmountDoesNotMatch",
|
|
"msg": "SharesIssuedAmountDoesNotMatch"
|
|
},
|
|
{
|
|
"code": 7002,
|
|
"name": "MathOverflow",
|
|
"msg": "MathOverflow"
|
|
},
|
|
{
|
|
"code": 7003,
|
|
"name": "IntegerOverflow",
|
|
"msg": "IntegerOverflow"
|
|
},
|
|
{
|
|
"code": 7004,
|
|
"name": "WithdrawAmountBelowMinimum",
|
|
"msg": "Withdrawn amount is below minimum"
|
|
},
|
|
{
|
|
"code": 7005,
|
|
"name": "TooMuchLiquidityToWithdraw",
|
|
"msg": "TooMuchLiquidityToWithdraw"
|
|
},
|
|
{
|
|
"code": 7006,
|
|
"name": "ReserveAlreadyExists",
|
|
"msg": "ReserveAlreadyExists"
|
|
},
|
|
{
|
|
"code": 7007,
|
|
"name": "ReserveNotPartOfAllocations",
|
|
"msg": "ReserveNotPartOfAllocations"
|
|
},
|
|
{
|
|
"code": 7008,
|
|
"name": "CouldNotDeserializeAccountAsReserve",
|
|
"msg": "CouldNotDeserializeAccountAsReserve"
|
|
},
|
|
{
|
|
"code": 7009,
|
|
"name": "ReserveNotProvidedInTheAccounts",
|
|
"msg": "ReserveNotProvidedInTheAccounts"
|
|
},
|
|
{
|
|
"code": 7010,
|
|
"name": "ReserveAccountAndKeyMismatch",
|
|
"msg": "ReserveAccountAndKeyMismatch"
|
|
},
|
|
{
|
|
"code": 7011,
|
|
"name": "OutOfRangeOfReserveIndex",
|
|
"msg": "OutOfRangeOfReserveIndex"
|
|
},
|
|
{
|
|
"code": 7012,
|
|
"name": "CannotFindReserveInAllocations",
|
|
"msg": "OutOfRangeOfReserveIndex"
|
|
},
|
|
{
|
|
"code": 7013,
|
|
"name": "InvestAmountBelowMinimum",
|
|
"msg": "Invested amount is below minimum"
|
|
},
|
|
{
|
|
"code": 7014,
|
|
"name": "AdminAuthorityIncorrect",
|
|
"msg": "AdminAuthorityIncorrect"
|
|
},
|
|
{
|
|
"code": 7015,
|
|
"name": "BaseVaultAuthorityIncorrect",
|
|
"msg": "BaseVaultAuthorityIncorrect"
|
|
},
|
|
{
|
|
"code": 7016,
|
|
"name": "BaseVaultAuthorityBumpIncorrect",
|
|
"msg": "BaseVaultAuthorityBumpIncorrect"
|
|
},
|
|
{
|
|
"code": 7017,
|
|
"name": "TokenMintIncorrect",
|
|
"msg": "TokenMintIncorrect"
|
|
},
|
|
{
|
|
"code": 7018,
|
|
"name": "TokenMintDecimalsIncorrect",
|
|
"msg": "TokenMintDecimalsIncorrect"
|
|
},
|
|
{
|
|
"code": 7019,
|
|
"name": "TokenVaultIncorrect",
|
|
"msg": "TokenVaultIncorrect"
|
|
},
|
|
{
|
|
"code": 7020,
|
|
"name": "SharesMintDecimalsIncorrect",
|
|
"msg": "SharesMintDecimalsIncorrect"
|
|
},
|
|
{
|
|
"code": 7021,
|
|
"name": "SharesMintIncorrect",
|
|
"msg": "SharesMintIncorrect"
|
|
},
|
|
{
|
|
"code": 7022,
|
|
"name": "InitialAccountingIncorrect",
|
|
"msg": "InitialAccountingIncorrect"
|
|
},
|
|
{
|
|
"code": 7023,
|
|
"name": "ReserveIsStale",
|
|
"msg": "Reserve is stale and must be refreshed before any operation"
|
|
},
|
|
{
|
|
"code": 7024,
|
|
"name": "NotEnoughLiquidityDisinvestedToSendToUser",
|
|
"msg": "Not enough liquidity disinvested to send to user"
|
|
},
|
|
{
|
|
"code": 7025,
|
|
"name": "BPSValueTooBig",
|
|
"msg": "BPS value is greater than 10000"
|
|
},
|
|
{
|
|
"code": 7026,
|
|
"name": "DepositAmountBelowMinimum",
|
|
"msg": "Deposited amount is below minimum"
|
|
},
|
|
{
|
|
"code": 7027,
|
|
"name": "ReserveSpaceExhausted",
|
|
"msg": "Vault have no space for new reserves"
|
|
},
|
|
{
|
|
"code": 7028,
|
|
"name": "CannotWithdrawFromEmptyVault",
|
|
"msg": "Cannot withdraw from empty vault"
|
|
},
|
|
{
|
|
"code": 7029,
|
|
"name": "TokensDepositedAmountDoesNotMatch",
|
|
"msg": "TokensDepositedAmountDoesNotMatch"
|
|
},
|
|
{
|
|
"code": 7030,
|
|
"name": "AmountToWithdrawDoesNotMatch",
|
|
"msg": "Amount to withdraw does not match"
|
|
},
|
|
{
|
|
"code": 7031,
|
|
"name": "LiquidityToWithdrawDoesNotMatch",
|
|
"msg": "Liquidity to withdraw does not match"
|
|
},
|
|
{
|
|
"code": 7032,
|
|
"name": "UserReceivedAmountDoesNotMatch",
|
|
"msg": "User received amount does not match"
|
|
},
|
|
{
|
|
"code": 7033,
|
|
"name": "SharesBurnedAmountDoesNotMatch",
|
|
"msg": "Shares burned amount does not match"
|
|
},
|
|
{
|
|
"code": 7034,
|
|
"name": "DisinvestedLiquidityAmountDoesNotMatch",
|
|
"msg": "Disinvested liquidity amount does not match"
|
|
},
|
|
{
|
|
"code": 7035,
|
|
"name": "SharesMintedAmountDoesNotMatch",
|
|
"msg": "SharesMintedAmountDoesNotMatch"
|
|
},
|
|
{
|
|
"code": 7036,
|
|
"name": "AUMDecreasedAfterInvest",
|
|
"msg": "AUM decreased after invest"
|
|
},
|
|
{
|
|
"code": 7037,
|
|
"name": "AUMBelowPendingFees",
|
|
"msg": "AUM is below pending fees"
|
|
},
|
|
{
|
|
"code": 7038,
|
|
"name": "DepositAmountsZeroShares",
|
|
"msg": "Deposit amount results in 0 shares"
|
|
},
|
|
{
|
|
"code": 7039,
|
|
"name": "WithdrawResultsInZeroShares",
|
|
"msg": "Withdraw amount results in 0 shares"
|
|
},
|
|
{
|
|
"code": 7040,
|
|
"name": "CannotWithdrawZeroShares",
|
|
"msg": "Cannot withdraw zero shares"
|
|
},
|
|
{
|
|
"code": 7041,
|
|
"name": "ManagementFeeGreaterThanMaxAllowed",
|
|
"msg": "Management fee is greater than maximum allowed"
|
|
},
|
|
{
|
|
"code": 7042,
|
|
"name": "VaultAUMZero",
|
|
"msg": "Vault assets under management are empty"
|
|
},
|
|
{
|
|
"code": 7043,
|
|
"name": "MissingReserveForBatchRefresh",
|
|
"msg": "Missing reserve for batch refresh"
|
|
},
|
|
{
|
|
"code": 7044,
|
|
"name": "MinWithdrawAmountTooBig",
|
|
"msg": "Min withdraw amount is too big"
|
|
},
|
|
{
|
|
"code": 7045,
|
|
"name": "InvestTooSoon",
|
|
"msg": "Invest is called too soon after last invest"
|
|
},
|
|
{
|
|
"code": 7046,
|
|
"name": "WrongAdminOrAllocationAdmin",
|
|
"msg": "Wrong admin or allocation admin"
|
|
}
|
|
]
|
|
} |