@elmntl/jlpd-sdk 0.1.11 → 0.13.4

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 (115) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +185 -404
  3. package/dist/common/ata.d.ts +26 -0
  4. package/dist/common/ata.js +48 -0
  5. package/dist/common/buffer.d.ts +15 -0
  6. package/dist/common/buffer.js +118 -0
  7. package/dist/common/connection.d.ts +13 -0
  8. package/dist/common/connection.js +2 -0
  9. package/dist/common/constants.d.ts +14 -0
  10. package/dist/common/constants.js +31 -0
  11. package/dist/common/index.d.ts +6 -0
  12. package/dist/common/index.js +28 -0
  13. package/dist/common/strategy-interface.d.ts +59 -0
  14. package/dist/common/strategy-interface.js +42 -0
  15. package/dist/elemental-lend/accounts.d.ts +103 -0
  16. package/dist/elemental-lend/accounts.js +354 -0
  17. package/dist/elemental-lend/constants.d.ts +25 -0
  18. package/dist/elemental-lend/constants.js +48 -0
  19. package/dist/elemental-lend/index.d.ts +8 -0
  20. package/dist/elemental-lend/index.js +24 -0
  21. package/dist/elemental-lend/instructions.d.ts +104 -0
  22. package/dist/elemental-lend/instructions.js +266 -0
  23. package/dist/elemental-lend/jupiter-lend.d.ts +91 -0
  24. package/dist/elemental-lend/jupiter-lend.js +189 -0
  25. package/dist/elemental-lend/kamino-vault.d.ts +173 -0
  26. package/dist/elemental-lend/kamino-vault.js +483 -0
  27. package/dist/elemental-lend/pda.d.ts +12 -0
  28. package/dist/elemental-lend/pda.js +24 -0
  29. package/dist/elemental-lend/protocol-actions.d.ts +56 -0
  30. package/dist/elemental-lend/protocol-actions.js +244 -0
  31. package/dist/elemental-lend/types.d.ts +113 -0
  32. package/dist/elemental-lend/types.js +2 -0
  33. package/dist/elemental-lend-v2/accounts.d.ts +14 -0
  34. package/dist/elemental-lend-v2/accounts.js +136 -0
  35. package/dist/elemental-lend-v2/adapters.d.ts +22 -0
  36. package/dist/elemental-lend-v2/adapters.js +50 -0
  37. package/dist/elemental-lend-v2/constants.d.ts +48 -0
  38. package/dist/elemental-lend-v2/constants.js +104 -0
  39. package/dist/elemental-lend-v2/index.d.ts +8 -0
  40. package/dist/elemental-lend-v2/index.js +24 -0
  41. package/dist/elemental-lend-v2/instructions.d.ts +96 -0
  42. package/dist/elemental-lend-v2/instructions.js +190 -0
  43. package/dist/elemental-lend-v2/lut.d.ts +20 -0
  44. package/dist/elemental-lend-v2/lut.js +65 -0
  45. package/dist/elemental-lend-v2/pda.d.ts +9 -0
  46. package/dist/elemental-lend-v2/pda.js +27 -0
  47. package/dist/elemental-lend-v2/types.d.ts +105 -0
  48. package/dist/elemental-lend-v2/types.js +2 -0
  49. package/dist/elemental-lend-v2/update-aum.d.ts +29 -0
  50. package/dist/elemental-lend-v2/update-aum.js +82 -0
  51. package/dist/index.d.ts +5 -3552
  52. package/dist/index.js +37 -4454
  53. package/dist/jlpd-strategy/accounts.d.ts +83 -0
  54. package/dist/jlpd-strategy/accounts.js +216 -0
  55. package/dist/jlpd-strategy/adapter.d.ts +81 -0
  56. package/dist/jlpd-strategy/adapter.js +118 -0
  57. package/dist/jlpd-strategy/base-to-base-swap.d.ts +74 -0
  58. package/dist/jlpd-strategy/base-to-base-swap.js +205 -0
  59. package/dist/jlpd-strategy/constants.d.ts +127 -0
  60. package/dist/jlpd-strategy/constants.js +174 -0
  61. package/dist/jlpd-strategy/fluid-view.d.ts +199 -0
  62. package/dist/jlpd-strategy/fluid-view.js +799 -0
  63. package/dist/jlpd-strategy/hedge-derived.d.ts +135 -0
  64. package/dist/jlpd-strategy/hedge-derived.js +231 -0
  65. package/dist/jlpd-strategy/hedge-instructions.d.ts +210 -0
  66. package/dist/jlpd-strategy/hedge-instructions.js +300 -0
  67. package/dist/jlpd-strategy/hedge-state.d.ts +88 -0
  68. package/dist/jlpd-strategy/hedge-state.js +110 -0
  69. package/dist/jlpd-strategy/index.d.ts +17 -0
  70. package/dist/jlpd-strategy/index.js +33 -0
  71. package/dist/jlpd-strategy/instructions.d.ts +159 -0
  72. package/dist/jlpd-strategy/instructions.js +234 -0
  73. package/dist/jlpd-strategy/jlp-borrow.d.ts +63 -0
  74. package/dist/jlpd-strategy/jlp-borrow.js +87 -0
  75. package/dist/jlpd-strategy/jlp-data.d.ts +166 -0
  76. package/dist/jlpd-strategy/jlp-data.js +611 -0
  77. package/dist/jlpd-strategy/jupusd-earn.d.ts +90 -0
  78. package/dist/jlpd-strategy/jupusd-earn.js +166 -0
  79. package/dist/jlpd-strategy/live-jlp-price.d.ts +46 -0
  80. package/dist/jlpd-strategy/live-jlp-price.js +267 -0
  81. package/dist/jlpd-strategy/pda.d.ts +13 -0
  82. package/dist/jlpd-strategy/pda.js +28 -0
  83. package/dist/jlpd-strategy/settle-yield.d.ts +45 -0
  84. package/dist/jlpd-strategy/settle-yield.js +113 -0
  85. package/dist/jlpd-strategy/swap-jlp.d.ts +198 -0
  86. package/dist/jlpd-strategy/swap-jlp.js +586 -0
  87. package/dist/jlpd-strategy/types.d.ts +101 -0
  88. package/dist/jlpd-strategy/types.js +29 -0
  89. package/dist/p-stv-core/accounts.d.ts +152 -0
  90. package/dist/p-stv-core/accounts.js +407 -0
  91. package/dist/p-stv-core/constants.d.ts +138 -0
  92. package/dist/p-stv-core/constants.js +181 -0
  93. package/dist/p-stv-core/events.d.ts +7 -0
  94. package/dist/p-stv-core/events.js +246 -0
  95. package/dist/p-stv-core/index.d.ts +11 -0
  96. package/dist/p-stv-core/index.js +27 -0
  97. package/dist/p-stv-core/instructions.d.ts +637 -0
  98. package/dist/p-stv-core/instructions.js +670 -0
  99. package/dist/p-stv-core/lut.d.ts +41 -0
  100. package/dist/p-stv-core/lut.js +81 -0
  101. package/dist/p-stv-core/pda.d.ts +30 -0
  102. package/dist/p-stv-core/pda.js +65 -0
  103. package/dist/p-stv-core/prices.d.ts +20 -0
  104. package/dist/p-stv-core/prices.js +77 -0
  105. package/dist/p-stv-core/remaining-accounts.d.ts +107 -0
  106. package/dist/p-stv-core/remaining-accounts.js +326 -0
  107. package/dist/p-stv-core/send-tx.d.ts +72 -0
  108. package/dist/p-stv-core/send-tx.js +290 -0
  109. package/dist/p-stv-core/sol-wrap.d.ts +34 -0
  110. package/dist/p-stv-core/sol-wrap.js +74 -0
  111. package/dist/p-stv-core/types.d.ts +361 -0
  112. package/dist/p-stv-core/types.js +2 -0
  113. package/package.json +56 -15
  114. package/dist/index.d.mts +0 -3552
  115. package/dist/index.mjs +0 -4363
