@kamino-finance/klend-sdk 5.13.21-beta.0 → 5.13.21
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/farm_utils.d.ts.map +1 -1
- package/dist/classes/farm_utils.js +10 -3
- package/dist/classes/farm_utils.js.map +1 -1
- package/dist/classes/manager.d.ts +12 -5
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +300 -39
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/obligation.d.ts.map +1 -1
- package/dist/classes/obligation.js +0 -14
- package/dist/classes/obligation.js.map +1 -1
- package/dist/classes/reserve.d.ts +14 -5
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +463 -91
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/utils.d.ts +0 -1
- package/dist/classes/utils.d.ts.map +1 -1
- package/dist/classes/utils.js +0 -12
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +2 -1
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +9 -5
- package/dist/classes/vault.js.map +1 -1
- package/dist/client_kamino_manager.d.ts.map +1 -1
- package/dist/client_kamino_manager.js +26 -27
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/idl.json +9 -186
- package/dist/idl_codegen/accounts/LendingMarket.d.ts +3 -24
- package/dist/idl_codegen/accounts/LendingMarket.d.ts.map +1 -1
- package/dist/idl_codegen/accounts/LendingMarket.js +7 -25
- package/dist/idl_codegen/accounts/LendingMarket.js.map +1 -1
- package/dist/idl_codegen/accounts/index.d.ts +0 -2
- package/dist/idl_codegen/accounts/index.d.ts.map +1 -1
- package/dist/idl_codegen/accounts/index.js +1 -3
- package/dist/idl_codegen/accounts/index.js.map +1 -1
- package/dist/idl_codegen/errors/custom.d.ts +1 -25
- package/dist/idl_codegen/errors/custom.d.ts.map +1 -1
- package/dist/idl_codegen/errors/custom.js +1 -43
- package/dist/idl_codegen/errors/custom.js.map +1 -1
- package/dist/idl_codegen/instructions/idlMissingTypes.d.ts +1 -2
- package/dist/idl_codegen/instructions/idlMissingTypes.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/idlMissingTypes.js +1 -2
- package/dist/idl_codegen/instructions/idlMissingTypes.js.map +1 -1
- package/dist/idl_codegen/instructions/index.d.ts +0 -6
- package/dist/idl_codegen/instructions/index.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/index.js +1 -7
- package/dist/idl_codegen/instructions/index.js.map +1 -1
- package/dist/idl_codegen/instructions/updateReserveConfig.d.ts +3 -4
- package/dist/idl_codegen/instructions/updateReserveConfig.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/updateReserveConfig.js +3 -5
- package/dist/idl_codegen/instructions/updateReserveConfig.js.map +1 -1
- package/dist/idl_codegen/instructions/withdrawProtocolFee.d.ts +2 -2
- package/dist/idl_codegen/instructions/withdrawProtocolFee.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/withdrawProtocolFee.js +6 -2
- package/dist/idl_codegen/instructions/withdrawProtocolFee.js.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts +7 -33
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js +12 -60
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -1
- package/dist/idl_codegen/types/index.d.ts +2 -6
- package/dist/idl_codegen/types/index.d.ts.map +1 -1
- package/dist/idl_codegen/types/index.js +1 -3
- package/dist/idl_codegen/types/index.js.map +1 -1
- package/dist/utils/accountListing.d.ts +1 -1
- package/dist/utils/accountListing.d.ts.map +1 -1
- package/dist/utils/accountListing.js +2 -2
- package/dist/utils/accountListing.js.map +1 -1
- package/dist/utils/lookupTable.d.ts.map +1 -1
- package/dist/utils/lookupTable.js +6 -1
- package/dist/utils/lookupTable.js.map +1 -1
- package/dist/utils/managerTypes.d.ts.map +1 -1
- package/dist/utils/managerTypes.js +4 -10
- package/dist/utils/managerTypes.js.map +1 -1
- package/dist/utils/seeds.d.ts +0 -16
- package/dist/utils/seeds.d.ts.map +1 -1
- package/dist/utils/seeds.js +1 -23
- package/dist/utils/seeds.js.map +1 -1
- package/package.json +1 -1
- package/src/classes/farm_utils.ts +11 -3
- package/src/classes/manager.ts +401 -51
- package/src/classes/obligation.ts +0 -16
- package/src/classes/reserve.ts +783 -119
- package/src/classes/utils.ts +0 -12
- package/src/classes/vault.ts +18 -7
- package/src/client_kamino_manager.ts +34 -42
- package/src/idl.json +9 -186
- package/src/idl_codegen/accounts/LendingMarket.ts +9 -41
- package/src/idl_codegen/accounts/index.ts +0 -2
- package/src/idl_codegen/errors/custom.ts +0 -45
- package/src/idl_codegen/instructions/idlMissingTypes.ts +2 -4
- package/src/idl_codegen/instructions/index.ts +0 -9
- package/src/idl_codegen/instructions/updateReserveConfig.ts +5 -7
- package/src/idl_codegen/instructions/withdrawProtocolFee.ts +8 -4
- package/src/idl_codegen/types/UpdateLendingMarketMode.ts +13 -73
- package/src/idl_codegen/types/index.ts +2 -16
- package/src/utils/accountListing.ts +3 -2
- package/src/utils/lookupTable.ts +7 -1
- package/src/utils/managerTypes.ts +4 -10
- package/src/utils/seeds.ts +0 -25
- package/dist/classes/configItems.d.ts +0 -166
- package/dist/classes/configItems.d.ts.map +0 -1
- package/dist/classes/configItems.js +0 -202
- package/dist/classes/configItems.js.map +0 -1
- package/dist/idl_codegen/accounts/GlobalConfig.d.ts +0 -40
- package/dist/idl_codegen/accounts/GlobalConfig.d.ts.map +0 -1
- package/dist/idl_codegen/accounts/GlobalConfig.js +0 -116
- package/dist/idl_codegen/accounts/GlobalConfig.js.map +0 -1
- package/dist/idl_codegen/instructions/initGlobalConfig.d.ts +0 -10
- package/dist/idl_codegen/instructions/initGlobalConfig.d.ts.map +0 -1
- package/dist/idl_codegen/instructions/initGlobalConfig.js +0 -19
- package/dist/idl_codegen/instructions/initGlobalConfig.js.map +0 -1
- package/dist/idl_codegen/instructions/updateGlobalConfig.d.ts +0 -13
- package/dist/idl_codegen/instructions/updateGlobalConfig.d.ts.map +0 -1
- package/dist/idl_codegen/instructions/updateGlobalConfig.js +0 -61
- package/dist/idl_codegen/instructions/updateGlobalConfig.js.map +0 -1
- package/dist/idl_codegen/instructions/updateGlobalConfigAdmin.d.ts +0 -7
- package/dist/idl_codegen/instructions/updateGlobalConfigAdmin.d.ts.map +0 -1
- package/dist/idl_codegen/instructions/updateGlobalConfigAdmin.js +0 -16
- package/dist/idl_codegen/instructions/updateGlobalConfigAdmin.js.map +0 -1
- package/dist/idl_codegen/types/UpdateGlobalConfigMode.d.ts +0 -32
- package/dist/idl_codegen/types/UpdateGlobalConfigMode.d.ts.map +0 -1
- package/dist/idl_codegen/types/UpdateGlobalConfigMode.js +0 -108
- package/dist/idl_codegen/types/UpdateGlobalConfigMode.js.map +0 -1
- package/src/classes/configItems.ts +0 -295
- package/src/idl_codegen/accounts/GlobalConfig.ts +0 -125
- package/src/idl_codegen/instructions/initGlobalConfig.ts +0 -30
- package/src/idl_codegen/instructions/updateGlobalConfig.ts +0 -47
- package/src/idl_codegen/instructions/updateGlobalConfigAdmin.ts +0 -24
- package/src/idl_codegen/types/UpdateGlobalConfigMode.ts +0 -90
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"farm_utils.d.ts","sourceRoot":"","sources":["../../src/classes/farm_utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"farm_utils.d.ts","sourceRoot":"","sources":["../../src/classes/farm_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,SAAS,EAET,SAAS,EAKV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAEzC,eAAO,MAAM,2BAA2B,EAAE,SAAyE,CAAC;AAEpH,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,eAAe,EAAE,OAAO,EACxB,WAAW,EAAE,SAAS,EACtB,gBAAgB,CAAC,EAAE,SAAS,GAC3B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAuBnC;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,SAAS,CAAC,CAGpB;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,OAAO,EAC1B,WAAW,EAAE,SAAS,EACtB,gBAAgB,CAAC,EAAE,SAAS,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAiBjC;AAGD,wBAAsB,gCAAgC,CACpD,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS,EACf,cAAc,EAAE,SAAS,GACxB,OAAO,CAAC,sBAAsB,CAAC,CAKjC;AAED,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,OAAO,EAC1B,WAAW,EAAE,SAAS,EACtB,gBAAgB,CAAC,EAAE,SAAS,GAC3B,OAAO,CAAC,6BAA6B,CAAC,CASxC;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,SAAS,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAK/B;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,sBAAsB,CAAC,CAGjC;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAEhG;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,sBAAsB,EAAE,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,sBAAsB,CAAC;IAClC,UAAU,EAAE,sBAAsB,CAAC;CACpC,CAAC"}
|
|
@@ -13,6 +13,7 @@ exports.getSetupFarmIxsWithFarm = getSetupFarmIxsWithFarm;
|
|
|
13
13
|
exports.getUserSharesInFarm = getUserSharesInFarm;
|
|
14
14
|
exports.setVaultIdForFarmIx = setVaultIdForFarmIx;
|
|
15
15
|
exports.getSharesInFarmUserPosition = getSharesInFarmUserPosition;
|
|
16
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
16
17
|
const farms_sdk_1 = require("@kamino-finance/farms-sdk");
|
|
17
18
|
const web3_js_1 = require("@solana/web3.js");
|
|
18
19
|
const decimal_1 = __importDefault(require("decimal.js/decimal"));
|
|
@@ -54,9 +55,8 @@ async function getFarmUnstakeIx(connection, user, lamportsToUnstake, farmAddress
|
|
|
54
55
|
if (!userState) {
|
|
55
56
|
throw new Error(`User state not found for ${user}`);
|
|
56
57
|
}
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
return farmClient.unstakeIx(user, farmAddress, x.toString(), scopePricesArg);
|
|
58
|
+
const scaledLamportsToUnstake = new anchor_1.BN(lamportsToUnstake.floor().toString()).mul(new anchor_1.BN(farms_sdk_1.WAD.toString()));
|
|
59
|
+
return farmClient.unstakeIx(user, farmAddress, scaledLamportsToUnstake.toString(), scopePricesArg);
|
|
60
60
|
}
|
|
61
61
|
// withdrawing from a farm is a 2 step operation: first we unstake the tokens from the farm, then we withdraw them
|
|
62
62
|
async function getFarmWithdrawUnstakedDepositIx(connection, user, farm, stakeTokenMint) {
|
|
@@ -81,6 +81,13 @@ async function getSetupFarmIxsWithFarm(connection, farmAdmin, farmTokenMint) {
|
|
|
81
81
|
}
|
|
82
82
|
async function getUserSharesInFarm(connection, user, farm, farmTokenDecimals) {
|
|
83
83
|
const farmClient = new farms_sdk_1.Farms(connection);
|
|
84
|
+
const userStatePDA = (0, farms_sdk_1.getUserStatePDA)(farmClient.getProgramID(), farm, user);
|
|
85
|
+
// if the user state does not exist, return 0
|
|
86
|
+
const userState = await connection.getAccountInfo(userStatePDA);
|
|
87
|
+
if (!userState) {
|
|
88
|
+
return new decimal_1.default(0);
|
|
89
|
+
}
|
|
90
|
+
// if the user state exists, return the user shares
|
|
84
91
|
return farmClient.getUserTokensInUndelegatedFarm(user, farm, farmTokenDecimals);
|
|
85
92
|
}
|
|
86
93
|
async function setVaultIdForFarmIx(connection, farmAdmin, farm, vault) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"farm_utils.js","sourceRoot":"","sources":["../../src/classes/farm_utils.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"farm_utils.js","sourceRoot":"","sources":["../../src/classes/farm_utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { AccountInfo, Connection, Keypair, ParsedAccountData, PublicKey, TransactionInstruction } from '@solana/web3.js';
|
|
2
2
|
import { KaminoVault, KaminoVaultClient, KaminoVaultConfig, MarketOverview, ReserveAllocationConfig, ReserveOverview, SimulatedVaultHoldingsWithEarnedInterest, VaultFees, VaultFeesPct, VaultHolder, VaultHoldings, VaultHoldingsWithUSDValue, VaultOverview, VaultReserveTotalBorrowedAndInvested } from './vault';
|
|
3
|
-
import { AddAssetToMarketParams, CreateKaminoMarketParams, ENV, KaminoMarket, KaminoReserve, LendingMarket, MarketWithAddress, PubkeyHashMap, Reserve, ReserveWithAddress, ScopeOracleConfig } from '../lib';
|
|
4
|
-
import { ReserveConfig
|
|
3
|
+
import { AddAssetToMarketParams, CreateKaminoMarketParams, ENV, KaminoMarket, KaminoReserve, LendingMarket, LendingMarketFields, MarketWithAddress, PubkeyHashMap, Reserve, ReserveWithAddress, ScopeOracleConfig } from '../lib';
|
|
4
|
+
import { ReserveConfig } from '../idl_codegen/types';
|
|
5
5
|
import Decimal from 'decimal.js';
|
|
6
6
|
import { VaultState } from '../idl_codegen_kamino_vault/accounts';
|
|
7
7
|
import { VaultConfigFieldKind } from '../idl_codegen_kamino_vault/types';
|
|
8
8
|
import { AcceptVaultOwnershipIxs, APYs, DepositIxs, InitVaultIxs, ReserveAllocationOverview, SyncVaultLUTIxs, UpdateReserveAllocationIxs, UpdateVaultConfigIxs, UserSharesForVault, WithdrawAndBlockReserveIxs, WithdrawIxs } from './vault_types';
|
|
9
9
|
import { FarmState } from '@kamino-finance/farms-sdk/dist';
|
|
10
10
|
import { WalletType } from '../utils/multisig';
|
|
11
|
-
import { ConfigUpdater } from './configItems';
|
|
12
11
|
/**
|
|
13
12
|
* KaminoManager is a class that provides a high-level interface to interact with the Kamino Lend and Kamino Vault programs, in order to create and manage a market, as well as vaults
|
|
14
13
|
*/
|
|
@@ -258,7 +257,7 @@ export declare class KaminoManager {
|
|
|
258
257
|
* Get all lending markets
|
|
259
258
|
* @returns an array of all lending markets
|
|
260
259
|
*/
|
|
261
|
-
getAllMarkets(): Promise<KaminoMarket[]>;
|
|
260
|
+
getAllMarkets(programId?: PublicKey): Promise<KaminoMarket[]>;
|
|
262
261
|
/**
|
|
263
262
|
* Get all vaults for owner
|
|
264
263
|
* @param owner the pubkey of the vaults owner
|
|
@@ -394,6 +393,10 @@ export declare class KaminoManager {
|
|
|
394
393
|
* @returns a struct of simulated management and interest fees
|
|
395
394
|
*/
|
|
396
395
|
calculateSimulatedFees(vaultState: VaultState, simulatedCurrentHoldingsWithInterest?: SimulatedVaultHoldingsWithEarnedInterest, currentTimestamp?: Date): Promise<VaultFees>;
|
|
396
|
+
/**
|
|
397
|
+
* This will compute the PDA that is used as delegatee in Farms program to compute the user state PDA
|
|
398
|
+
*/
|
|
399
|
+
computeUserFarmStateForUserInVault(farmProgramID: PublicKey, vault: PublicKey, user: PublicKey): [PublicKey, number];
|
|
397
400
|
/**
|
|
398
401
|
* This will load the onchain state for all the reserves that the vault has allocations for
|
|
399
402
|
* @param vaultState - the vault state to load reserves for
|
|
@@ -499,5 +502,9 @@ export declare class KaminoManager {
|
|
|
499
502
|
*/
|
|
500
503
|
private static getWalletInfo;
|
|
501
504
|
}
|
|
502
|
-
export
|
|
505
|
+
export type BaseLendingMarketKey = keyof LendingMarketFields;
|
|
506
|
+
declare const EXCLUDED_LENDING_MARKET_KEYS: readonly ["version", "bumpSeed", "reserved0", "reserved1", "padding1", "padding2", "elevationGroupPadding", "quoteCurrency"];
|
|
507
|
+
export type ExcludedLendingMarketKey = (typeof EXCLUDED_LENDING_MARKET_KEYS)[number];
|
|
508
|
+
export type LendingMarketKey = Exclude<BaseLendingMarketKey, ExcludedLendingMarketKey>;
|
|
509
|
+
export {};
|
|
503
510
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/classes/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,UAAU,EAEV,OAAO,EACP,iBAAiB,EACjB,SAAS,EAGT,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EAEjB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,wCAAwC,EACxC,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,yBAAyB,EACzB,aAAa,EACb,oCAAoC,EACrC,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/classes/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/manager.js
CHANGED
|
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.
|
|
39
|
+
exports.KaminoManager = void 0;
|
|
40
40
|
const web3_js_1 = require("@solana/web3.js");
|
|
41
41
|
const vault_1 = require("./vault");
|
|
42
42
|
const lib_1 = require("../lib");
|
|
@@ -54,7 +54,6 @@ const types_2 = require("../idl_codegen_kamino_vault/types");
|
|
|
54
54
|
const sbv2_lite_1 = __importDefault(require("@switchboard-xyz/sbv2-lite"));
|
|
55
55
|
const multisig_1 = require("../utils/multisig");
|
|
56
56
|
const vault_2 = require("../utils/vault");
|
|
57
|
-
const configItems_1 = require("./configItems");
|
|
58
57
|
/**
|
|
59
58
|
* KaminoManager is a class that provides a high-level interface to interact with the Kamino Lend and Kamino Vault programs, in order to create and manage a market, as well as vaults
|
|
60
59
|
*/
|
|
@@ -255,7 +254,7 @@ class KaminoManager {
|
|
|
255
254
|
: (await lib_1.Reserve.fetch(this._connection, reserve, this._kaminoLendProgramId));
|
|
256
255
|
const ixs = [];
|
|
257
256
|
if (!reserveState || updateEntireConfig) {
|
|
258
|
-
ixs.push((0, lib_1.updateEntireReserveConfigIx)(marketWithAddress
|
|
257
|
+
ixs.push((0, lib_1.updateEntireReserveConfigIx)(marketWithAddress, reserve, config, this._kaminoLendProgramId));
|
|
259
258
|
}
|
|
260
259
|
else {
|
|
261
260
|
ixs.push(...(0, lib_1.parseForChangesReserveConfigAndGetIxs)(marketWithAddress, reserveState, reserve, config, this._kaminoLendProgramId));
|
|
@@ -444,9 +443,9 @@ class KaminoManager {
|
|
|
444
443
|
* Get all lending markets
|
|
445
444
|
* @returns an array of all lending markets
|
|
446
445
|
*/
|
|
447
|
-
async getAllMarkets() {
|
|
446
|
+
async getAllMarkets(programId = programId_1.PROGRAM_ID) {
|
|
448
447
|
// Get all lending markets
|
|
449
|
-
const marketGenerator = (0, lib_1.getAllLendingMarketAccounts)(this.getConnection());
|
|
448
|
+
const marketGenerator = (0, lib_1.getAllLendingMarketAccounts)(this.getConnection(), programId);
|
|
450
449
|
const slotDuration = await (0, lib_1.getMedianSlotDurationInMsFromLastEpochs)();
|
|
451
450
|
const lendingMarketPairs = [];
|
|
452
451
|
for await (const pair of marketGenerator) {
|
|
@@ -705,6 +704,12 @@ class KaminoManager {
|
|
|
705
704
|
async calculateSimulatedFees(vaultState, simulatedCurrentHoldingsWithInterest, currentTimestamp) {
|
|
706
705
|
return this._vaultClient.calculateSimulatedFees(vaultState, simulatedCurrentHoldingsWithInterest, currentTimestamp);
|
|
707
706
|
}
|
|
707
|
+
/**
|
|
708
|
+
* This will compute the PDA that is used as delegatee in Farms program to compute the user state PDA
|
|
709
|
+
*/
|
|
710
|
+
computeUserFarmStateForUserInVault(farmProgramID, vault, user) {
|
|
711
|
+
return this._vaultClient.computeUserFarmStateDelegateePDAForUserInVault(farmProgramID, vault, user);
|
|
712
|
+
}
|
|
708
713
|
/**
|
|
709
714
|
* This will load the onchain state for all the reserves that the vault has allocations for
|
|
710
715
|
* @param vaultState - the vault state to load reserves for
|
|
@@ -901,49 +906,305 @@ class KaminoManager {
|
|
|
901
906
|
}
|
|
902
907
|
} // KaminoManager
|
|
903
908
|
exports.KaminoManager = KaminoManager;
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
[
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
909
|
+
const EXCLUDED_LENDING_MARKET_KEYS = [
|
|
910
|
+
'version',
|
|
911
|
+
'bumpSeed',
|
|
912
|
+
'reserved0',
|
|
913
|
+
'reserved1',
|
|
914
|
+
'padding1',
|
|
915
|
+
'padding2',
|
|
916
|
+
'elevationGroupPadding',
|
|
917
|
+
'quoteCurrency',
|
|
918
|
+
];
|
|
919
|
+
function isExcludedLendingMarketKey(value) {
|
|
920
|
+
return EXCLUDED_LENDING_MARKET_KEYS.includes(value);
|
|
921
|
+
}
|
|
922
|
+
const updateLendingMarketConfig = (key, market, newMarket) => {
|
|
923
|
+
const updateLendingMarketIxsArgs = [];
|
|
924
|
+
switch (key) {
|
|
925
|
+
case 'lendingMarketOwner': {
|
|
926
|
+
if (!market.lendingMarketOwner.equals(newMarket.lendingMarketOwner)) {
|
|
927
|
+
updateLendingMarketIxsArgs.push({
|
|
928
|
+
mode: types_1.UpdateLendingMarketMode.UpdateOwner.discriminator,
|
|
929
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateOwner.discriminator, newMarket.lendingMarketOwner),
|
|
930
|
+
});
|
|
931
|
+
}
|
|
932
|
+
break;
|
|
933
|
+
}
|
|
934
|
+
case 'lendingMarketOwnerCached':
|
|
935
|
+
if (!market.lendingMarketOwnerCached.equals(newMarket.lendingMarketOwnerCached)) {
|
|
936
|
+
updateLendingMarketIxsArgs.push({
|
|
937
|
+
mode: types_1.UpdateLendingMarketMode.UpdateOwner.discriminator,
|
|
938
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateOwner.discriminator, newMarket.lendingMarketOwnerCached),
|
|
939
|
+
});
|
|
940
|
+
}
|
|
941
|
+
break;
|
|
942
|
+
case 'referralFeeBps':
|
|
943
|
+
if (market.referralFeeBps !== newMarket.referralFeeBps) {
|
|
944
|
+
updateLendingMarketIxsArgs.push({
|
|
945
|
+
mode: types_1.UpdateLendingMarketMode.UpdateReferralFeeBps.discriminator,
|
|
946
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateReferralFeeBps.discriminator, newMarket.referralFeeBps),
|
|
947
|
+
});
|
|
948
|
+
}
|
|
949
|
+
break;
|
|
950
|
+
case 'emergencyMode':
|
|
951
|
+
if (market.emergencyMode !== newMarket.emergencyMode) {
|
|
952
|
+
updateLendingMarketIxsArgs.push({
|
|
953
|
+
mode: types_1.UpdateLendingMarketMode.UpdateEmergencyMode.discriminator,
|
|
954
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateEmergencyMode.discriminator, newMarket.emergencyMode),
|
|
955
|
+
});
|
|
956
|
+
}
|
|
957
|
+
break;
|
|
958
|
+
case 'autodeleverageEnabled':
|
|
959
|
+
if (market.autodeleverageEnabled !== newMarket.autodeleverageEnabled) {
|
|
960
|
+
updateLendingMarketIxsArgs.push({
|
|
961
|
+
mode: types_1.UpdateLendingMarketMode.UpdateAutodeleverageEnabled.discriminator,
|
|
962
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateAutodeleverageEnabled.discriminator, newMarket.autodeleverageEnabled),
|
|
963
|
+
});
|
|
964
|
+
}
|
|
965
|
+
break;
|
|
966
|
+
case 'borrowDisabled':
|
|
967
|
+
if (market.borrowDisabled !== newMarket.borrowDisabled) {
|
|
968
|
+
updateLendingMarketIxsArgs.push({
|
|
969
|
+
mode: types_1.UpdateLendingMarketMode.UpdateBorrowingDisabled.discriminator,
|
|
970
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateBorrowingDisabled.discriminator, newMarket.borrowDisabled),
|
|
971
|
+
});
|
|
972
|
+
}
|
|
973
|
+
break;
|
|
974
|
+
case 'priceRefreshTriggerToMaxAgePct':
|
|
975
|
+
if (market.priceRefreshTriggerToMaxAgePct !== newMarket.priceRefreshTriggerToMaxAgePct) {
|
|
976
|
+
updateLendingMarketIxsArgs.push({
|
|
977
|
+
mode: types_1.UpdateLendingMarketMode.UpdatePriceRefreshTriggerToMaxAgePct.discriminator,
|
|
978
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdatePriceRefreshTriggerToMaxAgePct.discriminator, newMarket.priceRefreshTriggerToMaxAgePct),
|
|
979
|
+
});
|
|
980
|
+
}
|
|
981
|
+
break;
|
|
982
|
+
case 'liquidationMaxDebtCloseFactorPct':
|
|
983
|
+
if (market.liquidationMaxDebtCloseFactorPct !== newMarket.liquidationMaxDebtCloseFactorPct) {
|
|
984
|
+
updateLendingMarketIxsArgs.push({
|
|
985
|
+
mode: types_1.UpdateLendingMarketMode.UpdateLiquidationCloseFactor.discriminator,
|
|
986
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateLiquidationCloseFactor.discriminator, newMarket.liquidationMaxDebtCloseFactorPct),
|
|
987
|
+
});
|
|
988
|
+
}
|
|
989
|
+
break;
|
|
990
|
+
case 'insolvencyRiskUnhealthyLtvPct':
|
|
991
|
+
if (market.insolvencyRiskUnhealthyLtvPct !== newMarket.insolvencyRiskUnhealthyLtvPct) {
|
|
992
|
+
updateLendingMarketIxsArgs.push({
|
|
993
|
+
mode: types_1.UpdateLendingMarketMode.UpdateInsolvencyRiskLtv.discriminator,
|
|
994
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateInsolvencyRiskLtv.discriminator, newMarket.insolvencyRiskUnhealthyLtvPct),
|
|
995
|
+
});
|
|
996
|
+
}
|
|
997
|
+
break;
|
|
998
|
+
case 'minFullLiquidationValueThreshold':
|
|
999
|
+
if (!market.minFullLiquidationValueThreshold.eq(newMarket.minFullLiquidationValueThreshold)) {
|
|
1000
|
+
updateLendingMarketIxsArgs.push({
|
|
1001
|
+
mode: types_1.UpdateLendingMarketMode.UpdateMinFullLiquidationThreshold.discriminator,
|
|
1002
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateMinFullLiquidationThreshold.discriminator, newMarket.minFullLiquidationValueThreshold.toNumber()),
|
|
1003
|
+
});
|
|
1004
|
+
}
|
|
1005
|
+
break;
|
|
1006
|
+
case 'maxLiquidatableDebtMarketValueAtOnce':
|
|
1007
|
+
if (!market.maxLiquidatableDebtMarketValueAtOnce.eq(newMarket.maxLiquidatableDebtMarketValueAtOnce)) {
|
|
1008
|
+
updateLendingMarketIxsArgs.push({
|
|
1009
|
+
mode: types_1.UpdateLendingMarketMode.UpdateLiquidationMaxValue.discriminator,
|
|
1010
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateLiquidationMaxValue.discriminator, newMarket.maxLiquidatableDebtMarketValueAtOnce.toNumber()),
|
|
1011
|
+
});
|
|
1012
|
+
}
|
|
1013
|
+
break;
|
|
1014
|
+
case 'globalAllowedBorrowValue':
|
|
1015
|
+
if (!market.globalAllowedBorrowValue.eq(newMarket.globalAllowedBorrowValue)) {
|
|
1016
|
+
updateLendingMarketIxsArgs.push({
|
|
1017
|
+
mode: types_1.UpdateLendingMarketMode.UpdateGlobalAllowedBorrow.discriminator,
|
|
1018
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateGlobalAllowedBorrow.discriminator, newMarket.globalAllowedBorrowValue.toNumber()),
|
|
1019
|
+
});
|
|
1020
|
+
}
|
|
1021
|
+
break;
|
|
1022
|
+
case 'riskCouncil':
|
|
1023
|
+
if (!market.riskCouncil.equals(newMarket.riskCouncil)) {
|
|
1024
|
+
updateLendingMarketIxsArgs.push({
|
|
1025
|
+
mode: types_1.UpdateLendingMarketMode.UpdateRiskCouncil.discriminator,
|
|
1026
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateRiskCouncil.discriminator, newMarket.riskCouncil),
|
|
1027
|
+
});
|
|
1028
|
+
}
|
|
1029
|
+
break;
|
|
1030
|
+
case 'elevationGroups':
|
|
1031
|
+
let elevationGroupsDiffs = 0;
|
|
1032
|
+
for (let i = 0; i < market.elevationGroups.length; i++) {
|
|
1033
|
+
if (market.elevationGroups[i].id !== newMarket.elevationGroups[i].id ||
|
|
1034
|
+
market.elevationGroups[i].maxLiquidationBonusBps !== newMarket.elevationGroups[i].maxLiquidationBonusBps ||
|
|
1035
|
+
market.elevationGroups[i].ltvPct !== newMarket.elevationGroups[i].ltvPct ||
|
|
1036
|
+
market.elevationGroups[i].liquidationThresholdPct !== newMarket.elevationGroups[i].liquidationThresholdPct ||
|
|
1037
|
+
market.elevationGroups[i].allowNewLoans !== newMarket.elevationGroups[i].allowNewLoans ||
|
|
1038
|
+
market.elevationGroups[i].maxReservesAsCollateral !== newMarket.elevationGroups[i].maxReservesAsCollateral ||
|
|
1039
|
+
!market.elevationGroups[i].debtReserve.equals(newMarket.elevationGroups[i].debtReserve)) {
|
|
1040
|
+
updateLendingMarketIxsArgs.push({
|
|
1041
|
+
mode: types_1.UpdateLendingMarketMode.UpdateElevationGroup.discriminator,
|
|
1042
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateElevationGroup.discriminator, newMarket.elevationGroups[i]),
|
|
1043
|
+
});
|
|
1044
|
+
elevationGroupsDiffs++;
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
if (elevationGroupsDiffs > 1) {
|
|
1048
|
+
throw new Error('Can only update 1 elevation group at a time');
|
|
1049
|
+
}
|
|
1050
|
+
break;
|
|
1051
|
+
case 'minNetValueInObligationSf':
|
|
1052
|
+
if (!market.minNetValueInObligationSf.eq(newMarket.minNetValueInObligationSf)) {
|
|
1053
|
+
updateLendingMarketIxsArgs.push({
|
|
1054
|
+
mode: types_1.UpdateLendingMarketMode.UpdateMinNetValueObligationPostAction.discriminator,
|
|
1055
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateMinNetValueObligationPostAction.discriminator, newMarket.minNetValueInObligationSf.toString()),
|
|
1056
|
+
});
|
|
1057
|
+
}
|
|
1058
|
+
break;
|
|
1059
|
+
case 'minValueSkipLiquidationBfChecks':
|
|
1060
|
+
if (!market.minValueSkipLiquidationBfChecks.eq(newMarket.minValueSkipLiquidationBfChecks)) {
|
|
1061
|
+
updateLendingMarketIxsArgs.push({
|
|
1062
|
+
mode: types_1.UpdateLendingMarketMode.UpdateMinValueBfSkipPriorityLiqCheck.discriminator,
|
|
1063
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateMinValueBfSkipPriorityLiqCheck.discriminator, newMarket.minValueSkipLiquidationBfChecks.toNumber()),
|
|
1064
|
+
});
|
|
1065
|
+
}
|
|
1066
|
+
break;
|
|
1067
|
+
case 'minValueSkipLiquidationLtvChecks':
|
|
1068
|
+
if (!market.minValueSkipLiquidationLtvChecks.eq(newMarket.minValueSkipLiquidationLtvChecks)) {
|
|
1069
|
+
updateLendingMarketIxsArgs.push({
|
|
1070
|
+
mode: types_1.UpdateLendingMarketMode.UpdateMinValueLtvSkipPriorityLiqCheck.discriminator,
|
|
1071
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateMinValueLtvSkipPriorityLiqCheck.discriminator, newMarket.minValueSkipLiquidationLtvChecks.toNumber()),
|
|
1072
|
+
});
|
|
1073
|
+
}
|
|
1074
|
+
break;
|
|
1075
|
+
case 'individualAutodeleverageMarginCallPeriodSecs':
|
|
1076
|
+
if (market.individualAutodeleverageMarginCallPeriodSecs !== newMarket.individualAutodeleverageMarginCallPeriodSecs) {
|
|
1077
|
+
updateLendingMarketIxsArgs.push({
|
|
1078
|
+
mode: types_1.UpdateLendingMarketMode.UpdateIndividualAutodeleverageMarginCallPeriodSecs.discriminator,
|
|
1079
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateIndividualAutodeleverageMarginCallPeriodSecs.discriminator, newMarket.individualAutodeleverageMarginCallPeriodSecs.toNumber()),
|
|
1080
|
+
});
|
|
1081
|
+
}
|
|
1082
|
+
break;
|
|
1083
|
+
case 'name':
|
|
1084
|
+
if (!(0, lib_1.sameLengthArrayEquals)(market.name, newMarket.name)) {
|
|
1085
|
+
updateLendingMarketIxsArgs.push({
|
|
1086
|
+
mode: types_1.UpdateLendingMarketMode.UpdateName.discriminator,
|
|
1087
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateName.discriminator, newMarket.name),
|
|
1088
|
+
});
|
|
1089
|
+
}
|
|
1090
|
+
break;
|
|
1091
|
+
case 'minInitialDepositAmount':
|
|
1092
|
+
if (!market.minInitialDepositAmount.eq(newMarket.minInitialDepositAmount)) {
|
|
1093
|
+
updateLendingMarketIxsArgs.push({
|
|
1094
|
+
mode: types_1.UpdateLendingMarketMode.UpdateInitialDepositAmount.discriminator,
|
|
1095
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateInitialDepositAmount.discriminator, newMarket.minInitialDepositAmount.toNumber()),
|
|
1096
|
+
});
|
|
1097
|
+
}
|
|
1098
|
+
break;
|
|
1099
|
+
case 'obligationOrdersEnabled':
|
|
1100
|
+
if (market.obligationOrdersEnabled !== newMarket.obligationOrdersEnabled) {
|
|
1101
|
+
updateLendingMarketIxsArgs.push({
|
|
1102
|
+
mode: types_1.UpdateLendingMarketMode.UpdateObligationOrdersEnabled.discriminator,
|
|
1103
|
+
value: updateMarketConfigEncodedValue(types_1.UpdateLendingMarketMode.UpdateObligationOrdersEnabled.discriminator, newMarket.obligationOrdersEnabled),
|
|
1104
|
+
});
|
|
1105
|
+
}
|
|
1106
|
+
break;
|
|
1107
|
+
default:
|
|
1108
|
+
(0, lib_1.assertNever)(key);
|
|
1109
|
+
}
|
|
1110
|
+
return updateLendingMarketIxsArgs;
|
|
1111
|
+
};
|
|
931
1112
|
function parseForChangesMarketConfigAndGetIxs(marketWithAddress, newMarket, programId) {
|
|
932
|
-
const
|
|
933
|
-
|
|
1113
|
+
const market = marketWithAddress.state;
|
|
1114
|
+
const updateLendingMarketIxsArgs = [];
|
|
1115
|
+
for (const key in market.toJSON()) {
|
|
1116
|
+
if (isExcludedLendingMarketKey(key)) {
|
|
1117
|
+
continue;
|
|
1118
|
+
}
|
|
1119
|
+
updateLendingMarketIxsArgs.push(...updateLendingMarketConfig(key, market, newMarket));
|
|
1120
|
+
}
|
|
1121
|
+
const ixs = [];
|
|
1122
|
+
updateLendingMarketIxsArgs.forEach((updateLendingMarketConfigArgs) => {
|
|
1123
|
+
ixs.push(updateMarketConfigIx(marketWithAddress, updateLendingMarketConfigArgs.mode, updateLendingMarketConfigArgs.value, programId));
|
|
1124
|
+
});
|
|
1125
|
+
return ixs;
|
|
934
1126
|
}
|
|
935
|
-
function
|
|
1127
|
+
function updateMarketConfigEncodedValue(discriminator, value) {
|
|
1128
|
+
let buffer = Buffer.alloc(72);
|
|
1129
|
+
let pkBuffer;
|
|
1130
|
+
let valueBigInt;
|
|
1131
|
+
let valueArray;
|
|
1132
|
+
switch (discriminator) {
|
|
1133
|
+
case types_1.UpdateLendingMarketMode.UpdateEmergencyMode.discriminator:
|
|
1134
|
+
case types_1.UpdateLendingMarketMode.UpdateLiquidationCloseFactor.discriminator:
|
|
1135
|
+
case types_1.UpdateLendingMarketMode.UpdateInsolvencyRiskLtv.discriminator:
|
|
1136
|
+
case types_1.UpdateLendingMarketMode.UpdatePriceRefreshTriggerToMaxAgePct.discriminator:
|
|
1137
|
+
case types_1.UpdateLendingMarketMode.UpdateAutodeleverageEnabled.discriminator:
|
|
1138
|
+
case types_1.UpdateLendingMarketMode.UpdateObligationOrdersEnabled.discriminator:
|
|
1139
|
+
case types_1.UpdateLendingMarketMode.UpdateBorrowingDisabled.discriminator:
|
|
1140
|
+
buffer.writeUIntLE(value, 0, 1);
|
|
1141
|
+
break;
|
|
1142
|
+
case types_1.UpdateLendingMarketMode.UpdateReferralFeeBps.discriminator:
|
|
1143
|
+
buffer.writeUInt16LE(value, 0);
|
|
1144
|
+
break;
|
|
1145
|
+
case types_1.UpdateLendingMarketMode.UpdateLiquidationMaxValue.discriminator:
|
|
1146
|
+
case types_1.UpdateLendingMarketMode.UpdateGlobalAllowedBorrow.discriminator:
|
|
1147
|
+
case types_1.UpdateLendingMarketMode.UpdateMinFullLiquidationThreshold.discriminator:
|
|
1148
|
+
case types_1.UpdateLendingMarketMode.UpdateMinValueBfSkipPriorityLiqCheck.discriminator:
|
|
1149
|
+
case types_1.UpdateLendingMarketMode.UpdateMinValueLtvSkipPriorityLiqCheck.discriminator:
|
|
1150
|
+
case types_1.UpdateLendingMarketMode.UpdateIndividualAutodeleverageMarginCallPeriodSecs.discriminator:
|
|
1151
|
+
case types_1.UpdateLendingMarketMode.UpdateInitialDepositAmount.discriminator:
|
|
1152
|
+
value = value;
|
|
1153
|
+
buffer.writeBigUint64LE(BigInt(value), 0);
|
|
1154
|
+
break;
|
|
1155
|
+
case types_1.UpdateLendingMarketMode.UpdateOwner.discriminator:
|
|
1156
|
+
case types_1.UpdateLendingMarketMode.UpdateRiskCouncil.discriminator:
|
|
1157
|
+
pkBuffer = value.toBuffer();
|
|
1158
|
+
pkBuffer.copy(buffer, 0);
|
|
1159
|
+
break;
|
|
1160
|
+
case types_1.UpdateLendingMarketMode.UpdateElevationGroup.discriminator:
|
|
1161
|
+
buffer = serializeElevationGroup(value);
|
|
1162
|
+
break;
|
|
1163
|
+
case types_1.UpdateLendingMarketMode.UpdateMinNetValueObligationPostAction.discriminator:
|
|
1164
|
+
valueBigInt = BigInt(value);
|
|
1165
|
+
for (let i = 0; i < 16; i++) {
|
|
1166
|
+
buffer[15 - i] = Number((valueBigInt >> BigInt(i * 8)) & BigInt(0xff));
|
|
1167
|
+
}
|
|
1168
|
+
break;
|
|
1169
|
+
case types_1.UpdateLendingMarketMode.UpdateName.discriminator:
|
|
1170
|
+
valueArray = value;
|
|
1171
|
+
for (let i = 0; i < valueArray.length; i++) {
|
|
1172
|
+
buffer.writeUIntLE(valueArray[i], i, 1);
|
|
1173
|
+
}
|
|
1174
|
+
break;
|
|
1175
|
+
case types_1.UpdateLendingMarketMode.UpdatePaddingFields.discriminator:
|
|
1176
|
+
case types_1.UpdateLendingMarketMode.DeprecatedUpdateGlobalUnhealthyBorrow.discriminator:
|
|
1177
|
+
case types_1.UpdateLendingMarketMode.DeprecatedUpdateMultiplierPoints.discriminator:
|
|
1178
|
+
// Deliberately skipped - we are not updating padding or deprecated fields using this method
|
|
1179
|
+
break;
|
|
1180
|
+
default:
|
|
1181
|
+
(0, lib_1.assertNever)(discriminator);
|
|
1182
|
+
}
|
|
1183
|
+
return buffer;
|
|
1184
|
+
}
|
|
1185
|
+
function updateMarketConfigIx(marketWithAddress, modeDiscriminator, value, programId) {
|
|
936
1186
|
const accounts = {
|
|
937
1187
|
lendingMarketOwner: marketWithAddress.state.lendingMarketOwner,
|
|
938
1188
|
lendingMarket: marketWithAddress.address,
|
|
939
1189
|
};
|
|
940
1190
|
const args = {
|
|
941
|
-
mode: new anchor.BN(
|
|
942
|
-
|
|
943
|
-
// `Vec<u8>`). Hence, we need to add explicit padding here:
|
|
944
|
-
value: [...value, ...Array(72 - value.length).fill(0)],
|
|
1191
|
+
mode: new anchor.BN(modeDiscriminator),
|
|
1192
|
+
value: [...value],
|
|
945
1193
|
};
|
|
946
1194
|
const ix = (0, lib_1.updateLendingMarket)(args, accounts, programId);
|
|
947
1195
|
return ix;
|
|
948
1196
|
}
|
|
1197
|
+
function serializeElevationGroup(elevationGroup) {
|
|
1198
|
+
const buffer = Buffer.alloc(72);
|
|
1199
|
+
buffer.writeUInt16LE(elevationGroup.maxLiquidationBonusBps, 0);
|
|
1200
|
+
buffer.writeUIntLE(elevationGroup.id, 2, 1);
|
|
1201
|
+
buffer.writeUIntLE(elevationGroup.ltvPct, 3, 1);
|
|
1202
|
+
buffer.writeUIntLE(elevationGroup.liquidationThresholdPct, 4, 1);
|
|
1203
|
+
buffer.writeUIntLE(elevationGroup.allowNewLoans, 5, 1);
|
|
1204
|
+
buffer.writeUIntLE(elevationGroup.maxReservesAsCollateral, 6, 1);
|
|
1205
|
+
buffer.writeUIntLE(elevationGroup.padding0, 7, 1);
|
|
1206
|
+
const debtReserveBuffer = elevationGroup.debtReserve.toBuffer();
|
|
1207
|
+
debtReserveBuffer.copy(buffer, 8);
|
|
1208
|
+
return buffer;
|
|
1209
|
+
}
|
|
949
1210
|
//# sourceMappingURL=manager.js.map
|