@elemental-stv-core/sdk 0.1.1
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/common/buffer.d.ts +13 -0
- package/dist/common/buffer.d.ts.map +1 -0
- package/dist/common/buffer.js +84 -0
- package/dist/common/buffer.js.map +1 -0
- package/dist/common/constants.d.ts +9 -0
- package/dist/common/constants.d.ts.map +1 -0
- package/dist/common/constants.js +12 -0
- package/dist/common/constants.js.map +1 -0
- package/dist/common/index.d.ts +5 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +23 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/strategy-interface.d.ts +29 -0
- package/dist/common/strategy-interface.d.ts.map +1 -0
- package/dist/common/strategy-interface.js +40 -0
- package/dist/common/strategy-interface.js.map +1 -0
- package/dist/elemental-lend/accounts.d.ts +22 -0
- package/dist/elemental-lend/accounts.d.ts.map +1 -0
- package/dist/elemental-lend/accounts.js +162 -0
- package/dist/elemental-lend/accounts.js.map +1 -0
- package/dist/elemental-lend/constants.d.ts +23 -0
- package/dist/elemental-lend/constants.d.ts.map +1 -0
- package/dist/elemental-lend/constants.js +34 -0
- package/dist/elemental-lend/constants.js.map +1 -0
- package/dist/elemental-lend/index.d.ts +7 -0
- package/dist/elemental-lend/index.d.ts.map +1 -0
- package/dist/elemental-lend/index.js +23 -0
- package/dist/elemental-lend/index.js.map +1 -0
- package/dist/elemental-lend/instructions.d.ts +55 -0
- package/dist/elemental-lend/instructions.d.ts.map +1 -0
- package/dist/elemental-lend/instructions.js +146 -0
- package/dist/elemental-lend/instructions.js.map +1 -0
- package/dist/elemental-lend/jupiter-lend.d.ts +56 -0
- package/dist/elemental-lend/jupiter-lend.d.ts.map +1 -0
- package/dist/elemental-lend/jupiter-lend.js +95 -0
- package/dist/elemental-lend/jupiter-lend.js.map +1 -0
- package/dist/elemental-lend/pda.d.ts +4 -0
- package/dist/elemental-lend/pda.d.ts.map +1 -0
- package/dist/elemental-lend/pda.js +13 -0
- package/dist/elemental-lend/pda.js.map +1 -0
- package/dist/elemental-lend/types.d.ts +97 -0
- package/dist/elemental-lend/types.d.ts.map +1 -0
- package/dist/elemental-lend/types.js +3 -0
- package/dist/elemental-lend/types.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/jlp-strategy/accounts.d.ts +11 -0
- package/dist/jlp-strategy/accounts.d.ts.map +1 -0
- package/dist/jlp-strategy/accounts.js +118 -0
- package/dist/jlp-strategy/accounts.js.map +1 -0
- package/dist/jlp-strategy/constants.d.ts +36 -0
- package/dist/jlp-strategy/constants.d.ts.map +1 -0
- package/dist/jlp-strategy/constants.js +47 -0
- package/dist/jlp-strategy/constants.js.map +1 -0
- package/dist/jlp-strategy/index.d.ts +5 -0
- package/dist/jlp-strategy/index.d.ts.map +1 -0
- package/dist/jlp-strategy/index.js +21 -0
- package/dist/jlp-strategy/index.js.map +1 -0
- package/dist/jlp-strategy/pda.d.ts +5 -0
- package/dist/jlp-strategy/pda.d.ts.map +1 -0
- package/dist/jlp-strategy/pda.js +17 -0
- package/dist/jlp-strategy/pda.js.map +1 -0
- package/dist/jlp-strategy/types.d.ts +25 -0
- package/dist/jlp-strategy/types.d.ts.map +1 -0
- package/dist/jlp-strategy/types.js +3 -0
- package/dist/jlp-strategy/types.js.map +1 -0
- package/dist/p-stv-core/accounts.d.ts +14 -0
- package/dist/p-stv-core/accounts.d.ts.map +1 -0
- package/dist/p-stv-core/accounts.js +154 -0
- package/dist/p-stv-core/accounts.js.map +1 -0
- package/dist/p-stv-core/constants.d.ts +43 -0
- package/dist/p-stv-core/constants.d.ts.map +1 -0
- package/dist/p-stv-core/constants.js +79 -0
- package/dist/p-stv-core/constants.js.map +1 -0
- package/dist/p-stv-core/events.d.ts +8 -0
- package/dist/p-stv-core/events.d.ts.map +1 -0
- package/dist/p-stv-core/events.js +115 -0
- package/dist/p-stv-core/events.js.map +1 -0
- package/dist/p-stv-core/index.d.ts +7 -0
- package/dist/p-stv-core/index.d.ts.map +1 -0
- package/dist/p-stv-core/index.js +23 -0
- package/dist/p-stv-core/index.js.map +1 -0
- package/dist/p-stv-core/instructions.d.ts +132 -0
- package/dist/p-stv-core/instructions.d.ts.map +1 -0
- package/dist/p-stv-core/instructions.js +206 -0
- package/dist/p-stv-core/instructions.js.map +1 -0
- package/dist/p-stv-core/pda.d.ts +7 -0
- package/dist/p-stv-core/pda.d.ts.map +1 -0
- package/dist/p-stv-core/pda.js +29 -0
- package/dist/p-stv-core/pda.js.map +1 -0
- package/dist/p-stv-core/types.d.ts +149 -0
- package/dist/p-stv-core/types.d.ts.map +1 -0
- package/dist/p-stv-core/types.js +3 -0
- package/dist/p-stv-core/types.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
import BN from "bn.js";
|
|
3
|
+
export declare function readPubkey(data: Buffer, offset: number): PublicKey;
|
|
4
|
+
export declare function readU64(data: Buffer, offset: number): BN;
|
|
5
|
+
export declare function readU32(data: Buffer, offset: number): number;
|
|
6
|
+
export declare function readU16(data: Buffer, offset: number): number;
|
|
7
|
+
export declare function readU8(data: Buffer, offset: number): number;
|
|
8
|
+
export declare function writeU64(parts: number[], value: BN | number): void;
|
|
9
|
+
export declare function writeOptionalPubkey(parts: number[], value: PublicKey | undefined | null): void;
|
|
10
|
+
export declare function writeOptionalU64(parts: number[], value: BN | number | undefined | null): void;
|
|
11
|
+
export declare function writeOptionalU32(parts: number[], value: number | undefined | null): void;
|
|
12
|
+
export declare function writeOptionalU16(parts: number[], value: number | undefined | null): void;
|
|
13
|
+
//# sourceMappingURL=buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/common/buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AAMvB,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAElE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,EAAE,CAExD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAMD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI,CAGlE;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,GAClC,IAAI,CAON;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,EAAE,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GACpC,IAAI,CAQN;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAC/B,IAAI,CASN;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAC/B,IAAI,CASN"}
|
|
@@ -0,0 +1,84 @@
|
|
|
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.readPubkey = readPubkey;
|
|
7
|
+
exports.readU64 = readU64;
|
|
8
|
+
exports.readU32 = readU32;
|
|
9
|
+
exports.readU16 = readU16;
|
|
10
|
+
exports.readU8 = readU8;
|
|
11
|
+
exports.writeU64 = writeU64;
|
|
12
|
+
exports.writeOptionalPubkey = writeOptionalPubkey;
|
|
13
|
+
exports.writeOptionalU64 = writeOptionalU64;
|
|
14
|
+
exports.writeOptionalU32 = writeOptionalU32;
|
|
15
|
+
exports.writeOptionalU16 = writeOptionalU16;
|
|
16
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
17
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
// Read Helpers (account deserialization)
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
function readPubkey(data, offset) {
|
|
22
|
+
return new web3_js_1.PublicKey(data.subarray(offset, offset + 32));
|
|
23
|
+
}
|
|
24
|
+
function readU64(data, offset) {
|
|
25
|
+
return new bn_js_1.default(data.subarray(offset, offset + 8), "le");
|
|
26
|
+
}
|
|
27
|
+
function readU32(data, offset) {
|
|
28
|
+
return data.readUInt32LE(offset);
|
|
29
|
+
}
|
|
30
|
+
function readU16(data, offset) {
|
|
31
|
+
return data.readUInt16LE(offset);
|
|
32
|
+
}
|
|
33
|
+
function readU8(data, offset) {
|
|
34
|
+
return data[offset];
|
|
35
|
+
}
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Write Helpers (instruction serialization)
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
function writeU64(parts, value) {
|
|
40
|
+
const bn = new bn_js_1.default(value);
|
|
41
|
+
parts.push(...bn.toArrayLike(Buffer, "le", 8));
|
|
42
|
+
}
|
|
43
|
+
function writeOptionalPubkey(parts, value) {
|
|
44
|
+
if (value != null) {
|
|
45
|
+
parts.push(0x01);
|
|
46
|
+
parts.push(...value.toBuffer());
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
parts.push(0x00);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function writeOptionalU64(parts, value) {
|
|
53
|
+
if (value != null) {
|
|
54
|
+
parts.push(0x01);
|
|
55
|
+
const bn = new bn_js_1.default(value);
|
|
56
|
+
parts.push(...bn.toArrayLike(Buffer, "le", 8));
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
parts.push(0x00);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function writeOptionalU32(parts, value) {
|
|
63
|
+
if (value != null) {
|
|
64
|
+
parts.push(0x01);
|
|
65
|
+
const buf = Buffer.alloc(4);
|
|
66
|
+
buf.writeUInt32LE(value, 0);
|
|
67
|
+
parts.push(...buf);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
parts.push(0x00);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function writeOptionalU16(parts, value) {
|
|
74
|
+
if (value != null) {
|
|
75
|
+
parts.push(0x01);
|
|
76
|
+
const buf = Buffer.alloc(2);
|
|
77
|
+
buf.writeUInt16LE(value, 0);
|
|
78
|
+
parts.push(...buf);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
parts.push(0x00);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/common/buffer.ts"],"names":[],"mappings":";;;;;AAOA,gCAEC;AAED,0BAEC;AAED,0BAEC;AAED,0BAEC;AAED,wBAEC;AAMD,4BAGC;AAED,kDAUC;AAED,4CAWC;AAED,4CAYC;AAED,4CAYC;AAvFD,6CAA4C;AAC5C,kDAAuB;AAEvB,8EAA8E;AAC9E,yCAAyC;AACzC,8EAA8E;AAE9E,SAAgB,UAAU,CAAC,IAAY,EAAE,MAAc;IACrD,OAAO,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY,EAAE,MAAc;IAClD,OAAO,IAAI,eAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY,EAAE,MAAc;IAClD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY,EAAE,MAAc;IAClD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,MAAM,CAAC,IAAY,EAAE,MAAc;IACjD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E,SAAgB,QAAQ,CAAC,KAAe,EAAE,KAAkB;IAC1D,MAAM,EAAE,GAAG,IAAI,eAAE,CAAC,KAAK,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,mBAAmB,CACjC,KAAe,EACf,KAAmC;IAEnC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAC9B,KAAe,EACf,KAAqC;IAErC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,IAAI,eAAE,CAAC,KAAK,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAC9B,KAAe,EACf,KAAgC;IAEhC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAC9B,KAAe,EACf,KAAgC;IAEhC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Price per share scale factor (10^9) */
|
|
2
|
+
export declare const PPS_DECIMALS = 1000000000;
|
|
3
|
+
/** Basis points denominator */
|
|
4
|
+
export declare const BPS_DENOMINATOR = 10000;
|
|
5
|
+
/** Seconds in a year (365 days) */
|
|
6
|
+
export declare const SECONDS_PER_YEAR = 31536000;
|
|
7
|
+
/** Default staleness threshold in seconds */
|
|
8
|
+
export declare const STALENESS_THRESHOLD = 120;
|
|
9
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,eAAO,MAAM,YAAY,aAAgB,CAAC;AAE1C,+BAA+B;AAC/B,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC,mCAAmC;AACnC,eAAO,MAAM,gBAAgB,WAAa,CAAC;AAE3C,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,MAAM,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.STALENESS_THRESHOLD = exports.SECONDS_PER_YEAR = exports.BPS_DENOMINATOR = exports.PPS_DECIMALS = void 0;
|
|
4
|
+
/** Price per share scale factor (10^9) */
|
|
5
|
+
exports.PPS_DECIMALS = 1000000000;
|
|
6
|
+
/** Basis points denominator */
|
|
7
|
+
exports.BPS_DENOMINATOR = 10000;
|
|
8
|
+
/** Seconds in a year (365 days) */
|
|
9
|
+
exports.SECONDS_PER_YEAR = 31536000;
|
|
10
|
+
/** Default staleness threshold in seconds */
|
|
11
|
+
exports.STALENESS_THRESHOLD = 120;
|
|
12
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAC7B,QAAA,YAAY,GAAG,UAAa,CAAC;AAE1C,+BAA+B;AAClB,QAAA,eAAe,GAAG,KAAM,CAAC;AAEtC,mCAAmC;AACtB,QAAA,gBAAgB,GAAG,QAAU,CAAC;AAE3C,6CAA6C;AAChC,QAAA,mBAAmB,GAAG,GAAG,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { readPubkey, readU64, readU32, readU16, readU8, writeU64, writeOptionalPubkey, writeOptionalU64, writeOptionalU32, writeOptionalU16, } from "./buffer";
|
|
2
|
+
export { PPS_DECIMALS, BPS_DENOMINATOR, SECONDS_PER_YEAR, STALENESS_THRESHOLD, } from "./constants";
|
|
3
|
+
export type { StrategyStateHeader, StvPosition, } from "./strategy-interface";
|
|
4
|
+
export { deserializeStrategyStateHeader, deserializeStvPosition, } from "./strategy-interface";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,OAAO,EACP,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,mBAAmB,EACnB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deserializeStvPosition = exports.deserializeStrategyStateHeader = exports.STALENESS_THRESHOLD = exports.SECONDS_PER_YEAR = exports.BPS_DENOMINATOR = exports.PPS_DECIMALS = exports.writeOptionalU16 = exports.writeOptionalU32 = exports.writeOptionalU64 = exports.writeOptionalPubkey = exports.writeU64 = exports.readU8 = exports.readU16 = exports.readU32 = exports.readU64 = exports.readPubkey = void 0;
|
|
4
|
+
var buffer_1 = require("./buffer");
|
|
5
|
+
Object.defineProperty(exports, "readPubkey", { enumerable: true, get: function () { return buffer_1.readPubkey; } });
|
|
6
|
+
Object.defineProperty(exports, "readU64", { enumerable: true, get: function () { return buffer_1.readU64; } });
|
|
7
|
+
Object.defineProperty(exports, "readU32", { enumerable: true, get: function () { return buffer_1.readU32; } });
|
|
8
|
+
Object.defineProperty(exports, "readU16", { enumerable: true, get: function () { return buffer_1.readU16; } });
|
|
9
|
+
Object.defineProperty(exports, "readU8", { enumerable: true, get: function () { return buffer_1.readU8; } });
|
|
10
|
+
Object.defineProperty(exports, "writeU64", { enumerable: true, get: function () { return buffer_1.writeU64; } });
|
|
11
|
+
Object.defineProperty(exports, "writeOptionalPubkey", { enumerable: true, get: function () { return buffer_1.writeOptionalPubkey; } });
|
|
12
|
+
Object.defineProperty(exports, "writeOptionalU64", { enumerable: true, get: function () { return buffer_1.writeOptionalU64; } });
|
|
13
|
+
Object.defineProperty(exports, "writeOptionalU32", { enumerable: true, get: function () { return buffer_1.writeOptionalU32; } });
|
|
14
|
+
Object.defineProperty(exports, "writeOptionalU16", { enumerable: true, get: function () { return buffer_1.writeOptionalU16; } });
|
|
15
|
+
var constants_1 = require("./constants");
|
|
16
|
+
Object.defineProperty(exports, "PPS_DECIMALS", { enumerable: true, get: function () { return constants_1.PPS_DECIMALS; } });
|
|
17
|
+
Object.defineProperty(exports, "BPS_DENOMINATOR", { enumerable: true, get: function () { return constants_1.BPS_DENOMINATOR; } });
|
|
18
|
+
Object.defineProperty(exports, "SECONDS_PER_YEAR", { enumerable: true, get: function () { return constants_1.SECONDS_PER_YEAR; } });
|
|
19
|
+
Object.defineProperty(exports, "STALENESS_THRESHOLD", { enumerable: true, get: function () { return constants_1.STALENESS_THRESHOLD; } });
|
|
20
|
+
var strategy_interface_1 = require("./strategy-interface");
|
|
21
|
+
Object.defineProperty(exports, "deserializeStrategyStateHeader", { enumerable: true, get: function () { return strategy_interface_1.deserializeStrategyStateHeader; } });
|
|
22
|
+
Object.defineProperty(exports, "deserializeStvPosition", { enumerable: true, get: function () { return strategy_interface_1.deserializeStvPosition; } });
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,mCAWkB;AAVhB,oGAAA,UAAU,OAAA;AACV,iGAAA,OAAO,OAAA;AACP,iGAAA,OAAO,OAAA;AACP,iGAAA,OAAO,OAAA;AACP,gGAAA,MAAM,OAAA;AACN,kGAAA,QAAQ,OAAA;AACR,6GAAA,mBAAmB,OAAA;AACnB,0GAAA,gBAAgB,OAAA;AAChB,0GAAA,gBAAgB,OAAA;AAChB,0GAAA,gBAAgB,OAAA;AAGlB,yCAKqB;AAJnB,yGAAA,YAAY,OAAA;AACZ,4GAAA,eAAe,OAAA;AACf,6GAAA,gBAAgB,OAAA;AAChB,gHAAA,mBAAmB,OAAA;AAOrB,2DAG8B;AAF5B,oIAAA,8BAA8B,OAAA;AAC9B,4HAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
import BN from "bn.js";
|
|
3
|
+
export interface StrategyStateHeader {
|
|
4
|
+
baseMint: PublicKey;
|
|
5
|
+
authority: PublicKey;
|
|
6
|
+
pps: BN;
|
|
7
|
+
totalAum: BN;
|
|
8
|
+
totalShares: BN;
|
|
9
|
+
lastUpdated: BN;
|
|
10
|
+
flags: number;
|
|
11
|
+
version: number;
|
|
12
|
+
bump: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Deserialize the standard 104-byte StrategyState header from any strategy account.
|
|
16
|
+
* Data must include the 8-byte discriminator prefix.
|
|
17
|
+
*/
|
|
18
|
+
export declare function deserializeStrategyStateHeader(data: Buffer): StrategyStateHeader;
|
|
19
|
+
export interface StvPosition {
|
|
20
|
+
stv: PublicKey;
|
|
21
|
+
shares: BN;
|
|
22
|
+
bump: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Deserialize the standard StvPosition from any strategy account.
|
|
26
|
+
* Data must include the 8-byte discriminator prefix.
|
|
27
|
+
*/
|
|
28
|
+
export declare function deserializeStvPosition(data: Buffer): StvPosition;
|
|
29
|
+
//# sourceMappingURL=strategy-interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategy-interface.d.ts","sourceRoot":"","sources":["../../src/common/strategy-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AAQvB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,EAAE,EAAE,CAAC;IACR,QAAQ,EAAE,EAAE,CAAC;IACb,WAAW,EAAE,EAAE,CAAC;IAChB,WAAW,EAAE,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAehF;AAOD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,EAAE,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAShE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deserializeStrategyStateHeader = deserializeStrategyStateHeader;
|
|
4
|
+
exports.deserializeStvPosition = deserializeStvPosition;
|
|
5
|
+
const buffer_1 = require("./buffer");
|
|
6
|
+
/**
|
|
7
|
+
* Deserialize the standard 104-byte StrategyState header from any strategy account.
|
|
8
|
+
* Data must include the 8-byte discriminator prefix.
|
|
9
|
+
*/
|
|
10
|
+
function deserializeStrategyStateHeader(data) {
|
|
11
|
+
if (data.length < 112) {
|
|
12
|
+
throw new Error(`StrategyState header data too short: ${data.length} < 112`);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
baseMint: (0, buffer_1.readPubkey)(data, 8),
|
|
16
|
+
authority: (0, buffer_1.readPubkey)(data, 40),
|
|
17
|
+
pps: (0, buffer_1.readU64)(data, 72),
|
|
18
|
+
totalAum: (0, buffer_1.readU64)(data, 80),
|
|
19
|
+
totalShares: (0, buffer_1.readU64)(data, 88),
|
|
20
|
+
lastUpdated: (0, buffer_1.readU64)(data, 96),
|
|
21
|
+
flags: (0, buffer_1.readU16)(data, 104),
|
|
22
|
+
version: (0, buffer_1.readU8)(data, 106),
|
|
23
|
+
bump: (0, buffer_1.readU8)(data, 107),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Deserialize the standard StvPosition from any strategy account.
|
|
28
|
+
* Data must include the 8-byte discriminator prefix.
|
|
29
|
+
*/
|
|
30
|
+
function deserializeStvPosition(data) {
|
|
31
|
+
if (data.length < 56) {
|
|
32
|
+
throw new Error(`StvPosition data too short: ${data.length} < 56`);
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
stv: (0, buffer_1.readPubkey)(data, 8),
|
|
36
|
+
shares: (0, buffer_1.readU64)(data, 40),
|
|
37
|
+
bump: (0, buffer_1.readU8)(data, 48),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=strategy-interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategy-interface.js","sourceRoot":"","sources":["../../src/common/strategy-interface.ts"],"names":[],"mappings":";;AAyBA,wEAeC;AAiBD,wDASC;AAhED,qCAAgE;AAmBhE;;;GAGG;AACH,SAAgB,8BAA8B,CAAC,IAAY;IACzD,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,IAAA,mBAAU,EAAC,IAAI,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,IAAA,mBAAU,EAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,GAAG,EAAE,IAAA,gBAAO,EAAC,IAAI,EAAE,EAAE,CAAC;QACtB,QAAQ,EAAE,IAAA,gBAAO,EAAC,IAAI,EAAE,EAAE,CAAC;QAC3B,WAAW,EAAE,IAAA,gBAAO,EAAC,IAAI,EAAE,EAAE,CAAC;QAC9B,WAAW,EAAE,IAAA,gBAAO,EAAC,IAAI,EAAE,EAAE,CAAC;QAC9B,KAAK,EAAE,IAAA,gBAAO,EAAC,IAAI,EAAE,GAAG,CAAC;QACzB,OAAO,EAAE,IAAA,eAAM,EAAC,IAAI,EAAE,GAAG,CAAC;QAC1B,IAAI,EAAE,IAAA,eAAM,EAAC,IAAI,EAAE,GAAG,CAAC;KACxB,CAAC;AACJ,CAAC;AAaD;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,IAAY;IACjD,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC;IACrE,CAAC;IACD,OAAO;QACL,GAAG,EAAE,IAAA,mBAAU,EAAC,IAAI,EAAE,CAAC,CAAC;QACxB,MAAM,EAAE,IAAA,gBAAO,EAAC,IAAI,EAAE,EAAE,CAAC;QACzB,IAAI,EAAE,IAAA,eAAM,EAAC,IAAI,EAAE,EAAE,CAAC;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AccountMeta, Connection, PublicKey } from "@solana/web3.js";
|
|
2
|
+
import type { StvPosition } from "../common/strategy-interface";
|
|
3
|
+
import { LendStrategyState } from "./types";
|
|
4
|
+
export declare function deserializeLendStrategyState(data: Buffer): LendStrategyState;
|
|
5
|
+
export declare function deserializeLendStvPosition(data: Buffer): StvPosition;
|
|
6
|
+
export declare function fetchLendStrategyState(connection: Connection, baseMint: PublicKey, programId?: PublicKey): Promise<LendStrategyState>;
|
|
7
|
+
export declare function fetchLendStrategyStateByAddress(connection: Connection, address: PublicKey): Promise<LendStrategyState>;
|
|
8
|
+
export declare function fetchLendStvPosition(connection: Connection, stv: PublicKey, programId?: PublicKey): Promise<StvPosition>;
|
|
9
|
+
export declare function fetchAllLendStrategyStates(connection: Connection, programId?: PublicKey): Promise<[PublicKey, LendStrategyState][]>;
|
|
10
|
+
/**
|
|
11
|
+
* Build remaining_accounts for the update_aum CPI on elemental-lend.
|
|
12
|
+
* For each registered protocol, returns the accounts needed for AUM valuation:
|
|
13
|
+
* - kVault (KvauG...): [kvtoken_ata, vault_state] (2 accounts)
|
|
14
|
+
* - Jupiter Lend (jup3Y...): [ftoken_ata, lending_account, rewards_rate_model] (3 accounts)
|
|
15
|
+
*
|
|
16
|
+
* @param connection - Solana connection
|
|
17
|
+
* @param strategy - Deserialized LendStrategyState (with protocols list)
|
|
18
|
+
* @param strategyStatePda - The strategy state PDA (owns the token ATAs)
|
|
19
|
+
* @param tokenProgramId - Token program (SPL Token or Token-2022)
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildProtocolAccountsForAum(connection: Connection, strategy: LendStrategyState, strategyStatePda: PublicKey, tokenProgramId: PublicKey): Promise<AccountMeta[]>;
|
|
22
|
+
//# sourceMappingURL=accounts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/elemental-lend/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAUhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAO5C,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CA+B5E;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CASpE;AAMD,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAK5B;AAED,wBAAsB,+BAA+B,CACnD,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAI5B;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,WAAW,CAAC,CAKtB;AAMD,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAQ3C;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,iBAAiB,EAC3B,gBAAgB,EAAE,SAAS,EAC3B,cAAc,EAAE,SAAS,GACxB,OAAO,CAAC,WAAW,EAAE,CAAC,CAoExB"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deserializeLendStrategyState = deserializeLendStrategyState;
|
|
4
|
+
exports.deserializeLendStvPosition = deserializeLendStvPosition;
|
|
5
|
+
exports.fetchLendStrategyState = fetchLendStrategyState;
|
|
6
|
+
exports.fetchLendStrategyStateByAddress = fetchLendStrategyStateByAddress;
|
|
7
|
+
exports.fetchLendStvPosition = fetchLendStvPosition;
|
|
8
|
+
exports.fetchAllLendStrategyStates = fetchAllLendStrategyStates;
|
|
9
|
+
exports.buildProtocolAccountsForAum = buildProtocolAccountsForAum;
|
|
10
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
11
|
+
const buffer_1 = require("../common/buffer");
|
|
12
|
+
const strategy_interface_1 = require("../common/strategy-interface");
|
|
13
|
+
const constants_1 = require("./constants");
|
|
14
|
+
const pda_1 = require("./pda");
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
// Deserialization
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
function deserializeLendStrategyState(data) {
|
|
19
|
+
if (data.length < constants_1.STRATEGY_STATE_SIZE) {
|
|
20
|
+
throw new Error(`LendStrategyState data too short: ${data.length} < ${constants_1.STRATEGY_STATE_SIZE}`);
|
|
21
|
+
}
|
|
22
|
+
const disc = data.subarray(0, 8);
|
|
23
|
+
if (!disc.equals(constants_1.DISC_STRATEGY_STATE)) {
|
|
24
|
+
throw new Error(`Invalid LendStrategyState discriminator`);
|
|
25
|
+
}
|
|
26
|
+
const protocolCount = (0, buffer_1.readU8)(data, 464);
|
|
27
|
+
const protocols = [];
|
|
28
|
+
for (let i = 0; i < protocolCount; i++) {
|
|
29
|
+
protocols.push((0, buffer_1.readPubkey)(data, 144 + i * 32));
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
// Header
|
|
33
|
+
baseMint: (0, buffer_1.readPubkey)(data, 8),
|
|
34
|
+
authority: (0, buffer_1.readPubkey)(data, 40),
|
|
35
|
+
pps: (0, buffer_1.readU64)(data, 72),
|
|
36
|
+
totalAum: (0, buffer_1.readU64)(data, 80),
|
|
37
|
+
totalShares: (0, buffer_1.readU64)(data, 88),
|
|
38
|
+
lastUpdated: (0, buffer_1.readU64)(data, 96),
|
|
39
|
+
flags: (0, buffer_1.readU16)(data, 104),
|
|
40
|
+
version: (0, buffer_1.readU8)(data, 106),
|
|
41
|
+
bump: (0, buffer_1.readU8)(data, 107),
|
|
42
|
+
// Custom
|
|
43
|
+
admin: (0, buffer_1.readPubkey)(data, 112),
|
|
44
|
+
protocols,
|
|
45
|
+
protocolCount,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function deserializeLendStvPosition(data) {
|
|
49
|
+
if (data.length < constants_1.STV_POSITION_SIZE) {
|
|
50
|
+
throw new Error(`StvPosition data too short: ${data.length} < ${constants_1.STV_POSITION_SIZE}`);
|
|
51
|
+
}
|
|
52
|
+
const disc = data.subarray(0, 8);
|
|
53
|
+
if (!disc.equals(constants_1.DISC_STV_POSITION)) {
|
|
54
|
+
throw new Error(`Invalid StvPosition discriminator`);
|
|
55
|
+
}
|
|
56
|
+
return (0, strategy_interface_1.deserializeStvPosition)(data);
|
|
57
|
+
}
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
// Fetch Helpers
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
async function fetchLendStrategyState(connection, baseMint, programId = constants_1.PROGRAM_ID) {
|
|
62
|
+
const [pda] = (0, pda_1.findStrategyStatePda)(baseMint, programId);
|
|
63
|
+
const info = await connection.getAccountInfo(pda);
|
|
64
|
+
if (!info)
|
|
65
|
+
throw new Error(`LendStrategyState not found for mint ${baseMint.toBase58()}`);
|
|
66
|
+
return deserializeLendStrategyState(info.data);
|
|
67
|
+
}
|
|
68
|
+
async function fetchLendStrategyStateByAddress(connection, address) {
|
|
69
|
+
const info = await connection.getAccountInfo(address);
|
|
70
|
+
if (!info)
|
|
71
|
+
throw new Error(`LendStrategyState not found at ${address.toBase58()}`);
|
|
72
|
+
return deserializeLendStrategyState(info.data);
|
|
73
|
+
}
|
|
74
|
+
async function fetchLendStvPosition(connection, stv, programId = constants_1.PROGRAM_ID) {
|
|
75
|
+
const [pda] = (0, pda_1.findStvPositionPda)(stv, programId);
|
|
76
|
+
const info = await connection.getAccountInfo(pda);
|
|
77
|
+
if (!info)
|
|
78
|
+
throw new Error(`StvPosition not found for stv ${stv.toBase58()}`);
|
|
79
|
+
return deserializeLendStvPosition(info.data);
|
|
80
|
+
}
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// GPA Helpers
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
async function fetchAllLendStrategyStates(connection, programId = constants_1.PROGRAM_ID) {
|
|
85
|
+
const accounts = await connection.getProgramAccounts(programId, {
|
|
86
|
+
filters: [
|
|
87
|
+
{ dataSize: constants_1.STRATEGY_STATE_SIZE },
|
|
88
|
+
{ memcmp: { offset: 0, bytes: constants_1.DISC_STRATEGY_STATE.toString("base64"), encoding: "base64" } },
|
|
89
|
+
],
|
|
90
|
+
});
|
|
91
|
+
return accounts.map((a) => [a.pubkey, deserializeLendStrategyState(a.account.data)]);
|
|
92
|
+
}
|
|
93
|
+
// ---------------------------------------------------------------------------
|
|
94
|
+
// Protocol Account Builders
|
|
95
|
+
// ---------------------------------------------------------------------------
|
|
96
|
+
/**
|
|
97
|
+
* Build remaining_accounts for the update_aum CPI on elemental-lend.
|
|
98
|
+
* For each registered protocol, returns the accounts needed for AUM valuation:
|
|
99
|
+
* - kVault (KvauG...): [kvtoken_ata, vault_state] (2 accounts)
|
|
100
|
+
* - Jupiter Lend (jup3Y...): [ftoken_ata, lending_account, rewards_rate_model] (3 accounts)
|
|
101
|
+
*
|
|
102
|
+
* @param connection - Solana connection
|
|
103
|
+
* @param strategy - Deserialized LendStrategyState (with protocols list)
|
|
104
|
+
* @param strategyStatePda - The strategy state PDA (owns the token ATAs)
|
|
105
|
+
* @param tokenProgramId - Token program (SPL Token or Token-2022)
|
|
106
|
+
*/
|
|
107
|
+
async function buildProtocolAccountsForAum(connection, strategy, strategyStatePda, tokenProgramId) {
|
|
108
|
+
const accounts = [];
|
|
109
|
+
if (strategy.protocolCount === 0)
|
|
110
|
+
return accounts;
|
|
111
|
+
// Fetch protocol infos and token accounts in parallel
|
|
112
|
+
const [protocolInfos, tokenAccounts] = await Promise.all([
|
|
113
|
+
connection.getMultipleAccountsInfo(strategy.protocols),
|
|
114
|
+
connection.getTokenAccountsByOwner(strategyStatePda, { programId: tokenProgramId }),
|
|
115
|
+
]);
|
|
116
|
+
for (let i = 0; i < strategy.protocolCount; i++) {
|
|
117
|
+
const protocolKey = strategy.protocols[i];
|
|
118
|
+
const protocolInfo = protocolInfos[i];
|
|
119
|
+
if (!protocolInfo)
|
|
120
|
+
continue;
|
|
121
|
+
if (protocolInfo.owner.equals(constants_1.KAMINO_VAULT_PROGRAM)) {
|
|
122
|
+
// kVault: [kvtoken_ata, vault_state]
|
|
123
|
+
// Derive the shares_mint PDA from vault_state: ["shares", vault_state]
|
|
124
|
+
const [sharesMint] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("shares"), protocolKey.toBuffer()], constants_1.KAMINO_VAULT_PROGRAM);
|
|
125
|
+
// Find the kvToken ATA (matching shares_mint)
|
|
126
|
+
let kvTokenAta = null;
|
|
127
|
+
for (const ta of tokenAccounts.value) {
|
|
128
|
+
const mintKey = new web3_js_1.PublicKey(ta.account.data.subarray(0, 32));
|
|
129
|
+
if (mintKey.equals(sharesMint)) {
|
|
130
|
+
kvTokenAta = ta.pubkey;
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (kvTokenAta) {
|
|
135
|
+
accounts.push({ pubkey: kvTokenAta, isSigner: false, isWritable: false }, { pubkey: protocolKey, isSigner: false, isWritable: false });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if (protocolInfo.owner.equals(constants_1.JUP_LEND_PROGRAM)) {
|
|
139
|
+
// Jupiter Lend: [ftoken_ata, lending_account, rewards_rate_model]
|
|
140
|
+
// Read fToken mint (offset 40) and rewards_rate_model (offset 75) from lending account data
|
|
141
|
+
const lendingData = protocolInfo.data;
|
|
142
|
+
if (lendingData.length >= 107) {
|
|
143
|
+
const fTokenMint = new web3_js_1.PublicKey(lendingData.subarray(40, 72));
|
|
144
|
+
const rewardsRateModel = new web3_js_1.PublicKey(lendingData.subarray(75, 107));
|
|
145
|
+
// Find the fToken ATA owned by strategyStatePda
|
|
146
|
+
let fTokenAta = null;
|
|
147
|
+
for (const ta of tokenAccounts.value) {
|
|
148
|
+
const mintKey = new web3_js_1.PublicKey(ta.account.data.subarray(0, 32));
|
|
149
|
+
if (mintKey.equals(fTokenMint)) {
|
|
150
|
+
fTokenAta = ta.pubkey;
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (fTokenAta) {
|
|
155
|
+
accounts.push({ pubkey: fTokenAta, isSigner: false, isWritable: false }, { pubkey: protocolKey, isSigner: false, isWritable: false }, { pubkey: rewardsRateModel, isSigner: false, isWritable: false });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return accounts;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/elemental-lend/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
export declare const PROGRAM_ID: PublicKey;
|
|
3
|
+
export declare const STRATEGY_STATE_SEED: Buffer<ArrayBuffer>;
|
|
4
|
+
export declare const POSITION_SEED: Buffer<ArrayBuffer>;
|
|
5
|
+
export declare const DISC_STRATEGY_STATE: Buffer<ArrayBuffer>;
|
|
6
|
+
export declare const DISC_STV_POSITION: Buffer<ArrayBuffer>;
|
|
7
|
+
export declare const IX_INIT_OR_UPDATE_STRATEGY: Buffer<ArrayBuffer>;
|
|
8
|
+
export declare const IX_INIT_POSITION: Buffer<ArrayBuffer>;
|
|
9
|
+
export declare const IX_DEPOSIT: Buffer<ArrayBuffer>;
|
|
10
|
+
export declare const IX_WITHDRAW: Buffer<ArrayBuffer>;
|
|
11
|
+
export declare const IX_UPDATE_AUM: Buffer<ArrayBuffer>;
|
|
12
|
+
export declare const IX_KVAULT_DEPOSIT: Buffer<ArrayBuffer>;
|
|
13
|
+
export declare const IX_KVAULT_WITHDRAW: Buffer<ArrayBuffer>;
|
|
14
|
+
export declare const IX_JUP_LEND_DEPOSIT: Buffer<ArrayBuffer>;
|
|
15
|
+
export declare const IX_JUP_LEND_WITHDRAW: Buffer<ArrayBuffer>;
|
|
16
|
+
export declare const STRATEGY_STATE_SIZE = 472;
|
|
17
|
+
export declare const STV_POSITION_SIZE = 56;
|
|
18
|
+
export declare const FLAG_PAUSED = 1;
|
|
19
|
+
export declare const MAX_PROTOCOLS = 10;
|
|
20
|
+
export declare const KAMINO_VAULT_PROGRAM: PublicKey;
|
|
21
|
+
export declare const JUP_LEND_PROGRAM: PublicKey;
|
|
22
|
+
export { PPS_DECIMALS } from "../common/constants";
|
|
23
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/elemental-lend/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,UAAU,WAEtB,CAAC;AAGF,eAAO,MAAM,mBAAmB,qBAAgC,CAAC;AACjE,eAAO,MAAM,aAAa,qBAA0B,CAAC;AAGrD,eAAO,MAAM,mBAAmB,qBAAqD,CAAC;AACtF,eAAO,MAAM,iBAAiB,qBAAqD,CAAC;AAGpF,eAAO,MAAM,0BAA0B,qBAAoD,CAAC;AAC5F,eAAO,MAAM,gBAAgB,qBAAkD,CAAC;AAChF,eAAO,MAAM,UAAU,qBAAsD,CAAC;AAC9E,eAAO,MAAM,WAAW,qBAAqD,CAAC;AAC9E,eAAO,MAAM,aAAa,qBAAqD,CAAC;AAChF,eAAO,MAAM,iBAAiB,qBAAoD,CAAC;AACnF,eAAO,MAAM,kBAAkB,qBAAsD,CAAC;AACtF,eAAO,MAAM,mBAAmB,qBAAoD,CAAC;AACrF,eAAO,MAAM,oBAAoB,qBAAoD,CAAC;AAGtF,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAGpC,eAAO,MAAM,WAAW,IAAS,CAAC;AAGlC,eAAO,MAAM,aAAa,KAAK,CAAC;AAGhC,eAAO,MAAM,oBAAoB,WAA+D,CAAC;AACjG,eAAO,MAAM,gBAAgB,WAA+D,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PPS_DECIMALS = exports.JUP_LEND_PROGRAM = exports.KAMINO_VAULT_PROGRAM = exports.MAX_PROTOCOLS = exports.FLAG_PAUSED = exports.STV_POSITION_SIZE = exports.STRATEGY_STATE_SIZE = exports.IX_JUP_LEND_WITHDRAW = exports.IX_JUP_LEND_DEPOSIT = exports.IX_KVAULT_WITHDRAW = exports.IX_KVAULT_DEPOSIT = exports.IX_UPDATE_AUM = exports.IX_WITHDRAW = exports.IX_DEPOSIT = exports.IX_INIT_POSITION = exports.IX_INIT_OR_UPDATE_STRATEGY = exports.DISC_STV_POSITION = exports.DISC_STRATEGY_STATE = exports.POSITION_SEED = exports.STRATEGY_STATE_SEED = exports.PROGRAM_ID = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
exports.PROGRAM_ID = new web3_js_1.PublicKey("EHaGVh7p6xSxZsq4CcEEZhnV5adDvWg1gS1Rc5rLiBpC");
|
|
6
|
+
// PDA Seeds
|
|
7
|
+
exports.STRATEGY_STATE_SEED = Buffer.from("strategy_state");
|
|
8
|
+
exports.POSITION_SEED = Buffer.from("position");
|
|
9
|
+
// Account discriminators (Anchor 8-byte)
|
|
10
|
+
exports.DISC_STRATEGY_STATE = Buffer.from([83, 18, 224, 109, 174, 100, 39, 139]);
|
|
11
|
+
exports.DISC_STV_POSITION = Buffer.from([47, 212, 251, 176, 138, 160, 30, 87]);
|
|
12
|
+
// Instruction discriminators (Anchor 8-byte)
|
|
13
|
+
exports.IX_INIT_OR_UPDATE_STRATEGY = Buffer.from([221, 4, 60, 139, 83, 148, 116, 247]);
|
|
14
|
+
exports.IX_INIT_POSITION = Buffer.from([197, 20, 10, 1, 97, 160, 177, 91]);
|
|
15
|
+
exports.IX_DEPOSIT = Buffer.from([242, 35, 198, 137, 82, 225, 242, 182]);
|
|
16
|
+
exports.IX_WITHDRAW = Buffer.from([183, 18, 70, 156, 148, 109, 161, 34]);
|
|
17
|
+
exports.IX_UPDATE_AUM = Buffer.from([162, 40, 227, 16, 84, 169, 182, 185]);
|
|
18
|
+
exports.IX_KVAULT_DEPOSIT = Buffer.from([240, 233, 97, 12, 52, 70, 230, 243]);
|
|
19
|
+
exports.IX_KVAULT_WITHDRAW = Buffer.from([186, 254, 50, 47, 123, 146, 242, 216]);
|
|
20
|
+
exports.IX_JUP_LEND_DEPOSIT = Buffer.from([87, 129, 182, 64, 170, 11, 223, 59]);
|
|
21
|
+
exports.IX_JUP_LEND_WITHDRAW = Buffer.from([46, 152, 191, 164, 24, 135, 89, 64]);
|
|
22
|
+
// Account sizes
|
|
23
|
+
exports.STRATEGY_STATE_SIZE = 472;
|
|
24
|
+
exports.STV_POSITION_SIZE = 56;
|
|
25
|
+
// Flags
|
|
26
|
+
exports.FLAG_PAUSED = 0x0001;
|
|
27
|
+
// Limits
|
|
28
|
+
exports.MAX_PROTOCOLS = 10;
|
|
29
|
+
// External protocol programs
|
|
30
|
+
exports.KAMINO_VAULT_PROGRAM = new web3_js_1.PublicKey("KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd");
|
|
31
|
+
exports.JUP_LEND_PROGRAM = new web3_js_1.PublicKey("jup3YeL8QhtSx1e253b2FDvsMNC87fDrgQZivbrndc9");
|
|
32
|
+
var constants_1 = require("../common/constants");
|
|
33
|
+
Object.defineProperty(exports, "PPS_DECIMALS", { enumerable: true, get: function () { return constants_1.PPS_DECIMALS; } });
|
|
34
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/elemental-lend/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/elemental-lend/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./constants"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./pda"), exports);
|
|
20
|
+
__exportStar(require("./accounts"), exports);
|
|
21
|
+
__exportStar(require("./instructions"), exports);
|
|
22
|
+
__exportStar(require("./jupiter-lend"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/elemental-lend/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB;AACxB,wCAAsB;AACtB,6CAA2B;AAC3B,iDAA+B;AAC/B,iDAA+B"}
|