@elemental-stv-core/sdk 0.9.3 → 0.12.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 (38) hide show
  1. package/dist/common/buffer.d.ts +3 -0
  2. package/dist/common/buffer.js +19 -0
  3. package/dist/elemental-lend/instructions.d.ts +14 -0
  4. package/dist/elemental-lend/instructions.js +18 -6
  5. package/dist/elemental-lend/protocol-actions.d.ts +6 -0
  6. package/dist/elemental-lend/protocol-actions.js +21 -10
  7. package/dist/jlpd-strategy/accounts.d.ts +4 -1
  8. package/dist/jlpd-strategy/accounts.js +6 -1
  9. package/dist/jlpd-strategy/adapter.d.ts +16 -6
  10. package/dist/jlpd-strategy/adapter.js +21 -9
  11. package/dist/jlpd-strategy/base-to-base-swap.d.ts +74 -0
  12. package/dist/jlpd-strategy/base-to-base-swap.js +199 -0
  13. package/dist/jlpd-strategy/constants.d.ts +11 -3
  14. package/dist/jlpd-strategy/constants.js +19 -10
  15. package/dist/jlpd-strategy/index.d.ts +1 -0
  16. package/dist/jlpd-strategy/index.js +1 -0
  17. package/dist/jlpd-strategy/instructions.d.ts +49 -0
  18. package/dist/jlpd-strategy/instructions.js +55 -0
  19. package/dist/jlpd-strategy/jlp-data.d.ts +11 -0
  20. package/dist/jlpd-strategy/jlp-data.js +15 -0
  21. package/dist/jlpd-strategy/settle-yield.d.ts +20 -1
  22. package/dist/jlpd-strategy/settle-yield.js +9 -6
  23. package/dist/jlpd-strategy/swap-jlp.d.ts +26 -0
  24. package/dist/jlpd-strategy/swap-jlp.js +74 -10
  25. package/dist/jlpd-strategy/types.d.ts +3 -1
  26. package/dist/p-stv-core/accounts.d.ts +74 -34
  27. package/dist/p-stv-core/accounts.js +163 -56
  28. package/dist/p-stv-core/constants.d.ts +49 -4
  29. package/dist/p-stv-core/constants.js +52 -5
  30. package/dist/p-stv-core/events.js +63 -9
  31. package/dist/p-stv-core/instructions.d.ts +302 -3
  32. package/dist/p-stv-core/instructions.js +277 -15
  33. package/dist/p-stv-core/pda.d.ts +15 -0
  34. package/dist/p-stv-core/pda.js +25 -0
  35. package/dist/p-stv-core/remaining-accounts.d.ts +4 -1
  36. package/dist/p-stv-core/remaining-accounts.js +17 -2
  37. package/dist/p-stv-core/types.d.ts +104 -4
  38. package/package.json +1 -1
@@ -4,10 +4,13 @@ export declare const CONFIG_SEED: Buffer<ArrayBuffer>;
4
4
  export declare const STV_SEED: Buffer<ArrayBuffer>;
5
5
  export declare const EV_MINT_SEED: Buffer<ArrayBuffer>;
6
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>;
7
9
  export declare const MANAGER_SEED: Buffer<ArrayBuffer>;
8
10
  export declare const DISC_GLOBAL_CONFIG: Buffer<ArrayBuffer>;
9
11
  export declare const DISC_STV: Buffer<ArrayBuffer>;
10
12
  export declare const DISC_WITHDRAW_REQUEST: Buffer<ArrayBuffer>;
13
+ export declare const DISC_DELAYED_DEPOSIT_REQUEST: Buffer<ArrayBuffer>;
11
14
  export { DISC_MANAGER_ROLE } from "../common/constants";
12
15
  export declare const IX_INIT_OR_UPDATE_CONFIG = 0;
13
16
  export declare const IX_INIT_OR_UPDATE_STV = 1;
@@ -22,6 +25,16 @@ export declare const IX_ADD_MANAGER = 9;
22
25
  export declare const IX_REMOVE_MANAGER = 10;
23
26
  export declare const IX_OVERRIDE_CLAIM_WITHDRAW = 11;
