@elemental-stv-core/sdk 0.1.1 → 0.3.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.
Files changed (131) hide show
  1. package/dist/elemental-lend/accounts.d.ts +4 -1
  2. package/dist/elemental-lend/accounts.d.ts.map +1 -1
  3. package/dist/elemental-lend/accounts.js +34 -0
  4. package/dist/elemental-lend/accounts.js.map +1 -1
  5. package/dist/elemental-lend/constants.d.ts +5 -0
  6. package/dist/elemental-lend/constants.d.ts.map +1 -1
  7. package/dist/elemental-lend/constants.js +9 -1
  8. package/dist/elemental-lend/constants.js.map +1 -1
  9. package/dist/elemental-lend/index.d.ts +2 -0
  10. package/dist/elemental-lend/index.d.ts.map +1 -1
  11. package/dist/elemental-lend/index.js +2 -0
  12. package/dist/elemental-lend/index.js.map +1 -1
  13. package/dist/elemental-lend/instructions.d.ts +24 -4
  14. package/dist/elemental-lend/instructions.d.ts.map +1 -1
  15. package/dist/elemental-lend/instructions.js +49 -12
  16. package/dist/elemental-lend/instructions.js.map +1 -1
  17. package/dist/elemental-lend/jupiter-lend.d.ts +36 -0
  18. package/dist/elemental-lend/jupiter-lend.d.ts.map +1 -1
  19. package/dist/elemental-lend/jupiter-lend.js +94 -1
  20. package/dist/elemental-lend/jupiter-lend.js.map +1 -1
  21. package/dist/elemental-lend/kamino-vault.d.ts +173 -0
  22. package/dist/elemental-lend/kamino-vault.d.ts.map +1 -0
  23. package/dist/elemental-lend/kamino-vault.js +460 -0
  24. package/dist/elemental-lend/kamino-vault.js.map +1 -0
  25. package/dist/elemental-lend/pda.d.ts +1 -0
  26. package/dist/elemental-lend/pda.d.ts.map +1 -1
  27. package/dist/elemental-lend/pda.js +4 -0
  28. package/dist/elemental-lend/pda.js.map +1 -1
  29. package/dist/elemental-lend/protocol-actions.d.ts +49 -0
  30. package/dist/elemental-lend/protocol-actions.d.ts.map +1 -0
  31. package/dist/elemental-lend/protocol-actions.js +228 -0
  32. package/dist/elemental-lend/protocol-actions.js.map +1 -0
  33. package/dist/elemental-lend/types.d.ts +17 -1
  34. package/dist/elemental-lend/types.d.ts.map +1 -1
  35. package/dist/index.d.ts +1 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -2
  38. package/dist/index.js.map +1 -1
  39. package/dist/jlpd-strategy/accounts.d.ts +17 -0
  40. package/dist/jlpd-strategy/accounts.d.ts.map +1 -0
  41. package/dist/{jlp-strategy → jlpd-strategy}/accounts.js +50 -28
  42. package/dist/jlpd-strategy/accounts.js.map +1 -0
  43. package/dist/jlpd-strategy/constants.d.ts +62 -0
  44. package/dist/jlpd-strategy/constants.d.ts.map +1 -0
  45. package/dist/jlpd-strategy/constants.js +86 -0
  46. package/dist/jlpd-strategy/constants.js.map +1 -0
  47. package/dist/jlpd-strategy/index.d.ts +9 -0
  48. package/dist/jlpd-strategy/index.d.ts.map +1 -0
  49. package/dist/{jlp-strategy → jlpd-strategy}/index.js +4 -0
  50. package/dist/jlpd-strategy/index.js.map +1 -0
  51. package/dist/jlpd-strategy/instructions.d.ts +41 -0
  52. package/dist/jlpd-strategy/instructions.d.ts.map +1 -0
  53. package/dist/jlpd-strategy/instructions.js +64 -0
  54. package/dist/jlpd-strategy/instructions.js.map +1 -0
  55. package/dist/jlpd-strategy/jlp-data.d.ts +73 -0
  56. package/dist/jlpd-strategy/jlp-data.d.ts.map +1 -0
  57. package/dist/jlpd-strategy/jlp-data.js +406 -0
  58. package/dist/jlpd-strategy/jlp-data.js.map +1 -0
  59. package/dist/jlpd-strategy/pda.d.ts +8 -0
  60. package/dist/jlpd-strategy/pda.d.ts.map +1 -0
  61. package/dist/{jlp-strategy → jlpd-strategy}/pda.js +10 -3
  62. package/dist/jlpd-strategy/pda.js.map +1 -0
  63. package/dist/jlpd-strategy/settle-yield.d.ts +54 -0
  64. package/dist/jlpd-strategy/settle-yield.d.ts.map +1 -0
  65. package/dist/jlpd-strategy/settle-yield.js +103 -0
  66. package/dist/jlpd-strategy/settle-yield.js.map +1 -0
  67. package/dist/jlpd-strategy/swap-jlp.d.ts +151 -0
  68. package/dist/jlpd-strategy/swap-jlp.d.ts.map +1 -0
  69. package/dist/jlpd-strategy/swap-jlp.js +429 -0
  70. package/dist/jlpd-strategy/swap-jlp.js.map +1 -0
  71. package/dist/jlpd-strategy/types.d.ts +56 -0
  72. package/dist/jlpd-strategy/types.d.ts.map +1 -0
  73. package/dist/{jlp-strategy → jlpd-strategy}/types.js.map +1 -1
  74. package/dist/p-stv-core/accounts.d.ts +4 -1
  75. package/dist/p-stv-core/accounts.d.ts.map +1 -1
  76. package/dist/p-stv-core/accounts.js +59 -22
  77. package/dist/p-stv-core/accounts.js.map +1 -1
  78. package/dist/p-stv-core/constants.d.ts +12 -1
  79. package/dist/p-stv-core/constants.d.ts.map +1 -1
  80. package/dist/p-stv-core/constants.js +16 -2
  81. package/dist/p-stv-core/constants.js.map +1 -1
  82. package/dist/p-stv-core/events.d.ts.map +1 -1
  83. package/dist/p-stv-core/events.js +21 -9
  84. package/dist/p-stv-core/events.js.map +1 -1
  85. package/dist/p-stv-core/index.d.ts +4 -0
  86. package/dist/p-stv-core/index.d.ts.map +1 -1
  87. package/dist/p-stv-core/index.js +4 -0
  88. package/dist/p-stv-core/index.js.map +1 -1
  89. package/dist/p-stv-core/instructions.d.ts +58 -1
  90. package/dist/p-stv-core/instructions.d.ts.map +1 -1
  91. package/dist/p-stv-core/instructions.js +93 -9
  92. package/dist/p-stv-core/instructions.js.map +1 -1
  93. package/dist/p-stv-core/pda.d.ts +1 -0
  94. package/dist/p-stv-core/pda.d.ts.map +1 -1
  95. package/dist/p-stv-core/pda.js +4 -0
  96. package/dist/p-stv-core/pda.js.map +1 -1
  97. package/dist/p-stv-core/prices.d.ts +21 -0
  98. package/dist/p-stv-core/prices.d.ts.map +1 -0
  99. package/dist/p-stv-core/prices.js +78 -0
  100. package/dist/p-stv-core/prices.js.map +1 -0
  101. package/dist/p-stv-core/remaining-accounts.d.ts +99 -0
  102. package/dist/p-stv-core/remaining-accounts.d.ts.map +1 -0
  103. package/dist/p-stv-core/remaining-accounts.js +262 -0
  104. package/dist/p-stv-core/remaining-accounts.js.map +1 -0
  105. package/dist/p-stv-core/send-tx.d.ts +56 -0
  106. package/dist/p-stv-core/send-tx.d.ts.map +1 -0
  107. package/dist/p-stv-core/send-tx.js +299 -0
  108. package/dist/p-stv-core/send-tx.js.map +1 -0
  109. package/dist/p-stv-core/sol-wrap.d.ts +35 -0
  110. package/dist/p-stv-core/sol-wrap.d.ts.map +1 -0
  111. package/dist/p-stv-core/sol-wrap.js +95 -0
  112. package/dist/p-stv-core/sol-wrap.js.map +1 -0
  113. package/dist/p-stv-core/types.d.ts +35 -4
  114. package/dist/p-stv-core/types.d.ts.map +1 -1
  115. package/package.json +5 -5
  116. package/dist/jlp-strategy/accounts.d.ts +0 -11
  117. package/dist/jlp-strategy/accounts.d.ts.map +0 -1
  118. package/dist/jlp-strategy/accounts.js.map +0 -1
  119. package/dist/jlp-strategy/constants.d.ts +0 -36
  120. package/dist/jlp-strategy/constants.d.ts.map +0 -1
  121. package/dist/jlp-strategy/constants.js +0 -47
  122. package/dist/jlp-strategy/constants.js.map +0 -1
  123. package/dist/jlp-strategy/index.d.ts +0 -5
  124. package/dist/jlp-strategy/index.d.ts.map +0 -1
  125. package/dist/jlp-strategy/index.js.map +0 -1
  126. package/dist/jlp-strategy/pda.d.ts +0 -5
  127. package/dist/jlp-strategy/pda.d.ts.map +0 -1
  128. package/dist/jlp-strategy/pda.js.map +0 -1
  129. package/dist/jlp-strategy/types.d.ts +0 -25
  130. package/dist/jlp-strategy/types.d.ts.map +0 -1
  131. /package/dist/{jlp-strategy → jlpd-strategy}/types.js +0 -0
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JLPD_VAULT_IDS = exports.BPS_DENOMINATOR = exports.PPS_DECIMALS = exports.MAX_PERF_FEE_BPS = exports.MAX_MGMT_FEE_BPS = exports.NUM_ASSETS = exports.FLAG_TEST_MODE = exports.FLAG_REBALANCE_DISABLED = exports.FLAG_JLP_DISABLED = exports.FLAG_WITHDRAWALS_DISABLED = exports.FLAG_DEPOSITS_DISABLED = exports.FLAG_PAUSED = exports.JLP_VAULT_SIZE = exports.STV_POSITION_SIZE = exports.STRATEGY_STATE_SIZE = exports.MANAGER_ROLE_SIZE = exports.JLPD_CONFIG_SIZE = exports.IX_INIT_OR_UPDATE_JLP_VAULT = exports.IX_REMOVE_MANAGER = exports.IX_ADD_MANAGER = exports.IX_SETTLE_YIELD = exports.IX_SWAP_JLP = exports.IX_UPDATE_AUM = exports.IX_WITHDRAW = exports.IX_DEPOSIT = exports.IX_CLOSE_POSITION = exports.IX_INIT_POSITION = exports.IX_INIT_OR_UPDATE_STRATEGY_STATE = exports.IX_INIT_OR_UPDATE_CONFIG = exports.DISC_JLP_VAULT = exports.DISC_STV_POSITION = exports.DISC_STRATEGY_STATE = exports.DISC_MANAGER_ROLE = exports.DISC_JLPD_CONFIG = exports.JLP_VAULT_SEED = exports.POSITION_SEED = exports.STRATEGY_STATE_SEED = exports.MANAGER_SEED = exports.CONFIG_SEED = exports.JUPITER_PERPS_PROGRAM = exports.JLP_POOL_ACCOUNT = exports.DOVES_SOL_USD = exports.DOVES_ETH_USD = exports.DOVES_BTC_USD = exports.JUPITER_PROGRAM = exports.JLP_MINT = exports.PROGRAM_ID_DEVNET = exports.PROGRAM_ID_MAINNET = exports.PROGRAM_ID = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ exports.PROGRAM_ID = new web3_js_1.PublicKey("GXqt4ZH2UUBsLWwMNJiZMXza3q7xEGChfW8XjVRjLxr5");
6
+ exports.PROGRAM_ID_MAINNET = exports.PROGRAM_ID;
7
+ exports.PROGRAM_ID_DEVNET = new web3_js_1.PublicKey("AcVcAihjB9Z3Lg3ZiboWxni2sTzXUrrsF3unGX4ntn6p");
8
+ // ---------------------------------------------------------------------------
9
+ // Known mainnet addresses
10
+ // ---------------------------------------------------------------------------
11
+ /** JLP token mint */
12
+ exports.JLP_MINT = new web3_js_1.PublicKey("27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4");
13
+ /** Jupiter aggregator program (swap routing) */
14
+ exports.JUPITER_PROGRAM = new web3_js_1.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4");
15
+ /** Doves oracle: BTC/USD price feed */
16
+ exports.DOVES_BTC_USD = new web3_js_1.PublicKey("4HBbPx9QJdjJ7GUe6bsiJjGybvfpDhQMMPXP1UEa7VT5");
17
+ /** Doves oracle: ETH/USD price feed */
18
+ exports.DOVES_ETH_USD = new web3_js_1.PublicKey("5URYohbPy32nxK1t3jAHVNfdWY2xTubHiFvLrE3VhXEp");
19
+ /** Doves oracle: SOL/USD price feed */
20
+ exports.DOVES_SOL_USD = new web3_js_1.PublicKey("39cWjvHrpHNz2SbXv6ME4NPhqBDBd4KsjUYv5JkHEAJU");
21
+ /** Jupiter Perps Pool account (stores aumUsd for JLP price calculation) */
22
+ exports.JLP_POOL_ACCOUNT = new web3_js_1.PublicKey("5BUwFW4nRbftYTDMbgxykoFWqWHPzahFSNAaaaJtVKsq");
23
+ /** Jupiter Perpetuals Program ID */
24
+ exports.JUPITER_PERPS_PROGRAM = new web3_js_1.PublicKey("PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu");
25
+ // PDA Seeds
26
+ exports.CONFIG_SEED = Buffer.from("config");
27
+ exports.MANAGER_SEED = Buffer.from("manager");
28
+ exports.STRATEGY_STATE_SEED = Buffer.from("strategy_state");
29
+ exports.POSITION_SEED = Buffer.from("position");
30
+ /** @deprecated Use CONFIG_SEED instead */
31
+ exports.JLP_VAULT_SEED = exports.CONFIG_SEED;
32
+ // Account discriminators (Anchor 8-byte)
33
+ // sha256("account:JlpdConfig")[..8]
34
+ exports.DISC_JLPD_CONFIG = Buffer.from([185, 146, 185, 28, 172, 71, 122, 38]);
35
+ // sha256("account:ManagerRole")[..8]
36
+ exports.DISC_MANAGER_ROLE = Buffer.from([37, 232, 100, 233, 170, 233, 219, 185]);
37
+ exports.DISC_STRATEGY_STATE = Buffer.from([83, 18, 224, 109, 174, 100, 39, 139]);
38
+ exports.DISC_STV_POSITION = Buffer.from([47, 212, 251, 176, 138, 160, 30, 87]);
39
+ /** @deprecated Use DISC_JLPD_CONFIG instead */
40
+ exports.DISC_JLP_VAULT = exports.DISC_JLPD_CONFIG;
41
+ // Instruction discriminators (Anchor 8-byte)
42
+ exports.IX_INIT_OR_UPDATE_CONFIG = Buffer.from([234, 24, 218, 120, 213, 149, 245, 213]);
43
+ exports.IX_INIT_OR_UPDATE_STRATEGY_STATE = Buffer.from([223, 7, 93, 99, 12, 44, 180, 255]);
44
+ exports.IX_INIT_POSITION = Buffer.from([197, 20, 10, 1, 97, 160, 177, 91]);
45
+ exports.IX_CLOSE_POSITION = Buffer.from([123, 134, 81, 0, 49, 68, 98, 98]);
46
+ exports.IX_DEPOSIT = Buffer.from([242, 35, 198, 137, 82, 225, 242, 182]);
47
+ exports.IX_WITHDRAW = Buffer.from([183, 18, 70, 156, 148, 109, 161, 34]);
48
+ exports.IX_UPDATE_AUM = Buffer.from([162, 40, 227, 16, 84, 169, 182, 185]);
49
+ exports.IX_SWAP_JLP = Buffer.from([190, 44, 224, 191, 169, 243, 146, 127]);
50
+ exports.IX_SETTLE_YIELD = Buffer.from([64, 28, 44, 24, 43, 204, 58, 215]);
51
+ // sha256("global:add_manager")[..8]
52
+ exports.IX_ADD_MANAGER = Buffer.from([125, 38, 192, 212, 101, 91, 179, 16]);
53
+ // sha256("global:remove_manager")[..8]
54
+ exports.IX_REMOVE_MANAGER = Buffer.from([150, 55, 157, 77, 128, 148, 7, 15]);
55
+ /** @deprecated Use IX_INIT_OR_UPDATE_CONFIG instead */
56
+ exports.IX_INIT_OR_UPDATE_JLP_VAULT = exports.IX_INIT_OR_UPDATE_CONFIG;
57
+ // Account sizes
58
+ exports.JLPD_CONFIG_SIZE = 272;
59
+ exports.MANAGER_ROLE_SIZE = 80;
60
+ exports.STRATEGY_STATE_SIZE = 160;
61
+ exports.STV_POSITION_SIZE = 56;
62
+ /** @deprecated Use JLPD_CONFIG_SIZE instead */
63
+ exports.JLP_VAULT_SIZE = exports.JLPD_CONFIG_SIZE;
64
+ // Flags
65
+ exports.FLAG_PAUSED = 0x0001;
66
+ exports.FLAG_DEPOSITS_DISABLED = 0x0002;
67
+ exports.FLAG_WITHDRAWALS_DISABLED = 0x0004;
68
+ exports.FLAG_JLP_DISABLED = 0x0008;
69
+ exports.FLAG_REBALANCE_DISABLED = 0x0010;
70
+ exports.FLAG_TEST_MODE = 0x0020;
71
+ // Limits
72
+ exports.NUM_ASSETS = 5;
73
+ exports.MAX_MGMT_FEE_BPS = 500;
74
+ exports.MAX_PERF_FEE_BPS = 3000;
75
+ var constants_1 = require("../common/constants");
76
+ Object.defineProperty(exports, "PPS_DECIMALS", { enumerable: true, get: function () { return constants_1.PPS_DECIMALS; } });
77
+ Object.defineProperty(exports, "BPS_DENOMINATOR", { enumerable: true, get: function () { return constants_1.BPS_DENOMINATOR; } });
78
+ /** Maps base_mint address → p-STV Core vault_id for JLPD strategy STVs */
79
+ exports.JLPD_VAULT_IDS = {
80
+ "3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh": 11, // BTC
81
+ "7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs": 12, // ETH
82
+ "So11111111111111111111111111111111111111112": 13, // SOL
83
+ "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v": 14, // USDC
84
+ "JuprjznTrTSp2UFa3ZBUFgwdAmtZCq4MQCwysN55USD": 15, // JupUSD
85
+ };
86
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/jlpd-strategy/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from "./constants";
2
+ export * from "./types";
3
+ export * from "./pda";
4
+ export * from "./accounts";
5
+ export * from "./instructions";
6
+ export * from "./swap-jlp";
7
+ export * from "./settle-yield";
8
+ export * from "./jlp-data";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jlpd-strategy/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,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -18,4 +18,8 @@ __exportStar(require("./constants"), exports);
18
18
  __exportStar(require("./types"), exports);
