@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.
- package/build/index.d.ts +159 -0
- package/build/index.js +383 -0
- package/build/index.js.map +1 -0
- package/build/loopscale.json +6734 -0
- package/build/types/CapMonitor.d.ts +24 -0
- package/build/types/CapMonitor.js +78 -0
- package/build/types/CapMonitor.js.map +1 -0
- package/build/types/CollateralData.d.ts +25 -0
- package/build/types/CollateralData.js +74 -0
- package/build/types/CollateralData.js.map +1 -0
- package/build/types/Duration.d.ts +17 -0
- package/build/types/Duration.js +59 -0
- package/build/types/Duration.js.map +1 -0
- package/build/types/ExternalYieldAccounts.d.ts +18 -0
- package/build/types/ExternalYieldAccounts.js +60 -0
- package/build/types/ExternalYieldAccounts.js.map +1 -0
- package/build/types/Ledger.d.ts +54 -0
- package/build/types/Ledger.js +134 -0
- package/build/types/Ledger.js.map +1 -0
- package/build/types/index.d.ts +5 -0
- package/build/types/index.js +14 -0
- package/build/types/index.js.map +1 -0
- package/package.json +19 -0
- package/src/index.ts +504 -0
- package/src/loopscale.json +6734 -0
- package/src/types/CapMonitor.ts +70 -0
- package/src/types/CollateralData.ts +66 -0
- package/src/types/Duration.ts +48 -0
- package/src/types/ExternalYieldAccounts.ts +51 -0
- package/src/types/Ledger.ts +146 -0
- package/src/types/index.ts +5 -0
- package/tsconfig.json +18 -0
package/build/index.d.ts
ADDED
|
@@ -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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"}
|