24
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
+ /** migrate_stv_layout (disc 0x13 = 19) — one-shot global-admin v1→v2 layout migration. */
35
+ export declare const IX_MIGRATE_STV_LAYOUT = 19;
36
+ /** accept_vault_admin (disc 0x14 = 20) — complete a two-step vault-admin rotation. */
37
+ export declare const IX_ACCEPT_VAULT_ADMIN = 20;
25
38
  export declare const EVT_CONFIG_INITIALIZED = 0;
26
39
  export declare const EVT_CONFIG_UPDATED = 1;
27
40
  export declare const EVT_STV_CREATED = 2;
@@ -40,13 +53,40 @@ export declare const EVT_MANAGER_ADDED = 14;
40
53
  export declare const EVT_MANAGER_REMOVED = 15;
41
54
  export declare const EVT_WITHDRAW_OVERRIDE_CLAIMED = 16;
42
55
  export declare const EVT_LEND_MIGRATED = 17;
43
- export declare const EVT_VAULT_ATA_BACKFILLED = 18;
56
+ export declare const EVT_MIGRATE_REQUESTED = 18;
57
+ export declare const EVT_MIGRATE_EXECUTED = 19;
58
+ export declare const EVT_DELAYED_DEPOSIT_PROCESSED = 20;
59
+ export declare const EVT_INSTANT_WITHDRAWN = 21;
60
+ export declare const EVT_STV_SEEDED = 22;
61
+ /** StvAdminSet — emitted by migrate_stv_layout. Fields: vault_id(8), admin(32). */
62
+ export declare const EVT_STV_ADMIN_SET = 23;
63
+ /** AdminRotationStarted — emitted when update sets pending_admin to nonzero. Fields: vault_id(8), newPendingAdmin(32). */
64
+ export declare const EVT_ADMIN_ROTATION_STARTED = 24;
65
+ /** AdminRotationAccepted — emitted by accept_vault_admin. Fields: vault_id(8), newAdmin(32). */
66
+ export declare const EVT_ADMIN_ROTATION_ACCEPTED = 25;
44
67
  export declare const FLAG_PAUSED = 1;
45
68
  export declare const FLAG_DEPOSITS_DISABLED = 2;
46
69
  export declare const FLAG_WITHDRAWALS_DISABLED = 4;
47
70
  export declare const FLAG_REBALANCE_DISABLED = 8;
48
- export declare const FLAG_TEST_MODE = 16;
49
71
  export declare const FLAG_ALLOCATOR = 32;
72
+ /** Skip the per-epoch withdraw rate-limit on this STV (claim_withdraw + migrate_execute). */
73
+ export declare const FLAG_BYPASS_WITHDRAW_LIMIT = 64;
74
+ /** Source STV: apply withdrawal_fee_bps when migrating OUT via migrate_request/migrate_execute. */
75
+ export declare const FLAG_WITHDRAWAL_FEE_ON_MIGRATE = 128;
76
+ /** Dest STV: apply deposit_fee_bps when migrating IN via migrate_execute. */
77
+ export declare const FLAG_DEPOSIT_FEE_ON_MIGRATE = 256;
78
+ /** Delay user deposits by at least one epoch before evX is minted. */
79
+ export declare const FLAG_DELAYED_DEPOSIT = 512;
80
+ /** Migrate exit (source) skips the +1 epoch cooldown — in-protocol move, no drain risk. */
81
+ export declare const FLAG_BYPASS_MIGRATE_SRC_WAITOUT = 1024;
82
+ /** Migrate entry (dest) skips its waitout. */
83
+ export declare const FLAG_BYPASS_MIGRATE_DST_WAITOUT = 2048;
84
+ /**
85
+ * C-1 seed gate. Program-owned (set by seed_stv, never via
86
+ * init_or_update_stv). When unset, every public path reverts VaultNotSeeded.
87
+ * When set with locked_seed_shares > 0, the vault may run instant_withdraw.
88
+ */
89
+ export declare const FLAG_SEEDED = 4096;
50
90
  /**
51
91
  * Protocol-wide emergency pause. When set on `GlobalConfig.flags`, blocks
52
92
  * every value-movement instruction across every STV (deposit, request/claim
@@ -57,10 +97,15 @@ export declare const FLAG_ALLOCATOR = 32;
57
97
  */