19
19
  __exportStar(require("./pda"), exports);
20
20
  __exportStar(require("./accounts"), exports);
21
+ __exportStar(require("./instructions"), exports);
22
+ __exportStar(require("./swap-jlp"), exports);
23
+ __exportStar(require("./settle-yield"), exports);
24
+ __exportStar(require("./jlp-data"), exports);
21
25
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jlpd-strategy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB;AACxB,wCAAsB;AACtB,6CAA2B;AAC3B,iDAA+B;AAC/B,6CAA2B;AAC3B,iDAA+B;AAC/B,6CAA2B"}
@@ -0,0 +1,41 @@
1
+ import { PublicKey, TransactionInstruction } from "@solana/web3.js";
2
+ export interface AddManagerArgs {
3
+ admin: PublicKey;
4
+ payer: PublicKey;
5
+ config: PublicKey;
6
+ managerRole: PublicKey;
7
+ manager: PublicKey;
8
+ systemProgram?: PublicKey;
9
+ }
10
+ /**
11
+ * Create an `add_manager` instruction for the JLPD Strategy program.
12
+ *
13
+ * Anchor instruction data: [8-byte disc, 32-byte manager pubkey]
14
+ *
15
+ * Accounts:
16
+ * 0. admin (signer)
17
+ * 1. payer (signer, writable)
18
+ * 2. config (writable — Anchor init needs writable config for bump read)
19
+ * 3. manager_role (writable — init)
20
+ * 4. system_program
21
+ */
22
+ export declare function createAddManagerIx(args: AddManagerArgs, programId?: PublicKey): TransactionInstruction;
23
+ export interface RemoveManagerArgs {
24
+ admin: PublicKey;
25
+ payer: PublicKey;
26
+ config: PublicKey;
27
+ managerRole: PublicKey;
28
+ }
29
+ /**
30
+ * Create a `remove_manager` instruction for the JLPD Strategy program.
31
+ *
32
+ * Anchor instruction data: [8-byte disc]
33
+ *
34
+ * Accounts:
35
+ * 0. admin (signer)
36
+ * 1. payer (writable — receives rent)
37
+ * 2. config
38
+ * 3. manager_role (writable — closed)
39
+ */
40
+ export declare function createRemoveManagerIx(args: RemoveManagerArgs, programId?: PublicKey): TransactionInstruction;
41
+ //# sourceMappingURL=instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/jlpd-strategy/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAWzB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,OAAO,EAAE,SAAS,CAAC;IACnB,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,cAAc,EACpB,SAAS,GAAE,SAAsB,GAChC,sBAAsB,CA0BxB;AAMD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,iBAAiB,EACvB,SAAS,GAAE,SAAsB,GAChC,sBAAsB,CAiBxB"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAddManagerIx = createAddManagerIx;
4
+ exports.createRemoveManagerIx = createRemoveManagerIx;
5
+ const web3_js_1 = require("@solana/web3.js");
6
+ const constants_1 = require("./constants");
7
+ /**
8
+ * Create an `add_manager` instruction for the JLPD Strategy program.
9
+ *
10
+ * Anchor instruction data: [8-byte disc, 32-byte manager pubkey]
11
+ *
12
+ * Accounts:
13
+ * 0. admin (signer)
14
+ * 1. payer (signer, writable)
15
+ * 2. config (writable — Anchor init needs writable config for bump read)
16
+ * 3. manager_role (writable — init)
17
+ * 4. system_program
18
+ */
19
+ function createAddManagerIx(args, programId = constants_1.PROGRAM_ID) {
20
+ const { admin, payer, config, managerRole, manager, systemProgram = web3_js_1.SystemProgram.programId, } = args;
21
+ // Anchor discriminator (8 bytes) + manager pubkey (32 bytes)
22
+ const data = Buffer.alloc(8 + 32);
23
+ constants_1.IX_ADD_MANAGER.copy(data, 0);
24
+ manager.toBuffer().copy(data, 8);
25
+ return new web3_js_1.TransactionInstruction({
26
+ keys: [
27
+ { pubkey: admin, isSigner: true, isWritable: false },
28
+ { pubkey: payer, isSigner: true, isWritable: true },
29
+ { pubkey: config, isSigner: false, isWritable: false },
30
+ { pubkey: managerRole, isSigner: false, isWritable: true },
31
+ { pubkey: systemProgram, isSigner: false, isWritable: false },
32
+ ],
33
+ programId,
34
+ data,
35
+ });
36
+ }
37
+ /**
38
+ * Create a `remove_manager` instruction for the JLPD Strategy program.
39
+ *
40
+ * Anchor instruction data: [8-byte disc]
41
+ *
42
+ * Accounts:
43
+ * 0. admin (signer)
44
+ * 1. payer (writable — receives rent)
45
+ * 2. config
46
+ * 3. manager_role (writable — closed)
47
+ */
48
+ function createRemoveManagerIx(args, programId = constants_1.PROGRAM_ID) {
49
+ const { admin, payer, config, managerRole } = args;
50
+ // Anchor discriminator only (8 bytes)
51
+ const data = Buffer.alloc(8);
52
+ constants_1.IX_REMOVE_MANAGER.copy(data, 0);
53
+ return new web3_js_1.TransactionInstruction({
54
+ keys: [
55
+ { pubkey: admin, isSigner: true, isWritable: false },
56
+ { pubkey: payer, isSigner: false, isWritable: true },
57
+ { pubkey: config, isSigner: false, isWritable: false },
58
+ { pubkey: managerRole, isSigner: false, isWritable: true },
59
+ ],
60
+ programId,
61
+ data,
62
+ });
63
+ }
64
+ //# sourceMappingURL=instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/jlpd-strategy/instructions.ts"],"names":[],"mappings":";;AAoCA,gDA6BC;AAwBD,sDAoBC;AA7GD,6CAIyB;AACzB,2CAIqB;AAerB;;;;;;;;;;;GAWG;AACH,SAAgB,kBAAkB,CAChC,IAAoB,EACpB,YAAuB,sBAAU;IAEjC,MAAM,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,OAAO,EACP,aAAa,GAAG,uBAAa,CAAC,SAAS,GACxC,GAAG,IAAI,CAAC;IAET,6DAA6D;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAClC,0BAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7B,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEjC,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI,EAAE;YACJ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;YACpD,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACnD,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;YACtD,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;YAC1D,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;SAC9D;QACD,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAaD;;;;;;;;;;GAUG;AACH,SAAgB,qBAAqB,CACnC,IAAuB,EACvB,YAAuB,sBAAU;IAEjC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAEnD,sCAAsC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,6BAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhC,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI,EAAE;YACJ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;YACpD,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;YACpD,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;YACtD,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;SAC3D;QACD,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { Connection, PublicKey } from "@solana/web3.js";
2
+ export type CustodyName = "SOL" | "ETH" | "WBTC" | "USDC" | "USDT";
3
+ export interface JlpCustody {
4
+ name: CustodyName;
5
+ aumUsd: number;
6
+ weightBps: number;
7
+ priceUsd: number;
8
+ }
9
+ export interface JlpData {
10
+ timestamp: string;
11
+ totalAumUsd: number;
12
+ custodies: JlpCustody[];
13
+ }
14
+ /** Jupiter Perps Pool fee parameters (from on-chain Pool account) */
15
+ export interface JlpPoolFees {
16
+ addRemoveLiquidityBps: number;
17
+ swapBps: number;
18
+ taxBps: number;
19
+ stableSwapBps: number;
20
+ stableSwapTaxBps: number;
21
+ }
22
+ /** Per-custody info including target weight and current weight */
23
+ export interface JlpCustodyInfo {
24
+ mint: PublicKey;
25
+ name: CustodyName;
26
+ targetRatioBps: number;
27
+ currentRatioBps: number;
28
+ aumUsd: number;
29
+ isStable: boolean;
30
+ }
31
+ /** Full pool details: fees, custody weights, AUM, JLP price */
32
+ export interface JlpPoolDetails {
33
+ fees: JlpPoolFees | null;
34
+ custodies: JlpCustodyInfo[];
35
+ poolAumUsd: number;
36
+ jlpPrice: number;
37
+ jlpSupply: number;
38
+ }
39
+ /**
40
+ * Fetch full JLP pool details: fee parameters, per-custody target/current
41
+ * weights, pool AUM, and JLP price.
42
+ *
43
+ * Reads the Pool account for fees and aumUsd, Custody accounts for per-asset
44
+ * data including target weights, and the JLP mint for total supply.
45
+ */
46
+ export declare function fetchJlpPoolDetails(connection: Connection): Promise<JlpPoolDetails>;
47
+ /**
48
+ * Estimate the addLiquidity fee for depositing into a specific JLP custody.
49
+ *
50
+ * Implements the Jupiter Perps fee formula:
51
+ * - If deposit moves custody weight TOWARD target: rebate (fee < baseFee)
52
+ * - If deposit moves custody weight AWAY from target: tax (fee > baseFee)
53
+ *
54
+ * Formula:
55
+ * initDiff = |currentRatio - targetRatio|
56
+ * finalDiff = |newRatio - targetRatio|
57
+ * avgDiff = (initDiff + finalDiff) / 2
58
+ * if improving: fee = max(baseFee - taxBps * avgDiff / 10000, 0)
59
+ * if worsening: fee = baseFee + taxBps * avgDiff / 10000
60
+ */
61
+ export declare function computeAddLiquidityFee(args: {
62
+ custodyAumUsd: number;
63
+ poolAumUsd: number;
64
+ targetRatioBps: number;
65
+ depositUsd: number;
66
+ fees: JlpPoolFees;
67
+ isStable: boolean;
68
+ }): {
69
+ feeBps: number;
70
+ isDiscount: boolean;
71
+ };
72
+ export declare function fetchJlpCustodyData(connection: Connection): Promise<JlpData>;
73
+ //# sourceMappingURL=jlp-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jlp-data.d.ts","sourceRoot":"","sources":["../../src/jlpd-strategy/jlp-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAOxD,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAMD,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAsTD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAmFzF;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CA4B1C;AAMD,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAuClF"}