@kamino-finance/klend-sdk 5.0.4 → 5.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/classes/fraction.d.ts.map +1 -1
- package/dist/classes/fraction.js.map +1 -1
- package/dist/classes/manager.d.ts +38 -4
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +112 -5
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/market.d.ts +4 -0
- package/dist/classes/market.d.ts.map +1 -1
- package/dist/classes/market.js +17 -25
- package/dist/classes/market.js.map +1 -1
- package/dist/classes/obligation.d.ts +3 -4
- package/dist/classes/obligation.d.ts.map +1 -1
- package/dist/classes/obligation.js +96 -27
- package/dist/classes/obligation.js.map +1 -1
- package/dist/classes/reserve.d.ts +2 -1
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +32 -29
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/utils.d.ts +3 -0
- package/dist/classes/utils.d.ts.map +1 -1
- package/dist/classes/utils.js +30 -0
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +12 -8
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +94 -66
- package/dist/classes/vault.js.map +1 -1
- package/dist/client_kamino_manager.d.ts.map +1 -1
- package/dist/client_kamino_manager.js +15 -1
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/idl.json +27 -2
- package/dist/idl_codegen/accounts/LendingMarket.d.ts +6 -0
- package/dist/idl_codegen/accounts/LendingMarket.d.ts.map +1 -1
- package/dist/idl_codegen/accounts/LendingMarket.js +8 -1
- package/dist/idl_codegen/accounts/LendingMarket.js.map +1 -1
- package/dist/idl_codegen/accounts/Obligation.d.ts +3 -12
- package/dist/idl_codegen/accounts/Obligation.d.ts.map +1 -1
- package/dist/idl_codegen/accounts/Obligation.js +1 -4
- package/dist/idl_codegen/accounts/Obligation.js.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.d.ts +20 -0
- package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.d.ts.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js +33 -1
- package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts +13 -0
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js +25 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -1
- package/dist/idl_codegen/types/index.d.ts +4 -4
- package/dist/idl_codegen/types/index.d.ts.map +1 -1
- package/dist/idl_codegen/types/index.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/Reserve.d.ts +3 -3
- package/dist/idl_codegen_kamino_vault/accounts/Reserve.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/Reserve.js +22 -18
- package/dist/idl_codegen_kamino_vault/accounts/Reserve.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts +45 -15
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.js +101 -39
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/index.d.ts +4 -4
- package/dist/idl_codegen_kamino_vault/accounts/index.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/index.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/anchor.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/anchor.js +162 -162
- package/dist/idl_codegen_kamino_vault/errors/anchor.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/custom.d.ts +144 -32
- package/dist/idl_codegen_kamino_vault/errors/custom.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/custom.js +305 -109
- package/dist/idl_codegen_kamino_vault/errors/custom.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/index.d.ts +3 -3
- package/dist/idl_codegen_kamino_vault/errors/index.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/index.js +7 -2
- package/dist/idl_codegen_kamino_vault/errors/index.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts +4 -2
- package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/deposit.js +3 -1
- package/dist/idl_codegen_kamino_vault/instructions/deposit.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.d.ts +13 -0
- package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.js +47 -0
- package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.js.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/index.d.ts +18 -10
- package/dist/idl_codegen_kamino_vault/instructions/index.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/index.js +9 -1
- package/dist/idl_codegen_kamino_vault/instructions/index.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts +2 -1
- package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/initVault.js +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/initVault.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/invest.d.ts +6 -2
- package/dist/idl_codegen_kamino_vault/instructions/invest.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/invest.js +9 -1
- package/dist/idl_codegen_kamino_vault/instructions/invest.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/updateAdmin.d.ts +7 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateAdmin.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateAdmin.js +16 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateAdmin.js.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts +2 -2
- package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.js +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.d.ts +14 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.js +52 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.js.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/withdraw.d.ts +4 -2
- package/dist/idl_codegen_kamino_vault/instructions/withdraw.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/withdraw.js +8 -2
- package/dist/idl_codegen_kamino_vault/instructions/withdraw.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.d.ts +23 -0
- package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.js +51 -0
- package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.js.map +1 -0
- package/dist/idl_codegen_kamino_vault/programId.d.ts +1 -1
- package/dist/idl_codegen_kamino_vault/programId.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/programId.js +1 -1
- package/dist/idl_codegen_kamino_vault/programId.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.d.ts +2 -2
- package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.js +4 -1
- package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.d.ts +1 -1
- package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.js +1 -1
- package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/CurvePoint.d.ts +1 -1
- package/dist/idl_codegen_kamino_vault/types/CurvePoint.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/CurvePoint.js +1 -1
- package/dist/idl_codegen_kamino_vault/types/CurvePoint.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/LastUpdate.d.ts +2 -2
- package/dist/idl_codegen_kamino_vault/types/LastUpdate.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/LastUpdate.js +6 -1
- package/dist/idl_codegen_kamino_vault/types/LastUpdate.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.d.ts +2 -2
- package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.js +1 -1
- package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/PythConfiguration.d.ts +2 -2
- package/dist/idl_codegen_kamino_vault/types/PythConfiguration.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/PythConfiguration.js +1 -1
- package/dist/idl_codegen_kamino_vault/types/PythConfiguration.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.d.ts +3 -3
- package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.js +5 -5
- package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts +27 -24
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js +59 -53
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveFees.d.ts +2 -2
- package/dist/idl_codegen_kamino_vault/types/ReserveFees.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveFees.js +5 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveFees.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.d.ts +11 -3
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.js +25 -17
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.d.ts +2 -2
- package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.js +3 -3
- package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.d.ts +2 -2
- package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.js +1 -1
- package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/TokenInfo.d.ts +3 -3
- package/dist/idl_codegen_kamino_vault/types/TokenInfo.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/TokenInfo.js +11 -11
- package/dist/idl_codegen_kamino_vault/types/TokenInfo.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/VaultAllocation.d.ts +18 -8
- package/dist/idl_codegen_kamino_vault/types/VaultAllocation.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/VaultAllocation.js +27 -13
- package/dist/idl_codegen_kamino_vault/types/VaultAllocation.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/VaultConfigField.d.ts +110 -0
- package/dist/idl_codegen_kamino_vault/types/VaultConfigField.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/VaultConfigField.js +242 -0
- package/dist/idl_codegen_kamino_vault/types/VaultConfigField.js.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/index.d.ts +34 -30
- package/dist/idl_codegen_kamino_vault/types/index.d.ts.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/index.js +26 -1
- package/dist/idl_codegen_kamino_vault/types/index.js.map +1 -1
- package/dist/utils/ObligationType.d.ts.map +1 -1
- package/dist/utils/ObligationType.js.map +1 -1
- package/dist/utils/managerTypes.d.ts.map +1 -1
- package/dist/utils/managerTypes.js.map +1 -1
- package/dist/utils/pubkey.d.ts.map +1 -1
- package/dist/utils/pubkey.js.map +1 -1
- package/dist/utils/rpc.d.ts.map +1 -1
- package/dist/utils/rpc.js +2 -1
- package/dist/utils/rpc.js.map +1 -1
- package/package.json +2 -1
- package/src/classes/fraction.ts +5 -0
- package/src/classes/manager.ts +136 -5
- package/src/classes/market.ts +19 -2
- package/src/classes/obligation.ts +141 -30
- package/src/classes/reserve.ts +70 -41
- package/src/classes/utils.ts +30 -0
- package/src/classes/vault.ts +123 -49
- package/src/client_kamino_manager.ts +19 -1
- package/src/idl_codegen/accounts/LendingMarket.ts +12 -1
- package/src/idl_codegen/accounts/Obligation.ts +3 -12
- package/src/idl_codegen/types/UpdateLendingMarketConfigValue.ts +43 -0
- package/src/idl_codegen/types/UpdateLendingMarketMode.ts +30 -0
- package/src/idl_codegen/types/index.ts +4 -0
- package/src/idl_codegen_kamino_vault/accounts/Reserve.ts +132 -105
- package/src/idl_codegen_kamino_vault/accounts/VaultState.ts +217 -124
- package/src/idl_codegen_kamino_vault/accounts/index.ts +4 -4
- package/src/idl_codegen_kamino_vault/errors/anchor.ts +335 -326
- package/src/idl_codegen_kamino_vault/errors/custom.ts +353 -157
- package/src/idl_codegen_kamino_vault/errors/index.ts +35 -22
- package/src/idl_codegen_kamino_vault/instructions/deposit.ts +33 -25
- package/src/idl_codegen_kamino_vault/instructions/giveUpPendingFees.ts +40 -0
- package/src/idl_codegen_kamino_vault/instructions/index.ts +27 -10
- package/src/idl_codegen_kamino_vault/instructions/initVault.ts +25 -20
- package/src/idl_codegen_kamino_vault/instructions/invest.ts +40 -25
- package/src/idl_codegen_kamino_vault/instructions/updateAdmin.ts +24 -0
- package/src/idl_codegen_kamino_vault/instructions/updateReserveAllocation.ts +24 -24
- package/src/idl_codegen_kamino_vault/instructions/updateVaultConfig.ts +49 -0
- package/src/idl_codegen_kamino_vault/instructions/withdraw.ts +45 -33
- package/src/idl_codegen_kamino_vault/instructions/withdrawPendingFees.ts +75 -0
- package/src/idl_codegen_kamino_vault/programId.ts +5 -3
- package/src/idl_codegen_kamino_vault/types/BigFractionBytes.ts +24 -18
- package/src/idl_codegen_kamino_vault/types/BorrowRateCurve.ts +21 -16
- package/src/idl_codegen_kamino_vault/types/CurvePoint.ts +21 -18
- package/src/idl_codegen_kamino_vault/types/LastUpdate.ts +32 -27
- package/src/idl_codegen_kamino_vault/types/PriceHeuristic.ts +25 -22
- package/src/idl_codegen_kamino_vault/types/PythConfiguration.ts +14 -14
- package/src/idl_codegen_kamino_vault/types/ReserveCollateral.ts +35 -35
- package/src/idl_codegen_kamino_vault/types/ReserveConfig.ts +232 -191
- package/src/idl_codegen_kamino_vault/types/ReserveFees.ts +27 -23
- package/src/idl_codegen_kamino_vault/types/ReserveLiquidity.ts +116 -98
- package/src/idl_codegen_kamino_vault/types/ScopeConfiguration.ts +25 -25
- package/src/idl_codegen_kamino_vault/types/SwitchboardConfiguration.ts +21 -18
- package/src/idl_codegen_kamino_vault/types/TokenInfo.ts +92 -74
- package/src/idl_codegen_kamino_vault/types/VaultAllocation.ts +67 -49
- package/src/idl_codegen_kamino_vault/types/VaultConfigField.ts +270 -0
- package/src/idl_codegen_kamino_vault/types/index.ts +77 -30
- package/src/utils/ObligationType.ts +6 -0
- package/src/utils/managerTypes.ts +1 -0
- package/src/utils/pubkey.ts +2 -0
- package/src/utils/rpc.ts +3 -1
package/src/classes/vault.ts
CHANGED
|
@@ -23,6 +23,8 @@ import {
|
|
|
23
23
|
WRAPPED_SOL_MINT,
|
|
24
24
|
} from '../lib';
|
|
25
25
|
import {
|
|
26
|
+
// closeVault,
|
|
27
|
+
// CloseVaultAccounts,
|
|
26
28
|
DepositAccounts,
|
|
27
29
|
DepositArgs,
|
|
28
30
|
initVault,
|
|
@@ -44,6 +46,8 @@ import { PROGRAM_ID } from '../idl_codegen/programId';
|
|
|
44
46
|
import { DEFAULT_RECENT_SLOT_DURATION_MS, ReserveWithAddress } from './reserve';
|
|
45
47
|
import { Fraction } from './fraction';
|
|
46
48
|
import { lendingMarketAuthPda } from '../utils/seeds';
|
|
49
|
+
import bs58 from 'bs58';
|
|
50
|
+
import { getProgramAccounts } from '../utils/rpc';
|
|
47
51
|
|
|
48
52
|
export const kaminoVaultId = new PublicKey('kvauTFR8qm1dhniz6pYuBZkuene3Hfrs1VQhVRgCNrr');
|
|
49
53
|
|
|
@@ -124,6 +128,7 @@ export class KaminoVaultClient {
|
|
|
124
128
|
systemProgram: SystemProgram.programId,
|
|
125
129
|
rent: SYSVAR_RENT_PUBKEY,
|
|
126
130
|
tokenProgram: vaultConfig.tokenMintProgramId,
|
|
131
|
+
sharesTokenProgram: TOKEN_PROGRAM_ID,
|
|
127
132
|
};
|
|
128
133
|
const initVaultIx = initVault(initVaultAccounts, this._kaminoVaultProgramId);
|
|
129
134
|
|
|
@@ -145,7 +150,11 @@ export class KaminoVaultClient {
|
|
|
145
150
|
const vaultState: VaultState = await vault.getState(this.getConnection());
|
|
146
151
|
const reserveState: Reserve = reserveAllocationConfig.getReserveState();
|
|
147
152
|
|
|
148
|
-
const cTokenVault = getCTokenVaultPda(
|
|
153
|
+
const cTokenVault = getCTokenVaultPda(
|
|
154
|
+
vault.address,
|
|
155
|
+
reserveAllocationConfig.getReserveAddress(),
|
|
156
|
+
this._kaminoVaultProgramId
|
|
157
|
+
);
|
|
149
158
|
|
|
150
159
|
const updateReserveAllocationAccounts: UpdateReserveAllocationAccounts = {
|
|
151
160
|
adminAuthority: vaultState.adminAuthority,
|
|
@@ -171,6 +180,17 @@ export class KaminoVaultClient {
|
|
|
171
180
|
);
|
|
172
181
|
}
|
|
173
182
|
|
|
183
|
+
// async closeVaultIx(vault: KaminoVault): Promise<TransactionInstruction> {
|
|
184
|
+
// const vaultState: VaultState = await vault.getState(this.getConnection());
|
|
185
|
+
|
|
186
|
+
// const closeVaultAccounts: CloseVaultAccounts = {
|
|
187
|
+
// adminAuthority: vaultState.adminAuthority,
|
|
188
|
+
// vaultState: vault.address,
|
|
189
|
+
// };
|
|
190
|
+
|
|
191
|
+
// return closeVault(closeVaultAccounts, this._kaminoVaultProgramId);
|
|
192
|
+
// }
|
|
193
|
+
|
|
174
194
|
/**
|
|
175
195
|
* This function creates instructions to deposit into a vault. It will also create ATA creation instructions for the vault shares that the user receives in return
|
|
176
196
|
* @param user - user to deposit
|
|
@@ -225,6 +245,8 @@ export class KaminoVaultClient {
|
|
|
225
245
|
userSharesAta: userSharesAta,
|
|
226
246
|
tokenProgram: TOKEN_PROGRAM_ID,
|
|
227
247
|
instructionSysvarAccount: SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
248
|
+
klendProgram: this._kaminoLendProgramId,
|
|
249
|
+
sharesTokenProgram: TOKEN_PROGRAM_ID,
|
|
228
250
|
};
|
|
229
251
|
|
|
230
252
|
const depositArgs: DepositArgs = {
|
|
@@ -235,10 +257,24 @@ export class KaminoVaultClient {
|
|
|
235
257
|
|
|
236
258
|
const vaultReserves = this.getVaultReserves(vaultState);
|
|
237
259
|
|
|
238
|
-
const
|
|
239
|
-
|
|
260
|
+
const vaultReservesState = await this.loadVaultReserves(vaultState);
|
|
261
|
+
|
|
262
|
+
let vaultReservesAccountMetas: AccountMeta[] = [];
|
|
263
|
+
let vaultReservesLendingMarkets: AccountMeta[] = [];
|
|
264
|
+
vaultReserves.forEach((reserve) => {
|
|
265
|
+
const reserveState = vaultReservesState.get(reserve);
|
|
266
|
+
if (reserveState === undefined) {
|
|
267
|
+
throw new Error(`Reserve ${reserve.toBase58()} not found`);
|
|
268
|
+
}
|
|
269
|
+
vaultReservesAccountMetas = vaultReservesAccountMetas.concat([
|
|
270
|
+
{ pubkey: reserve, isSigner: false, isWritable: true },
|
|
271
|
+
]);
|
|
272
|
+
vaultReservesLendingMarkets = vaultReservesLendingMarkets.concat([
|
|
273
|
+
{ pubkey: reserveState.state.lendingMarket, isSigner: false, isWritable: false },
|
|
274
|
+
]);
|
|
240
275
|
});
|
|
241
276
|
depositIx.keys = depositIx.keys.concat(vaultReservesAccountMetas);
|
|
277
|
+
depositIx.keys = depositIx.keys.concat(vaultReservesLendingMarkets);
|
|
242
278
|
|
|
243
279
|
return [...createAtasIxns, depositIx, ...closeAtasIxns];
|
|
244
280
|
}
|
|
@@ -341,7 +377,7 @@ export class KaminoVaultClient {
|
|
|
341
377
|
* @param kaminoVault - vault to invest from
|
|
342
378
|
* @returns - an array of invest instructions for each invest action required for the vault reserves
|
|
343
379
|
*/
|
|
344
|
-
async investAllReservesIxs(vault: KaminoVault): Promise<TransactionInstruction[]> {
|
|
380
|
+
async investAllReservesIxs(payer: PublicKey, vault: KaminoVault): Promise<TransactionInstruction[]> {
|
|
345
381
|
//TODO: Order invest ixns by - invest that removes first, then invest that adds
|
|
346
382
|
|
|
347
383
|
const vaultState = await vault.getState(this._connection);
|
|
@@ -352,7 +388,7 @@ export class KaminoVaultClient {
|
|
|
352
388
|
if (reserveState === null) {
|
|
353
389
|
throw new Error(`Reserve ${reserve.toBase58()} not found`);
|
|
354
390
|
}
|
|
355
|
-
investIxns.push(await this.investSingleReserveIxs(vault, { address: reserve, state: reserveState }));
|
|
391
|
+
investIxns.push(await this.investSingleReserveIxs(payer, vault, { address: reserve, state: reserveState }));
|
|
356
392
|
}
|
|
357
393
|
|
|
358
394
|
return investIxns;
|
|
@@ -364,14 +400,21 @@ export class KaminoVaultClient {
|
|
|
364
400
|
* @param reserve - reserve to invest into or disinvest from
|
|
365
401
|
* @returns - an array of invest instructions for each invest action required for the vault reserves
|
|
366
402
|
*/
|
|
367
|
-
async investSingleReserveIxs(
|
|
403
|
+
async investSingleReserveIxs(
|
|
404
|
+
payer: PublicKey,
|
|
405
|
+
vault: KaminoVault,
|
|
406
|
+
reserve: ReserveWithAddress
|
|
407
|
+
): Promise<TransactionInstruction> {
|
|
368
408
|
const vaultState = await vault.getState(this._connection);
|
|
369
409
|
|
|
370
|
-
const cTokenVault = getCTokenVaultPda(reserve.address, this._kaminoVaultProgramId);
|
|
410
|
+
const cTokenVault = getCTokenVaultPda(vault.address, reserve.address, this._kaminoVaultProgramId);
|
|
371
411
|
const lendingMarketAuth = lendingMarketAuthPda(reserve.state.lendingMarket, this._kaminoLendProgramId)[0];
|
|
372
412
|
|
|
413
|
+
// todo: create ata if needed here
|
|
414
|
+
const payerTokenAta = getAssociatedTokenAddress(vaultState.tokenMint, payer);
|
|
415
|
+
|
|
373
416
|
const investAccounts: InvestAccounts = {
|
|
374
|
-
|
|
417
|
+
payer,
|
|
375
418
|
vaultState: vault.address,
|
|
376
419
|
tokenVault: vaultState.tokenVault,
|
|
377
420
|
baseVaultAuthority: vaultState.baseVaultAuthority,
|
|
@@ -385,6 +428,10 @@ export class KaminoVaultClient {
|
|
|
385
428
|
klendProgram: this._kaminoLendProgramId,
|
|
386
429
|
instructionSysvarAccount: SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
387
430
|
tokenProgram: TOKEN_PROGRAM_ID,
|
|
431
|
+
payerTokenAccount: payerTokenAta,
|
|
432
|
+
tokenMint: vaultState.tokenMint,
|
|
433
|
+
reserveCollateralTokenProgram: TOKEN_PROGRAM_ID,
|
|
434
|
+
sharesTokenProgram: TOKEN_PROGRAM_ID,
|
|
388
435
|
};
|
|
389
436
|
|
|
390
437
|
const investIx = invest(investAccounts, this._kaminoVaultProgramId);
|
|
@@ -398,7 +445,7 @@ export class KaminoVaultClient {
|
|
|
398
445
|
return investIx;
|
|
399
446
|
}
|
|
400
447
|
|
|
401
|
-
private withdrawIxn(
|
|
448
|
+
private async withdrawIxn(
|
|
402
449
|
user: PublicKey,
|
|
403
450
|
vault: KaminoVault,
|
|
404
451
|
vaultState: VaultState,
|
|
@@ -407,7 +454,7 @@ export class KaminoVaultClient {
|
|
|
407
454
|
userSharesAta: PublicKey,
|
|
408
455
|
userTokenAta: PublicKey,
|
|
409
456
|
shareAmountLamports: Decimal
|
|
410
|
-
): TransactionInstruction {
|
|
457
|
+
): Promise<TransactionInstruction> {
|
|
411
458
|
const lendingMarketAuth = lendingMarketAuthPda(marketWithAddress.address, this._kaminoLendProgramId)[0];
|
|
412
459
|
|
|
413
460
|
const withdrawAccounts: WithdrawAccounts = {
|
|
@@ -422,13 +469,15 @@ export class KaminoVaultClient {
|
|
|
422
469
|
tokenProgram: TOKEN_PROGRAM_ID,
|
|
423
470
|
instructionSysvarAccount: SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
424
471
|
reserve: reserve.address,
|
|
425
|
-
ctokenVault: getCTokenVaultPda(reserve.address, this._kaminoVaultProgramId),
|
|
472
|
+
ctokenVault: getCTokenVaultPda(vault.address, reserve.address, this._kaminoVaultProgramId),
|
|
426
473
|
/** CPI accounts */
|
|
427
474
|
lendingMarket: marketWithAddress.address,
|
|
428
475
|
lendingMarketAuthority: lendingMarketAuth,
|
|
429
476
|
reserveLiquiditySupply: reserve.state.liquidity.supplyVault,
|
|
430
477
|
reserveCollateralMint: reserve.state.collateral.mintPubkey,
|
|
431
478
|
klendProgram: this._kaminoLendProgramId,
|
|
479
|
+
reserveCollateralTokenProgram: TOKEN_PROGRAM_ID,
|
|
480
|
+
sharesTokenProgram: TOKEN_PROGRAM_ID,
|
|
432
481
|
};
|
|
433
482
|
|
|
434
483
|
const withdrawArgs: WithdrawArgs = {
|
|
@@ -438,10 +487,26 @@ export class KaminoVaultClient {
|
|
|
438
487
|
const withdrawIxn = withdraw(withdrawArgs, withdrawAccounts, this._kaminoVaultProgramId);
|
|
439
488
|
|
|
440
489
|
const vaultReserves = this.getVaultReserves(vaultState);
|
|
441
|
-
const
|
|
442
|
-
|
|
490
|
+
const vaultReservesState = await this.loadVaultReserves(vaultState);
|
|
491
|
+
|
|
492
|
+
let vaultReservesAccountMetas: AccountMeta[] = [];
|
|
493
|
+
let vaultReservesLendingMarkets: AccountMeta[] = [];
|
|
494
|
+
|
|
495
|
+
vaultReserves.forEach((reserve) => {
|
|
496
|
+
const reserveState = vaultReservesState.get(reserve);
|
|
497
|
+
if (reserveState === undefined) {
|
|
498
|
+
throw new Error(`Reserve ${reserve.toBase58()} not found`);
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
vaultReservesAccountMetas = vaultReservesAccountMetas.concat([
|
|
502
|
+
{ pubkey: reserve, isSigner: false, isWritable: true },
|
|
503
|
+
]);
|
|
504
|
+
vaultReservesLendingMarkets = vaultReservesLendingMarkets.concat([
|
|
505
|
+
{ pubkey: reserveState.state.lendingMarket, isSigner: false, isWritable: false },
|
|
506
|
+
]);
|
|
443
507
|
});
|
|
444
508
|
withdrawIxn.keys = withdrawIxn.keys.concat(vaultReservesAccountMetas);
|
|
509
|
+
withdrawIxn.keys = withdrawIxn.keys.concat(vaultReservesLendingMarkets);
|
|
445
510
|
|
|
446
511
|
return withdrawIxn;
|
|
447
512
|
}
|
|
@@ -590,6 +655,44 @@ export class KaminoVaultClient {
|
|
|
590
655
|
return vaultTokensPerShare;
|
|
591
656
|
}
|
|
592
657
|
|
|
658
|
+
/**
|
|
659
|
+
* Get all vaults
|
|
660
|
+
* @returns an array of all vaults
|
|
661
|
+
*/
|
|
662
|
+
async getAllVaults(): Promise<KaminoVault[]> {
|
|
663
|
+
const filters = [
|
|
664
|
+
{
|
|
665
|
+
dataSize: VaultState.layout.span + 8,
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
memcmp: {
|
|
669
|
+
offset: 0,
|
|
670
|
+
bytes: bs58.encode(VaultState.discriminator),
|
|
671
|
+
},
|
|
672
|
+
},
|
|
673
|
+
];
|
|
674
|
+
|
|
675
|
+
const [kaminoVaults] = await Promise.all([
|
|
676
|
+
getProgramAccounts(this._connection, this._kaminoVaultProgramId, {
|
|
677
|
+
commitment: this._connection.commitment ?? 'processed',
|
|
678
|
+
filters,
|
|
679
|
+
}),
|
|
680
|
+
]);
|
|
681
|
+
|
|
682
|
+
return kaminoVaults.map((kaminoVault) => {
|
|
683
|
+
if (kaminoVault.account === null) {
|
|
684
|
+
throw new Error(`kaminoVault with pubkey ${kaminoVault.pubkey.toString()} does not exist`);
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
const kaminoVaultAccount = VaultState.decode(kaminoVault.account.data);
|
|
688
|
+
if (!kaminoVaultAccount) {
|
|
689
|
+
throw Error(`kaminoVault with pubkey ${kaminoVault.pubkey.toString()} could not be decoded`);
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
return new KaminoVault(kaminoVault.pubkey, kaminoVaultAccount, this._kaminoVaultProgramId);
|
|
693
|
+
});
|
|
694
|
+
}
|
|
695
|
+
|
|
593
696
|
/**
|
|
594
697
|
* This will return an unsorted hash map of all reserves that the given vault has allocations for, toghether with the amount that can be withdrawn from each of the reserves
|
|
595
698
|
* @param vault - the kamino vault to get available liquidity to withdraw for
|
|
@@ -673,40 +776,6 @@ export class KaminoVaultClient {
|
|
|
673
776
|
|
|
674
777
|
return kaminoReserves;
|
|
675
778
|
}
|
|
676
|
-
|
|
677
|
-
/**
|
|
678
|
-
* Get all vaults
|
|
679
|
-
* @returns an array of all vaults
|
|
680
|
-
*/
|
|
681
|
-
async getAllVaults(): Promise<KaminoVault[]> {
|
|
682
|
-
const { getProgramAccounts } = await import('../utils/rpc');
|
|
683
|
-
const filters = [
|
|
684
|
-
{
|
|
685
|
-
dataSize: VaultState.layout.span + 8,
|
|
686
|
-
},
|
|
687
|
-
];
|
|
688
|
-
|
|
689
|
-
const [, kaminoVaults] = await Promise.all([
|
|
690
|
-
this._connection.getSlot(),
|
|
691
|
-
getProgramAccounts(this._connection, this._kaminoVaultProgramId, {
|
|
692
|
-
commitment: this._connection.commitment ?? 'processed',
|
|
693
|
-
filters,
|
|
694
|
-
}),
|
|
695
|
-
]);
|
|
696
|
-
|
|
697
|
-
return kaminoVaults.map((kaminoVault) => {
|
|
698
|
-
if (kaminoVault.account === null) {
|
|
699
|
-
throw new Error('Invalid account');
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
const kaminoVaultAccount = VaultState.decode(kaminoVault.account.data);
|
|
703
|
-
if (!kaminoVaultAccount) {
|
|
704
|
-
throw Error('Could not parse obligation.');
|
|
705
|
-
}
|
|
706
|
-
|
|
707
|
-
return new KaminoVault(kaminoVault.pubkey, kaminoVaultAccount, this._kaminoVaultProgramId);
|
|
708
|
-
});
|
|
709
|
-
}
|
|
710
779
|
} // KaminoVaultClient
|
|
711
780
|
|
|
712
781
|
export class KaminoVault {
|
|
@@ -804,9 +873,14 @@ export class ReserveAllocationConfig {
|
|
|
804
873
|
}
|
|
805
874
|
}
|
|
806
875
|
|
|
807
|
-
export function getCTokenVaultPda(reserveAddress: PublicKey, kaminoVaultProgramId: PublicKey) {
|
|
876
|
+
export function getCTokenVaultPda(vaultAddress: PublicKey, reserveAddress: PublicKey, kaminoVaultProgramId: PublicKey) {
|
|
808
877
|
return PublicKey.findProgramAddressSync(
|
|
809
|
-
[Buffer.from(CTOKEN_VAULT_SEED), reserveAddress.toBytes()],
|
|
878
|
+
[Buffer.from(CTOKEN_VAULT_SEED), vaultAddress.toBytes(), reserveAddress.toBytes()],
|
|
810
879
|
kaminoVaultProgramId
|
|
811
880
|
)[0];
|
|
812
881
|
}
|
|
882
|
+
|
|
883
|
+
export type VaultHolder = {
|
|
884
|
+
holderPubkey: PublicKey;
|
|
885
|
+
amount: Decimal;
|
|
886
|
+
};
|
|
@@ -87,7 +87,7 @@ async function main() {
|
|
|
87
87
|
|
|
88
88
|
commands
|
|
89
89
|
.command('add-asset-to-market')
|
|
90
|
-
.requiredOption('--market <string>', 'Market
|
|
90
|
+
.requiredOption('--market <string>', 'Market address to add asset to')
|
|
91
91
|
.requiredOption('--mint <string>', 'Reserve liquidity token mint')
|
|
92
92
|
.requiredOption('--mint-program-id <string>', 'Reserve liquidity token mint program id')
|
|
93
93
|
.requiredOption('--reserve-config-path <string>', 'Path for the reserve config')
|
|
@@ -296,6 +296,24 @@ async function main() {
|
|
|
296
296
|
mode === 'execute' && console.log('Vault allocation updated:', updateVaultAllocationSig);
|
|
297
297
|
});
|
|
298
298
|
|
|
299
|
+
// commands
|
|
300
|
+
// .command('close-vault')
|
|
301
|
+
// .requiredOption('--vault <string>', 'Vault address')
|
|
302
|
+
// .option(`--staging`, 'If true, will use the staging programs')
|
|
303
|
+
// .action(async ({vault, staging}) => {
|
|
304
|
+
// console.log("silviuuuu vault", vault);
|
|
305
|
+
// const env = initializeClient(false, staging);
|
|
306
|
+
// const vaultAddress = new PublicKey(vault);
|
|
307
|
+
|
|
308
|
+
// const kaminoManager = new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId);
|
|
309
|
+
|
|
310
|
+
// const kaminoVault = new KaminoVault(vaultAddress, undefined, env.kVaultProgramId);
|
|
311
|
+
// const instructions = await kaminoManager.closeVault(kaminoVault);
|
|
312
|
+
|
|
313
|
+
// const closeVaultSig = await processTxn(env.client, env.payer, [instructions], 'execute', 2500, []);
|
|
314
|
+
// console.log('Vault closed:', closeVaultSig);
|
|
315
|
+
// });
|
|
316
|
+
|
|
299
317
|
commands.command('get-oracle-mappings').action(async () => {
|
|
300
318
|
const env = initializeClient(false, false);
|
|
301
319
|
const kaminoManager = new KaminoManager(env.connection, env.kLendProgramId, env.kVaultProgramId);
|
|
@@ -51,6 +51,8 @@ export interface LendingMarketFields {
|
|
|
51
51
|
/** Min net value accepted to be found in a position after any lending action in an obligation (scaled by quote currency decimals) */
|
|
52
52
|
minNetValueInObligationSf: BN
|
|
53
53
|
minValueSkipLiquidationLtvBfChecks: BN
|
|
54
|
+
/** Market name, zero-padded. */
|
|
55
|
+
name: Array<number>
|
|
54
56
|
padding1: Array<BN>
|
|
55
57
|
}
|
|
56
58
|
|
|
@@ -101,6 +103,8 @@ export interface LendingMarketJSON {
|
|
|
101
103
|
/** Min net value accepted to be found in a position after any lending action in an obligation (scaled by quote currency decimals) */
|
|
102
104
|
minNetValueInObligationSf: string
|
|
103
105
|
minValueSkipLiquidationLtvBfChecks: string
|
|
106
|
+
/** Market name, zero-padded. */
|
|
107
|
+
name: Array<number>
|
|
104
108
|
padding1: Array<string>
|
|
105
109
|
}
|
|
106
110
|
|
|
@@ -151,6 +155,8 @@ export class LendingMarket {
|
|
|
151
155
|
/** Min net value accepted to be found in a position after any lending action in an obligation (scaled by quote currency decimals) */
|
|
152
156
|
readonly minNetValueInObligationSf: BN
|
|
153
157
|
readonly minValueSkipLiquidationLtvBfChecks: BN
|
|
158
|
+
/** Market name, zero-padded. */
|
|
159
|
+
readonly name: Array<number>
|
|
154
160
|
readonly padding1: Array<BN>
|
|
155
161
|
|
|
156
162
|
static readonly discriminator = Buffer.from([
|
|
@@ -180,7 +186,8 @@ export class LendingMarket {
|
|
|
180
186
|
borsh.array(borsh.u64(), 90, "elevationGroupPadding"),
|
|
181
187
|
borsh.u128("minNetValueInObligationSf"),
|
|
182
188
|
borsh.u64("minValueSkipLiquidationLtvBfChecks"),
|
|
183
|
-
borsh.array(borsh.
|
|
189
|
+
borsh.array(borsh.u8(), 32, "name"),
|
|
190
|
+
borsh.array(borsh.u64(), 173, "padding1"),
|
|
184
191
|
])
|
|
185
192
|
|
|
186
193
|
constructor(fields: LendingMarketFields) {
|
|
@@ -212,6 +219,7 @@ export class LendingMarket {
|
|
|
212
219
|
this.minNetValueInObligationSf = fields.minNetValueInObligationSf
|
|
213
220
|
this.minValueSkipLiquidationLtvBfChecks =
|
|
214
221
|
fields.minValueSkipLiquidationLtvBfChecks
|
|
222
|
+
this.name = fields.name
|
|
215
223
|
this.padding1 = fields.padding1
|
|
216
224
|
}
|
|
217
225
|
|
|
@@ -287,6 +295,7 @@ export class LendingMarket {
|
|
|
287
295
|
minNetValueInObligationSf: dec.minNetValueInObligationSf,
|
|
288
296
|
minValueSkipLiquidationLtvBfChecks:
|
|
289
297
|
dec.minValueSkipLiquidationLtvBfChecks,
|
|
298
|
+
name: dec.name,
|
|
290
299
|
padding1: dec.padding1,
|
|
291
300
|
})
|
|
292
301
|
}
|
|
@@ -320,6 +329,7 @@ export class LendingMarket {
|
|
|
320
329
|
minNetValueInObligationSf: this.minNetValueInObligationSf.toString(),
|
|
321
330
|
minValueSkipLiquidationLtvBfChecks:
|
|
322
331
|
this.minValueSkipLiquidationLtvBfChecks.toString(),
|
|
332
|
+
name: this.name,
|
|
323
333
|
padding1: this.padding1.map((item) => item.toString()),
|
|
324
334
|
}
|
|
325
335
|
}
|
|
@@ -358,6 +368,7 @@ export class LendingMarket {
|
|
|
358
368
|
minValueSkipLiquidationLtvBfChecks: new BN(
|
|
359
369
|
obj.minValueSkipLiquidationLtvBfChecks
|
|
360
370
|
),
|
|
371
|
+
name: obj.name,
|
|
361
372
|
padding1: obj.padding1.map((item) => new BN(item)),
|
|
362
373
|
})
|
|
363
374
|
}
|
|
@@ -13,10 +13,7 @@ export interface ObligationFields {
|
|
|
13
13
|
lendingMarket: PublicKey
|
|
14
14
|
/** Owner authority which can borrow liquidity */
|
|
15
15
|
owner: PublicKey
|
|
16
|
-
/**
|
|
17
|
-
* TODO: Does this break the stack size when copied onto the stack, if too big?
|
|
18
|
-
* Deposited collateral for the obligation, unique by deposit reserve address
|
|
19
|
-
*/
|
|
16
|
+
/** Deposited collateral for the obligation, unique by deposit reserve address */
|
|
20
17
|
deposits: Array<types.ObligationCollateralFields>
|
|
21
18
|
/** Worst LTV for the collaterals backing the loan, represented as a percentage */
|
|
22
19
|
lowestReserveDepositLiquidationLtv: BN
|
|
@@ -60,10 +57,7 @@ export interface ObligationJSON {
|
|
|
60
57
|
lendingMarket: string
|
|
61
58
|
/** Owner authority which can borrow liquidity */
|
|
62
59
|
owner: string
|
|
63
|
-
/**
|
|
64
|
-
* TODO: Does this break the stack size when copied onto the stack, if too big?
|
|
65
|
-
* Deposited collateral for the obligation, unique by deposit reserve address
|
|
66
|
-
*/
|
|
60
|
+
/** Deposited collateral for the obligation, unique by deposit reserve address */
|
|
67
61
|
deposits: Array<types.ObligationCollateralJSON>
|
|
68
62
|
/** Worst LTV for the collaterals backing the loan, represented as a percentage */
|
|
69
63
|
lowestReserveDepositLiquidationLtv: string
|
|
@@ -108,10 +102,7 @@ export class Obligation {
|
|
|
108
102
|
readonly lendingMarket: PublicKey
|
|
109
103
|
/** Owner authority which can borrow liquidity */
|
|
110
104
|
readonly owner: PublicKey
|
|
111
|
-
/**
|
|
112
|
-
* TODO: Does this break the stack size when copied onto the stack, if too big?
|
|
113
|
-
* Deposited collateral for the obligation, unique by deposit reserve address
|
|
114
|
-
*/
|
|
105
|
+
/** Deposited collateral for the obligation, unique by deposit reserve address */
|
|
115
106
|
readonly deposits: Array<types.ObligationCollateral>
|
|
116
107
|
/** Worst LTV for the collaterals backing the loan, represented as a percentage */
|
|
117
108
|
readonly lowestReserveDepositLiquidationLtv: BN
|
|
@@ -283,6 +283,41 @@ export class ElevationGroup {
|
|
|
283
283
|
}
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
+
export type NameFields = [Array<number>]
|
|
287
|
+
export type NameValue = [Array<number>]
|
|
288
|
+
|
|
289
|
+
export interface NameJSON {
|
|
290
|
+
kind: "Name"
|
|
291
|
+
value: [Array<number>]
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
export class Name {
|
|
295
|
+
static readonly discriminator = 8
|
|
296
|
+
static readonly kind = "Name"
|
|
297
|
+
readonly discriminator = 8
|
|
298
|
+
readonly kind = "Name"
|
|
299
|
+
readonly value: NameValue
|
|
300
|
+
|
|
301
|
+
constructor(value: NameFields) {
|
|
302
|
+
this.value = [value[0]]
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
toJSON(): NameJSON {
|
|
306
|
+
return {
|
|
307
|
+
kind: "Name",
|
|
308
|
+
value: [this.value[0]],
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
toEncodable() {
|
|
313
|
+
return {
|
|
314
|
+
Name: {
|
|
315
|
+
_0: this.value[0],
|
|
316
|
+
},
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
286
321
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
287
322
|
export function fromDecoded(
|
|
288
323
|
obj: any
|
|
@@ -323,6 +358,10 @@ export function fromDecoded(
|
|
|
323
358
|
const val = obj["ElevationGroup"]
|
|
324
359
|
return new ElevationGroup([types.ElevationGroup.fromDecoded(val["_0"])])
|
|
325
360
|
}
|
|
361
|
+
if ("Name" in obj) {
|
|
362
|
+
const val = obj["Name"]
|
|
363
|
+
return new Name([val["_0"]])
|
|
364
|
+
}
|
|
326
365
|
|
|
327
366
|
throw new Error("Invalid enum object")
|
|
328
367
|
}
|
|
@@ -355,6 +394,9 @@ export function fromJSON(
|
|
|
355
394
|
case "ElevationGroup": {
|
|
356
395
|
return new ElevationGroup([types.ElevationGroup.fromJSON(obj.value[0])])
|
|
357
396
|
}
|
|
397
|
+
case "Name": {
|
|
398
|
+
return new Name([obj.value[0]])
|
|
399
|
+
}
|
|
358
400
|
}
|
|
359
401
|
}
|
|
360
402
|
|
|
@@ -368,6 +410,7 @@ export function layout(property?: string) {
|
|
|
368
410
|
borsh.struct([borsh.u128("_0")], "U128"),
|
|
369
411
|
borsh.struct([borsh.publicKey("_0")], "Pubkey"),
|
|
370
412
|
borsh.struct([types.ElevationGroup.layout("_0")], "ElevationGroup"),
|
|
413
|
+
borsh.struct([borsh.array(borsh.u8(), 32, "_0")], "Name"),
|
|
371
414
|
])
|
|
372
415
|
if (property !== undefined) {
|
|
373
416
|
return ret.replicate(property)
|
|
@@ -417,6 +417,29 @@ export class UpdatePaddingFields {
|
|
|
417
417
|
}
|
|
418
418
|
}
|
|
419
419
|
|
|
420
|
+
export interface UpdateNameJSON {
|
|
421
|
+
kind: "UpdateName"
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
export class UpdateName {
|
|
425
|
+
static readonly discriminator = 18
|
|
426
|
+
static readonly kind = "UpdateName"
|
|
427
|
+
readonly discriminator = 18
|
|
428
|
+
readonly kind = "UpdateName"
|
|
429
|
+
|
|
430
|
+
toJSON(): UpdateNameJSON {
|
|
431
|
+
return {
|
|
432
|
+
kind: "UpdateName",
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
toEncodable() {
|
|
437
|
+
return {
|
|
438
|
+
UpdateName: {},
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
|
|
420
443
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
421
444
|
export function fromDecoded(obj: any): types.UpdateLendingMarketModeKind {
|
|
422
445
|
if (typeof obj !== "object") {
|
|
@@ -477,6 +500,9 @@ export function fromDecoded(obj: any): types.UpdateLendingMarketModeKind {
|
|
|
477
500
|
if ("UpdatePaddingFields" in obj) {
|
|
478
501
|
return new UpdatePaddingFields()
|
|
479
502
|
}
|
|
503
|
+
if ("UpdateName" in obj) {
|
|
504
|
+
return new UpdateName()
|
|
505
|
+
}
|
|
480
506
|
|
|
481
507
|
throw new Error("Invalid enum object")
|
|
482
508
|
}
|
|
@@ -539,6 +565,9 @@ export function fromJSON(
|
|
|
539
565
|
case "UpdatePaddingFields": {
|
|
540
566
|
return new UpdatePaddingFields()
|
|
541
567
|
}
|
|
568
|
+
case "UpdateName": {
|
|
569
|
+
return new UpdateName()
|
|
570
|
+
}
|
|
542
571
|
}
|
|
543
572
|
}
|
|
544
573
|
|
|
@@ -562,6 +591,7 @@ export function layout(property?: string) {
|
|
|
562
591
|
borsh.struct([], "UpdateMinNetValueObligationPostAction"),
|
|
563
592
|
borsh.struct([], "UpdateMinValueSkipPriorityLiqCheck"),
|
|
564
593
|
borsh.struct([], "UpdatePaddingFields"),
|
|
594
|
+
borsh.struct([], "UpdateName"),
|
|
565
595
|
])
|
|
566
596
|
if (property !== undefined) {
|
|
567
597
|
return ret.replicate(property)
|
|
@@ -116,6 +116,7 @@ export type UpdateLendingMarketConfigValueKind =
|
|
|
116
116
|
| UpdateLendingMarketConfigValue.U128
|
|
117
117
|
| UpdateLendingMarketConfigValue.Pubkey
|
|
118
118
|
| UpdateLendingMarketConfigValue.ElevationGroup
|
|
119
|
+
| UpdateLendingMarketConfigValue.Name
|
|
119
120
|
export type UpdateLendingMarketConfigValueJSON =
|
|
120
121
|
| UpdateLendingMarketConfigValue.BoolJSON
|
|
121
122
|
| UpdateLendingMarketConfigValue.U8JSON
|
|
@@ -125,6 +126,7 @@ export type UpdateLendingMarketConfigValueJSON =
|
|
|
125
126
|
| UpdateLendingMarketConfigValue.U128JSON
|
|
126
127
|
| UpdateLendingMarketConfigValue.PubkeyJSON
|
|
127
128
|
| UpdateLendingMarketConfigValue.ElevationGroupJSON
|
|
129
|
+
| UpdateLendingMarketConfigValue.NameJSON
|
|
128
130
|
|
|
129
131
|
export { UpdateLendingMarketMode }
|
|
130
132
|
|
|
@@ -147,6 +149,7 @@ export type UpdateLendingMarketModeKind =
|
|
|
147
149
|
| UpdateLendingMarketMode.UpdateMinNetValueObligationPostAction
|
|
148
150
|
| UpdateLendingMarketMode.UpdateMinValueSkipPriorityLiqCheck
|
|
149
151
|
| UpdateLendingMarketMode.UpdatePaddingFields
|
|
152
|
+
| UpdateLendingMarketMode.UpdateName
|
|
150
153
|
export type UpdateLendingMarketModeJSON =
|
|
151
154
|
| UpdateLendingMarketMode.UpdateOwnerJSON
|
|
152
155
|
| UpdateLendingMarketMode.UpdateEmergencyModeJSON
|
|
@@ -166,6 +169,7 @@ export type UpdateLendingMarketModeJSON =
|
|
|
166
169
|
| UpdateLendingMarketMode.UpdateMinNetValueObligationPostActionJSON
|
|
167
170
|
| UpdateLendingMarketMode.UpdateMinValueSkipPriorityLiqCheckJSON
|
|
168
171
|
| UpdateLendingMarketMode.UpdatePaddingFieldsJSON
|
|
172
|
+
| UpdateLendingMarketMode.UpdateNameJSON
|
|
169
173
|
|
|
170
174
|
export { LastUpdate } from "./LastUpdate"
|
|
171
175
|
export type { LastUpdateFields, LastUpdateJSON } from "./LastUpdate"
|