@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.
Files changed (97) hide show
  1. package/dist/common/buffer.d.ts +13 -0
  2. package/dist/common/buffer.d.ts.map +1 -0
  3. package/dist/common/buffer.js +84 -0
  4. package/dist/common/buffer.js.map +1 -0
  5. package/dist/common/constants.d.ts +9 -0
  6. package/dist/common/constants.d.ts.map +1 -0
  7. package/dist/common/constants.js +12 -0
  8. package/dist/common/constants.js.map +1 -0
  9. package/dist/common/index.d.ts +5 -0
  10. package/dist/common/index.d.ts.map +1 -0
  11. package/dist/common/index.js +23 -0
  12. package/dist/common/index.js.map +1 -0
  13. package/dist/common/strategy-interface.d.ts +29 -0
  14. package/dist/common/strategy-interface.d.ts.map +1 -0
  15. package/dist/common/strategy-interface.js +40 -0
  16. package/dist/common/strategy-interface.js.map +1 -0
  17. package/dist/elemental-lend/accounts.d.ts +22 -0
  18. package/dist/elemental-lend/accounts.d.ts.map +1 -0
  19. package/dist/elemental-lend/accounts.js +162 -0
  20. package/dist/elemental-lend/accounts.js.map +1 -0
  21. package/dist/elemental-lend/constants.d.ts +23 -0
  22. package/dist/elemental-lend/constants.d.ts.map +1 -0
  23. package/dist/elemental-lend/constants.js +34 -0
  24. package/dist/elemental-lend/constants.js.map +1 -0
  25. package/dist/elemental-lend/index.d.ts +7 -0
  26. package/dist/elemental-lend/index.d.ts.map +1 -0
  27. package/dist/elemental-lend/index.js +23 -0
  28. package/dist/elemental-lend/index.js.map +1 -0
  29. package/dist/elemental-lend/instructions.d.ts +55 -0
  30. package/dist/elemental-lend/instructions.d.ts.map +1 -0
  31. package/dist/elemental-lend/instructions.js +146 -0
  32. package/dist/elemental-lend/instructions.js.map +1 -0
  33. package/dist/elemental-lend/jupiter-lend.d.ts +56 -0
  34. package/dist/elemental-lend/jupiter-lend.d.ts.map +1 -0
  35. package/dist/elemental-lend/jupiter-lend.js +95 -0
  36. package/dist/elemental-lend/jupiter-lend.js.map +1 -0
  37. package/dist/elemental-lend/pda.d.ts +4 -0
  38. package/dist/elemental-lend/pda.d.ts.map +1 -0
  39. package/dist/elemental-lend/pda.js +13 -0
  40. package/dist/elemental-lend/pda.js.map +1 -0
  41. package/dist/elemental-lend/types.d.ts +97 -0
  42. package/dist/elemental-lend/types.d.ts.map +1 -0
  43. package/dist/elemental-lend/types.js +3 -0
  44. package/dist/elemental-lend/types.js.map +1 -0
  45. package/dist/index.d.ts +5 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +41 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/jlp-strategy/accounts.d.ts +11 -0
  50. package/dist/jlp-strategy/accounts.d.ts.map +1 -0
  51. package/dist/jlp-strategy/accounts.js +118 -0
  52. package/dist/jlp-strategy/accounts.js.map +1 -0
  53. package/dist/jlp-strategy/constants.d.ts +36 -0
  54. package/dist/jlp-strategy/constants.d.ts.map +1 -0
  55. package/dist/jlp-strategy/constants.js +47 -0
  56. package/dist/jlp-strategy/constants.js.map +1 -0
  57. package/dist/jlp-strategy/index.d.ts +5 -0
  58. package/dist/jlp-strategy/index.d.ts.map +1 -0
  59. package/dist/jlp-strategy/index.js +21 -0
  60. package/dist/jlp-strategy/index.js.map +1 -0
  61. package/dist/jlp-strategy/pda.d.ts +5 -0
  62. package/dist/jlp-strategy/pda.d.ts.map +1 -0
  63. package/dist/jlp-strategy/pda.js +17 -0
  64. package/dist/jlp-strategy/pda.js.map +1 -0
  65. package/dist/jlp-strategy/types.d.ts +25 -0
  66. package/dist/jlp-strategy/types.d.ts.map +1 -0
  67. package/dist/jlp-strategy/types.js +3 -0
  68. package/dist/jlp-strategy/types.js.map +1 -0
  69. package/dist/p-stv-core/accounts.d.ts +14 -0
  70. package/dist/p-stv-core/accounts.d.ts.map +1 -0
  71. package/dist/p-stv-core/accounts.js +154 -0
  72. package/dist/p-stv-core/accounts.js.map +1 -0
  73. package/dist/p-stv-core/constants.d.ts +43 -0
  74. package/dist/p-stv-core/constants.d.ts.map +1 -0
  75. package/dist/p-stv-core/constants.js +79 -0
  76. package/dist/p-stv-core/constants.js.map +1 -0
  77. package/dist/p-stv-core/events.d.ts +8 -0
  78. package/dist/p-stv-core/events.d.ts.map +1 -0
  79. package/dist/p-stv-core/events.js +115 -0
  80. package/dist/p-stv-core/events.js.map +1 -0
  81. package/dist/p-stv-core/index.d.ts +7 -0
  82. package/dist/p-stv-core/index.d.ts.map +1 -0
  83. package/dist/p-stv-core/index.js +23 -0
  84. package/dist/p-stv-core/index.js.map +1 -0
  85. package/dist/p-stv-core/instructions.d.ts +132 -0
  86. package/dist/p-stv-core/instructions.d.ts.map +1 -0
  87. package/dist/p-stv-core/instructions.js +206 -0
  88. package/dist/p-stv-core/instructions.js.map +1 -0
  89. package/dist/p-stv-core/pda.d.ts +7 -0
  90. package/dist/p-stv-core/pda.d.ts.map +1 -0
  91. package/dist/p-stv-core/pda.js +29 -0
  92. package/dist/p-stv-core/pda.js.map +1 -0
  93. package/dist/p-stv-core/types.d.ts +149 -0
  94. package/dist/p-stv-core/types.d.ts.map +1 -0
  95. package/dist/p-stv-core/types.js +3 -0
  96. package/dist/p-stv-core/types.js.map +1 -0
  97. package/package.json +51 -0
