@kamino-finance/klend-sdk 7.1.4-beta.0 → 7.1.5
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/@codegen/klend/accounts/LendingMarket.d.ts +3 -144
- package/dist/@codegen/klend/accounts/LendingMarket.d.ts.map +1 -1
- package/dist/@codegen/klend/accounts/LendingMarket.js +3 -105
- package/dist/@codegen/klend/accounts/LendingMarket.js.map +1 -1
- package/dist/@codegen/klend/accounts/Obligation.d.ts +15 -30
- package/dist/@codegen/klend/accounts/Obligation.d.ts.map +1 -1
- package/dist/@codegen/klend/accounts/Obligation.js +21 -31
- package/dist/@codegen/klend/accounts/Obligation.js.map +1 -1
- package/dist/@codegen/klend/accounts/Reserve.d.ts +0 -6
- package/dist/@codegen/klend/accounts/Reserve.d.ts.map +1 -1
- package/dist/@codegen/klend/accounts/Reserve.js +2 -9
- package/dist/@codegen/klend/accounts/Reserve.js.map +1 -1
- package/dist/@codegen/klend/accounts/UserState.d.ts +75 -0
- package/dist/@codegen/klend/accounts/UserState.d.ts.map +1 -1
- package/dist/@codegen/klend/accounts/UserState.js +25 -0
- package/dist/@codegen/klend/accounts/UserState.js.map +1 -1
- package/dist/@codegen/klend/accounts/index.d.ts +0 -6
- package/dist/@codegen/klend/accounts/index.d.ts.map +1 -1
- package/dist/@codegen/klend/accounts/index.js +1 -7
- package/dist/@codegen/klend/accounts/index.js.map +1 -1
- package/dist/@codegen/klend/errors/custom.d.ts +2 -226
- package/dist/@codegen/klend/errors/custom.d.ts.map +1 -1
- package/dist/@codegen/klend/errors/custom.js +3 -396
- package/dist/@codegen/klend/errors/custom.js.map +1 -1
- package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts +2 -1
- package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts.map +1 -1
- package/dist/@codegen/klend/instructions/idlMissingTypes.js +2 -6
- package/dist/@codegen/klend/instructions/idlMissingTypes.js.map +1 -1
- package/dist/@codegen/klend/instructions/index.d.ts +0 -16
- package/dist/@codegen/klend/instructions/index.d.ts.map +1 -1
- package/dist/@codegen/klend/instructions/index.js +1 -18
- package/dist/@codegen/klend/instructions/index.js.map +1 -1
- package/dist/@codegen/klend/instructions/initReserve.d.ts +1 -1
- package/dist/@codegen/klend/instructions/initReserve.d.ts.map +1 -1
- package/dist/@codegen/klend/instructions/initReserve.js +5 -1
- package/dist/@codegen/klend/instructions/initReserve.js.map +1 -1
- package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.js +1 -1
- package/dist/@codegen/klend/instructions/updateGlobalConfig.d.ts +1 -1
- package/dist/@codegen/klend/instructions/updateGlobalConfig.d.ts.map +1 -1
- package/dist/@codegen/klend/instructions/updateGlobalConfig.js +0 -1
- package/dist/@codegen/klend/instructions/updateGlobalConfig.js.map +1 -1
- package/dist/@codegen/klend/instructions/updateReserveConfig.d.ts +1 -1
- package/dist/@codegen/klend/instructions/updateReserveConfig.d.ts.map +1 -1
- package/dist/@codegen/klend/instructions/updateReserveConfig.js +0 -1
- package/dist/@codegen/klend/instructions/updateReserveConfig.js.map +1 -1
- package/dist/@codegen/klend/instructions/withdrawObligationCollateral.js +1 -1
- package/dist/@codegen/klend/instructions/withdrawObligationCollateralV2.js +1 -1
- package/dist/@codegen/klend/types/AssetTier.d.ts +45 -0
- package/dist/@codegen/klend/types/AssetTier.d.ts.map +1 -0
- package/dist/@codegen/klend/types/AssetTier.js +132 -0
- package/dist/@codegen/klend/types/AssetTier.js.map +1 -0
- package/dist/@codegen/klend/types/ObligationLiquidity.d.ts +5 -35
- package/dist/@codegen/klend/types/ObligationLiquidity.d.ts.map +1 -1
- package/dist/@codegen/klend/types/ObligationLiquidity.js +7 -17
- package/dist/@codegen/klend/types/ObligationLiquidity.js.map +1 -1
- package/dist/@codegen/klend/types/ObligationOrder.d.ts +4 -4
- package/dist/@codegen/klend/types/ObligationOrder.js +2 -2
- package/dist/@codegen/klend/types/ReserveConfig.d.ts +29 -141
- package/dist/@codegen/klend/types/ReserveConfig.d.ts.map +1 -1
- package/dist/@codegen/klend/types/ReserveConfig.js +25 -89
- package/dist/@codegen/klend/types/ReserveConfig.js.map +1 -1
- package/dist/@codegen/klend/types/ReserveFees.d.ts +8 -8
- package/dist/@codegen/klend/types/ReserveFees.d.ts.map +1 -1
- package/dist/@codegen/klend/types/ReserveFees.js +8 -8
- package/dist/@codegen/klend/types/ReserveFees.js.map +1 -1
- package/dist/@codegen/klend/types/ReserveLiquidity.d.ts +8 -26
- package/dist/@codegen/klend/types/ReserveLiquidity.d.ts.map +1 -1
- package/dist/@codegen/klend/types/ReserveLiquidity.js +8 -14
- package/dist/@codegen/klend/types/ReserveLiquidity.js.map +1 -1
- package/dist/@codegen/klend/types/UpdateConfigMode.d.ts +14 -92
- package/dist/@codegen/klend/types/UpdateConfigMode.d.ts.map +1 -1
- package/dist/@codegen/klend/types/UpdateConfigMode.js +23 -168
- package/dist/@codegen/klend/types/UpdateConfigMode.js.map +1 -1
- package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts +0 -130
- package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts.map +1 -1
- package/dist/@codegen/klend/types/UpdateLendingMarketMode.js +1 -241
- package/dist/@codegen/klend/types/UpdateLendingMarketMode.js.map +1 -1
- package/dist/@codegen/klend/types/index.d.ts +8 -10
- package/dist/@codegen/klend/types/index.d.ts.map +1 -1
- package/dist/@codegen/klend/types/index.js +3 -7
- package/dist/@codegen/klend/types/index.js.map +1 -1
- package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts +4 -9
- package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts.map +1 -1
- package/dist/@codegen/klend/zero_padding/ObligationZP.js +13 -22
- package/dist/@codegen/klend/zero_padding/ObligationZP.js.map +1 -1
- package/dist/classes/action.d.ts +3 -30
- package/dist/classes/action.d.ts.map +1 -1
- package/dist/classes/action.js +10 -364
- package/dist/classes/action.js.map +1 -1
- package/dist/classes/manager.d.ts +3 -2
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +3 -12
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/market.d.ts +2 -6
- package/dist/classes/market.d.ts.map +1 -1
- package/dist/classes/market.js +6 -26
- package/dist/classes/market.js.map +1 -1
- package/dist/classes/obligation.js +1 -1
- package/dist/classes/obligation.js.map +1 -1
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +7 -13
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/unstakingPool.d.ts +3 -20
- package/dist/classes/unstakingPool.d.ts.map +1 -1
- package/dist/classes/unstakingPool.js +8 -62
- package/dist/classes/unstakingPool.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 +59 -38
- package/dist/classes/vault.js.map +1 -1
- package/dist/idl/klend.json +293 -2186
- package/dist/lending_operations/index.d.ts +0 -1
- package/dist/lending_operations/index.d.ts.map +1 -1
- package/dist/lending_operations/index.js +0 -1
- package/dist/lending_operations/index.js.map +1 -1
- package/dist/manager/client_kamino_manager.js +9 -12
- package/dist/manager/client_kamino_manager.js.map +1 -1
- package/dist/utils/ata.d.ts +10 -1
- package/dist/utils/ata.d.ts.map +1 -1
- package/dist/utils/ata.js +47 -0
- package/dist/utils/ata.js.map +1 -1
- package/dist/utils/managerTypes.d.ts.map +1 -1
- package/dist/utils/managerTypes.js +4 -9
- package/dist/utils/managerTypes.js.map +1 -1
- package/dist/utils/seeds.d.ts +14 -10
- package/dist/utils/seeds.d.ts.map +1 -1
- package/dist/utils/seeds.js +22 -25
- package/dist/utils/seeds.js.map +1 -1
- package/package.json +1 -1
- package/src/@codegen/klend/accounts/LendingMarket.ts +5 -210
- package/src/@codegen/klend/accounts/Obligation.ts +31 -53
- package/src/@codegen/klend/accounts/Reserve.ts +2 -13
- package/src/@codegen/klend/accounts/UserState.ts +75 -0
- package/src/@codegen/klend/accounts/index.ts +0 -6
- package/src/@codegen/klend/errors/custom.ts +2 -427
- package/src/@codegen/klend/instructions/idlMissingTypes.ts +4 -7
- package/src/@codegen/klend/instructions/index.ts +0 -34
- package/src/@codegen/klend/instructions/initReserve.ts +6 -2
- package/src/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.ts +1 -1
- package/src/@codegen/klend/instructions/updateGlobalConfig.ts +1 -2
- package/src/@codegen/klend/instructions/updateReserveConfig.ts +1 -2
- package/src/@codegen/klend/instructions/withdrawObligationCollateral.ts +1 -1
- package/src/@codegen/klend/instructions/withdrawObligationCollateralV2.ts +1 -1
- package/src/@codegen/klend/types/AssetTier.ts +119 -0
- package/src/@codegen/klend/types/ObligationLiquidity.ts +9 -39
- package/src/@codegen/klend/types/ObligationOrder.ts +4 -4
- package/src/@codegen/klend/types/ReserveConfig.ts +39 -171
- package/src/@codegen/klend/types/ReserveFees.ts +12 -12
- package/src/@codegen/klend/types/ReserveLiquidity.ts +12 -30
- package/src/@codegen/klend/types/UpdateConfigMode.ts +26 -206
- package/src/@codegen/klend/types/UpdateLendingMarketMode.ts +0 -300
- package/src/@codegen/klend/types/index.ts +16 -45
- package/src/@codegen/klend/zero_padding/ObligationZP.ts +13 -22
- package/src/classes/action.ts +8 -577
- package/src/classes/manager.ts +7 -13
- package/src/classes/market.ts +5 -36
- package/src/classes/obligation.ts +1 -1
- package/src/classes/reserve.ts +8 -13
- package/src/classes/unstakingPool.ts +6 -83
- package/src/classes/vault.ts +75 -54
- package/src/idl/klend.json +294 -2187
- package/src/lending_operations/index.ts +0 -1
- package/src/manager/client_kamino_manager.ts +9 -13
- package/src/utils/ata.ts +79 -0
- package/src/utils/managerTypes.ts +4 -9
- package/src/utils/seeds.ts +26 -28
- package/dist/@codegen/klend/accounts/PoolState.d.ts +0 -53
- package/dist/@codegen/klend/accounts/PoolState.d.ts.map +0 -1
- package/dist/@codegen/klend/accounts/PoolState.js +0 -167
- package/dist/@codegen/klend/accounts/PoolState.js.map +0 -1
- package/dist/@codegen/klend/accounts/UnstakeTicket.d.ts +0 -41
- package/dist/@codegen/klend/accounts/UnstakeTicket.d.ts.map +0 -1
- package/dist/@codegen/klend/accounts/UnstakeTicket.js +0 -143
- package/dist/@codegen/klend/accounts/UnstakeTicket.js.map +0 -1
- package/dist/@codegen/klend/accounts/WithdrawTicket.d.ts +0 -132
- package/dist/@codegen/klend/accounts/WithdrawTicket.d.ts.map +0 -1
- package/dist/@codegen/klend/accounts/WithdrawTicket.js +0 -191
- package/dist/@codegen/klend/accounts/WithdrawTicket.js.map +0 -1
- package/dist/@codegen/klend/instructions/enqueueToWithdraw.d.ts +0 -39
- package/dist/@codegen/klend/instructions/enqueueToWithdraw.d.ts.map +0 -1
- package/dist/@codegen/klend/instructions/enqueueToWithdraw.js +0 -67
- package/dist/@codegen/klend/instructions/enqueueToWithdraw.js.map +0 -1
- package/dist/@codegen/klend/instructions/fillBorrowOrder.d.ts +0 -36
- package/dist/@codegen/klend/instructions/fillBorrowOrder.d.ts.map +0 -1
- package/dist/@codegen/klend/instructions/fillBorrowOrder.js +0 -49
- package/dist/@codegen/klend/instructions/fillBorrowOrder.js.map +0 -1
- package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.d.ts +0 -47
- package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.d.ts.map +0 -1
- package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.js +0 -66
- package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.js.map +0 -1
- package/dist/@codegen/klend/instructions/setBorrowOrder.d.ts +0 -31
- package/dist/@codegen/klend/instructions/setBorrowOrder.d.ts.map +0 -1
- package/dist/@codegen/klend/instructions/setBorrowOrder.js +0 -64
- package/dist/@codegen/klend/instructions/setBorrowOrder.js.map +0 -1
- package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.d.ts +0 -53
- package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.d.ts.map +0 -1
- package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.js +0 -190
- package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.js.map +0 -1
- package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.d.ts +0 -70
- package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.d.ts.map +0 -1
- package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.js +0 -261
- package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.js.map +0 -1
- package/dist/@codegen/klend/instructions/withdrawObligationUsol.d.ts +0 -41
- package/dist/@codegen/klend/instructions/withdrawObligationUsol.d.ts.map +0 -1
- package/dist/@codegen/klend/instructions/withdrawObligationUsol.js +0 -135
- package/dist/@codegen/klend/instructions/withdrawObligationUsol.js.map +0 -1
- package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.d.ts +0 -51
- package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.d.ts.map +0 -1
- package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.js +0 -28
- package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.js.map +0 -1
- package/dist/@codegen/klend/types/BorrowOrder.d.ts +0 -192
- package/dist/@codegen/klend/types/BorrowOrder.d.ts.map +0 -1
- package/dist/@codegen/klend/types/BorrowOrder.js +0 -194
- package/dist/@codegen/klend/types/BorrowOrder.js.map +0 -1
- package/dist/@codegen/klend/types/BorrowOrderConfigArgs.d.ts +0 -39
- package/dist/@codegen/klend/types/BorrowOrderConfigArgs.d.ts.map +0 -1
- package/dist/@codegen/klend/types/BorrowOrderConfigArgs.js +0 -100
- package/dist/@codegen/klend/types/BorrowOrderConfigArgs.js.map +0 -1
- package/dist/@codegen/klend/types/WithdrawQueue.d.ts +0 -64
- package/dist/@codegen/klend/types/WithdrawQueue.d.ts.map +0 -1
- package/dist/@codegen/klend/types/WithdrawQueue.js +0 -104
- package/dist/@codegen/klend/types/WithdrawQueue.js.map +0 -1
- package/dist/lending_operations/unstake_lst_collateral.d.ts +0 -12
- package/dist/lending_operations/unstake_lst_collateral.d.ts.map +0 -1
- package/dist/lending_operations/unstake_lst_collateral.js +0 -104
- package/dist/lending_operations/unstake_lst_collateral.js.map +0 -1
- package/src/@codegen/klend/accounts/PoolState.ts +0 -192
- package/src/@codegen/klend/accounts/UnstakeTicket.ts +0 -160
- package/src/@codegen/klend/accounts/WithdrawTicket.ts +0 -256
- package/src/@codegen/klend/instructions/enqueueToWithdraw.ts +0 -89
- package/src/@codegen/klend/instructions/fillBorrowOrder.ts +0 -96
- package/src/@codegen/klend/instructions/recoverInvalidTicketCollateral.ts +0 -96
- package/src/@codegen/klend/instructions/setBorrowOrder.ts +0 -77
- package/src/@codegen/klend/instructions/unstakeLstCollateralEnd.ts +0 -251
- package/src/@codegen/klend/instructions/unstakeLstCollateralStart.ts +0 -353
- package/src/@codegen/klend/instructions/withdrawObligationUsol.ts +0 -168
- package/src/@codegen/klend/instructions/withdrawQueuedLiquidity.ts +0 -92
- package/src/@codegen/klend/types/BorrowOrder.ts +0 -267
- package/src/@codegen/klend/types/BorrowOrderConfigArgs.ts +0 -87
- package/src/@codegen/klend/types/WithdrawQueue.ts +0 -117
- package/src/lending_operations/unstake_lst_collateral.ts +0 -174
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.WithdrawQueue = void 0;
|
|
40
|
-
const bn_js_1 = __importDefault(require("bn.js")); // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
41
|
-
const borsh = __importStar(require("@coral-xyz/borsh"));
|
|
42
|
-
/** A tracker of ticket-based withdrawals. */
|
|
43
|
-
class WithdrawQueue {
|
|
44
|
-
/** The part of [ReserveLiquidity::total_available_amount] locked for ticketed withdrawals. */
|
|
45
|
-
queuedCollateralAmount;
|
|
46
|
-
/**
|
|
47
|
-
* The sequence number of the next ticket to be issued when enqueueing to withdraw.
|
|
48
|
-
* Note: it is also a number of tickets issued so far.
|
|
49
|
-
*/
|
|
50
|
-
nextIssuedTicketSequenceNumber;
|
|
51
|
-
/**
|
|
52
|
-
* The sequence number of the next ticket to be used for actually transferring the withdrawn
|
|
53
|
-
* liquidity (assuming it is available in the reserve).
|
|
54
|
-
* Note: it is also a number of fully-consumed tickets so far.
|
|
55
|
-
*/
|
|
56
|
-
nextWithdrawableTicketSequenceNumber;
|
|
57
|
-
constructor(fields) {
|
|
58
|
-
this.queuedCollateralAmount = fields.queuedCollateralAmount;
|
|
59
|
-
this.nextIssuedTicketSequenceNumber = fields.nextIssuedTicketSequenceNumber;
|
|
60
|
-
this.nextWithdrawableTicketSequenceNumber =
|
|
61
|
-
fields.nextWithdrawableTicketSequenceNumber;
|
|
62
|
-
}
|
|
63
|
-
static layout(property) {
|
|
64
|
-
return borsh.struct([
|
|
65
|
-
borsh.u64("queuedCollateralAmount"),
|
|
66
|
-
borsh.u64("nextIssuedTicketSequenceNumber"),
|
|
67
|
-
borsh.u64("nextWithdrawableTicketSequenceNumber"),
|
|
68
|
-
], property);
|
|
69
|
-
}
|
|
70
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
71
|
-
static fromDecoded(obj) {
|
|
72
|
-
return new WithdrawQueue({
|
|
73
|
-
queuedCollateralAmount: obj.queuedCollateralAmount,
|
|
74
|
-
nextIssuedTicketSequenceNumber: obj.nextIssuedTicketSequenceNumber,
|
|
75
|
-
nextWithdrawableTicketSequenceNumber: obj.nextWithdrawableTicketSequenceNumber,
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
static toEncodable(fields) {
|
|
79
|
-
return {
|
|
80
|
-
queuedCollateralAmount: fields.queuedCollateralAmount,
|
|
81
|
-
nextIssuedTicketSequenceNumber: fields.nextIssuedTicketSequenceNumber,
|
|
82
|
-
nextWithdrawableTicketSequenceNumber: fields.nextWithdrawableTicketSequenceNumber,
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
toJSON() {
|
|
86
|
-
return {
|
|
87
|
-
queuedCollateralAmount: this.queuedCollateralAmount.toString(),
|
|
88
|
-
nextIssuedTicketSequenceNumber: this.nextIssuedTicketSequenceNumber.toString(),
|
|
89
|
-
nextWithdrawableTicketSequenceNumber: this.nextWithdrawableTicketSequenceNumber.toString(),
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
static fromJSON(obj) {
|
|
93
|
-
return new WithdrawQueue({
|
|
94
|
-
queuedCollateralAmount: new bn_js_1.default(obj.queuedCollateralAmount),
|
|
95
|
-
nextIssuedTicketSequenceNumber: new bn_js_1.default(obj.nextIssuedTicketSequenceNumber),
|
|
96
|
-
nextWithdrawableTicketSequenceNumber: new bn_js_1.default(obj.nextWithdrawableTicketSequenceNumber),
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
toEncodable() {
|
|
100
|
-
return WithdrawQueue.toEncodable(this);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
exports.WithdrawQueue = WithdrawQueue;
|
|
104
|
-
//# sourceMappingURL=WithdrawQueue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WithdrawQueue.js","sourceRoot":"","sources":["../../../../src/@codegen/klend/types/WithdrawQueue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAAsB,CAAC,wDAAwD;AAE/E,wDAAyC;AAmCzC,6CAA6C;AAC7C,MAAa,aAAa;IACxB,8FAA8F;IACrF,sBAAsB,CAAI;IACnC;;;OAGG;IACM,8BAA8B,CAAI;IAC3C;;;;OAIG;IACM,oCAAoC,CAAI;IAEjD,YAAY,MAA2B;QACrC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAA;QAC3D,IAAI,CAAC,8BAA8B,GAAG,MAAM,CAAC,8BAA8B,CAAA;QAC3E,IAAI,CAAC,oCAAoC;YACvC,MAAM,CAAC,oCAAoC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,QAAiB;QAC7B,OAAO,KAAK,CAAC,MAAM,CACjB;YACE,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC;YACnC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC;YAC3C,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC;SAClD,EACD,QAAQ,CACT,CAAA;IACH,CAAC;IAED,8DAA8D;IAC9D,MAAM,CAAC,WAAW,CAAC,GAAQ;QACzB,OAAO,IAAI,aAAa,CAAC;YACvB,sBAAsB,EAAE,GAAG,CAAC,sBAAsB;YAClD,8BAA8B,EAAE,GAAG,CAAC,8BAA8B;YAClE,oCAAoC,EAClC,GAAG,CAAC,oCAAoC;SAC3C,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAA2B;QAC5C,OAAO;YACL,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,8BAA8B,EAAE,MAAM,CAAC,8BAA8B;YACrE,oCAAoC,EAClC,MAAM,CAAC,oCAAoC;SAC9C,CAAA;IACH,CAAC;IAED,MAAM;QACJ,OAAO;YACL,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE;YAC9D,8BAA8B,EAC5B,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE;YAChD,oCAAoC,EAClC,IAAI,CAAC,oCAAoC,CAAC,QAAQ,EAAE;SACvD,CAAA;IACH,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAsB;QACpC,OAAO,IAAI,aAAa,CAAC;YACvB,sBAAsB,EAAE,IAAI,eAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC;YAC1D,8BAA8B,EAAE,IAAI,eAAE,CACpC,GAAG,CAAC,8BAA8B,CACnC;YACD,oCAAoC,EAAE,IAAI,eAAE,CAC1C,GAAG,CAAC,oCAAoC,CACzC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,WAAW;QACT,OAAO,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;CACF;AA7ED,sCA6EC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { KaminoMarket, KaminoObligation, KaminoReserve } from '../classes';
|
|
2
|
-
import { ScopePriceRefreshConfig } from '../utils';
|
|
3
|
-
import Decimal from 'decimal.js';
|
|
4
|
-
import { Address, IInstruction, Option, Slot, TransactionSigner } from '@solana/kit';
|
|
5
|
-
export declare function buildUnstakeLstCollateralStartIxs(market: KaminoMarket, obligation: KaminoObligation, owner: TransactionSigner, lstMint: Address, referrer: Option<Address>, currentSlot: Slot, budgetAndPriorityFeeIxs: IInstruction[] | undefined, scopeRefreshConfig: ScopePriceRefreshConfig | undefined): Promise<{
|
|
6
|
-
instructions: IInstruction[];
|
|
7
|
-
remainingSigners: TransactionSigner[];
|
|
8
|
-
}>;
|
|
9
|
-
export declare function getUnstakeLstCollateralApproximateInputs(market: KaminoMarket, debtReserve: KaminoReserve, lstReserve: KaminoReserve, obligation: KaminoObligation, currentSlot: Slot): {
|
|
10
|
-
lstToConvert: Decimal;
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=unstake_lst_collateral.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unstake_lst_collateral.d.ts","sourceRoot":"","sources":["../../src/lending_operations/unstake_lst_collateral.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EAEd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAGL,uBAAuB,EAExB,MAAM,UAAU,CAAC;AAClB,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAQ,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAK3F,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,EACzB,WAAW,EAAE,IAAI,EACjB,uBAAuB,EAAE,YAAY,EAAE,GAAG,SAAS,EACnD,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,GACtD,OAAO,CAAC;IAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IAAC,gBAAgB,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC,CA0FlF;AAED,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,aAAa,EAC1B,UAAU,EAAE,aAAa,EACzB,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,IAAI,GAChB;IACD,YAAY,EAAE,OAAO,CAAC;CACvB,CAyCA"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.buildUnstakeLstCollateralStartIxs = buildUnstakeLstCollateralStartIxs;
|
|
7
|
-
exports.getUnstakeLstCollateralApproximateInputs = getUnstakeLstCollateralApproximateInputs;
|
|
8
|
-
const classes_1 = require("../classes");
|
|
9
|
-
const leverage_1 = require("../leverage");
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
12
|
-
const bn_js_1 = __importDefault(require("bn.js"));
|
|
13
|
-
const kit_1 = require("@solana/kit");
|
|
14
|
-
const LST_CONVERSION_MARGIN_BPS = new decimal_js_1.default(100);
|
|
15
|
-
const FULL_BPS = new decimal_js_1.default(10_000);
|
|
16
|
-
async function buildUnstakeLstCollateralStartIxs(market, obligation, owner, lstMint, referrer, currentSlot, budgetAndPriorityFeeIxs, scopeRefreshConfig) {
|
|
17
|
-
// Get reserves based on obligation
|
|
18
|
-
const usolMint = await market.getUsolPoolMint();
|
|
19
|
-
const usolReserve = market.getReserveByMint(usolMint);
|
|
20
|
-
const lstReserve = market.getReserveByMint(lstMint);
|
|
21
|
-
const debtReserve = market.reserves.get(obligation.state.borrows[0].borrowReserve);
|
|
22
|
-
if (!usolReserve) {
|
|
23
|
-
throw new Error(`Cannot fetch usol reserve for mint ${usolMint}`);
|
|
24
|
-
}
|
|
25
|
-
if (!lstReserve) {
|
|
26
|
-
throw new Error(`Cannot fetch lst reserve for mint ${obligation.state.deposits[0].depositReserve}`);
|
|
27
|
-
}
|
|
28
|
-
if (!debtReserve) {
|
|
29
|
-
throw new Error(`Cannot fetch debt reserve for mint ${obligation.state.borrows[0].borrowReserve}`);
|
|
30
|
-
}
|
|
31
|
-
// 0. Compute sol to repay + lst to flash borrow + additional accounts
|
|
32
|
-
const stakePool = await (0, classes_1.maybeGetStakedPoolByMint)(market.getRpc(), lstReserve.getLiquidityMint());
|
|
33
|
-
if (!stakePool) {
|
|
34
|
-
throw new Error(`Cannot fetch stake pool for mint ${lstReserve.getLiquidityMint()}`);
|
|
35
|
-
}
|
|
36
|
-
const { lstToConvert } = getUnstakeLstCollateralApproximateInputs(market, debtReserve, lstReserve, obligation, currentSlot);
|
|
37
|
-
const [depositStakedSolRemainingAccounts, remainingSigners] = await (0, classes_1.getStandardPoolMintRemainingAccounts)(market.getRpc(), stakePool[0], stakePool[1], new bn_js_1.default(lstToConvert.toString()));
|
|
38
|
-
// 1. Create atas & budget txns
|
|
39
|
-
const budgetIxs = budgetAndPriorityFeeIxs || (0, utils_1.getComputeBudgetAndPriorityFeeIxs)(1_400_000);
|
|
40
|
-
const atas = [
|
|
41
|
-
{ mint: usolReserve.getLiquidityMint(), tokenProgram: usolReserve.getLiquidityTokenProgram() },
|
|
42
|
-
{ mint: lstReserve.getLiquidityMint(), tokenProgram: lstReserve.getLiquidityTokenProgram() },
|
|
43
|
-
];
|
|
44
|
-
const atasAndIxs = await (0, utils_1.createAtasIdempotent)(owner, atas);
|
|
45
|
-
const [, { ata: lstAta }] = atasAndIxs;
|
|
46
|
-
const scopeRefreshIx = await (0, leverage_1.getScopeRefreshIx)(market, lstReserve, debtReserve, obligation, scopeRefreshConfig);
|
|
47
|
-
// 2. Flash borrow & repay the debt to repay amount needed
|
|
48
|
-
const { flashBorrowIx, flashRepayIx } = (0, leverage_1.getFlashLoanInstructions)({
|
|
49
|
-
borrowIxIndex: budgetIxs.length + atasAndIxs.length + (scopeRefreshIx.length > 0 ? 1 : 0),
|
|
50
|
-
userTransferAuthority: owner,
|
|
51
|
-
lendingMarketAuthority: await market.getLendingMarketAuthority(),
|
|
52
|
-
lendingMarketAddress: market.getAddress(),
|
|
53
|
-
reserve: lstReserve,
|
|
54
|
-
amountLamports: lstToConvert,
|
|
55
|
-
destinationAta: lstAta,
|
|
56
|
-
// TODO(referrals): once we support referrals, we will have to replace the placeholder args below:
|
|
57
|
-
referrerAccount: (0, kit_1.none)(),
|
|
58
|
-
referrerTokenState: (0, kit_1.none)(),
|
|
59
|
-
programId: market.programId,
|
|
60
|
-
});
|
|
61
|
-
// 3. Repay using the flash borrowed funds & withdraw collateral to swap and pay the flash loan
|
|
62
|
-
const unstakeLstCollateralStartAction = await classes_1.KaminoAction.buildUnstakeLstCollateralStartTxns(market, lstToConvert.toString(), usolReserve.getLiquidityMint(), lstReserve.getLiquidityMint(), owner, currentSlot, obligation, depositStakedSolRemainingAccounts, undefined, 0, false, undefined, referrer);
|
|
63
|
-
const instructions = [
|
|
64
|
-
...scopeRefreshIx,
|
|
65
|
-
...budgetIxs,
|
|
66
|
-
...atasAndIxs.map((x) => x.createAtaIx),
|
|
67
|
-
flashBorrowIx,
|
|
68
|
-
...classes_1.KaminoAction.actionToIxs(unstakeLstCollateralStartAction),
|
|
69
|
-
flashRepayIx,
|
|
70
|
-
];
|
|
71
|
-
return {
|
|
72
|
-
instructions,
|
|
73
|
-
remainingSigners,
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
function getUnstakeLstCollateralApproximateInputs(market, debtReserve, lstReserve, obligation, currentSlot) {
|
|
77
|
-
// Compute the interest rate / curve after 4 days (~2 epochs)
|
|
78
|
-
const laterSlot = currentSlot + BigInt(utils_1.SLOTS_PER_DAY * 4);
|
|
79
|
-
const borrow = obligation.state.borrows.find((borrow) => borrow.borrowReserve.toString() === debtReserve.address.toString());
|
|
80
|
-
const lstDeposit = obligation.state.deposits.find((deposit) => deposit.depositReserve.toString() === lstReserve.address.toString());
|
|
81
|
-
if (!borrow) {
|
|
82
|
-
throw new Error(`Could not find borrow ${debtReserve.address.toString()} in obligation ${obligation.obligationAddress.toString()}`);
|
|
83
|
-
}
|
|
84
|
-
if (!lstDeposit) {
|
|
85
|
-
throw new Error(`Could not find deposit ${lstReserve.address.toString()} in obligation ${obligation.obligationAddress.toString()}`);
|
|
86
|
-
}
|
|
87
|
-
const newInterestRate = obligation.estimateObligationInterestRate(market, debtReserve, borrow, laterSlot);
|
|
88
|
-
const debtToRepay = new classes_1.Fraction(borrow.borrowedAmountSf).toDecimal().mul(newInterestRate);
|
|
89
|
-
// To compute the staked sol to convert we convert the sol to repay
|
|
90
|
-
// using the pool ratio, but we cap it at the total amount of deposited
|
|
91
|
-
// staked sol in the obligation (converted from collateral -> liquidity)
|
|
92
|
-
const lstPrice = lstReserve.getOracleMarketPrice();
|
|
93
|
-
const debtPrice = debtReserve.getOracleMarketPrice();
|
|
94
|
-
const equivalentLst = debtToRepay.mul(debtPrice).div(lstPrice);
|
|
95
|
-
const equivalentLstWithMargin = equivalentLst.mul(FULL_BPS.add(LST_CONVERSION_MARGIN_BPS)).div(FULL_BPS);
|
|
96
|
-
const newCollateralExchangeRate = debtReserve.getEstimatedCollateralExchangeRate(laterSlot, market.state.referralFeeBps);
|
|
97
|
-
const lstCollateralAmount = new decimal_js_1.default(equivalentLstWithMargin.toString()).mul(newCollateralExchangeRate);
|
|
98
|
-
const lstCollateralToConvert = decimal_js_1.default.min(new decimal_js_1.default(lstDeposit.depositedAmount.toString()), lstCollateralAmount);
|
|
99
|
-
const lstToConvert = lstCollateralToConvert.div(newCollateralExchangeRate).ceil();
|
|
100
|
-
return {
|
|
101
|
-
lstToConvert,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=unstake_lst_collateral.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unstake_lst_collateral.js","sourceRoot":"","sources":["../../src/lending_operations/unstake_lst_collateral.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
-
import {
|
|
3
|
-
address,
|
|
4
|
-
Address,
|
|
5
|
-
fetchEncodedAccount,
|
|
6
|
-
fetchEncodedAccounts,
|
|
7
|
-
GetAccountInfoApi,
|
|
8
|
-
GetMultipleAccountsApi,
|
|
9
|
-
Rpc,
|
|
10
|
-
} from "@solana/kit"
|
|
11
|
-
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
12
|
-
import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
13
|
-
import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
14
|
-
import { borshAddress } from "../utils" // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
15
|
-
import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
16
|
-
import { PROGRAM_ID } from "../programId"
|
|
17
|
-
|
|
18
|
-
export interface PoolStateFields {
|
|
19
|
-
admin: Address
|
|
20
|
-
pendingAdmin: Address
|
|
21
|
-
basePoolAuthority: Address
|
|
22
|
-
basePoolAuthorityBump: BN
|
|
23
|
-
unstakingSolMint: Address
|
|
24
|
-
wsolVault: Address
|
|
25
|
-
actionAuthority: Address
|
|
26
|
-
poolLookupTable: Address
|
|
27
|
-
sharesIssued: BN
|
|
28
|
-
wsolUnstaking: BN
|
|
29
|
-
wsolInVault: BN
|
|
30
|
-
padding: Array<BN>
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export interface PoolStateJSON {
|
|
34
|
-
admin: string
|
|
35
|
-
pendingAdmin: string
|
|
36
|
-
basePoolAuthority: string
|
|
37
|
-
basePoolAuthorityBump: string
|
|
38
|
-
unstakingSolMint: string
|
|
39
|
-
wsolVault: string
|
|
40
|
-
actionAuthority: string
|
|
41
|
-
poolLookupTable: string
|
|
42
|
-
sharesIssued: string
|
|
43
|
-
wsolUnstaking: string
|
|
44
|
-
wsolInVault: string
|
|
45
|
-
padding: Array<string>
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export class PoolState {
|
|
49
|
-
readonly admin: Address
|
|
50
|
-
readonly pendingAdmin: Address
|
|
51
|
-
readonly basePoolAuthority: Address
|
|
52
|
-
readonly basePoolAuthorityBump: BN
|
|
53
|
-
readonly unstakingSolMint: Address
|
|
54
|
-
readonly wsolVault: Address
|
|
55
|
-
readonly actionAuthority: Address
|
|
56
|
-
readonly poolLookupTable: Address
|
|
57
|
-
readonly sharesIssued: BN
|
|
58
|
-
readonly wsolUnstaking: BN
|
|
59
|
-
readonly wsolInVault: BN
|
|
60
|
-
readonly padding: Array<BN>
|
|
61
|
-
|
|
62
|
-
static readonly discriminator = Buffer.from([
|
|
63
|
-
247, 237, 227, 245, 215, 195, 222, 70,
|
|
64
|
-
])
|
|
65
|
-
|
|
66
|
-
static readonly layout = borsh.struct<PoolState>([
|
|
67
|
-
borshAddress("admin"),
|
|
68
|
-
borshAddress("pendingAdmin"),
|
|
69
|
-
borshAddress("basePoolAuthority"),
|
|
70
|
-
borsh.u64("basePoolAuthorityBump"),
|
|
71
|
-
borshAddress("unstakingSolMint"),
|
|
72
|
-
borshAddress("wsolVault"),
|
|
73
|
-
borshAddress("actionAuthority"),
|
|
74
|
-
borshAddress("poolLookupTable"),
|
|
75
|
-
borsh.u64("sharesIssued"),
|
|
76
|
-
borsh.u64("wsolUnstaking"),
|
|
77
|
-
borsh.u64("wsolInVault"),
|
|
78
|
-
borsh.array(borsh.u128(), 256, "padding"),
|
|
79
|
-
])
|
|
80
|
-
|
|
81
|
-
constructor(fields: PoolStateFields) {
|
|
82
|
-
this.admin = fields.admin
|
|
83
|
-
this.pendingAdmin = fields.pendingAdmin
|
|
84
|
-
this.basePoolAuthority = fields.basePoolAuthority
|
|
85
|
-
this.basePoolAuthorityBump = fields.basePoolAuthorityBump
|
|
86
|
-
this.unstakingSolMint = fields.unstakingSolMint
|
|
87
|
-
this.wsolVault = fields.wsolVault
|
|
88
|
-
this.actionAuthority = fields.actionAuthority
|
|
89
|
-
this.poolLookupTable = fields.poolLookupTable
|
|
90
|
-
this.sharesIssued = fields.sharesIssued
|
|
91
|
-
this.wsolUnstaking = fields.wsolUnstaking
|
|
92
|
-
this.wsolInVault = fields.wsolInVault
|
|
93
|
-
this.padding = fields.padding
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
static async fetch(
|
|
97
|
-
rpc: Rpc<GetAccountInfoApi>,
|
|
98
|
-
address: Address,
|
|
99
|
-
programId: Address = PROGRAM_ID
|
|
100
|
-
): Promise<PoolState | null> {
|
|
101
|
-
const info = await fetchEncodedAccount(rpc, address)
|
|
102
|
-
|
|
103
|
-
if (!info.exists) {
|
|
104
|
-
return null
|
|
105
|
-
}
|
|
106
|
-
if (info.programAddress !== programId) {
|
|
107
|
-
throw new Error(
|
|
108
|
-
`PoolStateFields account ${address} belongs to wrong program ${info.programAddress}, expected ${programId}`
|
|
109
|
-
)
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return this.decode(Buffer.from(info.data))
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
static async fetchMultiple(
|
|
116
|
-
rpc: Rpc<GetMultipleAccountsApi>,
|
|
117
|
-
addresses: Address[],
|
|
118
|
-
programId: Address = PROGRAM_ID
|
|
119
|
-
): Promise<Array<PoolState | null>> {
|
|
120
|
-
const infos = await fetchEncodedAccounts(rpc, addresses)
|
|
121
|
-
|
|
122
|
-
return infos.map((info) => {
|
|
123
|
-
if (!info.exists) {
|
|
124
|
-
return null
|
|
125
|
-
}
|
|
126
|
-
if (info.programAddress !== programId) {
|
|
127
|
-
throw new Error(
|
|
128
|
-
`PoolStateFields account ${info.address} belongs to wrong program ${info.programAddress}, expected ${programId}`
|
|
129
|
-
)
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return this.decode(Buffer.from(info.data))
|
|
133
|
-
})
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
static decode(data: Buffer): PoolState {
|
|
137
|
-
if (!data.slice(0, 8).equals(PoolState.discriminator)) {
|
|
138
|
-
throw new Error("invalid account discriminator")
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const dec = PoolState.layout.decode(data.slice(8))
|
|
142
|
-
|
|
143
|
-
return new PoolState({
|
|
144
|
-
admin: dec.admin,
|
|
145
|
-
pendingAdmin: dec.pendingAdmin,
|
|
146
|
-
basePoolAuthority: dec.basePoolAuthority,
|
|
147
|
-
basePoolAuthorityBump: dec.basePoolAuthorityBump,
|
|
148
|
-
unstakingSolMint: dec.unstakingSolMint,
|
|
149
|
-
wsolVault: dec.wsolVault,
|
|
150
|
-
actionAuthority: dec.actionAuthority,
|
|
151
|
-
poolLookupTable: dec.poolLookupTable,
|
|
152
|
-
sharesIssued: dec.sharesIssued,
|
|
153
|
-
wsolUnstaking: dec.wsolUnstaking,
|
|
154
|
-
wsolInVault: dec.wsolInVault,
|
|
155
|
-
padding: dec.padding,
|
|
156
|
-
})
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
toJSON(): PoolStateJSON {
|
|
160
|
-
return {
|
|
161
|
-
admin: this.admin,
|
|
162
|
-
pendingAdmin: this.pendingAdmin,
|
|
163
|
-
basePoolAuthority: this.basePoolAuthority,
|
|
164
|
-
basePoolAuthorityBump: this.basePoolAuthorityBump.toString(),
|
|
165
|
-
unstakingSolMint: this.unstakingSolMint,
|
|
166
|
-
wsolVault: this.wsolVault,
|
|
167
|
-
actionAuthority: this.actionAuthority,
|
|
168
|
-
poolLookupTable: this.poolLookupTable,
|
|
169
|
-
sharesIssued: this.sharesIssued.toString(),
|
|
170
|
-
wsolUnstaking: this.wsolUnstaking.toString(),
|
|
171
|
-
wsolInVault: this.wsolInVault.toString(),
|
|
172
|
-
padding: this.padding.map((item) => item.toString()),
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
static fromJSON(obj: PoolStateJSON): PoolState {
|
|
177
|
-
return new PoolState({
|
|
178
|
-
admin: address(obj.admin),
|
|
179
|
-
pendingAdmin: address(obj.pendingAdmin),
|
|
180
|
-
basePoolAuthority: address(obj.basePoolAuthority),
|
|
181
|
-
basePoolAuthorityBump: new BN(obj.basePoolAuthorityBump),
|
|
182
|
-
unstakingSolMint: address(obj.unstakingSolMint),
|
|
183
|
-
wsolVault: address(obj.wsolVault),
|
|
184
|
-
actionAuthority: address(obj.actionAuthority),
|
|
185
|
-
poolLookupTable: address(obj.poolLookupTable),
|
|
186
|
-
sharesIssued: new BN(obj.sharesIssued),
|
|
187
|
-
wsolUnstaking: new BN(obj.wsolUnstaking),
|
|
188
|
-
wsolInVault: new BN(obj.wsolInVault),
|
|
189
|
-
padding: obj.padding.map((item) => new BN(item)),
|
|
190
|
-
})
|
|
191
|
-
}
|
|
192
|
-
}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
-
import {
|
|
3
|
-
address,
|
|
4
|
-
Address,
|
|
5
|
-
fetchEncodedAccount,
|
|
6
|
-
fetchEncodedAccounts,
|
|
7
|
-
GetAccountInfoApi,
|
|
8
|
-
GetMultipleAccountsApi,
|
|
9
|
-
Rpc,
|
|
10
|
-
} from "@solana/kit"
|
|
11
|
-
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
12
|
-
import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
13
|
-
import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
14
|
-
import { borshAddress } from "../utils" // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
15
|
-
import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
16
|
-
import { PROGRAM_ID } from "../programId"
|
|
17
|
-
|
|
18
|
-
export interface UnstakeTicketFields {
|
|
19
|
-
authority: Address
|
|
20
|
-
poolState: Address
|
|
21
|
-
obligationMetadata: Address
|
|
22
|
-
initialUsol: BN
|
|
23
|
-
remainingUsol: BN
|
|
24
|
-
minimumEpochToBurn: BN
|
|
25
|
-
padding0: Array<BN>
|
|
26
|
-
padding: Array<BN>
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface UnstakeTicketJSON {
|
|
30
|
-
authority: string
|
|
31
|
-
poolState: string
|
|
32
|
-
obligationMetadata: string
|
|
33
|
-
initialUsol: string
|
|
34
|
-
remainingUsol: string
|
|
35
|
-
minimumEpochToBurn: string
|
|
36
|
-
padding0: Array<string>
|
|
37
|
-
padding: Array<string>
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export class UnstakeTicket {
|
|
41
|
-
readonly authority: Address
|
|
42
|
-
readonly poolState: Address
|
|
43
|
-
readonly obligationMetadata: Address
|
|
44
|
-
readonly initialUsol: BN
|
|
45
|
-
readonly remainingUsol: BN
|
|
46
|
-
readonly minimumEpochToBurn: BN
|
|
47
|
-
readonly padding0: Array<BN>
|
|
48
|
-
readonly padding: Array<BN>
|
|
49
|
-
|
|
50
|
-
static readonly discriminator = Buffer.from([
|
|
51
|
-
131, 84, 209, 38, 145, 157, 181, 127,
|
|
52
|
-
])
|
|
53
|
-
|
|
54
|
-
static readonly layout = borsh.struct<UnstakeTicket>([
|
|
55
|
-
borshAddress("authority"),
|
|
56
|
-
borshAddress("poolState"),
|
|
57
|
-
borshAddress("obligationMetadata"),
|
|
58
|
-
borsh.u64("initialUsol"),
|
|
59
|
-
borsh.u64("remainingUsol"),
|
|
60
|
-
borsh.u64("minimumEpochToBurn"),
|
|
61
|
-
borsh.array(borsh.u64(), 1, "padding0"),
|
|
62
|
-
borsh.array(borsh.u128(), 16, "padding"),
|
|
63
|
-
])
|
|
64
|
-
|
|
65
|
-
constructor(fields: UnstakeTicketFields) {
|
|
66
|
-
this.authority = fields.authority
|
|
67
|
-
this.poolState = fields.poolState
|
|
68
|
-
this.obligationMetadata = fields.obligationMetadata
|
|
69
|
-
this.initialUsol = fields.initialUsol
|
|
70
|
-
this.remainingUsol = fields.remainingUsol
|
|
71
|
-
this.minimumEpochToBurn = fields.minimumEpochToBurn
|
|
72
|
-
this.padding0 = fields.padding0
|
|
73
|
-
this.padding = fields.padding
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
static async fetch(
|
|
77
|
-
rpc: Rpc<GetAccountInfoApi>,
|
|
78
|
-
address: Address,
|
|
79
|
-
programId: Address = PROGRAM_ID
|
|
80
|
-
): Promise<UnstakeTicket | null> {
|
|
81
|
-
const info = await fetchEncodedAccount(rpc, address)
|
|
82
|
-
|
|
83
|
-
if (!info.exists) {
|
|
84
|
-
return null
|
|
85
|
-
}
|
|
86
|
-
if (info.programAddress !== programId) {
|
|
87
|
-
throw new Error(
|
|
88
|
-
`UnstakeTicketFields account ${address} belongs to wrong program ${info.programAddress}, expected ${programId}`
|
|
89
|
-
)
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return this.decode(Buffer.from(info.data))
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
static async fetchMultiple(
|
|
96
|
-
rpc: Rpc<GetMultipleAccountsApi>,
|
|
97
|
-
addresses: Address[],
|
|
98
|
-
programId: Address = PROGRAM_ID
|
|
99
|
-
): Promise<Array<UnstakeTicket | null>> {
|
|
100
|
-
const infos = await fetchEncodedAccounts(rpc, addresses)
|
|
101
|
-
|
|
102
|
-
return infos.map((info) => {
|
|
103
|
-
if (!info.exists) {
|
|
104
|
-
return null
|
|
105
|
-
}
|
|
106
|
-
if (info.programAddress !== programId) {
|
|
107
|
-
throw new Error(
|
|
108
|
-
`UnstakeTicketFields account ${info.address} belongs to wrong program ${info.programAddress}, expected ${programId}`
|
|
109
|
-
)
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return this.decode(Buffer.from(info.data))
|
|
113
|
-
})
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
static decode(data: Buffer): UnstakeTicket {
|
|
117
|
-
if (!data.slice(0, 8).equals(UnstakeTicket.discriminator)) {
|
|
118
|
-
throw new Error("invalid account discriminator")
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
const dec = UnstakeTicket.layout.decode(data.slice(8))
|
|
122
|
-
|
|
123
|
-
return new UnstakeTicket({
|
|
124
|
-
authority: dec.authority,
|
|
125
|
-
poolState: dec.poolState,
|
|
126
|
-
obligationMetadata: dec.obligationMetadata,
|
|
127
|
-
initialUsol: dec.initialUsol,
|
|
128
|
-
remainingUsol: dec.remainingUsol,
|
|
129
|
-
minimumEpochToBurn: dec.minimumEpochToBurn,
|
|
130
|
-
padding0: dec.padding0,
|
|
131
|
-
padding: dec.padding,
|
|
132
|
-
})
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
toJSON(): UnstakeTicketJSON {
|
|
136
|
-
return {
|
|
137
|
-
authority: this.authority,
|
|
138
|
-
poolState: this.poolState,
|
|
139
|
-
obligationMetadata: this.obligationMetadata,
|
|
140
|
-
initialUsol: this.initialUsol.toString(),
|
|
141
|
-
remainingUsol: this.remainingUsol.toString(),
|
|
142
|
-
minimumEpochToBurn: this.minimumEpochToBurn.toString(),
|
|
143
|
-
padding0: this.padding0.map((item) => item.toString()),
|
|
144
|
-
padding: this.padding.map((item) => item.toString()),
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
static fromJSON(obj: UnstakeTicketJSON): UnstakeTicket {
|
|
149
|
-
return new UnstakeTicket({
|
|
150
|
-
authority: address(obj.authority),
|
|
151
|
-
poolState: address(obj.poolState),
|
|
152
|
-
obligationMetadata: address(obj.obligationMetadata),
|
|
153
|
-
initialUsol: new BN(obj.initialUsol),
|
|
154
|
-
remainingUsol: new BN(obj.remainingUsol),
|
|
155
|
-
minimumEpochToBurn: new BN(obj.minimumEpochToBurn),
|
|
156
|
-
padding0: obj.padding0.map((item) => new BN(item)),
|
|
157
|
-
padding: obj.padding.map((item) => new BN(item)),
|
|
158
|
-
})
|
|
159
|
-
}
|
|
160
|
-
}
|