@exponent-labs/loopscale-deserializer 0.9.0

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.
@@ -0,0 +1,159 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { Connection, PublicKey } from "@solana/web3.js";
4
+ import BN from "bn.js";
5
+ import Decimal from "decimal.js";
6
+ import { CapMonitor, CapMonitorFields, CapMonitorJSON, CollateralData, CollateralDataFields, CollateralDataJSON, Duration, ExternalYieldAccounts, ExternalYieldAccountsFields, ExternalYieldAccountsJSON, Ledger, LedgerFields, LedgerJSON } from "./types";
7
+ export { CapMonitor, CollateralData, Duration, ExternalYieldAccounts, Ledger };
8
+ export declare const PROGRAM_ID: PublicKey;
9
+ /** Convert a PodDecimal (3 x u64 LE = 192-bit LE integer scaled by 10^18) to Decimal */
10
+ export declare function podDecimalToDecimal(parts: BN[]): Decimal;
11
+ export interface LoanFields {
12
+ version: number;
13
+ bump: number;
14
+ loanStatus: number;
15
+ borrower: PublicKey;
16
+ nonce: BN;
17
+ startTime: BN;
18
+ ledgers: Array<LedgerFields>;
19
+ collateral: Array<CollateralDataFields>;
20
+ weightMatrix: Array<Array<number>>;
21
+ ltvMatrix: Array<Array<number>>;
22
+ lqtMatrix: Array<Array<number>>;
23
+ }
24
+ export interface LoanJSON {
25
+ version: number;
26
+ bump: number;
27
+ loanStatus: number;
28
+ borrower: string;
29
+ nonce: string;
30
+ startTime: string;
31
+ ledgers: Array<LedgerJSON>;
32
+ collateral: Array<CollateralDataJSON>;
33
+ weightMatrix: Array<Array<number>>;
34
+ ltvMatrix: Array<Array<number>>;
35
+ lqtMatrix: Array<Array<number>>;
36
+ }
37
+ export declare class Loan {
38
+ readonly version: number;
39
+ readonly bump: number;
40
+ readonly loanStatus: number;
41
+ readonly borrower: PublicKey;
42
+ readonly nonce: BN;
43
+ readonly startTime: BN;
44
+ readonly ledgers: Array<Ledger>;
45
+ readonly collateral: Array<CollateralData>;
46
+ readonly weightMatrix: Array<Array<number>>;
47
+ readonly ltvMatrix: Array<Array<number>>;
48
+ readonly lqtMatrix: Array<Array<number>>;
49
+ static readonly discriminator: Buffer;
50
+ static readonly layout: any;
51
+ constructor(fields: LoanFields);
52
+ static fetch(c: Connection, address: PublicKey, programId?: PublicKey): Promise<Loan | null>;
53
+ static fetchMultiple(c: Connection, addresses: PublicKey[], programId?: PublicKey): Promise<Array<Loan | null>>;
54
+ static decode(data: Buffer): Loan;
55
+ toJSON(): LoanJSON;
56
+ static fromJSON(obj: LoanJSON): Loan;
57
+ }
58
+ export interface StrategyFields {
59
+ version: number;
60
+ nonce: PublicKey;
61
+ bump: number;
62
+ principalMint: PublicKey;
63
+ lender: PublicKey;
64
+ originationsEnabled: number;
65
+ externalYieldSource: number;
66
+ /** PodDecimal: 24 bytes stored as 3 x u64 */
67
+ interestPerSecond: Array<BN>;
68
+ lastAccruedTimestamp: BN;
69
+ liquidityBuffer: BN;
70
+ tokenBalance: BN;
71
+ interestFee: BN;
72
+ principalFee: BN;
73
+ originationFee: BN;
74
+ originationCap: BN;
75
+ externalYieldAmount: BN;
76
+ currentDeployedAmount: BN;
77
+ outstandingInterestAmount: BN;
78
+ feeClaimable: BN;
79
+ cumulativePrincipalOriginated: BN;
80
+ cumulativeInterestAccrued: BN;
81
+ cumulativeLoanCount: BN;
82
+ activeLoanCount: BN;
83
+ marketInformation: PublicKey;
84
+ collateralMap: Array<Array<BN>>;
85
+ externalYieldAccounts: ExternalYieldAccountsFields;
86
+ supplyMonitor: CapMonitorFields;
87
+ withdrawMonitor: CapMonitorFields;
88
+ borrowMonitor: CapMonitorFields;
89
+ }
90
+ export interface StrategyJSON {
91
+ version: number;
92
+ nonce: string;
93
+ bump: number;
94
+ principalMint: string;
95
+ lender: string;
96
+ originationsEnabled: number;
97
+ externalYieldSource: number;
98
+ interestPerSecond: Array<string>;
99
+ lastAccruedTimestamp: string;
100
+ liquidityBuffer: string;
101
+ tokenBalance: string;
102
+ interestFee: string;
103
+ principalFee: string;
104
+ originationFee: string;
105
+ originationCap: string;
106
+ externalYieldAmount: string;
107
+ currentDeployedAmount: string;
108
+ outstandingInterestAmount: string;
109
+ feeClaimable: string;
110
+ cumulativePrincipalOriginated: string;
111
+ cumulativeInterestAccrued: string;
112
+ cumulativeLoanCount: string;
113
+ activeLoanCount: string;
114
+ marketInformation: string;
115
+ collateralMap: Array<Array<string>>;
116
+ externalYieldAccounts: ExternalYieldAccountsJSON;
117
+ supplyMonitor: CapMonitorJSON;
118
+ withdrawMonitor: CapMonitorJSON;
119
+ borrowMonitor: CapMonitorJSON;
120
+ }
121
+ export declare class Strategy {
122
+ readonly version: number;
123
+ readonly nonce: PublicKey;
124
+ readonly bump: number;
125
+ readonly principalMint: PublicKey;
126
+ readonly lender: PublicKey;
127
+ readonly originationsEnabled: number;
128
+ readonly externalYieldSource: number;
129
+ readonly interestPerSecond: Array<BN>;
130
+ readonly lastAccruedTimestamp: BN;
131
+ readonly liquidityBuffer: BN;
132
+ readonly tokenBalance: BN;
133
+ readonly interestFee: BN;
134
+ readonly principalFee: BN;
135
+ readonly originationFee: BN;
136
+ readonly originationCap: BN;
137
+ readonly externalYieldAmount: BN;
138
+ readonly currentDeployedAmount: BN;
139
+ readonly outstandingInterestAmount: BN;
140
+ readonly feeClaimable: BN;
141
+ readonly cumulativePrincipalOriginated: BN;
142
+ readonly cumulativeInterestAccrued: BN;
143
+ readonly cumulativeLoanCount: BN;
144
+ readonly activeLoanCount: BN;
145
+ readonly marketInformation: PublicKey;
146
+ readonly collateralMap: Array<Array<BN>>;
147
+ readonly externalYieldAccounts: ExternalYieldAccounts;
148
+ readonly supplyMonitor: CapMonitor;
149
+ readonly withdrawMonitor: CapMonitor;
150
+ readonly borrowMonitor: CapMonitor;
151
+ static readonly discriminator: Buffer;
152
+ static readonly layout: any;
153
+ constructor(fields: StrategyFields);
154
+ static fetch(c: Connection, address: PublicKey, programId?: PublicKey): Promise<Strategy | null>;
155
+ static fetchMultiple(c: Connection, addresses: PublicKey[], programId?: PublicKey): Promise<Array<Strategy | null>>;
156
+ static decode(data: Buffer): Strategy;
157
+ toJSON(): StrategyJSON;
158
+ static fromJSON(obj: StrategyJSON): Strategy;
159
+ }
package/build/index.js ADDED
@@ -0,0 +1,383 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.Strategy = exports.Loan = exports.podDecimalToDecimal = exports.PROGRAM_ID = exports.Ledger = exports.ExternalYieldAccounts = exports.Duration = exports.CollateralData = exports.CapMonitor = void 0;
30
+ const borsh = __importStar(require("@coral-xyz/borsh"));
31
+ const web3_js_1 = require("@solana/web3.js");
32
+ const bn_js_1 = __importDefault(require("bn.js")); // eslint-disable-line @typescript-eslint/no-unused-vars
33
+ const decimal_js_1 = __importDefault(require("decimal.js"));
34
+ const types_1 = require("./types");
35
+ Object.defineProperty(exports, "CapMonitor", { enumerable: true, get: function () { return types_1.CapMonitor; } });
36
+ Object.defineProperty(exports, "CollateralData", { enumerable: true, get: function () { return types_1.CollateralData; } });
37
+ Object.defineProperty(exports, "Duration", { enumerable: true, get: function () { return types_1.Duration; } });
38
+ Object.defineProperty(exports, "ExternalYieldAccounts", { enumerable: true, get: function () { return types_1.ExternalYieldAccounts; } });
39
+ Object.defineProperty(exports, "Ledger", { enumerable: true, get: function () { return types_1.Ledger; } });
40
+ exports.PROGRAM_ID = new web3_js_1.PublicKey("1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78");
41
+ const POD_DECIMAL_SCALE = new decimal_js_1.default(10).pow(18);
42
+ /** Convert a PodDecimal (3 x u64 LE = 192-bit LE integer scaled by 10^18) to Decimal */
43
+ function podDecimalToDecimal(parts) {
44
+ const lo = BigInt(parts[0].toString());
45
+ const mid = BigInt(parts[1].toString()) << BigInt(64);
46
+ const hi = BigInt(parts[2].toString()) << BigInt(128);
47
+ const raw = lo + mid + hi;
48
+ return new decimal_js_1.default(raw.toString()).div(POD_DECIMAL_SCALE);
49
+ }
50
+ exports.podDecimalToDecimal = podDecimalToDecimal;
51
+ class Loan {
52
+ version;
53
+ bump;
54
+ loanStatus;
55
+ borrower;
56
+ nonce;
57
+ startTime;
58
+ ledgers;
59
+ collateral;
60
+ weightMatrix;
61
+ ltvMatrix;
62
+ lqtMatrix;
63
+ static discriminator = Buffer.from([20, 195, 70, 117, 165, 227, 182, 1]);
64
+ static layout = borsh.struct([
65
+ borsh.u8("version"),
66
+ borsh.u8("bump"),
67
+ borsh.u8("loanStatus"),
68
+ borsh.publicKey("borrower"),
69
+ borsh.u64("nonce"),
70
+ borsh.u64("startTime"),
71
+ borsh.array(types_1.Ledger.layout(), 5, "ledgers"),
72
+ borsh.array(types_1.CollateralData.layout(), 5, "collateral"),
73
+ borsh.array(borsh.array(borsh.u32(), 5), 5, "weightMatrix"),
74
+ borsh.array(borsh.array(borsh.u32(), 5), 5, "ltvMatrix"),
75
+ borsh.array(borsh.array(borsh.u32(), 5), 5, "lqtMatrix"),
76
+ ]);
77
+ constructor(fields) {
78
+ this.version = fields.version;
79
+ this.bump = fields.bump;
80
+ this.loanStatus = fields.loanStatus;
81
+ this.borrower = fields.borrower;
82
+ this.nonce = fields.nonce;
83
+ this.startTime = fields.startTime;
84
+ this.ledgers = fields.ledgers.map((l) => new types_1.Ledger({ ...l }));
85
+ this.collateral = fields.collateral.map((c) => new types_1.CollateralData({ ...c }));
86
+ this.weightMatrix = fields.weightMatrix;
87
+ this.ltvMatrix = fields.ltvMatrix;
88
+ this.lqtMatrix = fields.lqtMatrix;
89
+ }
90
+ static async fetch(c, address, programId = exports.PROGRAM_ID) {
91
+ const info = await c.getAccountInfo(address);
92
+ if (info === null) {
93
+ return null;
94
+ }
95
+ if (!info.owner.equals(programId)) {
96
+ throw new Error("account doesn't belong to this program");
97
+ }
98
+ return this.decode(info.data);
99
+ }
100
+ static async fetchMultiple(c, addresses, programId = exports.PROGRAM_ID) {
101
+ const infos = await c.getMultipleAccountsInfo(addresses);
102
+ return infos.map((info) => {
103
+ if (info === null) {
104
+ return null;
105
+ }
106
+ if (!info.owner.equals(programId)) {
107
+ throw new Error("account doesn't belong to this program");
108
+ }
109
+ return this.decode(info.data);
110
+ });
111
+ }
112
+ static decode(data) {
113
+ if (!data.slice(0, 8).equals(Loan.discriminator)) {
114
+ throw new Error("invalid account discriminator");
115
+ }
116
+ const dec = Loan.layout.decode(data.slice(8));
117
+ return new Loan({
118
+ version: dec.version,
119
+ bump: dec.bump,
120
+ loanStatus: dec.loanStatus,
121
+ borrower: dec.borrower,
122
+ nonce: dec.nonce,
123
+ startTime: dec.startTime,
124
+ ledgers: dec.ledgers.map((l) => types_1.Ledger.fromDecoded(l)), // eslint-disable-line @typescript-eslint/no-explicit-any
125
+ collateral: dec.collateral.map((c) => types_1.CollateralData.fromDecoded(c)), // eslint-disable-line @typescript-eslint/no-explicit-any
126
+ weightMatrix: dec.weightMatrix,
127
+ ltvMatrix: dec.ltvMatrix,
128
+ lqtMatrix: dec.lqtMatrix,
129
+ });
130
+ }
131
+ toJSON() {
132
+ return {
133
+ version: this.version,
134
+ bump: this.bump,
135
+ loanStatus: this.loanStatus,
136
+ borrower: this.borrower.toString(),
137
+ nonce: this.nonce.toString(),
138
+ startTime: this.startTime.toString(),
139
+ ledgers: this.ledgers.map((l) => l.toJSON()),
140
+ collateral: this.collateral.map((c) => c.toJSON()),
141
+ weightMatrix: this.weightMatrix,
142
+ ltvMatrix: this.ltvMatrix,
143
+ lqtMatrix: this.lqtMatrix,
144
+ };
145
+ }
146
+ static fromJSON(obj) {
147
+ return new Loan({
148
+ version: obj.version,
149
+ bump: obj.bump,
150
+ loanStatus: obj.loanStatus,
151
+ borrower: new web3_js_1.PublicKey(obj.borrower),
152
+ nonce: new bn_js_1.default(obj.nonce),
153
+ startTime: new bn_js_1.default(obj.startTime),
154
+ ledgers: obj.ledgers.map((l) => types_1.Ledger.fromJSON(l)),
155
+ collateral: obj.collateral.map((c) => types_1.CollateralData.fromJSON(c)),
156
+ weightMatrix: obj.weightMatrix,
157
+ ltvMatrix: obj.ltvMatrix,
158
+ lqtMatrix: obj.lqtMatrix,
159
+ });
160
+ }
161
+ }
162
+ exports.Loan = Loan;
163
+ class Strategy {
164
+ version;
165
+ nonce;
166
+ bump;
167
+ principalMint;
168
+ lender;
169
+ originationsEnabled;
170
+ externalYieldSource;
171
+ interestPerSecond;
172
+ lastAccruedTimestamp;
173
+ liquidityBuffer;
174
+ tokenBalance;
175
+ interestFee;
176
+ principalFee;
177
+ originationFee;
178
+ originationCap;
179
+ externalYieldAmount;
180
+ currentDeployedAmount;
181
+ outstandingInterestAmount;
182
+ feeClaimable;
183
+ cumulativePrincipalOriginated;
184
+ cumulativeInterestAccrued;
185
+ cumulativeLoanCount;
186
+ activeLoanCount;
187
+ marketInformation;
188
+ collateralMap;
189
+ externalYieldAccounts;
190
+ supplyMonitor;
191
+ withdrawMonitor;
192
+ borrowMonitor;
193
+ static discriminator = Buffer.from([174, 110, 39, 119, 82, 106, 169, 102]);
194
+ static layout = borsh.struct([
195
+ borsh.u8("version"),
196
+ borsh.publicKey("nonce"),
197
+ borsh.u8("bump"),
198
+ borsh.publicKey("principalMint"),
199
+ borsh.publicKey("lender"),
200
+ borsh.u8("originationsEnabled"),
201
+ borsh.u8("externalYieldSource"),
202
+ borsh.array(borsh.u64(), 3, "interestPerSecond"),
203
+ borsh.u64("lastAccruedTimestamp"),
204
+ borsh.u64("liquidityBuffer"),
205
+ borsh.u64("tokenBalance"),
206
+ borsh.u64("interestFee"),
207
+ borsh.u64("principalFee"),
208
+ borsh.u64("originationFee"),
209
+ borsh.u64("originationCap"),
210
+ borsh.u64("externalYieldAmount"),
211
+ borsh.u64("currentDeployedAmount"),
212
+ borsh.u64("outstandingInterestAmount"),
213
+ borsh.u64("feeClaimable"),
214
+ borsh.u128("cumulativePrincipalOriginated"),
215
+ borsh.u128("cumulativeInterestAccrued"),
216
+ borsh.u64("cumulativeLoanCount"),
217
+ borsh.u64("activeLoanCount"),
218
+ borsh.publicKey("marketInformation"),
219
+ borsh.array(borsh.array(borsh.u64(), 5), 200, "collateralMap"),
220
+ types_1.ExternalYieldAccounts.layout("externalYieldAccounts"),
221
+ types_1.CapMonitor.layout("supplyMonitor"),
222
+ types_1.CapMonitor.layout("withdrawMonitor"),
223
+ types_1.CapMonitor.layout("borrowMonitor"),
224
+ ]);
225
+ constructor(fields) {
226
+ this.version = fields.version;
227
+ this.nonce = fields.nonce;
228
+ this.bump = fields.bump;
229
+ this.principalMint = fields.principalMint;
230
+ this.lender = fields.lender;
231
+ this.originationsEnabled = fields.originationsEnabled;
232
+ this.externalYieldSource = fields.externalYieldSource;
233
+ this.interestPerSecond = fields.interestPerSecond;
234
+ this.lastAccruedTimestamp = fields.lastAccruedTimestamp;
235
+ this.liquidityBuffer = fields.liquidityBuffer;
236
+ this.tokenBalance = fields.tokenBalance;
237
+ this.interestFee = fields.interestFee;
238
+ this.principalFee = fields.principalFee;
239
+ this.originationFee = fields.originationFee;
240
+ this.originationCap = fields.originationCap;
241
+ this.externalYieldAmount = fields.externalYieldAmount;
242
+ this.currentDeployedAmount = fields.currentDeployedAmount;
243
+ this.outstandingInterestAmount = fields.outstandingInterestAmount;
244
+ this.feeClaimable = fields.feeClaimable;
245
+ this.cumulativePrincipalOriginated = fields.cumulativePrincipalOriginated;
246
+ this.cumulativeInterestAccrued = fields.cumulativeInterestAccrued;
247
+ this.cumulativeLoanCount = fields.cumulativeLoanCount;
248
+ this.activeLoanCount = fields.activeLoanCount;
249
+ this.marketInformation = fields.marketInformation;
250
+ this.collateralMap = fields.collateralMap;
251
+ this.externalYieldAccounts = new types_1.ExternalYieldAccounts({ ...fields.externalYieldAccounts });
252
+ this.supplyMonitor = new types_1.CapMonitor({ ...fields.supplyMonitor });
253
+ this.withdrawMonitor = new types_1.CapMonitor({ ...fields.withdrawMonitor });
254
+ this.borrowMonitor = new types_1.CapMonitor({ ...fields.borrowMonitor });
255
+ }
256
+ static async fetch(c, address, programId = exports.PROGRAM_ID) {
257
+ const info = await c.getAccountInfo(address);
258
+ if (info === null) {
259
+ return null;
260
+ }
261
+ if (!info.owner.equals(programId)) {
262
+ throw new Error("account doesn't belong to this program");
263
+ }
264
+ return this.decode(info.data);
265
+ }
266
+ static async fetchMultiple(c, addresses, programId = exports.PROGRAM_ID) {
267
+ const infos = await c.getMultipleAccountsInfo(addresses);
268
+ return infos.map((info) => {
269
+ if (info === null) {
270
+ return null;
271
+ }
272
+ if (!info.owner.equals(programId)) {
273
+ throw new Error("account doesn't belong to this program");
274
+ }
275
+ return this.decode(info.data);
276
+ });
277
+ }
278
+ static decode(data) {
279
+ if (!data.slice(0, 8).equals(Strategy.discriminator)) {
280
+ throw new Error("invalid account discriminator");
281
+ }
282
+ const dec = Strategy.layout.decode(data.slice(8));
283
+ return new Strategy({
284
+ version: dec.version,
285
+ nonce: dec.nonce,
286
+ bump: dec.bump,
287
+ principalMint: dec.principalMint,
288
+ lender: dec.lender,
289
+ originationsEnabled: dec.originationsEnabled,
290
+ externalYieldSource: dec.externalYieldSource,
291
+ interestPerSecond: dec.interestPerSecond,
292
+ lastAccruedTimestamp: dec.lastAccruedTimestamp,
293
+ liquidityBuffer: dec.liquidityBuffer,
294
+ tokenBalance: dec.tokenBalance,
295
+ interestFee: dec.interestFee,
296
+ principalFee: dec.principalFee,
297
+ originationFee: dec.originationFee,
298
+ originationCap: dec.originationCap,
299
+ externalYieldAmount: dec.externalYieldAmount,
300
+ currentDeployedAmount: dec.currentDeployedAmount,
301
+ outstandingInterestAmount: dec.outstandingInterestAmount,
302
+ feeClaimable: dec.feeClaimable,
303
+ cumulativePrincipalOriginated: dec.cumulativePrincipalOriginated,
304
+ cumulativeInterestAccrued: dec.cumulativeInterestAccrued,
305
+ cumulativeLoanCount: dec.cumulativeLoanCount,
306
+ activeLoanCount: dec.activeLoanCount,
307
+ marketInformation: dec.marketInformation,
308
+ collateralMap: dec.collateralMap,
309
+ externalYieldAccounts: types_1.ExternalYieldAccounts.fromDecoded(dec.externalYieldAccounts),
310
+ supplyMonitor: types_1.CapMonitor.fromDecoded(dec.supplyMonitor),
311
+ withdrawMonitor: types_1.CapMonitor.fromDecoded(dec.withdrawMonitor),
312
+ borrowMonitor: types_1.CapMonitor.fromDecoded(dec.borrowMonitor),
313
+ });
314
+ }
315
+ toJSON() {
316
+ return {
317
+ version: this.version,
318
+ nonce: this.nonce.toString(),
319
+ bump: this.bump,
320
+ principalMint: this.principalMint.toString(),
321
+ lender: this.lender.toString(),
322
+ originationsEnabled: this.originationsEnabled,
323
+ externalYieldSource: this.externalYieldSource,
324
+ interestPerSecond: this.interestPerSecond.map((item) => item.toString()),
325
+ lastAccruedTimestamp: this.lastAccruedTimestamp.toString(),
326
+ liquidityBuffer: this.liquidityBuffer.toString(),
327
+ tokenBalance: this.tokenBalance.toString(),
328
+ interestFee: this.interestFee.toString(),
329
+ principalFee: this.principalFee.toString(),
330
+ originationFee: this.originationFee.toString(),
331
+ originationCap: this.originationCap.toString(),
332
+ externalYieldAmount: this.externalYieldAmount.toString(),
333
+ currentDeployedAmount: this.currentDeployedAmount.toString(),
334
+ outstandingInterestAmount: this.outstandingInterestAmount.toString(),
335
+ feeClaimable: this.feeClaimable.toString(),
336
+ cumulativePrincipalOriginated: this.cumulativePrincipalOriginated.toString(),
337
+ cumulativeInterestAccrued: this.cumulativeInterestAccrued.toString(),
338
+ cumulativeLoanCount: this.cumulativeLoanCount.toString(),
339
+ activeLoanCount: this.activeLoanCount.toString(),
340
+ marketInformation: this.marketInformation.toString(),
341
+ collateralMap: this.collateralMap.map((row) => row.map((item) => item.toString())),
342
+ externalYieldAccounts: this.externalYieldAccounts.toJSON(),
343
+ supplyMonitor: this.supplyMonitor.toJSON(),
344
+ withdrawMonitor: this.withdrawMonitor.toJSON(),
345
+ borrowMonitor: this.borrowMonitor.toJSON(),
346
+ };
347
+ }
348
+ static fromJSON(obj) {
349
+ return new Strategy({
350
+ version: obj.version,
351
+ nonce: new web3_js_1.PublicKey(obj.nonce),
352
+ bump: obj.bump,
353
+ principalMint: new web3_js_1.PublicKey(obj.principalMint),
354
+ lender: new web3_js_1.PublicKey(obj.lender),
355
+ originationsEnabled: obj.originationsEnabled,
356
+ externalYieldSource: obj.externalYieldSource,
357
+ interestPerSecond: obj.interestPerSecond.map((item) => new bn_js_1.default(item)),
358
+ lastAccruedTimestamp: new bn_js_1.default(obj.lastAccruedTimestamp),
359
+ liquidityBuffer: new bn_js_1.default(obj.liquidityBuffer),
360
+ tokenBalance: new bn_js_1.default(obj.tokenBalance),
361
+ interestFee: new bn_js_1.default(obj.interestFee),
362
+ principalFee: new bn_js_1.default(obj.principalFee),
363
+ originationFee: new bn_js_1.default(obj.originationFee),
364
+ originationCap: new bn_js_1.default(obj.originationCap),
365
+ externalYieldAmount: new bn_js_1.default(obj.externalYieldAmount),
366
+ currentDeployedAmount: new bn_js_1.default(obj.currentDeployedAmount),
367
+ outstandingInterestAmount: new bn_js_1.default(obj.outstandingInterestAmount),
368
+ feeClaimable: new bn_js_1.default(obj.feeClaimable),
369
+ cumulativePrincipalOriginated: new bn_js_1.default(obj.cumulativePrincipalOriginated),
370
+ cumulativeInterestAccrued: new bn_js_1.default(obj.cumulativeInterestAccrued),
371
+ cumulativeLoanCount: new bn_js_1.default(obj.cumulativeLoanCount),
372
+ activeLoanCount: new bn_js_1.default(obj.activeLoanCount),
373
+ marketInformation: new web3_js_1.PublicKey(obj.marketInformation),
374
+ collateralMap: obj.collateralMap.map((row) => row.map((item) => new bn_js_1.default(item))),
375
+ externalYieldAccounts: types_1.ExternalYieldAccounts.fromJSON(obj.externalYieldAccounts),
376
+ supplyMonitor: types_1.CapMonitor.fromJSON(obj.supplyMonitor),
377
+ withdrawMonitor: types_1.CapMonitor.fromJSON(obj.withdrawMonitor),
378
+ borrowMonitor: types_1.CapMonitor.fromJSON(obj.borrowMonitor),
379
+ });
380
+ }
381
+ }
382
+ exports.Strategy = Strategy;
383
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}