@@ -0,0 +1,138 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ export declare const PROGRAM_ID: PublicKey;
3
+ export declare const CONFIG_SEED: Buffer<ArrayBuffer>;
4
+ export declare const STV_SEED: Buffer<ArrayBuffer>;
5
+ export declare const EV_MINT_SEED: Buffer<ArrayBuffer>;
6
+ export declare const WITHDRAW_REQUEST_SEED: Buffer<ArrayBuffer>;
7
+ export declare const MIGRATE_REQUEST_SEED: Buffer<ArrayBuffer>;
8
+ export declare const DELAYED_DEPOSIT_SEED: Buffer<ArrayBuffer>;
9
+ export declare const MANAGER_SEED: Buffer<ArrayBuffer>;
10
+ export declare const DISC_GLOBAL_CONFIG: Buffer<ArrayBuffer>;
11
+ export declare const DISC_STV: Buffer<ArrayBuffer>;
12
+ export declare const DISC_WITHDRAW_REQUEST: Buffer<ArrayBuffer>;
13
+ export declare const DISC_DELAYED_DEPOSIT_REQUEST: Buffer<ArrayBuffer>;
14
+ export { DISC_MANAGER_ROLE } from "../common/constants";
15
+ export declare const IX_INIT_OR_UPDATE_CONFIG = 0;
16
+ export declare const IX_INIT_OR_UPDATE_STV = 1;
17
+ export declare const IX_DEPOSIT = 2;
18
+ export declare const IX_REQUEST_WITHDRAW = 3;
19
+ export declare const IX_CLAIM_WITHDRAW = 4;
20
+ export declare const IX_PROCESS_EPOCH = 5;
21
+ export declare const IX_DEPOSIT_TO_STRATEGY = 6;
22
+ export declare const IX_WITHDRAW_FROM_STRATEGY = 7;
23
+ export declare const IX_CLOSE_STV = 8;
24
+ export declare const IX_ADD_MANAGER = 9;
25
+ export declare const IX_REMOVE_MANAGER = 10;
26
+ export declare const IX_OVERRIDE_CLAIM_WITHDRAW = 11;
27
+ export declare const IX_MIGRATE_LEND = 12;
28
+ export declare const IX_MIGRATE_REQUEST = 13;
29
+ export declare const IX_MIGRATE_EXECUTE = 14;
30
+ export declare const IX_PROCESS_DELAYED_DEPOSIT = 15;
31
+ export declare const IX_MIGRATE_CANCEL = 16;
32
+ export declare const IX_INSTANT_WITHDRAW = 17;
33
+ export declare const IX_SEED_STV = 18;
34
+ /** accept_vault_admin (disc 0x14 = 20) — complete a two-step vault-admin rotation. */
35
+ export declare const IX_ACCEPT_VAULT_ADMIN = 20;
36
+ /**
37
+ * trip_circuit_breaker (disc 0x15 = 21) — freeze a vault (sets FLAG_PAUSED).
38
+ * Set-only, idempotent; callable by cold admin, warm admin, or a valid
39
+ * manager (OR-auth precedence: cold -> warm -> manager). Disc 21 is used
40
+ * (not the retired 19 = migrate_stv_layout) so a stale client replaying the
41
+ * old migration call keeps failing InvalidInstructionData instead of
42
+ * silently freezing a vault. See docs/spec-warm-admin-guardrails.md §4.3.
43
+ */
44
+ export declare const IX_TRIP_CIRCUIT_BREAKER = 21;
45
+ export declare const EVT_CONFIG_INITIALIZED = 0;
46
+ export declare const EVT_CONFIG_UPDATED = 1;
47
+ export declare const EVT_STV_CREATED = 2;
48
+ export declare const EVT_STV_UPDATED = 3;
49
+ export declare const EVT_DEPOSITED = 4;
50
+ export declare const EVT_WITHDRAW_REQUESTED = 5;
51
+ export declare const EVT_WITHDRAW_REQUEST_INCREASED = 6;
52
+ export declare const EVT_WITHDRAW_CLAIMED = 7;
53
+ export declare const EVT_DEPOSITED_TO_STRATEGY = 8;
54
+ export declare const EVT_WITHDRAWN_FROM_STRATEGY = 9;
55
+ export declare const EVT_EPOCH_PROCESSED = 10;
56
+ export declare const EVT_EPOCH_ADVANCED = 11;
57
+ export declare const EVT_FEES_SETTLED = 12;
58
+ export declare const EVT_STV_CLOSED = 13;
59
+ export declare const EVT_MANAGER_ADDED = 14;
60
+ export declare const EVT_MANAGER_REMOVED = 15;
61
+ export declare const EVT_WITHDRAW_OVERRIDE_CLAIMED = 16;
62
+ export declare const EVT_LEND_MIGRATED = 17;
63
+ export declare const EVT_MIGRATE_REQUESTED = 18;
64
+ export declare const EVT_MIGRATE_EXECUTED = 19;
65
+ export declare const EVT_DELAYED_DEPOSIT_PROCESSED = 20;
66
+ export declare const EVT_INSTANT_WITHDRAWN = 21;
67
+ export declare const EVT_STV_SEEDED = 22;
68
+ /** AdminRotationStarted — emitted when update sets pending_admin to nonzero. Fields: vault_id(8), newPendingAdmin(32). */
69
+ export declare const EVT_ADMIN_ROTATION_STARTED = 24;
70
+ /** AdminRotationAccepted — emitted by accept_vault_admin. Fields: vault_id(8), newAdmin(32). */
71
+ export declare const EVT_ADMIN_ROTATION_ACCEPTED = 25;
72
+ /**
73
+ * WarmAdminSet — emitted whenever the stored `Stv.warmAdmin` value actually
74
+ * changes: by init_or_update_stv (create/update) or by accept_vault_admin
75
+ * (self-warm promotion normalization). Fields: vaultId(8), warmAdmin(32).
76
+ * (23 = StvAdminSet stays dead; disc numbers are never reused.)
77
+ */
78
+ export declare const EVT_WARM_ADMIN_SET = 26;
79
+ /**
80
+ * CircuitBreakerTripped — emitted by trip_circuit_breaker (disc 21) every
81
+ * call, including idempotent re-trips of an already-paused vault.
82
+ * Fields: vaultId(8), trippedBy(32), authorityKind(1: 0=cold,1=warm,2=manager).
83
+ */
84
+ export declare const EVT_CIRCUIT_BREAKER_TRIPPED = 27;
85
+ /**
86
+ * `trip_circuit_breaker`'s `authority_kind` values (also the
87
+ * CircuitBreakerTripped event's authorityKind field). Precedence order at
88
+ * evaluation time is cold -> warm -> manager (first match wins — a stray or
89
+ * invalid manager_role account never vetoes a valid cold/warm signer).
90
+ */
91
+ export declare const TRIP_AUTHORITY_KIND_COLD = 0;
92
+ export declare const TRIP_AUTHORITY_KIND_WARM = 1;
93
+ export declare const TRIP_AUTHORITY_KIND_MANAGER = 2;
94
+ export declare const FLAG_PAUSED = 1;
95
+ export declare const FLAG_DEPOSITS_DISABLED = 2;
96
+ export declare const FLAG_WITHDRAWALS_DISABLED = 4;
97
+ export declare const FLAG_REBALANCE_DISABLED = 8;
98
+ export declare const FLAG_ALLOCATOR = 32;
99
+ /** Skip the per-epoch withdraw rate-limit on this STV (claim_withdraw + migrate_execute). */
100
+ export declare const FLAG_BYPASS_WITHDRAW_LIMIT = 64;
101
+ /** Source STV: apply withdrawal_fee_bps when migrating OUT via migrate_request/migrate_execute. */
102
+ export declare const FLAG_WITHDRAWAL_FEE_ON_MIGRATE = 128;
103
+ /** Dest STV: apply deposit_fee_bps when migrating IN via migrate_execute. */
104
+ export declare const FLAG_DEPOSIT_FEE_ON_MIGRATE = 256;
105
+ /** Delay user deposits by at least one epoch before evX is minted. */
106
+ export declare const FLAG_DELAYED_DEPOSIT = 512;
107
+ /** Migrate exit (source) skips the +1 epoch cooldown — in-protocol move, no drain risk. */
108
+ export declare const FLAG_BYPASS_MIGRATE_SRC_WAITOUT = 1024;
109
+ /** Migrate entry (dest) skips its waitout. */
110
+ export declare const FLAG_BYPASS_MIGRATE_DST_WAITOUT = 2048;
111
+ /**
112
+ * C-1 seed gate. Program-owned (set by seed_stv, never via
113
+ * init_or_update_stv). When unset, every public path reverts VaultNotSeeded.
114
+ * When set with locked_seed_shares > 0, the vault may run instant_withdraw.
115
+ */
116
+ export declare const FLAG_SEEDED = 4096;
117
+ /**
118
+ * Protocol-wide emergency pause. When set on `GlobalConfig.flags`, blocks
119
+ * every value-movement instruction across every STV (deposit, request/claim
120
+ * withdraw, process_epoch, deposit/withdraw_from_strategy,
121
+ * override_claim_withdraw). Admin/rescue paths
122
+ * (init_or_update_config, init_or_update_stv, close_stv, add/remove_manager)
123
+ * remain open so the admin can reconfigure and clear the pause.
124
+ */
125
+ export declare const CFG_FLAG_GLOBAL_PAUSED = 1;
126
+ export { PPS_DECIMALS, BPS_DENOMINATOR, STALENESS_THRESHOLD } from "../common/constants";
127
+ export declare const MAX_CHILD_VAULTS = 4;
128
+ export declare const MAX_STRATEGIES = 4;
129
+ export declare const FEE_CAP_BPS = 9900;
130
+ /** Max deposit_fee_bps / withdrawal_fee_bps (enforced at init_or_update_stv). */
131
+ export declare const MAX_FEE_BPS = 1000;
132
+ /** WithdrawRequest.request_flags bit 0: 0 = withdraw, 1 = migrate. */
133
+ export declare const WR_FLAG_MIGRATE = 1;
134
+ export declare const GLOBAL_CONFIG_SIZE = 56;
135
+ export declare const STV_SIZE = 664;
136
+ export declare const WITHDRAW_REQUEST_SIZE = 168;
137
+ export declare const DELAYED_DEPOSIT_REQUEST_SIZE = 152;
138
+ export declare const MANAGER_ROLE_SIZE = 80;
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EVT_MANAGER_REMOVED = exports.EVT_MANAGER_ADDED = exports.EVT_STV_CLOSED = exports.EVT_FEES_SETTLED = exports.EVT_EPOCH_ADVANCED = exports.EVT_EPOCH_PROCESSED = exports.EVT_WITHDRAWN_FROM_STRATEGY = exports.EVT_DEPOSITED_TO_STRATEGY = exports.EVT_WITHDRAW_CLAIMED = exports.EVT_WITHDRAW_REQUEST_INCREASED = exports.EVT_WITHDRAW_REQUESTED = exports.EVT_DEPOSITED = exports.EVT_STV_UPDATED = exports.EVT_STV_CREATED = exports.EVT_CONFIG_UPDATED = exports.EVT_CONFIG_INITIALIZED = exports.IX_TRIP_CIRCUIT_BREAKER = exports.IX_ACCEPT_VAULT_ADMIN = exports.IX_SEED_STV = exports.IX_INSTANT_WITHDRAW = exports.IX_MIGRATE_CANCEL = exports.IX_PROCESS_DELAYED_DEPOSIT = exports.IX_MIGRATE_EXECUTE = exports.IX_MIGRATE_REQUEST = exports.IX_MIGRATE_LEND = exports.IX_OVERRIDE_CLAIM_WITHDRAW = exports.IX_REMOVE_MANAGER = exports.IX_ADD_MANAGER = exports.IX_CLOSE_STV = exports.IX_WITHDRAW_FROM_STRATEGY = exports.IX_DEPOSIT_TO_STRATEGY = exports.IX_PROCESS_EPOCH = exports.IX_CLAIM_WITHDRAW = exports.IX_REQUEST_WITHDRAW = exports.IX_DEPOSIT = exports.IX_INIT_OR_UPDATE_STV = exports.IX_INIT_OR_UPDATE_CONFIG = exports.DISC_MANAGER_ROLE = exports.DISC_DELAYED_DEPOSIT_REQUEST = exports.DISC_WITHDRAW_REQUEST = exports.DISC_STV = exports.DISC_GLOBAL_CONFIG = exports.MANAGER_SEED = exports.DELAYED_DEPOSIT_SEED = exports.MIGRATE_REQUEST_SEED = exports.WITHDRAW_REQUEST_SEED = exports.EV_MINT_SEED = exports.STV_SEED = exports.CONFIG_SEED = exports.PROGRAM_ID = void 0;
4
+ exports.MANAGER_ROLE_SIZE = exports.DELAYED_DEPOSIT_REQUEST_SIZE = exports.WITHDRAW_REQUEST_SIZE = exports.STV_SIZE = exports.GLOBAL_CONFIG_SIZE = exports.WR_FLAG_MIGRATE = exports.MAX_FEE_BPS = exports.FEE_CAP_BPS = exports.MAX_STRATEGIES = exports.MAX_CHILD_VAULTS = exports.STALENESS_THRESHOLD = exports.BPS_DENOMINATOR = exports.PPS_DECIMALS = exports.CFG_FLAG_GLOBAL_PAUSED = exports.FLAG_SEEDED = exports.FLAG_BYPASS_MIGRATE_DST_WAITOUT = exports.FLAG_BYPASS_MIGRATE_SRC_WAITOUT = exports.FLAG_DELAYED_DEPOSIT = exports.FLAG_DEPOSIT_FEE_ON_MIGRATE = exports.FLAG_WITHDRAWAL_FEE_ON_MIGRATE = exports.FLAG_BYPASS_WITHDRAW_LIMIT = exports.FLAG_ALLOCATOR = exports.FLAG_REBALANCE_DISABLED = exports.FLAG_WITHDRAWALS_DISABLED = exports.FLAG_DEPOSITS_DISABLED = exports.FLAG_PAUSED = exports.TRIP_AUTHORITY_KIND_MANAGER = exports.TRIP_AUTHORITY_KIND_WARM = exports.TRIP_AUTHORITY_KIND_COLD = exports.EVT_CIRCUIT_BREAKER_TRIPPED = exports.EVT_WARM_ADMIN_SET = exports.EVT_ADMIN_ROTATION_ACCEPTED = exports.EVT_ADMIN_ROTATION_STARTED = exports.EVT_STV_SEEDED = exports.EVT_INSTANT_WITHDRAWN = exports.EVT_DELAYED_DEPOSIT_PROCESSED = exports.EVT_MIGRATE_EXECUTED = exports.EVT_MIGRATE_REQUESTED = exports.EVT_LEND_MIGRATED = exports.EVT_WITHDRAW_OVERRIDE_CLAIMED = void 0;
5
+ const web3_js_1 = require("@solana/web3.js");
6
+ // ---------------------------------------------------------------------------
7
+ // Program ID
8
+ // ---------------------------------------------------------------------------
9
+ exports.PROGRAM_ID = new web3_js_1.PublicKey("PSTVH77GiPqA3msXmpjAyUXdh3MytK37GCPbPzWu3Rc");
10
+ // ---------------------------------------------------------------------------
11
+ // PDA Seeds
12
+ // ---------------------------------------------------------------------------
13
+ exports.CONFIG_SEED = Buffer.from("config");
14
+ exports.STV_SEED = Buffer.from("stv");
15
+ exports.EV_MINT_SEED = Buffer.from("ev_mint");
16
+ exports.WITHDRAW_REQUEST_SEED = Buffer.from("withdraw_request");
17
+ exports.MIGRATE_REQUEST_SEED = Buffer.from("migrate_request");
18
+ exports.DELAYED_DEPOSIT_SEED = Buffer.from("delayed_deposit");
19
+ exports.MANAGER_SEED = Buffer.from("manager");
20
+ // ---------------------------------------------------------------------------
21
+ // Account Discriminators (8-byte Anchor-compatible)
22
+ // ---------------------------------------------------------------------------
23
+ exports.DISC_GLOBAL_CONFIG = Buffer.from([
24
+ 0x95, 0x08, 0x9c, 0xca, 0xa0, 0xfc, 0xb0, 0xd9,
25
+ ]);
26
+ exports.DISC_STV = Buffer.from([
27
+ 0xeb, 0xe0, 0xe4, 0x64, 0x04, 0xde, 0x9b, 0xa6,
28
+ ]);
29
+ exports.DISC_WITHDRAW_REQUEST = Buffer.from([
30
+ 0xba, 0xef, 0xae, 0xbf, 0xbd, 0x0d, 0x2f, 0xc4,
31
+ ]);
32
+ exports.DISC_DELAYED_DEPOSIT_REQUEST = Buffer.from([
33
+ 0x33, 0x09, 0xc3, 0xd1, 0xbd, 0xee, 0x7b, 0xe1,
34
+ ]);
35
+ // Shared with elemental-lend and jlpd-strategy — defined once in common/
36
+ var constants_1 = require("../common/constants");
37
+ Object.defineProperty(exports, "DISC_MANAGER_ROLE", { enumerable: true, get: function () { return constants_1.DISC_MANAGER_ROLE; } });
38
+ // ---------------------------------------------------------------------------
39
+ // Instruction Discriminators (1-byte)
40
+ // ---------------------------------------------------------------------------
41
+ exports.IX_INIT_OR_UPDATE_CONFIG = 0;
42
+ exports.IX_INIT_OR_UPDATE_STV = 1;
43
+ exports.IX_DEPOSIT = 2;
44
+ exports.IX_REQUEST_WITHDRAW = 3;
45
+ exports.IX_CLAIM_WITHDRAW = 4;
46
+ exports.IX_PROCESS_EPOCH = 5;
47
+ exports.IX_DEPOSIT_TO_STRATEGY = 6;
48
+ exports.IX_WITHDRAW_FROM_STRATEGY = 7;
49
+ exports.IX_CLOSE_STV = 8;
50
+ exports.IX_ADD_MANAGER = 9;
51
+ exports.IX_REMOVE_MANAGER = 10;
52
+ exports.IX_OVERRIDE_CLAIM_WITHDRAW = 11;
53
+ exports.IX_MIGRATE_LEND = 12;
54
+ exports.IX_MIGRATE_REQUEST = 13;
55
+ exports.IX_MIGRATE_EXECUTE = 14;
56
+ exports.IX_PROCESS_DELAYED_DEPOSIT = 15;
57
+ exports.IX_MIGRATE_CANCEL = 16;
58
+ exports.IX_INSTANT_WITHDRAW = 17;
59
+ exports.IX_SEED_STV = 18;
60
+ /** accept_vault_admin (disc 0x14 = 20) — complete a two-step vault-admin rotation. */
61
+ exports.IX_ACCEPT_VAULT_ADMIN = 20;
62
+ /**
63
+ * trip_circuit_breaker (disc 0x15 = 21) — freeze a vault (sets FLAG_PAUSED).
64
+ * Set-only, idempotent; callable by cold admin, warm admin, or a valid
65
+ * manager (OR-auth precedence: cold -> warm -> manager). Disc 21 is used
66
+ * (not the retired 19 = migrate_stv_layout) so a stale client replaying the
67
+ * old migration call keeps failing InvalidInstructionData instead of
68
+ * silently freezing a vault. See docs/spec-warm-admin-guardrails.md §4.3.
69
+ */
70
+ exports.IX_TRIP_CIRCUIT_BREAKER = 21;
71
+ // ---------------------------------------------------------------------------
72
+ // Event Discriminators (1-byte)
73
+ // ---------------------------------------------------------------------------
74
+ exports.EVT_CONFIG_INITIALIZED = 0;
75
+ exports.EVT_CONFIG_UPDATED = 1;
76
+ exports.EVT_STV_CREATED = 2;
77
+ exports.EVT_STV_UPDATED = 3;
78
+ exports.EVT_DEPOSITED = 4;
79
+ exports.EVT_WITHDRAW_REQUESTED = 5;
80
+ exports.EVT_WITHDRAW_REQUEST_INCREASED = 6;
81
+ exports.EVT_WITHDRAW_CLAIMED = 7;
82
+ exports.EVT_DEPOSITED_TO_STRATEGY = 8;
83
+ exports.EVT_WITHDRAWN_FROM_STRATEGY = 9;
84
+ exports.EVT_EPOCH_PROCESSED = 10;
85
+ exports.EVT_EPOCH_ADVANCED = 11;
86
+ exports.EVT_FEES_SETTLED = 12;
87
+ exports.EVT_STV_CLOSED = 13;
88
+ exports.EVT_MANAGER_ADDED = 14;
89
+ exports.EVT_MANAGER_REMOVED = 15;
90
+ exports.EVT_WITHDRAW_OVERRIDE_CLAIMED = 16;
91
+ exports.EVT_LEND_MIGRATED = 17;
92
+ exports.EVT_MIGRATE_REQUESTED = 18;
93
+ exports.EVT_MIGRATE_EXECUTED = 19;
94
+ exports.EVT_DELAYED_DEPOSIT_PROCESSED = 20;
95
+ exports.EVT_INSTANT_WITHDRAWN = 21;
96
+ exports.EVT_STV_SEEDED = 22;
97
+ /** AdminRotationStarted — emitted when update sets pending_admin to nonzero. Fields: vault_id(8), newPendingAdmin(32). */
98
+ exports.EVT_ADMIN_ROTATION_STARTED = 24;
99
+ /** AdminRotationAccepted — emitted by accept_vault_admin. Fields: vault_id(8), newAdmin(32). */
100
+ exports.EVT_ADMIN_ROTATION_ACCEPTED = 25;
101
+ /**
102
+ * WarmAdminSet — emitted whenever the stored `Stv.warmAdmin` value actually
103
+ * changes: by init_or_update_stv (create/update) or by accept_vault_admin
104
+ * (self-warm promotion normalization). Fields: vaultId(8), warmAdmin(32).
105
+ * (23 = StvAdminSet stays dead; disc numbers are never reused.)
106
+ */
107
+ exports.EVT_WARM_ADMIN_SET = 26;
108
+ /**
109
+ * CircuitBreakerTripped — emitted by trip_circuit_breaker (disc 21) every
110
+ * call, including idempotent re-trips of an already-paused vault.
111
+ * Fields: vaultId(8), trippedBy(32), authorityKind(1: 0=cold,1=warm,2=manager).
112
+ */
113
+ exports.EVT_CIRCUIT_BREAKER_TRIPPED = 27;
114
+ /**
115
+ * `trip_circuit_breaker`'s `authority_kind` values (also the
116
+ * CircuitBreakerTripped event's authorityKind field). Precedence order at
117
+ * evaluation time is cold -> warm -> manager (first match wins — a stray or
118
+ * invalid manager_role account never vetoes a valid cold/warm signer).
119
+ */
120
+ exports.TRIP_AUTHORITY_KIND_COLD = 0;
121
+ exports.TRIP_AUTHORITY_KIND_WARM = 1;
122
+ exports.TRIP_AUTHORITY_KIND_MANAGER = 2;
123
+ // ---------------------------------------------------------------------------
124
+ // Vault Flags
125
+ // ---------------------------------------------------------------------------
126
+ // STV flags
127
+ exports.FLAG_PAUSED = 0x0001;
128
+ exports.FLAG_DEPOSITS_DISABLED = 0x0002;
129
+ exports.FLAG_WITHDRAWALS_DISABLED = 0x0004;
130
+ exports.FLAG_REBALANCE_DISABLED = 0x0008;
131
+ exports.FLAG_ALLOCATOR = 0x0020;
132
+ /** Skip the per-epoch withdraw rate-limit on this STV (claim_withdraw + migrate_execute). */
133
+ exports.FLAG_BYPASS_WITHDRAW_LIMIT = 0x0040;
134
+ /** Source STV: apply withdrawal_fee_bps when migrating OUT via migrate_request/migrate_execute. */
135
+ exports.FLAG_WITHDRAWAL_FEE_ON_MIGRATE = 0x0080;
136
+ /** Dest STV: apply deposit_fee_bps when migrating IN via migrate_execute. */
137
+ exports.FLAG_DEPOSIT_FEE_ON_MIGRATE = 0x0100;
138
+ /** Delay user deposits by at least one epoch before evX is minted. */
139
+ exports.FLAG_DELAYED_DEPOSIT = 0x0200;
140
+ /** Migrate exit (source) skips the +1 epoch cooldown — in-protocol move, no drain risk. */
141
+ exports.FLAG_BYPASS_MIGRATE_SRC_WAITOUT = 0x0400;
142
+ /** Migrate entry (dest) skips its waitout. */
143
+ exports.FLAG_BYPASS_MIGRATE_DST_WAITOUT = 0x0800;
144
+ /**
145
+ * C-1 seed gate. Program-owned (set by seed_stv, never via
146
+ * init_or_update_stv). When unset, every public path reverts VaultNotSeeded.
147
+ * When set with locked_seed_shares > 0, the vault may run instant_withdraw.
148
+ */
149
+ exports.FLAG_SEEDED = 0x1000;
150
+ // GlobalConfig flags
151
+ /**
152
+ * Protocol-wide emergency pause. When set on `GlobalConfig.flags`, blocks
153
+ * every value-movement instruction across every STV (deposit, request/claim
154
+ * withdraw, process_epoch, deposit/withdraw_from_strategy,
155
+ * override_claim_withdraw). Admin/rescue paths
156
+ * (init_or_update_config, init_or_update_stv, close_stv, add/remove_manager)
157
+ * remain open so the admin can reconfigure and clear the pause.
158
+ */
159
+ exports.CFG_FLAG_GLOBAL_PAUSED = 0x0001;
160
+ // ---------------------------------------------------------------------------
161
+ // Protocol Constants
162
+ // ---------------------------------------------------------------------------
163
+ var constants_2 = require("../common/constants");
164
+ Object.defineProperty(exports, "PPS_DECIMALS", { enumerable: true, get: function () { return constants_2.PPS_DECIMALS; } });
165
+ Object.defineProperty(exports, "BPS_DENOMINATOR", { enumerable: true, get: function () { return constants_2.BPS_DENOMINATOR; } });
166
+ Object.defineProperty(exports, "STALENESS_THRESHOLD", { enumerable: true, get: function () { return constants_2.STALENESS_THRESHOLD; } });
167
+ exports.MAX_CHILD_VAULTS = 4;
168
+ exports.MAX_STRATEGIES = exports.MAX_CHILD_VAULTS; // backward compat
169
+ exports.FEE_CAP_BPS = 9900;
170
+ /** Max deposit_fee_bps / withdrawal_fee_bps (enforced at init_or_update_stv). */
171
+ exports.MAX_FEE_BPS = 1000;
172
+ /** WithdrawRequest.request_flags bit 0: 0 = withdraw, 1 = migrate. */
173
+ exports.WR_FLAG_MIGRATE = 0x01;
174
+ // ---------------------------------------------------------------------------
175
+ // Account Sizes
176
+ // ---------------------------------------------------------------------------
177
+ exports.GLOBAL_CONFIG_SIZE = 56;
178
+ exports.STV_SIZE = 664;
179
+ exports.WITHDRAW_REQUEST_SIZE = 168;
180
+ exports.DELAYED_DEPOSIT_REQUEST_SIZE = 152;
181
+ exports.MANAGER_ROLE_SIZE = 80;
@@ -0,0 +1,7 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import type { StvEvent } from "./types";
3
+ /**
4
+ * Parse events from transaction log messages.
5
+ * p-stv-core uses 1-byte event discriminators via sol_log_data.
6
+ */
7
+ export declare function parseEventsFromLogs(logs: string[], programId?: PublicKey): StvEvent[];
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseEventsFromLogs = parseEventsFromLogs;
4
+ const buffer_1 = require("../common/buffer");
5
+ const constants_1 = require("./constants");
6
+ const PROGRAM_DATA_PREFIX = "Program data: ";
7
+ /**
8
+ * Parse events from transaction log messages.
9
+ * p-stv-core uses 1-byte event discriminators via sol_log_data.
10
+ */
11
+ function parseEventsFromLogs(logs, programId = constants_1.PROGRAM_ID) {
12
+ const events = [];
13
+ const programIdStr = programId.toBase58();
14
+ let inProgram = false;
15
+ for (const line of logs) {
16
+ if (line.includes(`Program ${programIdStr} invoke`)) {
17
+ inProgram = true;
18
+ continue;
19
+ }
20
+ if (line.includes(`Program ${programIdStr} success`) ||
21
+ line.includes(`Program ${programIdStr} failed`)) {
22
+ inProgram = false;
23
+ continue;
24
+ }
25
+ if (!inProgram)
26
+ continue;
27
+ if (!line.startsWith(PROGRAM_DATA_PREFIX))
28
+ continue;
29
+ const dataStr = line.slice(PROGRAM_DATA_PREFIX.length);
30
+ const segments = dataStr.split(" ").filter((s) => s.length > 0);
31
+ if (segments.length === 0)
32
+ continue;
33
+ const buffers = segments.map((s) => Buffer.from(s, "base64"));
34
+ const combined = Buffer.concat(buffers);
35
+ if (combined.length === 0)
36
+ continue;
37
+ const evt = parseEventBuffer(combined);
38
+ if (evt)
39
+ events.push(evt);
40
+ }
41
+ return events;
42
+ }
43
+ /**
44
+ * p-stv-core event payload layout reference (offsets are within the
45
+ * `Program data: …` log buffer; see also `EVT_*` discriminators in
46
+ * `constants.ts`):
47
+ *
48
+ * ConfigInitialized [0..1] disc | [1..33] admin
49
+ * ConfigUpdated [0..1] disc | [1..33] admin | [33..35] flags
50
+ * StvCreated [0..1] disc | [1..9] vaultId | [9..41] baseMint |
51
+ * [41..73] evMint | [73..105] feeReceiver | [105..137] strategy |
52
+ * [137..169] lendProgram | [169..173] epochSec |
53
+ * [173..175] mgmtFeeBps | [175..177] perfFeeBps
54
+ * StvUpdated [0..1] disc | [1..9] vaultId | [9..41] feeReceiver |
55
+ * [41..43] flags | [43..45] mgmtFeeBps | [45..47] perfFeeBps |
56
+ * [47..55] vaultCapacity | [55..63] minDeposit |
57
+ * [63..64] childVaultCount | [64..96] lendProgram
58
+ * Deposited [0..1] disc | [1..9] vaultId | [9..41] user |
59
+ * [41..49] amount | [49..57] sharesMinted | [57..65] depositFeeShares |
60
+ * [65..73] pps
61
+ * WithdrawRequested [0..1] disc | [1..9] vaultId | [9..41] user |
62
+ * [41..49] shares | [49..53] epochId
63
+ * WithdrawRequestIncreased [0..1] disc | [1..9] vaultId | [9..41] user |
64
+ * [41..49] additionalShares | [49..57] totalShares |
65
+ * [57..61] epochId
66
+ * WithdrawClaimed [0..1] disc | [1..9] vaultId | [9..41] user |
67
+ * [41..49] shares | [49..57] baseAmount | [57..61] epochId
68
+ * DepositedToStrategy [0..1] disc | [1..9] vaultId | [9..41] strategy |
69
+ * [41..49] amount | [49..57] sharesReceived
70
+ * WithdrawnFromStrategy [0..1] disc | [1..9] vaultId | [9..41] strategy |
71
+ * [41..49] shares | [49..57] baseReceived
72
+ * EpochProcessed [0..1] disc | [1..9] vaultId | [9..13] epochId |
73
+ * [13..21] epochPps | [21..29] feeSharesMinted
74
+ * EpochAdvanced [0..1] disc | [1..9] vaultId | [9..13] newEpochId |
75
+ * [13..17] nextEpochTs
76
+ * FeesSettled [0..1] disc | [1..9] vaultId | [9..17] mgmtFeeBase |
77
+ * [17..25] perfFeeBase | [25..33] feeSharesMinted |
78
+ * [33..41] postFeePps | [41..49] hwm
79
+ * StvClosed [0..1] disc | [1..9] vaultId
80
+ * ManagerAdded [0..1] disc | [1..33] stv | [33..65] manager
81
+ * ManagerRemoved [0..1] disc | [1..33] stv | [33..65] manager
82
+ * DelayedDepositProcessed [0..1] disc | [1..9] vaultId | [9..41] user |
83
+ * [41..49] amount | [49..57] sharesMinted |
84
+ * [57..65] depositFeeShares | [65..73] pps |
85
+ * [73..77] requestEpochId
86
+ * WarmAdminSet [0..1] disc | [1..9] vaultId | [9..41] warmAdmin
87
+ * CircuitBreakerTripped [0..1] disc | [1..9] vaultId | [9..41] trippedBy |
88
+ * [41..42] authorityKind
89
+ */
90
+ function parseEventBuffer(data) {
91
+ if (data.length === 0)
92
+ return null;
93
+ const disc = data[0];
94
+ switch (disc) {
95
+ case constants_1.EVT_CONFIG_INITIALIZED:
96
+ return data.length >= 33 ? { name: "ConfigInitialized", admin: (0, buffer_1.readPubkey)(data, 1) } : null;
97
+ case constants_1.EVT_CONFIG_UPDATED:
98
+ return data.length >= 35 ? { name: "ConfigUpdated", admin: (0, buffer_1.readPubkey)(data, 1), flags: (0, buffer_1.readU16)(data, 33) } : null;
99
+ case constants_1.EVT_STV_CREATED:
100
+ return data.length >= 177 ? {
101
+ name: "StvCreated", vaultId: (0, buffer_1.readU64)(data, 1), baseMint: (0, buffer_1.readPubkey)(data, 9),
102
+ evMint: (0, buffer_1.readPubkey)(data, 41), feeReceiver: (0, buffer_1.readPubkey)(data, 73),
103
+ strategy: (0, buffer_1.readPubkey)(data, 105), lendProgram: (0, buffer_1.readPubkey)(data, 137),
104
+ epochSec: (0, buffer_1.readU32)(data, 169), mgmtFeeBps: (0, buffer_1.readU16)(data, 173), perfFeeBps: (0, buffer_1.readU16)(data, 175),
105
+ } : null;
106
+ case constants_1.EVT_STV_UPDATED:
107
+ return data.length >= 96 ? {
108
+ name: "StvUpdated", vaultId: (0, buffer_1.readU64)(data, 1), feeReceiver: (0, buffer_1.readPubkey)(data, 9),
109
+ flags: (0, buffer_1.readU16)(data, 41), mgmtFeeBps: (0, buffer_1.readU16)(data, 43),
110
+ perfFeeBps: (0, buffer_1.readU16)(data, 45), vaultCapacity: (0, buffer_1.readU64)(data, 47), minDeposit: (0, buffer_1.readU64)(data, 55),
111
+ childVaultCount: data[63], lendProgram: (0, buffer_1.readPubkey)(data, 64),
112
+ } : null;
113
+ case constants_1.EVT_DEPOSITED:
114
+ return data.length >= 73 ? {
115
+ name: "Deposited", vaultId: (0, buffer_1.readU64)(data, 1), user: (0, buffer_1.readPubkey)(data, 9),
116
+ amount: (0, buffer_1.readU64)(data, 41), sharesMinted: (0, buffer_1.readU64)(data, 49),
117
+ depositFeeShares: (0, buffer_1.readU64)(data, 57), pps: (0, buffer_1.readU64)(data, 65),
118
+ } : null;
119
+ case constants_1.EVT_WITHDRAW_REQUESTED:
120
+ return data.length >= 53 ? {
121
+ name: "WithdrawRequested", vaultId: (0, buffer_1.readU64)(data, 1), user: (0, buffer_1.readPubkey)(data, 9),
122
+ shares: (0, buffer_1.readU64)(data, 41), epochId: (0, buffer_1.readU32)(data, 49),
123
+ } : null;
124
+ case constants_1.EVT_WITHDRAW_REQUEST_INCREASED:
125
+ return data.length >= 61 ? {
126
+ name: "WithdrawRequestIncreased", vaultId: (0, buffer_1.readU64)(data, 1), user: (0, buffer_1.readPubkey)(data, 9),
127
+ additionalShares: (0, buffer_1.readU64)(data, 41), totalShares: (0, buffer_1.readU64)(data, 49), epochId: (0, buffer_1.readU32)(data, 57),
128
+ } : null;
129
+ case constants_1.EVT_WITHDRAW_CLAIMED:
130
+ // Rust: vault_id(8), user(32), shares(8), net_base(8), withdrawal_fee_base(8), epoch_id(4)
131
+ return data.length >= 69 ? {
132
+ name: "WithdrawClaimed", vaultId: (0, buffer_1.readU64)(data, 1), user: (0, buffer_1.readPubkey)(data, 9),
133
+ shares: (0, buffer_1.readU64)(data, 41), baseAmount: (0, buffer_1.readU64)(data, 49),
134
+ withdrawalFeeBase: (0, buffer_1.readU64)(data, 57), epochId: (0, buffer_1.readU32)(data, 65),
135
+ } : null;
136
+ case constants_1.EVT_DEPOSITED_TO_STRATEGY:
137
+ return data.length >= 57 ? {
138
+ name: "DepositedToStrategy", vaultId: (0, buffer_1.readU64)(data, 1), strategy: (0, buffer_1.readPubkey)(data, 9),
139
+ amount: (0, buffer_1.readU64)(data, 41), sharesReceived: (0, buffer_1.readU64)(data, 49),
140
+ } : null;
141
+ case constants_1.EVT_WITHDRAWN_FROM_STRATEGY:
142
+ return data.length >= 57 ? {
143
+ name: "WithdrawnFromStrategy", vaultId: (0, buffer_1.readU64)(data, 1), strategy: (0, buffer_1.readPubkey)(data, 9),
144
+ shares: (0, buffer_1.readU64)(data, 41), baseReceived: (0, buffer_1.readU64)(data, 49),
145
+ } : null;
146
+ case constants_1.EVT_EPOCH_PROCESSED:
147
+ return data.length >= 29 ? {
148
+ name: "EpochProcessed", vaultId: (0, buffer_1.readU64)(data, 1), epochId: (0, buffer_1.readU32)(data, 9),
149
+ epochPps: (0, buffer_1.readU64)(data, 13), feeSharesMinted: (0, buffer_1.readU64)(data, 21),
150
+ } : null;
151
+ case constants_1.EVT_EPOCH_ADVANCED:
152
+ return data.length >= 17 ? {
153
+ name: "EpochAdvanced", vaultId: (0, buffer_1.readU64)(data, 1), newEpochId: (0, buffer_1.readU32)(data, 9), nextEpochTs: (0, buffer_1.readU32)(data, 13),
154
+ } : null;
155
+ case constants_1.EVT_FEES_SETTLED:
156
+ return data.length >= 49 ? {
157
+ name: "FeesSettled", vaultId: (0, buffer_1.readU64)(data, 1), mgmtFeeBase: (0, buffer_1.readU64)(data, 9),
158
+ perfFeeBase: (0, buffer_1.readU64)(data, 17), feeSharesMinted: (0, buffer_1.readU64)(data, 25),
159
+ postFeePps: (0, buffer_1.readU64)(data, 33), hwm: (0, buffer_1.readU64)(data, 41),
160
+ } : null;
161
+ case constants_1.EVT_STV_CLOSED:
162
+ return data.length >= 9 ? {
163
+ name: "StvClosed", vaultId: (0, buffer_1.readU64)(data, 1),
164
+ } : null;
165
+ case constants_1.EVT_MANAGER_ADDED:
166
+ return data.length >= 65 ? {
167
+ name: "ManagerAdded", stv: (0, buffer_1.readPubkey)(data, 1), manager: (0, buffer_1.readPubkey)(data, 33),
168
+ } : null;
169
+ case constants_1.EVT_MANAGER_REMOVED:
170
+ return data.length >= 65 ? {
171
+ name: "ManagerRemoved", stv: (0, buffer_1.readPubkey)(data, 1), manager: (0, buffer_1.readPubkey)(data, 33),
172
+ } : null;
173
+ case constants_1.EVT_WITHDRAW_OVERRIDE_CLAIMED:
174
+ // Rust: vault_id(8), manager(32), user(32), shares(8), net_base(8),
175
+ // withdrawal_fee_base(8), epoch_id(4), daily_withdrawn(8), daily_limit(8)
176
+ return data.length >= 117 ? {
177
+ name: "WithdrawOverrideClaimed", vaultId: (0, buffer_1.readU64)(data, 1), manager: (0, buffer_1.readPubkey)(data, 9),
178
+ user: (0, buffer_1.readPubkey)(data, 41), shares: (0, buffer_1.readU64)(data, 73), baseAmount: (0, buffer_1.readU64)(data, 81),
179
+ withdrawalFeeBase: (0, buffer_1.readU64)(data, 89), epochId: (0, buffer_1.readU32)(data, 97),
180
+ dailyWithdrawnBase: (0, buffer_1.readU64)(data, 101), dailyLimit: (0, buffer_1.readU64)(data, 109),
181
+ } : null;
182
+ case constants_1.EVT_LEND_MIGRATED:
183
+ return data.length >= 89 ? {
184
+ name: "LendMigrated", vaultId: (0, buffer_1.readU64)(data, 1), oldLendProgram: (0, buffer_1.readPubkey)(data, 9),
185
+ newLendProgram: (0, buffer_1.readPubkey)(data, 41), sharesWithdrawn: (0, buffer_1.readU64)(data, 73), baseMigrated: (0, buffer_1.readU64)(data, 81),
186
+ } : null;
187
+ case constants_1.EVT_MIGRATE_REQUESTED:
188
+ // Rust: src_vault_id(8), dest_vault_id(8), user(32), shares(8), epoch_id(4)
189
+ return data.length >= 61 ? {
190
+ name: "MigrateRequested", srcVaultId: (0, buffer_1.readU64)(data, 1), destVaultId: (0, buffer_1.readU64)(data, 9),
191
+ user: (0, buffer_1.readPubkey)(data, 17), shares: (0, buffer_1.readU64)(data, 49), epochId: (0, buffer_1.readU32)(data, 57),
192
+ } : null;
193
+ case constants_1.EVT_MIGRATE_EXECUTED:
194
+ // Rust: src_vault_id(8), dst_vault_id(8), user(32), shares_burned(8), base_moved(8),
195
+ // withdrawal_fee_base(8), deposit_fee_base(8), user_dest_shares(8), epoch_id(4)
196
+ return data.length >= 93 ? {
197
+ name: "MigrateExecuted", srcVaultId: (0, buffer_1.readU64)(data, 1), destVaultId: (0, buffer_1.readU64)(data, 9),
198
+ user: (0, buffer_1.readPubkey)(data, 17), sharesBurned: (0, buffer_1.readU64)(data, 49), baseMoved: (0, buffer_1.readU64)(data, 57),
199
+ withdrawalFeeBase: (0, buffer_1.readU64)(data, 65), depositFeeBase: (0, buffer_1.readU64)(data, 73),
200
+ userDestShares: (0, buffer_1.readU64)(data, 81), epochId: (0, buffer_1.readU32)(data, 89),
201
+ } : null;
202
+ case constants_1.EVT_DELAYED_DEPOSIT_PROCESSED:
203
+ return data.length >= 77 ? {
204
+ name: "DelayedDepositProcessed", vaultId: (0, buffer_1.readU64)(data, 1), user: (0, buffer_1.readPubkey)(data, 9),
205
+ amount: (0, buffer_1.readU64)(data, 41), sharesMinted: (0, buffer_1.readU64)(data, 49),
206
+ depositFeeShares: (0, buffer_1.readU64)(data, 57), pps: (0, buffer_1.readU64)(data, 65),
207
+ requestEpochId: (0, buffer_1.readU32)(data, 73),
208
+ } : null;
209
+ case constants_1.EVT_INSTANT_WITHDRAWN:
210
+ return data.length >= 65 ? {
211
+ name: "InstantWithdrawn", vaultId: (0, buffer_1.readU64)(data, 1), user: (0, buffer_1.readPubkey)(data, 9),
212
+ shares: (0, buffer_1.readU64)(data, 41), netBase: (0, buffer_1.readU64)(data, 49),
213
+ withdrawalFeeBase: (0, buffer_1.readU64)(data, 57),
214
+ } : null;
215
+ case constants_1.EVT_STV_SEEDED:
216
+ return data.length >= 17 ? {
217
+ name: "StvSeeded", vaultId: (0, buffer_1.readU64)(data, 1), amount: (0, buffer_1.readU64)(data, 9),
218
+ } : null;
219
+ case constants_1.EVT_ADMIN_ROTATION_STARTED:
220
+ // Fields: vault_id(8), new_pending_admin(32) → total payload 41 bytes
221
+ return data.length >= 41 ? {
222
+ name: "AdminRotationStarted", vaultId: (0, buffer_1.readU64)(data, 1), newPendingAdmin: (0, buffer_1.readPubkey)(data, 9),
223
+ } : null;
224
+ case constants_1.EVT_ADMIN_ROTATION_ACCEPTED:
225
+ // Fields: vault_id(8), new_admin(32) → total payload 41 bytes
226
+ return data.length >= 41 ? {
227
+ name: "AdminRotationAccepted", vaultId: (0, buffer_1.readU64)(data, 1), newAdmin: (0, buffer_1.readPubkey)(data, 9),
228
+ } : null;
229
+ case constants_1.EVT_WARM_ADMIN_SET:
230
+ // Fields: vault_id(8), warm_admin(32) → total payload 41 bytes.
231
+ // warmAdmin is the raw stored value (PublicKey.default on any
232
+ // reset/normalize-to-follow-cold) — see warmAdminEffective() to resolve.
233
+ return data.length >= 41 ? {
234
+ name: "WarmAdminSet", vaultId: (0, buffer_1.readU64)(data, 1), warmAdmin: (0, buffer_1.readPubkey)(data, 9),
235
+ } : null;
236
+ case constants_1.EVT_CIRCUIT_BREAKER_TRIPPED:
237
+ // Fields: vault_id(8), tripped_by(32), authority_kind(1) → total payload 42 bytes.
238
+ // authorityKind: 0=cold, 1=warm, 2=manager (TRIP_AUTHORITY_KIND_* in constants.ts).
239
+ return data.length >= 42 ? {
240
+ name: "CircuitBreakerTripped", vaultId: (0, buffer_1.readU64)(data, 1), trippedBy: (0, buffer_1.readPubkey)(data, 9),
241
+ authorityKind: data[41],
242
+ } : null;
243
+ default:
244
+ return null;
245
+ }
246
+ }
@@ -0,0 +1,11 @@
1
+ export * from "./constants";
2
+ export * from "./types";
3
+ export * from "./pda";
4
+ export * from "./accounts";
5
+ export * from "./events";
6
+ export * from "./instructions";
7
+ export * from "./remaining-accounts";
8
+ export * from "./send-tx";
9
+ export * from "./sol-wrap";
10
+ export * from "./prices";
11
+ export * from "./lut";
@@ -0,0 +1,27 @@
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("./events"), exports);
22
+ __exportStar(require("./instructions"), exports);
23
+ __exportStar(require("./remaining-accounts"), exports);
24
+ __exportStar(require("./send-tx"), exports);
25
+ __exportStar(require("./sol-wrap"), exports);
26
+ __exportStar(require("./prices"), exports);
27
+ __exportStar(require("./lut"), exports);