@@ -0,0 +1,55 @@
1
+ import { PublicKey, TransactionInstruction, AccountMeta } from "@solana/web3.js";
2
+ import BN from "bn.js";
3
+ export interface InitOrUpdateStrategyArgs {
4
+ admin: PublicKey;
5
+ strategyState: PublicKey;
6
+ baseMint: PublicKey;
7
+ strategyBaseAta: PublicKey;
8
+ tokenProgram: PublicKey;
9
+ systemProgram?: PublicKey;
10
+ associatedTokenProgram?: PublicKey;
11
+ authority?: PublicKey | null;
12
+ flags?: number | null;
13
+ addProtocol?: PublicKey | null;
14
+ removeProtocol?: PublicKey | null;
15
+ newAdmin?: PublicKey | null;
16
+ remainingAccounts?: AccountMeta[];
17
+ }
18
+ export declare function createInitOrUpdateStrategyIx(args: InitOrUpdateStrategyArgs, programId?: PublicKey): TransactionInstruction;
19
+ export interface KvaultDepositArgs {
20
+ admin: PublicKey;
21
+ strategyState: PublicKey;
22
+ depositorBaseAta: PublicKey;
23
+ depositorSharesAta: PublicKey;
24
+ amount: BN | number;
25
+ remainingAccounts: AccountMeta[];
26
+ }
27
+ export declare function createKvaultDepositIx(args: KvaultDepositArgs, programId?: PublicKey): TransactionInstruction;
28
+ export interface KvaultWithdrawArgs {
29
+ admin: PublicKey;
30
+ strategyState: PublicKey;
31
+ depositorBaseAta: PublicKey;
32
+ depositorSharesAta: PublicKey;
33
+ shares: BN | number;
34
+ remainingAccounts: AccountMeta[];
35
+ }
36
+ export declare function createKvaultWithdrawIx(args: KvaultWithdrawArgs, programId?: PublicKey): TransactionInstruction;
37
+ export interface JupLendDepositArgs {
38
+ admin: PublicKey;
39
+ strategyState: PublicKey;
40
+ depositorBaseAta: PublicKey;
41
+ depositorFtokenAta: PublicKey;
42
+ amount: BN | number;
43
+ remainingAccounts: AccountMeta[];
44
+ }
45
+ export declare function createJupLendDepositIx(args: JupLendDepositArgs, programId?: PublicKey): TransactionInstruction;
46
+ export interface JupLendWithdrawArgs {
47
+ admin: PublicKey;
48
+ strategyState: PublicKey;
49
+ depositorBaseAta: PublicKey;
50
+ depositorFtokenAta: PublicKey;
51
+ amount: BN | number;
52
+ remainingAccounts: AccountMeta[];
53
+ }
54
+ export declare function createJupLendWithdrawIx(args: JupLendWithdrawArgs, programId?: PublicKey): TransactionInstruction;
55
+ //# sourceMappingURL=instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/elemental-lend/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,sBAAsB,EAEtB,WAAW,EACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,MAAM,OAAO,CAAC;AAgBvB,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,SAAS,CAAC;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,EAAE,SAAS,CAAC;IAC3B,YAAY,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,sBAAsB,CAAC,EAAE,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC;CACnC;AA4DD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,wBAAwB,EAC9B,SAAS,GAAE,SAAsB,GAChC,sBAAsB,CA4BxB;AAMD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,SAAS,CAAC;IACzB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,kBAAkB,EAAE,SAAS,CAAC;IAC9B,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC;IACpB,iBAAiB,EAAE,WAAW,EAAE,CAAC;CAClC;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,EACvB,SAAS,GAAE,SAAsB,GAChC,sBAAsB,CAexB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,SAAS,CAAC;IACzB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,kBAAkB,EAAE,SAAS,CAAC;IAC9B,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC;IACpB,iBAAiB,EAAE,WAAW,EAAE,CAAC;CAClC;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,EACxB,SAAS,GAAE,SAAsB,GAChC,sBAAsB,CAexB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,SAAS,CAAC;IACzB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,kBAAkB,EAAE,SAAS,CAAC;IAC9B,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC;IACpB,iBAAiB,EAAE,WAAW,EAAE,CAAC;CAClC;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,EACxB,SAAS,GAAE,SAAsB,GAChC,sBAAsB,CAexB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,SAAS,CAAC;IACzB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,kBAAkB,EAAE,SAAS,CAAC;IAC9B,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC;IACpB,iBAAiB,EAAE,WAAW,EAAE,CAAC;CAClC;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,mBAAmB,EACzB,SAAS,GAAE,SAAsB,GAChC,sBAAsB,CAexB"}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createInitOrUpdateStrategyIx = createInitOrUpdateStrategyIx;
4
+ exports.createKvaultDepositIx = createKvaultDepositIx;
5
+ exports.createKvaultWithdrawIx = createKvaultWithdrawIx;
6
+ exports.createJupLendDepositIx = createJupLendDepositIx;
7
+ exports.createJupLendWithdrawIx = createJupLendWithdrawIx;
8
+ const web3_js_1 = require("@solana/web3.js");
9
+ const spl_token_1 = require("@solana/spl-token");
10
+ const buffer_1 = require("../common/buffer");
11
+ const constants_1 = require("./constants");
12
+ /** Serialize InitOrUpdateStrategyParams for Anchor (Borsh Option<T> encoding) */
13
+ function serializeInitOrUpdateStrategyParams(args) {
14
+ const parts = [];
15
+ // admin: Option<Pubkey>
16
+ if (args.newAdmin != null) {
17
+ parts.push(0x01);
18
+ parts.push(...args.newAdmin.toBuffer());
19
+ }
20
+ else {
21
+ parts.push(0x00);
22
+ }
23
+ // base_mint: Option<Pubkey> — always None from SDK (set from accounts)
24
+ parts.push(0x00);
25
+ // authority: Option<Pubkey>
26
+ if (args.authority != null) {
27
+ parts.push(0x01);
28
+ parts.push(...args.authority.toBuffer());
29
+ }
30
+ else {
31
+ parts.push(0x00);
32
+ }
33
+ // flags: Option<u16>
34
+ if (args.flags != null) {
35
+ parts.push(0x01);
36
+ const buf = Buffer.alloc(2);
37
+ buf.writeUInt16LE(args.flags, 0);
38
+ parts.push(...buf);
39
+ }
40
+ else {
41
+ parts.push(0x00);
42
+ }
43
+ // add_protocol: Option<Pubkey>
44
+ if (args.addProtocol != null) {
45
+ parts.push(0x01);
46
+ parts.push(...args.addProtocol.toBuffer());
47
+ }
48
+ else {
49
+ parts.push(0x00);
50
+ }
51
+ // remove_protocol: Option<Pubkey>
52
+ if (args.removeProtocol != null) {
53
+ parts.push(0x01);
54
+ parts.push(...args.removeProtocol.toBuffer());
55
+ }
56
+ else {
57
+ parts.push(0x00);
58
+ }
59
+ return Buffer.from(parts);
60
+ }
61
+ function createInitOrUpdateStrategyIx(args, programId = constants_1.PROGRAM_ID) {
62
+ const { admin, strategyState, baseMint, strategyBaseAta, tokenProgram, systemProgram = web3_js_1.SystemProgram.programId, associatedTokenProgram = spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID, authority, flags, addProtocol, removeProtocol, newAdmin, remainingAccounts = [], } = args;
63
+ const params = serializeInitOrUpdateStrategyParams({
64
+ newAdmin, authority, flags, addProtocol, removeProtocol,
65
+ });
66
+ const data = Buffer.concat([constants_1.IX_INIT_OR_UPDATE_STRATEGY, params]);
67
+ return new web3_js_1.TransactionInstruction({
68
+ keys: [
69
+ { pubkey: admin, isSigner: true, isWritable: true },
70
+ { pubkey: strategyState, isSigner: false, isWritable: true },
71
+ { pubkey: baseMint, isSigner: false, isWritable: false },
72
+ { pubkey: strategyBaseAta, isSigner: false, isWritable: true },
73
+ { pubkey: systemProgram, isSigner: false, isWritable: false },
74
+ { pubkey: tokenProgram, isSigner: false, isWritable: false },
75
+ { pubkey: associatedTokenProgram, isSigner: false, isWritable: false },
76
+ ...remainingAccounts,
77
+ ],
78
+ programId,
79
+ data,
80
+ });
81
+ }
82
+ function createKvaultDepositIx(args, programId = constants_1.PROGRAM_ID) {
83
+ const { admin, strategyState, depositorBaseAta, depositorSharesAta, amount, remainingAccounts } = args;
84
+ const data = [...constants_1.IX_KVAULT_DEPOSIT];
85
+ (0, buffer_1.writeU64)(data, amount);
86
+ return new web3_js_1.TransactionInstruction({
87
+ keys: [
88
+ { pubkey: admin, isSigner: true, isWritable: true },
89
+ { pubkey: strategyState, isSigner: false, isWritable: true },
90
+ { pubkey: depositorBaseAta, isSigner: false, isWritable: true },
91
+ { pubkey: depositorSharesAta, isSigner: false, isWritable: true },
92
+ ...remainingAccounts,
93
+ ],
94
+ programId,
95
+ data: Buffer.from(data),
96
+ });
97
+ }
98
+ function createKvaultWithdrawIx(args, programId = constants_1.PROGRAM_ID) {
99
+ const { admin, strategyState, depositorBaseAta, depositorSharesAta, shares, remainingAccounts } = args;
100
+ const data = [...constants_1.IX_KVAULT_WITHDRAW];
101
+ (0, buffer_1.writeU64)(data, shares);
102
+ return new web3_js_1.TransactionInstruction({
103
+ keys: [
104
+ { pubkey: admin, isSigner: true, isWritable: true },
105
+ { pubkey: strategyState, isSigner: false, isWritable: true },
106
+ { pubkey: depositorBaseAta, isSigner: false, isWritable: true },
107
+ { pubkey: depositorSharesAta, isSigner: false, isWritable: true },
108
+ ...remainingAccounts,
109
+ ],
110
+ programId,
111
+ data: Buffer.from(data),
112
+ });
113
+ }
114
+ function createJupLendDepositIx(args, programId = constants_1.PROGRAM_ID) {
115
+ const { admin, strategyState, depositorBaseAta, depositorFtokenAta, amount, remainingAccounts } = args;
116
+ const data = [...constants_1.IX_JUP_LEND_DEPOSIT];
117
+ (0, buffer_1.writeU64)(data, amount);
118
+ return new web3_js_1.TransactionInstruction({
119
+ keys: [
120
+ { pubkey: admin, isSigner: true, isWritable: true },
121
+ { pubkey: strategyState, isSigner: false, isWritable: true },
122
+ { pubkey: depositorBaseAta, isSigner: false, isWritable: true },
123
+ { pubkey: depositorFtokenAta, isSigner: false, isWritable: true },
124
+ ...remainingAccounts,
125
+ ],
126
+ programId,
127
+ data: Buffer.from(data),
128
+ });
129
+ }
130
+ function createJupLendWithdrawIx(args, programId = constants_1.PROGRAM_ID) {
131
+ const { admin, strategyState, depositorBaseAta, depositorFtokenAta, amount, remainingAccounts } = args;
132
+ const data = [...constants_1.IX_JUP_LEND_WITHDRAW];
133
+ (0, buffer_1.writeU64)(data, amount);
134
+ return new web3_js_1.TransactionInstruction({
135
+ keys: [
136
+ { pubkey: admin, isSigner: true, isWritable: true },
137
+ { pubkey: strategyState, isSigner: false, isWritable: true },
138
+ { pubkey: depositorBaseAta, isSigner: false, isWritable: true },
139
+ { pubkey: depositorFtokenAta, isSigner: false, isWritable: true },
140
+ ...remainingAccounts,
141
+ ],
142
+ programId,
143
+ data: Buffer.from(data),
144
+ });
145
+ }
146
+ //# sourceMappingURL=instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/elemental-lend/instructions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Jupiter Lend USDC pool configuration and auto-route account builders.
3
+ *
4
+ * All account addresses are mainnet values discovered from on-chain data.
5
+ * These are used to build the remaining_accounts for auto-routing deposits
6
+ * from elemental-lend into Jupiter Lend.
7
+ */
8
+ import { AccountMeta, PublicKey } from "@solana/web3.js";
9
+ /** Lending Admin PDA: ["lending_admin"] on jup3Y... */
10
+ export declare const LENDING_ADMIN: PublicKey;
11
+ /** Fluid/Jupiter Liquidity Program */
12
+ export declare const LIQUIDITY_PROGRAM_ID: PublicKey;
13
+ /** Liquidity singleton PDA */
14
+ export declare const LIQUIDITY_SINGLETON: PublicKey;
15
+ export interface JupiterLendPool {
16
+ mint: PublicKey;
17
+ lending: PublicKey;
18
+ fTokenMint: PublicKey;
19
+ tokenReservesLiquidity: PublicKey;
20
+ supplyPositionOnLiquidity: PublicKey;
21
+ rewardsRateModel: PublicKey;
22
+ vault: PublicKey;
23
+ rateModel: PublicKey;
24
+ }
25
+ export declare const USDC_POOL: JupiterLendPool;
26
+ /**
27
+ * Build the 17 CPI accounts for Jupiter Lend deposit.
28
+ *
29
+ * Account order matches `jup_lend::deposit_accounts`:
30
+ * [0] signer (strategy_state PDA)
31
+ * [1] depositor_token_account (strategy base ATA)
32
+ * [2] recipient_token_account (strategy fToken ATA)
33
+ * [3] mint (base token mint)
34
+ * [4] lending_admin
35
+ * [5] lending
36
+ * [6] f_token_mint
37
+ * [7] supply_token_reserves_liquidity
38
+ * [8] lending_supply_position_on_liquidity
39
+ * [9] rate_model
40
+ * [10] vault
41
+ * [11] liquidity
42
+ * [12] liquidity_program
43
+ * [13] rewards_rate_model
44
+ * [14] token_program
45
+ * [15] associated_token_program
46
+ * [16] system_program
47
+ */
48
+ export declare function buildJupLendDepositAccounts(pool: JupiterLendPool, signer: PublicKey, depositorTokenAccount: PublicKey, recipientTokenAccount: PublicKey): AccountMeta[];
49
+ /**
50
+ * Build the full auto-route remaining_accounts for Jupiter Lend deposit.
51
+ *
52
+ * Returns [jup_lend_program, ...17 CPI accounts] = 18 accounts total.
53
+ * This is what p-stv-core's `sweep_to_lend` forwards to elemental-lend's deposit.
54
+ */
55
+ export declare function buildJupLendAutoRouteAccounts(pool: JupiterLendPool, strategyStatePda: PublicKey, strategyBaseAta: PublicKey, strategyFtokenAta: PublicKey): AccountMeta[];
56
+ //# sourceMappingURL=jupiter-lend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jupiter-lend.d.ts","sourceRoot":"","sources":["../../src/elemental-lend/jupiter-lend.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAQxE,uDAAuD;AACvD,eAAO,MAAM,aAAa,WAAgE,CAAC;AAE3F,sCAAsC;AACtC,eAAO,MAAM,oBAAoB,WAA+D,CAAC;AAEjG,8BAA8B;AAC9B,eAAO,MAAM,mBAAmB,WAAgE,CAAC;AAMjG,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,SAAS,CAAC;IACtB,sBAAsB,EAAE,SAAS,CAAC;IAClC,yBAAyB,EAAE,SAAS,CAAC;IACrC,gBAAgB,EAAE,SAAS,CAAC;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,SAAS,EAAE,eASvB,CAAC;AAMF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,SAAS,EACjB,qBAAqB,EAAE,SAAS,EAChC,qBAAqB,EAAE,SAAS,GAC/B,WAAW,EAAE,CAoBf;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,eAAe,EACrB,gBAAgB,EAAE,SAAS,EAC3B,eAAe,EAAE,SAAS,EAC1B,iBAAiB,EAAE,SAAS,GAC3B,WAAW,EAAE,CAYf"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /**
3
+ * Jupiter Lend USDC pool configuration and auto-route account builders.
4
+ *
5
+ * All account addresses are mainnet values discovered from on-chain data.
6
+ * These are used to build the remaining_accounts for auto-routing deposits
7
+ * from elemental-lend into Jupiter Lend.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.USDC_POOL = exports.LIQUIDITY_SINGLETON = exports.LIQUIDITY_PROGRAM_ID = exports.LENDING_ADMIN = void 0;
11
+ exports.buildJupLendDepositAccounts = buildJupLendDepositAccounts;
12
+ exports.buildJupLendAutoRouteAccounts = buildJupLendAutoRouteAccounts;
13
+ const web3_js_1 = require("@solana/web3.js");
14
+ const spl_token_1 = require("@solana/spl-token");
15
+ const constants_1 = require("./constants");
16
+ // ---------------------------------------------------------------------------
17
+ // Jupiter Lend Infrastructure
18
+ // ---------------------------------------------------------------------------
19
+ /** Lending Admin PDA: ["lending_admin"] on jup3Y... */
20
+ exports.LENDING_ADMIN = new web3_js_1.PublicKey("5nmGjA4s7ATzpBQXC5RNceRpaJ7pYw2wKsNBWyuSAZV6");
21
+ /** Fluid/Jupiter Liquidity Program */
22
+ exports.LIQUIDITY_PROGRAM_ID = new web3_js_1.PublicKey("jupeiUmn818Jg1ekPURTpr4mFo29p46vygyykFJ3wZC");
23
+ /** Liquidity singleton PDA */
24
+ exports.LIQUIDITY_SINGLETON = new web3_js_1.PublicKey("7s1da8DduuBFqGra5bJBjpnvL5E9mGzCuMk1Qkh4or2Z");
25
+ exports.USDC_POOL = {
26
+ mint: new web3_js_1.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),
27
+ lending: new web3_js_1.PublicKey("2vVYHYM8VYnvZqQWpTJSj8o8DBf1wM8pVs3bsTgYZiqJ"),
28
+ fTokenMint: new web3_js_1.PublicKey("9BEcn9aPEmhSPbPQeFGjidRiEKki46fVQDyPpSQXPA2D"),
29
+ tokenReservesLiquidity: new web3_js_1.PublicKey("94vK29npVbyRHXH63rRcTiSr26SFhrQTzbpNJuhQEDu"),
30
+ supplyPositionOnLiquidity: new web3_js_1.PublicKey("Hf9gtkM4dpVBahVSzEXSVCAPpKzBsBcns3s8As3z77oF"),
31
+ rewardsRateModel: new web3_js_1.PublicKey("5xSPBiD3TibamAnwHDhZABdB4z4F9dcj5PnbteroBTTd"),
32
+ vault: new web3_js_1.PublicKey("BmkUoKMFYBxNSzWXyUjyMJjMAaVz4d8ZnxwwmhDCUXFB"),
33
+ rateModel: new web3_js_1.PublicKey("5pjzT5dFTsXcwixoab1QDLvZQvpYJxJeBphkyfHGn688"),
34
+ };
35
+ // ---------------------------------------------------------------------------
36
+ // Auto-Route Account Builders
37
+ // ---------------------------------------------------------------------------
38
+ /**
39
+ * Build the 17 CPI accounts for Jupiter Lend deposit.
40
+ *
41
+ * Account order matches `jup_lend::deposit_accounts`:
42
+ * [0] signer (strategy_state PDA)
43
+ * [1] depositor_token_account (strategy base ATA)
44
+ * [2] recipient_token_account (strategy fToken ATA)
45
+ * [3] mint (base token mint)
46
+ * [4] lending_admin
47
+ * [5] lending
48
+ * [6] f_token_mint
49
+ * [7] supply_token_reserves_liquidity
50
+ * [8] lending_supply_position_on_liquidity
51
+ * [9] rate_model
52
+ * [10] vault
53
+ * [11] liquidity
54
+ * [12] liquidity_program
55
+ * [13] rewards_rate_model
56
+ * [14] token_program
57
+ * [15] associated_token_program
58
+ * [16] system_program
59
+ */
60
+ function buildJupLendDepositAccounts(pool, signer, depositorTokenAccount, recipientTokenAccount) {
61
+ return [
62
+ { pubkey: signer, isSigner: true, isWritable: true },
63
+ { pubkey: depositorTokenAccount, isSigner: false, isWritable: true },
64
+ { pubkey: recipientTokenAccount, isSigner: false, isWritable: true },
65
+ { pubkey: pool.mint, isSigner: false, isWritable: false },
66
+ { pubkey: exports.LENDING_ADMIN, isSigner: false, isWritable: false },
67
+ { pubkey: pool.lending, isSigner: false, isWritable: true },
68
+ { pubkey: pool.fTokenMint, isSigner: false, isWritable: true },
69
+ { pubkey: pool.tokenReservesLiquidity, isSigner: false, isWritable: true },
70
+ { pubkey: pool.supplyPositionOnLiquidity, isSigner: false, isWritable: true },
71
+ { pubkey: pool.rateModel, isSigner: false, isWritable: false },
72
+ { pubkey: pool.vault, isSigner: false, isWritable: true },
73
+ { pubkey: exports.LIQUIDITY_SINGLETON, isSigner: false, isWritable: true },
74
+ { pubkey: exports.LIQUIDITY_PROGRAM_ID, isSigner: false, isWritable: true },
75
+ { pubkey: pool.rewardsRateModel, isSigner: false, isWritable: false },
76
+ { pubkey: spl_token_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
77
+ { pubkey: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
78
+ { pubkey: web3_js_1.SystemProgram.programId, isSigner: false, isWritable: false },
79
+ ];
80
+ }
81
+ /**
82
+ * Build the full auto-route remaining_accounts for Jupiter Lend deposit.
83
+ *
84
+ * Returns [jup_lend_program, ...17 CPI accounts] = 18 accounts total.
85
+ * This is what p-stv-core's `sweep_to_lend` forwards to elemental-lend's deposit.
86
+ */
87
+ function buildJupLendAutoRouteAccounts(pool, strategyStatePda, strategyBaseAta, strategyFtokenAta) {
88
+ return [
89
+ // [0] Protocol program (identifies the route)
90
+ { pubkey: constants_1.JUP_LEND_PROGRAM, isSigner: false, isWritable: false },
91
+ // [1..18] Full CPI account array
92
+ ...buildJupLendDepositAccounts(pool, strategyStatePda, strategyBaseAta, strategyFtokenAta),
93
+ ];
94
+ }
95
+ //# sourceMappingURL=jupiter-lend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jupiter-lend.js","sourceRoot":"","sources":["../../src/elemental-lend/jupiter-lend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ export declare function findStrategyStatePda(baseMint: PublicKey, programId?: PublicKey): [PublicKey, number];
3
+ export declare function findStvPositionPda(stv: PublicKey, programId?: PublicKey): [PublicKey, number];
4
+ //# sourceMappingURL=pda.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pda.d.ts","sourceRoot":"","sources":["../../src/elemental-lend/pda.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,SAAsB,GAChC,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,SAAS,EACd,SAAS,GAAE,SAAsB,GAChC,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findStrategyStatePda = findStrategyStatePda;
4
+ exports.findStvPositionPda = findStvPositionPda;
5
+ const web3_js_1 = require("@solana/web3.js");
6
+ const constants_1 = require("./constants");
7
+ function findStrategyStatePda(baseMint, programId = constants_1.PROGRAM_ID) {
8
+ return web3_js_1.PublicKey.findProgramAddressSync([constants_1.STRATEGY_STATE_SEED, baseMint.toBuffer()], programId);
9
+ }
10
+ function findStvPositionPda(stv, programId = constants_1.PROGRAM_ID) {
11
+ return web3_js_1.PublicKey.findProgramAddressSync([constants_1.POSITION_SEED, stv.toBuffer()], programId);
12
+ }
13
+ //# sourceMappingURL=pda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pda.js","sourceRoot":"","sources":["../../src/elemental-lend/pda.ts"],"names":[],"mappings":";;AAGA,oDAQC;AAED,gDAQC;AArBD,6CAA4C;AAC5C,2CAA6E;AAE7E,SAAgB,oBAAoB,CAClC,QAAmB,EACnB,YAAuB,sBAAU;IAEjC,OAAO,mBAAS,CAAC,sBAAsB,CACrC,CAAC,+BAAmB,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAC1C,SAAS,CACV,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAChC,GAAc,EACd,YAAuB,sBAAU;IAEjC,OAAO,mBAAS,CAAC,sBAAsB,CACrC,CAAC,yBAAa,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,EAC/B,SAAS,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import BN from "bn.js";
3
+ import type { StrategyStateHeader } from "../common/strategy-interface";
4
+ /** Full StrategyState for Elemental Lend (472 bytes) */
5
+ export interface LendStrategyState extends StrategyStateHeader {
6
+ admin: PublicKey;
7
+ protocols: PublicKey[];
8
+ protocolCount: number;
9
+ }
10
+ export type { StvPosition } from "../common/strategy-interface";
11
+ export interface StrategyInitializedEvent {
12
+ name: "StrategyInitialized";
13
+ strategyState: PublicKey;
14
+ admin: PublicKey;
15
+ baseMint: PublicKey;
16
+ authority: PublicKey;
17
+ }
18
+ export interface StrategyUpdatedEvent {
19
+ name: "StrategyUpdated";
20
+ strategyState: PublicKey;
21
+ oldAdmin: PublicKey;
22
+ newAdmin: PublicKey;
23
+ oldAuthority: PublicKey;
24
+ newAuthority: PublicKey;
25
+ oldFlags: number;
26
+ newFlags: number;
27
+ }
28
+ export interface PositionInitializedEvent {
29
+ name: "PositionInitialized";
30
+ strategyState: PublicKey;
31
+ stv: PublicKey;
32
+ }
33
+ export interface LendDepositEvent {
34
+ name: "DepositEvent";
35
+ strategyState: PublicKey;
36
+ stv: PublicKey;
37
+ amount: BN;
38
+ shares: BN;
39
+ pps: BN;
40
+ }
41
+ export interface LendWithdrawEvent {
42
+ name: "WithdrawEvent";
43
+ strategyState: PublicKey;
44
+ stv: PublicKey;
45
+ shares: BN;
46
+ amount: BN;
47
+ pps: BN;
48
+ }
49
+ export interface AumUpdatedEvent {
50
+ name: "AumUpdated";
51
+ strategyState: PublicKey;
52
+ totalAum: BN;
53
+ pps: BN;
54
+ lastUpdated: BN;
55
+ }
56
+ export interface KvaultDepositEvent {
57
+ name: "KvaultDepositEvent";
58
+ strategyState: PublicKey;
59
+ amount: BN;
60
+ sharesReceived: BN;
61
+ timestamp: BN;
62
+ }
63
+ export interface KvaultWithdrawEvent {
64
+ name: "KvaultWithdrawEvent";
65
+ strategyState: PublicKey;
66
+ shares: BN;
67
+ baseReceived: BN;
68
+ timestamp: BN;
69
+ }
70
+ export interface JupLendDepositEvent {
71
+ name: "JupLendDepositEvent";
72
+ strategyState: PublicKey;
73
+ amount: BN;
74
+ ftokensReceived: BN;
75
+ timestamp: BN;
76
+ }
77
+ export interface JupLendWithdrawEvent {
78
+ name: "JupLendWithdrawEvent";
79
+ strategyState: PublicKey;
80
+ amount: BN;
81
+ ftokensBurned: BN;
82
+ timestamp: BN;
83
+ }
84
+ export interface ProtocolAddedEvent {
85
+ name: "ProtocolAdded";
86
+ strategyState: PublicKey;
87
+ protocolAccount: PublicKey;
88
+ protocolCount: number;
89
+ }
90
+ export interface ProtocolRemovedEvent {
91
+ name: "ProtocolRemoved";
92
+ strategyState: PublicKey;
93
+ protocolAccount: PublicKey;
94
+ protocolCount: number;
95
+ }
96
+ export type LendEvent = StrategyInitializedEvent | StrategyUpdatedEvent | PositionInitializedEvent | LendDepositEvent | LendWithdrawEvent | AumUpdatedEvent | KvaultDepositEvent | KvaultWithdrawEvent | JupLendDepositEvent | JupLendWithdrawEvent | ProtocolAddedEvent | ProtocolRemovedEvent;
97
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/elemental-lend/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/elemental-lend/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export * as common from "./common";
2
+ export * as pStvCore from "./p-stv-core";
3
+ export * as elementalLend from "./elemental-lend";
4
+ export * as jlpStrategy from "./jlp-strategy";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.jlpStrategy = exports.elementalLend = exports.pStvCore = exports.common = void 0;
37
+ exports.common = __importStar(require("./common"));
38
+ exports.pStvCore = __importStar(require("./p-stv-core"));
39
+ exports.elementalLend = __importStar(require("./elemental-lend"));
40
+ exports.jlpStrategy = __importStar(require("./jlp-strategy"));
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAmC;AACnC,yDAAyC;AACzC,kEAAkD;AAClD,8DAA8C"}
@@ -0,0 +1,11 @@
1
+ import { Connection, PublicKey } from "@solana/web3.js";
2
+ import type { StvPosition } from "../common/strategy-interface";
3
+ import { JLPVault, JlpStrategyState } from "./types";
4
+ export declare function deserializeJlpVault(data: Buffer): JLPVault;
5
+ export declare function deserializeJlpStrategyState(data: Buffer): JlpStrategyState;
6
+ export declare function deserializeJlpStvPosition(data: Buffer): StvPosition;
7
+ export declare function fetchJlpVault(connection: Connection, programId?: PublicKey): Promise<JLPVault>;
8
+ export declare function fetchJlpStrategyState(connection: Connection, baseMint: PublicKey, programId?: PublicKey): Promise<JlpStrategyState>;
9
+ export declare function fetchJlpStvPosition(connection: Connection, stv: PublicKey, programId?: PublicKey): Promise<StvPosition>;
10
+ export declare function fetchAllJlpStrategyStates(connection: Connection, programId?: PublicKey): Promise<[PublicKey, JlpStrategyState][]>;
11
+ //# sourceMappingURL=accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/jlp-strategy/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAWhE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAOrD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAgC1D;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAwB1E;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CASnE;AAMD,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAK3B;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,WAAW,CAAC,CAKtB;AAMD,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAQ1C"}