58
98
  export declare const CFG_FLAG_GLOBAL_PAUSED = 1;
59
99
  export { PPS_DECIMALS, BPS_DENOMINATOR, STALENESS_THRESHOLD } from "../common/constants";
60
- export declare const MAX_CHILD_VAULTS = 6;
61
- export declare const MAX_STRATEGIES = 6;
100
+ export declare const MAX_CHILD_VAULTS = 4;
101
+ export declare const MAX_STRATEGIES = 4;
62
102
  export declare const FEE_CAP_BPS = 9900;
103
+ /** Max deposit_fee_bps / withdrawal_fee_bps (enforced at init_or_update_stv). */
104
+ export declare const MAX_FEE_BPS = 1000;
105
+ /** WithdrawRequest.request_flags bit 0: 0 = withdraw, 1 = migrate. */
106
+ export declare const WR_FLAG_MIGRATE = 1;
63
107
  export declare const GLOBAL_CONFIG_SIZE = 56;
64
108
  export declare const STV_SIZE = 664;
65
109
  export declare const WITHDRAW_REQUEST_SIZE = 168;
110
+ export declare const DELAYED_DEPOSIT_REQUEST_SIZE = 152;
66
111
  export declare const MANAGER_ROLE_SIZE = 80;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PPS_DECIMALS = exports.CFG_FLAG_GLOBAL_PAUSED = exports.FLAG_ALLOCATOR = exports.FLAG_TEST_MODE = exports.FLAG_REBALANCE_DISABLED = exports.FLAG_WITHDRAWALS_DISABLED = exports.FLAG_DEPOSITS_DISABLED = exports.FLAG_PAUSED = exports.EVT_VAULT_ATA_BACKFILLED = exports.EVT_LEND_MIGRATED = exports.EVT_WITHDRAW_OVERRIDE_CLAIMED = 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_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_WITHDRAW_REQUEST = exports.DISC_STV = exports.DISC_GLOBAL_CONFIG = exports.MANAGER_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.WITHDRAW_REQUEST_SIZE = exports.STV_SIZE = exports.GLOBAL_CONFIG_SIZE = exports.FEE_CAP_BPS = exports.MAX_STRATEGIES = exports.MAX_CHILD_VAULTS = exports.STALENESS_THRESHOLD = exports.BPS_DENOMINATOR = void 0;
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_ACCEPT_VAULT_ADMIN = exports.IX_MIGRATE_STV_LAYOUT = 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.EVT_ADMIN_ROTATION_ACCEPTED = exports.EVT_ADMIN_ROTATION_STARTED = exports.EVT_STV_ADMIN_SET = 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
5
  const web3_js_1 = require("@solana/web3.js");
6
6
  // ---------------------------------------------------------------------------
7
7
  // Program ID
@@ -14,6 +14,8 @@ exports.CONFIG_SEED = Buffer.from("config");
14
14
  exports.STV_SEED = Buffer.from("stv");
15
15
  exports.EV_MINT_SEED = Buffer.from("ev_mint");
16
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");
17
19
  exports.MANAGER_SEED = Buffer.from("manager");
18
20
  // ---------------------------------------------------------------------------
19
21
  // Account Discriminators (8-byte Anchor-compatible)
@@ -27,6 +29,9 @@ exports.DISC_STV = Buffer.from([
27
29
  exports.DISC_WITHDRAW_REQUEST = Buffer.from([
28
30
  0xba, 0xef, 0xae, 0xbf, 0xbd, 0x0d, 0x2f, 0xc4,
29
31
  ]);
32
+ exports.DISC_DELAYED_DEPOSIT_REQUEST = Buffer.from([
33
+ 0x33, 0x09, 0xc3, 0xd1, 0xbd, 0xee, 0x7b, 0xe1,
34
+ ]);
30
35
  // Shared with elemental-lend and jlpd-strategy — defined once in common/
31
36
  var constants_1 = require("../common/constants");
32
37
  Object.defineProperty(exports, "DISC_MANAGER_ROLE", { enumerable: true, get: function () { return constants_1.DISC_MANAGER_ROLE; } });
@@ -46,6 +51,16 @@ exports.IX_ADD_MANAGER = 9;
46
51
  exports.IX_REMOVE_MANAGER = 10;
47
52
  exports.IX_OVERRIDE_CLAIM_WITHDRAW = 11;
48
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
+ /** migrate_stv_layout (disc 0x13 = 19) — one-shot global-admin v1→v2 layout migration. */
61
+ exports.IX_MIGRATE_STV_LAYOUT = 19;
62
+ /** accept_vault_admin (disc 0x14 = 20) — complete a two-step vault-admin rotation. */
63
+ exports.IX_ACCEPT_VAULT_ADMIN = 20;
49
64
  // ---------------------------------------------------------------------------
50
65
  // Event Discriminators (1-byte)
51
66
  // ---------------------------------------------------------------------------
@@ -67,7 +82,17 @@ exports.EVT_MANAGER_ADDED = 14;
67
82
  exports.EVT_MANAGER_REMOVED = 15;
68
83
  exports.EVT_WITHDRAW_OVERRIDE_CLAIMED = 16;
69
84
  exports.EVT_LEND_MIGRATED = 17;
70
- exports.EVT_VAULT_ATA_BACKFILLED = 18;
85
+ exports.EVT_MIGRATE_REQUESTED = 18;
86
+ exports.EVT_MIGRATE_EXECUTED = 19;
87
+ exports.EVT_DELAYED_DEPOSIT_PROCESSED = 20;
88
+ exports.EVT_INSTANT_WITHDRAWN = 21;
89
+ exports.EVT_STV_SEEDED = 22;
90
+ /** StvAdminSet — emitted by migrate_stv_layout. Fields: vault_id(8), admin(32). */
91
+ exports.EVT_STV_ADMIN_SET = 23;
92
+ /** AdminRotationStarted — emitted when update sets pending_admin to nonzero. Fields: vault_id(8), newPendingAdmin(32). */
93
+ exports.EVT_ADMIN_ROTATION_STARTED = 24;
94
+ /** AdminRotationAccepted — emitted by accept_vault_admin. Fields: vault_id(8), newAdmin(32). */
95
+ exports.EVT_ADMIN_ROTATION_ACCEPTED = 25;
71
96
  // ---------------------------------------------------------------------------
72
97
  // Vault Flags
73
98
  // ---------------------------------------------------------------------------
@@ -76,8 +101,25 @@ exports.FLAG_PAUSED = 0x0001;
76
101
  exports.FLAG_DEPOSITS_DISABLED = 0x0002;
77
102
  exports.FLAG_WITHDRAWALS_DISABLED = 0x0004;
78
103
  exports.FLAG_REBALANCE_DISABLED = 0x0008;
79
- exports.FLAG_TEST_MODE = 0x0010;
80
104
  exports.FLAG_ALLOCATOR = 0x0020;
105
+ /** Skip the per-epoch withdraw rate-limit on this STV (claim_withdraw + migrate_execute). */
106
+ exports.FLAG_BYPASS_WITHDRAW_LIMIT = 0x0040;
107
+ /** Source STV: apply withdrawal_fee_bps when migrating OUT via migrate_request/migrate_execute. */
108
+ exports.FLAG_WITHDRAWAL_FEE_ON_MIGRATE = 0x0080;
109
+ /** Dest STV: apply deposit_fee_bps when migrating IN via migrate_execute. */
110
+ exports.FLAG_DEPOSIT_FEE_ON_MIGRATE = 0x0100;
111
+ /** Delay user deposits by at least one epoch before evX is minted. */
112
+ exports.FLAG_DELAYED_DEPOSIT = 0x0200;
113
+ /** Migrate exit (source) skips the +1 epoch cooldown — in-protocol move, no drain risk. */
114
+ exports.FLAG_BYPASS_MIGRATE_SRC_WAITOUT = 0x0400;
115
+ /** Migrate entry (dest) skips its waitout. */
116
+ exports.FLAG_BYPASS_MIGRATE_DST_WAITOUT = 0x0800;
117
+ /**
118
+ * C-1 seed gate. Program-owned (set by seed_stv, never via
119
+ * init_or_update_stv). When unset, every public path reverts VaultNotSeeded.
120
+ * When set with locked_seed_shares > 0, the vault may run instant_withdraw.
121
+ */
122
+ exports.FLAG_SEEDED = 0x1000;
81
123
  // GlobalConfig flags
82
124
  /**
83
125
  * Protocol-wide emergency pause. When set on `GlobalConfig.flags`, blocks
@@ -95,13 +137,18 @@ var constants_2 = require("../common/constants");
95
137
  Object.defineProperty(exports, "PPS_DECIMALS", { enumerable: true, get: function () { return constants_2.PPS_DECIMALS; } });
96
138
  Object.defineProperty(exports, "BPS_DENOMINATOR", { enumerable: true, get: function () { return constants_2.BPS_DENOMINATOR; } });
97
139
  Object.defineProperty(exports, "STALENESS_THRESHOLD", { enumerable: true, get: function () { return constants_2.STALENESS_THRESHOLD; } });
98
- exports.MAX_CHILD_VAULTS = 6;
140
+ exports.MAX_CHILD_VAULTS = 4;
99
141
  exports.MAX_STRATEGIES = exports.MAX_CHILD_VAULTS; // backward compat
100
142
  exports.FEE_CAP_BPS = 9900;
143
+ /** Max deposit_fee_bps / withdrawal_fee_bps (enforced at init_or_update_stv). */
144
+ exports.MAX_FEE_BPS = 1000;
145
+ /** WithdrawRequest.request_flags bit 0: 0 = withdraw, 1 = migrate. */
146
+ exports.WR_FLAG_MIGRATE = 0x01;
101
147
  // ---------------------------------------------------------------------------
102
148
  // Account Sizes
103
149
  // ---------------------------------------------------------------------------
104
150
  exports.GLOBAL_CONFIG_SIZE = 56;
105
151
  exports.STV_SIZE = 664;
106
152
  exports.WITHDRAW_REQUEST_SIZE = 168;
153
+ exports.DELAYED_DEPOSIT_REQUEST_SIZE = 152;
107
154
  exports.MANAGER_ROLE_SIZE = 80;
@@ -56,7 +56,8 @@ function parseEventsFromLogs(logs, programId = constants_1.PROGRAM_ID) {
56
56
  * [47..55] vaultCapacity | [55..63] minDeposit |
57
57
  * [63..64] childVaultCount | [64..96] lendProgram
58
58
  * Deposited [0..1] disc | [1..9] vaultId | [9..41] user |
59
- * [41..49] amount | [49..57] sharesMinted | [57..65] pps
59
+ * [41..49] amount | [49..57] sharesMinted | [57..65] depositFeeShares |
60
+ * [65..73] pps
60
61
  * WithdrawRequested [0..1] disc | [1..9] vaultId | [9..41] user |
61
62
  * [41..49] shares | [49..53] epochId
62
63
  * WithdrawRequestIncreased [0..1] disc | [1..9] vaultId | [9..41] user |
@@ -78,6 +79,10 @@ function parseEventsFromLogs(logs, programId = constants_1.PROGRAM_ID) {
78
79
  * StvClosed [0..1] disc | [1..9] vaultId
79
80
  * ManagerAdded [0..1] disc | [1..33] stv | [33..65] manager
80
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
81
86
  */
82
87
  function parseEventBuffer(data) {
83
88
  if (data.length === 0)
@@ -103,9 +108,10 @@ function parseEventBuffer(data) {
103
108
  childVaultCount: data[63], lendProgram: (0, buffer_1.readPubkey)(data, 64),
104
109
  } : null;
105
110
  case constants_1.EVT_DEPOSITED:
106
- return data.length >= 65 ? {
111
+ return data.length >= 73 ? {
107
112
  name: "Deposited", vaultId: (0, buffer_1.readU64)(data, 1), user: (0, buffer_1.readPubkey)(data, 9),
108
- amount: (0, buffer_1.readU64)(data, 41), sharesMinted: (0, buffer_1.readU64)(data, 49), pps: (0, buffer_1.readU64)(data, 57),
113
+ amount: (0, buffer_1.readU64)(data, 41), sharesMinted: (0, buffer_1.readU64)(data, 49),
114
+ depositFeeShares: (0, buffer_1.readU64)(data, 57), pps: (0, buffer_1.readU64)(data, 65),
109
115
  } : null;
110
116
  case constants_1.EVT_WITHDRAW_REQUESTED:
111
117
  return data.length >= 53 ? {
@@ -118,9 +124,11 @@ function parseEventBuffer(data) {
118
124
  additionalShares: (0, buffer_1.readU64)(data, 41), totalShares: (0, buffer_1.readU64)(data, 49), epochId: (0, buffer_1.readU32)(data, 57),
119
125
  } : null;
120
126
  case constants_1.EVT_WITHDRAW_CLAIMED:
121
- return data.length >= 61 ? {
127
+ // Rust: vault_id(8), user(32), shares(8), net_base(8), withdrawal_fee_base(8), epoch_id(4)
128
+ return data.length >= 69 ? {
122
129
  name: "WithdrawClaimed", vaultId: (0, buffer_1.readU64)(data, 1), user: (0, buffer_1.readPubkey)(data, 9),
123
- shares: (0, buffer_1.readU64)(data, 41), baseAmount: (0, buffer_1.readU64)(data, 49), epochId: (0, buffer_1.readU32)(data, 57),
130
+ shares: (0, buffer_1.readU64)(data, 41), baseAmount: (0, buffer_1.readU64)(data, 49),
131
+ withdrawalFeeBase: (0, buffer_1.readU64)(data, 57), epochId: (0, buffer_1.readU32)(data, 65),
124
132
  } : null;
125
133
  case constants_1.EVT_DEPOSITED_TO_STRATEGY:
126
134
  return data.length >= 57 ? {
@@ -160,19 +168,65 @@ function parseEventBuffer(data) {
160
168
  name: "ManagerRemoved", stv: (0, buffer_1.readPubkey)(data, 1), manager: (0, buffer_1.readPubkey)(data, 33),
161
169
  } : null;
162
170
  case constants_1.EVT_WITHDRAW_OVERRIDE_CLAIMED:
163
- return data.length >= 109 ? {
171
+ // Rust: vault_id(8), manager(32), user(32), shares(8), net_base(8),
172
+ // withdrawal_fee_base(8), epoch_id(4), daily_withdrawn(8), daily_limit(8)
173
+ return data.length >= 117 ? {
164
174
  name: "WithdrawOverrideClaimed", vaultId: (0, buffer_1.readU64)(data, 1), manager: (0, buffer_1.readPubkey)(data, 9),
165
175
  user: (0, buffer_1.readPubkey)(data, 41), shares: (0, buffer_1.readU64)(data, 73), baseAmount: (0, buffer_1.readU64)(data, 81),
166
- epochId: (0, buffer_1.readU32)(data, 89), dailyWithdrawnBase: (0, buffer_1.readU64)(data, 93), dailyLimit: (0, buffer_1.readU64)(data, 101),
176
+ withdrawalFeeBase: (0, buffer_1.readU64)(data, 89), epochId: (0, buffer_1.readU32)(data, 97),
177
+ dailyWithdrawnBase: (0, buffer_1.readU64)(data, 101), dailyLimit: (0, buffer_1.readU64)(data, 109),
167
178
  } : null;
168
179
  case constants_1.EVT_LEND_MIGRATED:
169
180
  return data.length >= 89 ? {
170
181
  name: "LendMigrated", vaultId: (0, buffer_1.readU64)(data, 1), oldLendProgram: (0, buffer_1.readPubkey)(data, 9),
171
182
  newLendProgram: (0, buffer_1.readPubkey)(data, 41), sharesWithdrawn: (0, buffer_1.readU64)(data, 73), baseMigrated: (0, buffer_1.readU64)(data, 81),
172
183
  } : null;
173
- case constants_1.EVT_VAULT_ATA_BACKFILLED:
184
+ case constants_1.EVT_MIGRATE_REQUESTED:
185
+ // Rust: src_vault_id(8), dest_vault_id(8), user(32), shares(8), epoch_id(4)
186
+ return data.length >= 61 ? {
187
+ name: "MigrateRequested", srcVaultId: (0, buffer_1.readU64)(data, 1), destVaultId: (0, buffer_1.readU64)(data, 9),
188
+ user: (0, buffer_1.readPubkey)(data, 17), shares: (0, buffer_1.readU64)(data, 49), epochId: (0, buffer_1.readU32)(data, 57),
189
+ } : null;
190
+ case constants_1.EVT_MIGRATE_EXECUTED:
191
+ // Rust: src_vault_id(8), dst_vault_id(8), user(32), shares_burned(8), base_moved(8),
192
+ // withdrawal_fee_base(8), deposit_fee_base(8), user_dest_shares(8), epoch_id(4)
193
+ return data.length >= 93 ? {
194
+ name: "MigrateExecuted", srcVaultId: (0, buffer_1.readU64)(data, 1), destVaultId: (0, buffer_1.readU64)(data, 9),
195
+ user: (0, buffer_1.readPubkey)(data, 17), sharesBurned: (0, buffer_1.readU64)(data, 49), baseMoved: (0, buffer_1.readU64)(data, 57),
196
+ withdrawalFeeBase: (0, buffer_1.readU64)(data, 65), depositFeeBase: (0, buffer_1.readU64)(data, 73),
197
+ userDestShares: (0, buffer_1.readU64)(data, 81), epochId: (0, buffer_1.readU32)(data, 89),
198
+ } : null;
199
+ case constants_1.EVT_DELAYED_DEPOSIT_PROCESSED:
200
+ return data.length >= 77 ? {
201
+ name: "DelayedDepositProcessed", vaultId: (0, buffer_1.readU64)(data, 1), user: (0, buffer_1.readPubkey)(data, 9),
202
+ amount: (0, buffer_1.readU64)(data, 41), sharesMinted: (0, buffer_1.readU64)(data, 49),
203
+ depositFeeShares: (0, buffer_1.readU64)(data, 57), pps: (0, buffer_1.readU64)(data, 65),
204
+ requestEpochId: (0, buffer_1.readU32)(data, 73),
205
+ } : null;
206
+ case constants_1.EVT_INSTANT_WITHDRAWN:
207
+ return data.length >= 65 ? {
208
+ name: "InstantWithdrawn", vaultId: (0, buffer_1.readU64)(data, 1), user: (0, buffer_1.readPubkey)(data, 9),
209
+ shares: (0, buffer_1.readU64)(data, 41), netBase: (0, buffer_1.readU64)(data, 49),
210
+ withdrawalFeeBase: (0, buffer_1.readU64)(data, 57),
211
+ } : null;
212
+ case constants_1.EVT_STV_SEEDED:
213
+ return data.length >= 17 ? {
214
+ name: "StvSeeded", vaultId: (0, buffer_1.readU64)(data, 1), amount: (0, buffer_1.readU64)(data, 9),
215
+ } : null;
216
+ case constants_1.EVT_STV_ADMIN_SET:
217
+ // Fields: vault_id(8), admin(32) → total payload 41 bytes (with 1-byte disc = 41)
218
+ return data.length >= 41 ? {
219
+ name: "StvAdminSet", vaultId: (0, buffer_1.readU64)(data, 1), admin: (0, buffer_1.readPubkey)(data, 9),
220
+ } : null;
221
+ case constants_1.EVT_ADMIN_ROTATION_STARTED:
222
+ // Fields: vault_id(8), new_pending_admin(32) → total payload 41 bytes
223
+ return data.length >= 41 ? {
224
+ name: "AdminRotationStarted", vaultId: (0, buffer_1.readU64)(data, 1), newPendingAdmin: (0, buffer_1.readPubkey)(data, 9),
225
+ } : null;
226
+ case constants_1.EVT_ADMIN_ROTATION_ACCEPTED:
227
+ // Fields: vault_id(8), new_admin(32) → total payload 41 bytes
174
228
  return data.length >= 41 ? {
175
- name: "VaultAtaBackfilled", vaultId: (0, buffer_1.readU64)(data, 1), vaultAta: (0, buffer_1.readPubkey)(data, 9),
229
+ name: "AdminRotationAccepted", vaultId: (0, buffer_1.readU64)(data, 1), newAdmin: (0, buffer_1.readPubkey)(data, 9),
176
230
  } : null;
177
231
  default:
178
232
  return null;