@usesigil/kit 0.13.0 → 0.16.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 (260) hide show
  1. package/dist/advanced-analytics.d.ts +3 -1
  2. package/dist/advanced-analytics.d.ts.map +1 -1
  3. package/dist/advanced-analytics.js +4 -6
  4. package/dist/advanced-analytics.js.map +1 -1
  5. package/dist/agent-bootstrap.d.ts +118 -0
  6. package/dist/agent-bootstrap.d.ts.map +1 -0
  7. package/dist/agent-bootstrap.js +211 -0
  8. package/dist/agent-bootstrap.js.map +1 -0
  9. package/dist/agent-errors.d.ts +3 -3
  10. package/dist/agent-errors.d.ts.map +1 -1
  11. package/dist/agent-errors.js +230 -206
  12. package/dist/agent-errors.js.map +1 -1
  13. package/dist/build-unsigned.d.ts +152 -0
  14. package/dist/build-unsigned.d.ts.map +1 -0
  15. package/dist/build-unsigned.js +152 -0
  16. package/dist/build-unsigned.js.map +1 -0
  17. package/dist/constraints/index.d.ts +23 -0
  18. package/dist/constraints/index.d.ts.map +1 -0
  19. package/dist/constraints/index.js +24 -0
  20. package/dist/constraints/index.js.map +1 -0
  21. package/dist/create-vault.d.ts +10 -2
  22. package/dist/create-vault.d.ts.map +1 -1
  23. package/dist/create-vault.js +10 -3
  24. package/dist/create-vault.js.map +1 -1
  25. package/dist/dashboard/constraint-builders.d.ts +82 -0
  26. package/dist/dashboard/constraint-builders.d.ts.map +1 -0
  27. package/dist/dashboard/constraint-builders.js +204 -0
  28. package/dist/dashboard/constraint-builders.js.map +1 -0
  29. package/dist/dashboard/errors.d.ts +37 -0
  30. package/dist/dashboard/errors.d.ts.map +1 -1
  31. package/dist/dashboard/errors.js +76 -0
  32. package/dist/dashboard/errors.js.map +1 -1
  33. package/dist/dashboard/from-json.d.ts.map +1 -1
  34. package/dist/dashboard/from-json.js +1 -5
  35. package/dist/dashboard/from-json.js.map +1 -1
  36. package/dist/dashboard/index.d.ts +31 -10
  37. package/dist/dashboard/index.d.ts.map +1 -1
  38. package/dist/dashboard/index.js +40 -10
  39. package/dist/dashboard/index.js.map +1 -1
  40. package/dist/dashboard/mutations.d.ts +60 -3
  41. package/dist/dashboard/mutations.d.ts.map +1 -1
  42. package/dist/dashboard/mutations.js +129 -32
  43. package/dist/dashboard/mutations.js.map +1 -1
  44. package/dist/dashboard/post-assertion-validation.d.ts +88 -0
  45. package/dist/dashboard/post-assertion-validation.d.ts.map +1 -0
  46. package/dist/dashboard/post-assertion-validation.js +191 -0
  47. package/dist/dashboard/post-assertion-validation.js.map +1 -0
  48. package/dist/dashboard/reads.d.ts +93 -1
  49. package/dist/dashboard/reads.d.ts.map +1 -1
  50. package/dist/dashboard/reads.js +244 -40
  51. package/dist/dashboard/reads.js.map +1 -1
  52. package/dist/dashboard/types.d.ts +149 -21
  53. package/dist/dashboard/types.d.ts.map +1 -1
  54. package/dist/errors/codes.js +1 -1
  55. package/dist/event-analytics.d.ts +1 -3
  56. package/dist/event-analytics.d.ts.map +1 -1
  57. package/dist/event-analytics.js +4 -9
  58. package/dist/event-analytics.js.map +1 -1
  59. package/dist/events.js +2 -2
  60. package/dist/events.js.map +1 -1
  61. package/dist/generated/accounts/agentVault.d.ts +0 -20
  62. package/dist/generated/accounts/agentVault.d.ts.map +1 -1
  63. package/dist/generated/accounts/agentVault.js +0 -2
  64. package/dist/generated/accounts/agentVault.js.map +1 -1
  65. package/dist/generated/accounts/pendingAgentPermissionsUpdate.d.ts +12 -0
  66. package/dist/generated/accounts/pendingAgentPermissionsUpdate.d.ts.map +1 -1
  67. package/dist/generated/accounts/pendingAgentPermissionsUpdate.js +3 -1
  68. package/dist/generated/accounts/pendingAgentPermissionsUpdate.js.map +1 -1
  69. package/dist/generated/accounts/pendingCloseConstraints.d.ts +12 -0
  70. package/dist/generated/accounts/pendingCloseConstraints.d.ts.map +1 -1
  71. package/dist/generated/accounts/pendingCloseConstraints.js +4 -2
  72. package/dist/generated/accounts/pendingCloseConstraints.js.map +1 -1
  73. package/dist/generated/accounts/pendingConstraintsUpdate.d.ts +14 -0
  74. package/dist/generated/accounts/pendingConstraintsUpdate.d.ts.map +1 -1
  75. package/dist/generated/accounts/pendingConstraintsUpdate.js +4 -2
  76. package/dist/generated/accounts/pendingConstraintsUpdate.js.map +1 -1
  77. package/dist/generated/accounts/pendingPolicyUpdate.d.ts +24 -8
  78. package/dist/generated/accounts/pendingPolicyUpdate.d.ts.map +1 -1
  79. package/dist/generated/accounts/pendingPolicyUpdate.js +6 -8
  80. package/dist/generated/accounts/pendingPolicyUpdate.js.map +1 -1
  81. package/dist/generated/accounts/policyConfig.d.ts +28 -18
  82. package/dist/generated/accounts/policyConfig.d.ts.map +1 -1
  83. package/dist/generated/accounts/policyConfig.js +4 -8
  84. package/dist/generated/accounts/policyConfig.js.map +1 -1
  85. package/dist/generated/accounts/sessionAuthority.d.ts +18 -8
  86. package/dist/generated/accounts/sessionAuthority.d.ts.map +1 -1
  87. package/dist/generated/accounts/sessionAuthority.js +4 -6
  88. package/dist/generated/accounts/sessionAuthority.js.map +1 -1
  89. package/dist/generated/errors/sigil.d.ts +95 -89
  90. package/dist/generated/errors/sigil.d.ts.map +1 -1
  91. package/dist/generated/errors/sigil.js +107 -98
  92. package/dist/generated/errors/sigil.js.map +1 -1
  93. package/dist/generated/event-discriminators.js +1 -1
  94. package/dist/generated/event-discriminators.js.map +1 -1
  95. package/dist/generated/instructions/cleanupOrphanConstraintsPda.d.ts +67 -0
  96. package/dist/generated/instructions/cleanupOrphanConstraintsPda.d.ts.map +1 -0
  97. package/dist/generated/instructions/cleanupOrphanConstraintsPda.js +120 -0
  98. package/dist/generated/instructions/cleanupOrphanConstraintsPda.js.map +1 -0
  99. package/dist/generated/instructions/freezeVault.d.ts +8 -5
  100. package/dist/generated/instructions/freezeVault.d.ts.map +1 -1
  101. package/dist/generated/instructions/freezeVault.js +14 -3
  102. package/dist/generated/instructions/freezeVault.js.map +1 -1
  103. package/dist/generated/instructions/index.d.ts +1 -1
  104. package/dist/generated/instructions/index.d.ts.map +1 -1
  105. package/dist/generated/instructions/index.js +1 -1
  106. package/dist/generated/instructions/index.js.map +1 -1
  107. package/dist/generated/instructions/initializeVault.d.ts +0 -8
  108. package/dist/generated/instructions/initializeVault.d.ts.map +1 -1
  109. package/dist/generated/instructions/initializeVault.js +0 -4
  110. package/dist/generated/instructions/initializeVault.js.map +1 -1
  111. package/dist/generated/instructions/queuePolicyUpdate.d.ts +8 -16
  112. package/dist/generated/instructions/queuePolicyUpdate.d.ts.map +1 -1
  113. package/dist/generated/instructions/queuePolicyUpdate.js +4 -8
  114. package/dist/generated/instructions/queuePolicyUpdate.js.map +1 -1
  115. package/dist/generated/programs/sigil.d.ts +26 -26
  116. package/dist/generated/programs/sigil.d.ts.map +1 -1
  117. package/dist/generated/programs/sigil.js +34 -34
  118. package/dist/generated/programs/sigil.js.map +1 -1
  119. package/dist/generated/types/accountConstraint.d.ts +16 -1
  120. package/dist/generated/types/accountConstraint.d.ts.map +1 -1
  121. package/dist/generated/types/accountConstraint.js +2 -0
  122. package/dist/generated/types/accountConstraint.js.map +1 -1
  123. package/dist/generated/types/accountConstraintZC.d.ts +7 -0
  124. package/dist/generated/types/accountConstraintZC.d.ts.map +1 -1
  125. package/dist/generated/types/accountConstraintZC.js +4 -2
  126. package/dist/generated/types/accountConstraintZC.js.map +1 -1
  127. package/dist/generated/types/constraintEntry.d.ts +0 -8
  128. package/dist/generated/types/constraintEntry.d.ts.map +1 -1
  129. package/dist/generated/types/constraintEntry.js +1 -5
  130. package/dist/generated/types/constraintEntry.js.map +1 -1
  131. package/dist/generated/types/constraintEntryZC.d.ts +22 -27
  132. package/dist/generated/types/constraintEntryZC.d.ts.map +1 -1
  133. package/dist/generated/types/constraintEntryZC.js +4 -6
  134. package/dist/generated/types/constraintEntryZC.js.map +1 -1
  135. package/dist/generated/types/index.d.ts +1 -1
  136. package/dist/generated/types/index.d.ts.map +1 -1
  137. package/dist/generated/types/index.js +1 -1
  138. package/dist/generated/types/index.js.map +1 -1
  139. package/dist/generated/types/orphanConstraintsPdaCleaned.d.ts +22 -0
  140. package/dist/generated/types/orphanConstraintsPdaCleaned.d.ts.map +1 -0
  141. package/dist/generated/types/{positionsSynced.js → orphanConstraintsPdaCleaned.js} +8 -10
  142. package/dist/generated/types/orphanConstraintsPdaCleaned.js.map +1 -0
  143. package/dist/generated/types/sessionFinalized.d.ts +0 -4
  144. package/dist/generated/types/sessionFinalized.d.ts.map +1 -1
  145. package/dist/generated/types/sessionFinalized.js +1 -3
  146. package/dist/generated/types/sessionFinalized.js.map +1 -1
  147. package/dist/generated/types/vaultFrozen.d.ts +12 -0
  148. package/dist/generated/types/vaultFrozen.d.ts.map +1 -1
  149. package/dist/generated/types/vaultFrozen.js +3 -1
  150. package/dist/generated/types/vaultFrozen.js.map +1 -1
  151. package/dist/index.d.ts +13 -3
  152. package/dist/index.d.ts.map +1 -1
  153. package/dist/index.js +23 -2
  154. package/dist/index.js.map +1 -1
  155. package/dist/inscribe.d.ts +0 -8
  156. package/dist/inscribe.d.ts.map +1 -1
  157. package/dist/inscribe.js +0 -2
  158. package/dist/inscribe.js.map +1 -1
  159. package/dist/kit-adapter.d.ts +1 -1
  160. package/dist/kit-adapter.d.ts.map +1 -1
  161. package/dist/kit-adapter.js +1 -1
  162. package/dist/kit-adapter.js.map +1 -1
  163. package/dist/logger.d.ts +48 -0
  164. package/dist/logger.d.ts.map +1 -1
  165. package/dist/logger.js +36 -0
  166. package/dist/logger.js.map +1 -1
  167. package/dist/owner-transaction.d.ts +8 -0
  168. package/dist/owner-transaction.d.ts.map +1 -1
  169. package/dist/owner-transaction.js +1 -0
  170. package/dist/owner-transaction.js.map +1 -1
  171. package/dist/post-assertions/cross-field-lte.d.ts +134 -0
  172. package/dist/post-assertions/cross-field-lte.d.ts.map +1 -0
  173. package/dist/post-assertions/cross-field-lte.js +129 -0
  174. package/dist/post-assertions/cross-field-lte.js.map +1 -0
  175. package/dist/post-assertions/index.d.ts +28 -0
  176. package/dist/post-assertions/index.d.ts.map +1 -0
  177. package/dist/post-assertions/index.js +28 -0
  178. package/dist/post-assertions/index.js.map +1 -0
  179. package/dist/post-assertions/presets/flash-trade.d.ts +139 -0
  180. package/dist/post-assertions/presets/flash-trade.d.ts.map +1 -0
  181. package/dist/post-assertions/presets/flash-trade.js +154 -0
  182. package/dist/post-assertions/presets/flash-trade.js.map +1 -0
  183. package/dist/presets.d.ts +1 -13
  184. package/dist/presets.d.ts.map +1 -1
  185. package/dist/presets.js +0 -10
  186. package/dist/presets.js.map +1 -1
  187. package/dist/preview-create-vault.d.ts +280 -0
  188. package/dist/preview-create-vault.d.ts.map +1 -0
  189. package/dist/preview-create-vault.js +477 -0
  190. package/dist/preview-create-vault.js.map +1 -0
  191. package/dist/protocol-registry/annotations/drift.json +7 -0
  192. package/dist/protocol-registry/annotations/flash-trade.json +7 -0
  193. package/dist/protocol-registry/annotations/jupiter-borrow.json +7 -0
  194. package/dist/protocol-registry/annotations/jupiter-earn.json +7 -0
  195. package/dist/protocol-registry/annotations/jupiter-lend.json +7 -0
  196. package/dist/protocol-registry/annotations/jupiter.json +7 -0
  197. package/dist/protocol-registry/annotations/kamino.json +7 -0
  198. package/dist/protocol-registry/index.d.ts +45 -0
  199. package/dist/protocol-registry/index.d.ts.map +1 -0
  200. package/dist/protocol-registry/index.js +76 -0
  201. package/dist/protocol-registry/index.js.map +1 -0
  202. package/dist/protocol-tier.d.ts +157 -0
  203. package/dist/protocol-tier.d.ts.map +1 -0
  204. package/dist/protocol-tier.js +104 -0
  205. package/dist/protocol-tier.js.map +1 -0
  206. package/dist/seal.d.ts.map +1 -1
  207. package/dist/seal.js +30 -12
  208. package/dist/seal.js.map +1 -1
  209. package/dist/sigil.d.ts +0 -8
  210. package/dist/sigil.d.ts.map +1 -1
  211. package/dist/simulation.d.ts.map +1 -1
  212. package/dist/simulation.js +131 -82
  213. package/dist/simulation.js.map +1 -1
  214. package/dist/testing/devnet.d.ts.map +1 -1
  215. package/dist/testing/devnet.js +0 -2
  216. package/dist/testing/devnet.js.map +1 -1
  217. package/dist/testing/errors/expect.d.ts +137 -0
  218. package/dist/testing/errors/expect.d.ts.map +1 -0
  219. package/dist/testing/errors/expect.js +372 -0
  220. package/dist/testing/errors/expect.js.map +1 -0
  221. package/dist/testing/errors/index.d.ts +3 -0
  222. package/dist/testing/errors/index.d.ts.map +1 -0
  223. package/dist/testing/errors/index.js +8 -0
  224. package/dist/testing/errors/index.js.map +1 -0
  225. package/dist/testing/errors/names.generated.d.ts +188 -0
  226. package/dist/testing/errors/names.generated.d.ts.map +1 -0
  227. package/dist/testing/errors/names.generated.js +183 -0
  228. package/dist/testing/errors/names.generated.js.map +1 -0
  229. package/dist/testing/index.d.ts +1 -0
  230. package/dist/testing/index.d.ts.map +1 -1
  231. package/dist/testing/index.js +8 -0
  232. package/dist/testing/index.js.map +1 -1
  233. package/dist/testing/mock-rpc.d.ts +8 -0
  234. package/dist/testing/mock-rpc.d.ts.map +1 -1
  235. package/dist/testing/mock-rpc.js +14 -0
  236. package/dist/testing/mock-rpc.js.map +1 -1
  237. package/dist/testing/mock-state.d.ts +0 -2
  238. package/dist/testing/mock-state.d.ts.map +1 -1
  239. package/dist/testing/mock-state.js +2 -5
  240. package/dist/testing/mock-state.js.map +1 -1
  241. package/dist/types.d.ts +1 -3
  242. package/dist/types.d.ts.map +1 -1
  243. package/dist/types.js +5 -9
  244. package/dist/types.js.map +1 -1
  245. package/dist/vault-analytics.d.ts +0 -1
  246. package/dist/vault-analytics.d.ts.map +1 -1
  247. package/dist/vault-analytics.js +0 -1
  248. package/dist/vault-analytics.js.map +1 -1
  249. package/package.json +15 -3
  250. package/dist/generated/instructions/syncPositions.d.ts +0 -44
  251. package/dist/generated/instructions/syncPositions.d.ts.map +0 -1
  252. package/dist/generated/instructions/syncPositions.js +0 -72
  253. package/dist/generated/instructions/syncPositions.js.map +0 -1
  254. package/dist/generated/types/positionsSynced.d.ts +0 -24
  255. package/dist/generated/types/positionsSynced.d.ts.map +0 -1
  256. package/dist/generated/types/positionsSynced.js.map +0 -1
  257. package/dist/integrations/protocol-handler.d.ts +0 -59
  258. package/dist/integrations/protocol-handler.d.ts.map +0 -1
  259. package/dist/integrations/protocol-handler.js +0 -9
  260. package/dist/integrations/protocol-handler.js.map +0 -1
@@ -0,0 +1,139 @@
1
+ /**
2
+ * `@usesigil/kit/post-assertions/presets/flash-trade` — Flash Trade leverage cap preset.
3
+ *
4
+ * Convenience wrapper around `leverageCapLteBps` that fills in the byte offsets
5
+ * of a Flash Trade Position account's `size_usd` and `collateral_usd` fields.
6
+ *
7
+ * Callers provide a position account address + a leverage cap expressed in
8
+ * "x" (multiples), and the preset returns a `PostAssertionEntry` that the
9
+ * on-chain program enforces as:
10
+ *
11
+ * size_usd × 10000 ≤ maxLeverage × 10000 × collateral_usd
12
+ * ⇔ leverage (= size_usd / collateral_usd) ≤ maxLeverage
13
+ *
14
+ * ## Field offsets (pinned to flash-sdk@15.x Perpetuals IDL)
15
+ *
16
+ * Derived from the Anchor IDL shipped with `flash-sdk@^15.14.1`
17
+ * (`node_modules/flash-sdk/dist/idl/perpetuals.json`). Position account
18
+ * Borsh layout, starting after the 8-byte Anchor discriminator:
19
+ *
20
+ * offset field type size
21
+ * 8 owner pubkey 32
22
+ * 40 market pubkey 32
23
+ * 72 delegate pubkey 32
24
+ * 104 open_time i64 8
25
+ * 112 update_time i64 8
26
+ * 120 entry_price OraclePrice { price: u64, exponent: i32 } 12
27
+ * 132 size_amount u64 8
28
+ * → 140 size_usd u64 8
29
+ * 148 locked_amount u64 8
30
+ * 156 locked_usd u64 8
31
+ * 164 price_impact_usd u64 8
32
+ * → 172 collateral_usd u64 8
33
+ * ...
34
+ *
35
+ * A drift-check unit test (`presets/flash-trade.test.ts`) reloads the Anchor
36
+ * IDL from `flash-sdk` at test time and recomputes offsets — any future
37
+ * flash-sdk bump that shifts these fields fails the test before a broken
38
+ * preset can ship.
39
+ *
40
+ * ## Jupiter Perps is NOT supported here
41
+ *
42
+ * Flash Trade executes position changes synchronously in the user's tx, so
43
+ * post-execution assertions are meaningful. Jupiter Perpetuals uses a 2-tx
44
+ * keeper-fulfillment model that silently bypasses post-assertions — that gate
45
+ * is enforced upstream in `leverageCapLteBps` via
46
+ * `JupiterPerpsPostAssertionUnsupportedError`, so a caller who mistakenly
47
+ * plugs a Jupiter Perps Position address here gets an explicit error.
48
+ *
49
+ * ## Bounds on `maxLeverage`
50
+ *
51
+ * `maxLeverage` is an integer multiplier (e.g., 5 = 5x cap). We reject
52
+ * values outside [1, 100]:
53
+ * - 0 would encode `size_usd ≤ 0` — any non-zero position fails, effectively
54
+ * a kill-switch. Safer to reject and let callers use `closePostAssertions`
55
+ * if they want to disable the cap entirely.
56
+ * - Values > 100 exceed any practical Flash Trade leverage (current mainnet
57
+ * caps sit around 25-50x) and are almost certainly caller bugs.
58
+ *
59
+ * @see programs/sigil/src/state/post_assertions.rs — on-chain CrossFieldLte enforcer
60
+ * @see `@usesigil/kit/post-assertions/cross-field-lte.ts` — underlying builder
61
+ */
62
+ import type { Address } from "@solana/kit";
63
+ import type { PostAssertionEntry } from "../../generated/types/postAssertionEntry.js";
64
+ /**
65
+ * Flash Trade Perpetuals program address (mainnet-beta). Owner of Position
66
+ * accounts that this preset targets.
67
+ *
68
+ * Source: `constants` module in `flash-sdk@^15.14.1`. Hard-coded here so the
69
+ * preset is importable without loading the full flash-sdk runtime.
70
+ */
71
+ export declare const FLASH_TRADE_PROGRAM_ADDRESS: Address;
72
+ /**
73
+ * Byte offset of `size_usd` (u64, little-endian) inside Flash Trade Position
74
+ * account data, starting from byte 0 of the account (NOT after discriminator).
75
+ *
76
+ * Pinned to flash-sdk@^15.14.1 Perpetuals IDL. A drift-check unit test
77
+ * reloads the IDL and asserts this value matches.
78
+ */
79
+ export declare const FLASH_TRADE_POSITION_SIZE_USD_OFFSET = 140;
80
+ /**
81
+ * Byte offset of `collateral_usd` (u64, little-endian) inside Flash Trade
82
+ * Position account data.
83
+ *
84
+ * Pinned to flash-sdk@^15.14.1 Perpetuals IDL. Drift-check test guards this.
85
+ */
86
+ export declare const FLASH_TRADE_POSITION_COLLATERAL_USD_OFFSET = 172;
87
+ /**
88
+ * Lowest permitted `maxLeverage` input — 1x. Zero would encode a kill-switch.
89
+ */
90
+ export declare const MIN_LEVERAGE_X = 1;
91
+ /**
92
+ * Highest permitted `maxLeverage` input. 100x is a generous upper bound above
93
+ * any practical Flash Trade cap.
94
+ */
95
+ export declare const MAX_LEVERAGE_X = 100;
96
+ /**
97
+ * Thrown when `maxLeverage` is outside [MIN_LEVERAGE_X, MAX_LEVERAGE_X] or
98
+ * not an integer. Carries a DxError-compatible shape so FE can branch on
99
+ * `.code` without `instanceof` checks that break across module realms.
100
+ */
101
+ export declare class FlashTradeLeverageOutOfRangeError extends Error {
102
+ /** DxError-compatible numeric code. 7009 reserved for preset validation. */
103
+ readonly code: number;
104
+ readonly recovery: readonly string[];
105
+ /**
106
+ * Always `false` — thrown at CLIENT validation time, before any RPC
107
+ * round-trip. Present to satisfy DxError's structural contract (every
108
+ * DxError carries `onChainReverted`; see v2.2 contract C2).
109
+ */
110
+ readonly onChainReverted: boolean;
111
+ readonly received: unknown;
112
+ constructor(received: unknown);
113
+ }
114
+ export interface FlashTradeLeverageCapOpts {
115
+ /** Base-58 pubkey of the Flash Trade Position account to monitor. */
116
+ readonly positionAccount: Address;
117
+ /**
118
+ * Maximum leverage in "x" units (e.g. 5 = 5x). Integer in [1, 100].
119
+ * The preset throws `FlashTradeLeverageOutOfRangeError` on anything else.
120
+ */
121
+ readonly maxLeverage: number;
122
+ }
123
+ /**
124
+ * Build a post-assertion entry that caps Flash Trade leverage at `maxLeverage` × .
125
+ *
126
+ * Equivalent to calling {@link leverageCapLteBps} with Flash Trade's Position
127
+ * `size_usd` / `collateral_usd` offsets filled in, `targetAccountOwnerProgram`
128
+ * set to {@link FLASH_TRADE_PROGRAM_ADDRESS}, and `maxBps = maxLeverage * 10000`.
129
+ *
130
+ * @throws {FlashTradeLeverageOutOfRangeError} if `maxLeverage` is not an
131
+ * integer in [1, 100].
132
+ * @throws {import("../cross-field-lte.js").JupiterPerpsPostAssertionUnsupportedError}
133
+ * re-thrown by the underlying builder if `targetAccountOwnerProgram` ever
134
+ * drifts to Jupiter Perps (defense-in-depth — Flash Trade's program address
135
+ * is hard-coded here, so this throw indicates either a preset bug or a
136
+ * caller who hand-mutated the returned entry before submitting).
137
+ */
138
+ export declare function flashTradeLeverageCap(opts: FlashTradeLeverageCapOpts): PostAssertionEntry;
139
+ //# sourceMappingURL=flash-trade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flash-trade.d.ts","sourceRoot":"","sources":["../../../src/post-assertions/presets/flash-trade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAKtF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EACY,OAAO,CAAC;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,0CAA0C,MAAM,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAIlC;;;;GAIG;AACH,qBAAa,iCAAkC,SAAQ,KAAK;IAC1D,4EAA4E;IAC5E,SAAgB,IAAI,EAAE,MAAM,CAAQ;IACpC,SAAgB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAGzC;IACF;;;;OAIG;IACH,SAAgB,eAAe,EAAE,OAAO,CAAS;IACjD,SAAgB,QAAQ,EAAE,OAAO,CAAC;gBAEtB,QAAQ,EAAE,OAAO;CAQ9B;AAID,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,yBAAyB,GAC9B,kBAAkB,CAkBpB"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * `@usesigil/kit/post-assertions/presets/flash-trade` — Flash Trade leverage cap preset.
3
+ *
4
+ * Convenience wrapper around `leverageCapLteBps` that fills in the byte offsets
5
+ * of a Flash Trade Position account's `size_usd` and `collateral_usd` fields.
6
+ *
7
+ * Callers provide a position account address + a leverage cap expressed in
8
+ * "x" (multiples), and the preset returns a `PostAssertionEntry` that the
9
+ * on-chain program enforces as:
10
+ *
11
+ * size_usd × 10000 ≤ maxLeverage × 10000 × collateral_usd
12
+ * ⇔ leverage (= size_usd / collateral_usd) ≤ maxLeverage
13
+ *
14
+ * ## Field offsets (pinned to flash-sdk@15.x Perpetuals IDL)
15
+ *
16
+ * Derived from the Anchor IDL shipped with `flash-sdk@^15.14.1`
17
+ * (`node_modules/flash-sdk/dist/idl/perpetuals.json`). Position account
18
+ * Borsh layout, starting after the 8-byte Anchor discriminator:
19
+ *
20
+ * offset field type size
21
+ * 8 owner pubkey 32
22
+ * 40 market pubkey 32
23
+ * 72 delegate pubkey 32
24
+ * 104 open_time i64 8
25
+ * 112 update_time i64 8
26
+ * 120 entry_price OraclePrice { price: u64, exponent: i32 } 12
27
+ * 132 size_amount u64 8
28
+ * → 140 size_usd u64 8
29
+ * 148 locked_amount u64 8
30
+ * 156 locked_usd u64 8
31
+ * 164 price_impact_usd u64 8
32
+ * → 172 collateral_usd u64 8
33
+ * ...
34
+ *
35
+ * A drift-check unit test (`presets/flash-trade.test.ts`) reloads the Anchor
36
+ * IDL from `flash-sdk` at test time and recomputes offsets — any future
37
+ * flash-sdk bump that shifts these fields fails the test before a broken
38
+ * preset can ship.
39
+ *
40
+ * ## Jupiter Perps is NOT supported here
41
+ *
42
+ * Flash Trade executes position changes synchronously in the user's tx, so
43
+ * post-execution assertions are meaningful. Jupiter Perpetuals uses a 2-tx
44
+ * keeper-fulfillment model that silently bypasses post-assertions — that gate
45
+ * is enforced upstream in `leverageCapLteBps` via
46
+ * `JupiterPerpsPostAssertionUnsupportedError`, so a caller who mistakenly
47
+ * plugs a Jupiter Perps Position address here gets an explicit error.
48
+ *
49
+ * ## Bounds on `maxLeverage`
50
+ *
51
+ * `maxLeverage` is an integer multiplier (e.g., 5 = 5x cap). We reject
52
+ * values outside [1, 100]:
53
+ * - 0 would encode `size_usd ≤ 0` — any non-zero position fails, effectively
54
+ * a kill-switch. Safer to reject and let callers use `closePostAssertions`
55
+ * if they want to disable the cap entirely.
56
+ * - Values > 100 exceed any practical Flash Trade leverage (current mainnet
57
+ * caps sit around 25-50x) and are almost certainly caller bugs.
58
+ *
59
+ * @see programs/sigil/src/state/post_assertions.rs — on-chain CrossFieldLte enforcer
60
+ * @see `@usesigil/kit/post-assertions/cross-field-lte.ts` — underlying builder
61
+ */
62
+ import { leverageCapLteBps } from "../cross-field-lte.js";
63
+ // ─── Constants ────────────────────────────────────────────────────────────
64
+ /**
65
+ * Flash Trade Perpetuals program address (mainnet-beta). Owner of Position
66
+ * accounts that this preset targets.
67
+ *
68
+ * Source: `constants` module in `flash-sdk@^15.14.1`. Hard-coded here so the
69
+ * preset is importable without loading the full flash-sdk runtime.
70
+ */
71
+ export const FLASH_TRADE_PROGRAM_ADDRESS = "FLaSh6f6Y5bLsmcfiaxvqRJC3WQLKYh1iCfAsh7uMH8z";
72
+ /**
73
+ * Byte offset of `size_usd` (u64, little-endian) inside Flash Trade Position
74
+ * account data, starting from byte 0 of the account (NOT after discriminator).
75
+ *
76
+ * Pinned to flash-sdk@^15.14.1 Perpetuals IDL. A drift-check unit test
77
+ * reloads the IDL and asserts this value matches.
78
+ */
79
+ export const FLASH_TRADE_POSITION_SIZE_USD_OFFSET = 140;
80
+ /**
81
+ * Byte offset of `collateral_usd` (u64, little-endian) inside Flash Trade
82
+ * Position account data.
83
+ *
84
+ * Pinned to flash-sdk@^15.14.1 Perpetuals IDL. Drift-check test guards this.
85
+ */
86
+ export const FLASH_TRADE_POSITION_COLLATERAL_USD_OFFSET = 172;
87
+ /**
88
+ * Lowest permitted `maxLeverage` input — 1x. Zero would encode a kill-switch.
89
+ */
90
+ export const MIN_LEVERAGE_X = 1;
91
+ /**
92
+ * Highest permitted `maxLeverage` input. 100x is a generous upper bound above
93
+ * any practical Flash Trade cap.
94
+ */
95
+ export const MAX_LEVERAGE_X = 100;
96
+ // ─── Errors ───────────────────────────────────────────────────────────────
97
+ /**
98
+ * Thrown when `maxLeverage` is outside [MIN_LEVERAGE_X, MAX_LEVERAGE_X] or
99
+ * not an integer. Carries a DxError-compatible shape so FE can branch on
100
+ * `.code` without `instanceof` checks that break across module realms.
101
+ */
102
+ export class FlashTradeLeverageOutOfRangeError extends Error {
103
+ /** DxError-compatible numeric code. 7009 reserved for preset validation. */
104
+ code = 7009;
105
+ recovery = [
106
+ `Pass a whole number between ${MIN_LEVERAGE_X} and ${MAX_LEVERAGE_X}.`,
107
+ "To disable an existing leverage cap, call `closePostAssertions(...)`.",
108
+ ];
109
+ /**
110
+ * Always `false` — thrown at CLIENT validation time, before any RPC
111
+ * round-trip. Present to satisfy DxError's structural contract (every
112
+ * DxError carries `onChainReverted`; see v2.2 contract C2).
113
+ */
114
+ onChainReverted = false;
115
+ received;
116
+ constructor(received) {
117
+ super(`flashTradeLeverageCap: maxLeverage must be an integer in [${MIN_LEVERAGE_X}, ${MAX_LEVERAGE_X}] (got ${String(received)})`);
118
+ this.name = "FlashTradeLeverageOutOfRangeError";
119
+ this.received = received;
120
+ // TS target=ES2020 preserves .name/.message across supers; no extra handling needed.
121
+ }
122
+ }
123
+ // ─── Builder ──────────────────────────────────────────────────────────────
124
+ /**
125
+ * Build a post-assertion entry that caps Flash Trade leverage at `maxLeverage` × .
126
+ *
127
+ * Equivalent to calling {@link leverageCapLteBps} with Flash Trade's Position
128
+ * `size_usd` / `collateral_usd` offsets filled in, `targetAccountOwnerProgram`
129
+ * set to {@link FLASH_TRADE_PROGRAM_ADDRESS}, and `maxBps = maxLeverage * 10000`.
130
+ *
131
+ * @throws {FlashTradeLeverageOutOfRangeError} if `maxLeverage` is not an
132
+ * integer in [1, 100].
133
+ * @throws {import("../cross-field-lte.js").JupiterPerpsPostAssertionUnsupportedError}
134
+ * re-thrown by the underlying builder if `targetAccountOwnerProgram` ever
135
+ * drifts to Jupiter Perps (defense-in-depth — Flash Trade's program address
136
+ * is hard-coded here, so this throw indicates either a preset bug or a
137
+ * caller who hand-mutated the returned entry before submitting).
138
+ */
139
+ export function flashTradeLeverageCap(opts) {
140
+ if (!Number.isInteger(opts.maxLeverage) ||
141
+ opts.maxLeverage < MIN_LEVERAGE_X ||
142
+ opts.maxLeverage > MAX_LEVERAGE_X) {
143
+ throw new FlashTradeLeverageOutOfRangeError(opts.maxLeverage);
144
+ }
145
+ const maxBps = opts.maxLeverage * 10_000;
146
+ return leverageCapLteBps({
147
+ targetAccount: opts.positionAccount,
148
+ targetAccountOwnerProgram: FLASH_TRADE_PROGRAM_ADDRESS,
149
+ fieldAOffset: FLASH_TRADE_POSITION_SIZE_USD_OFFSET,
150
+ fieldBOffset: FLASH_TRADE_POSITION_COLLATERAL_USD_OFFSET,
151
+ maxBps,
152
+ });
153
+ }
154
+ //# sourceMappingURL=flash-trade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flash-trade.js","sourceRoot":"","sources":["../../../src/post-assertions/presets/flash-trade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,6EAA6E;AAE7E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACtC,8CAAyD,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,GAAG,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAElC,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IAC1D,4EAA4E;IAC5D,IAAI,GAAW,IAAI,CAAC;IACpB,QAAQ,GAAsB;QAC5C,+BAA+B,cAAc,QAAQ,cAAc,GAAG;QACtE,uEAAuE;KACxE,CAAC;IACF;;;;OAIG;IACa,eAAe,GAAY,KAAK,CAAC;IACjC,QAAQ,CAAU;IAElC,YAAY,QAAiB;QAC3B,KAAK,CACH,6DAA6D,cAAc,KAAK,cAAc,UAAU,MAAM,CAAC,QAAQ,CAAC,GAAG,CAC5H,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mCAAmC,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,qFAAqF;IACvF,CAAC;CACF;AAcD,6EAA6E;AAE7E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAA+B;IAE/B,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,cAAc;QACjC,IAAI,CAAC,WAAW,GAAG,cAAc,EACjC,CAAC;QACD,MAAM,IAAI,iCAAiC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAEzC,OAAO,iBAAiB,CAAC;QACvB,aAAa,EAAE,IAAI,CAAC,eAAe;QACnC,yBAAyB,EAAE,2BAA2B;QACtD,YAAY,EAAE,oCAAoC;QAClD,YAAY,EAAE,0CAA0C;QACxD,MAAM;KACP,CAAC,CAAC;AACL,CAAC"}
package/dist/presets.d.ts CHANGED
@@ -43,10 +43,6 @@ export interface VaultPreset {
43
43
  protocolMode: number;
44
44
  /** Allowed/denied protocol addresses (empty if mode = all). */
45
45
  protocols: Address[];
46
- /** Max leverage in basis points (0 = no leverage). */
47
- maxLeverageBps: number;
48
- /** Max concurrent open positions. */
49
- maxConcurrentPositions: number;
50
46
  }
51
47
  export declare const VAULT_PRESETS: {
52
48
  readonly "jupiter-swap-bot": {
@@ -59,8 +55,6 @@ export declare const VAULT_PRESETS: {
59
55
  readonly maxSlippageBps: 200;
60
56
  readonly protocolMode: 1;
61
57
  readonly protocols: [Address];
62
- readonly maxLeverageBps: 0;
63
- readonly maxConcurrentPositions: 0;
64
58
  };
65
59
  readonly "perps-trader": {
66
60
  readonly label: "Perps Trader";
@@ -72,8 +66,6 @@ export declare const VAULT_PRESETS: {
72
66
  readonly maxSlippageBps: 500;
73
67
  readonly protocolMode: 1;
74
68
  readonly protocols: [Address, Address];
75
- readonly maxLeverageBps: 10000;
76
- readonly maxConcurrentPositions: 5;
77
69
  };
78
70
  readonly "lending-optimizer": {
79
71
  readonly label: "Lending Optimizer";
@@ -85,8 +77,6 @@ export declare const VAULT_PRESETS: {
85
77
  readonly maxSlippageBps: 100;
86
78
  readonly protocolMode: 1;
87
79
  readonly protocols: [Address, Address, Address];
88
- readonly maxLeverageBps: 0;
89
- readonly maxConcurrentPositions: 0;
90
80
  };
91
81
  readonly "full-access": {
92
82
  readonly label: "Full Access";
@@ -98,8 +88,6 @@ export declare const VAULT_PRESETS: {
98
88
  readonly maxSlippageBps: 500;
99
89
  readonly protocolMode: 0;
100
90
  readonly protocols: [];
101
- readonly maxLeverageBps: 20000;
102
- readonly maxConcurrentPositions: 10;
103
91
  };
104
92
  };
105
93
  export type PresetName = keyof typeof VAULT_PRESETS;
@@ -123,7 +111,7 @@ export declare function listPresets(): PresetName[];
123
111
  * const result = await createVault(opts);
124
112
  * ```
125
113
  */
126
- export declare function presetToCreateVaultFields(name: PresetName): Pick<CreateVaultOptions, "permissions" | "dailySpendingCapUsd" | "maxTransactionSizeUsd" | "maxSlippageBps" | "protocolMode" | "protocols" | "maxLeverageBps" | "maxConcurrentPositions">;
114
+ export declare function presetToCreateVaultFields(name: PresetName): Pick<CreateVaultOptions, "permissions" | "dailySpendingCapUsd" | "maxTransactionSizeUsd" | "maxSlippageBps" | "protocolMode" | "protocols">;
127
115
  /**
128
116
  * Fields a safety preset can fill. `null` means "caller must supply" —
129
117
  * the production preset leaves caps explicit on purpose to force thought
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAyBpD,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,mBAAmB,EAAE,YAAY,CAAC;IAClC,qDAAqD;IACrD,qBAAqB,EAAE,YAAY,CAAC;IACpC,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAID,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DsB,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,aAAa,CAAC;AAIpD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAI/D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,UAAU,EAAE,CAE1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,GACf,IAAI,CACL,kBAAkB,EAChB,aAAa,GACb,qBAAqB,GACrB,uBAAuB,GACvB,gBAAgB,GAChB,cAAc,GACd,WAAW,GACX,gBAAgB,GAChB,wBAAwB,CAC3B,CAYA;AAQD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,gBAAgB,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,gBAAgB,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,6EAA6E;IAC7E,mBAAmB,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1C;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;CAW4B,CAAC;AAExD,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,cAAc,CAAC;AAE3D;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,SAAS,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC1C,kBAAkB,CAQpB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,GAAG;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,mBAAmB,EAAE,YAAY,CAAC;CACnC,CAeA"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAyBpD,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,mBAAmB,EAAE,YAAY,CAAC;IAClC,qDAAqD;IACrD,qBAAqB,EAAE,YAAY,CAAC;IACpC,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,EAAE,OAAO,EAAE,CAAC;CACtB;AAID,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDsB,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,aAAa,CAAC;AAIpD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAI/D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,UAAU,EAAE,CAE1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,GACf,IAAI,CACL,kBAAkB,EAChB,aAAa,GACb,qBAAqB,GACrB,uBAAuB,GACvB,gBAAgB,GAChB,cAAc,GACd,WAAW,CACd,CAUA;AAQD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,gBAAgB,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,gBAAgB,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,6EAA6E;IAC7E,mBAAmB,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1C;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;CAW4B,CAAC;AAExD,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,cAAc,CAAC;AAE3D;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,SAAS,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC1C,kBAAkB,CAQpB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,GAAG;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,mBAAmB,EAAE,YAAY,CAAC;CACnC,CAeA"}
package/dist/presets.js CHANGED
@@ -30,8 +30,6 @@ export const VAULT_PRESETS = {
30
30
  maxSlippageBps: 200, // 2%
31
31
  protocolMode: PROTOCOL_MODE_ALLOWLIST,
32
32
  protocols: [JUPITER_PROGRAM_ADDRESS],
33
- maxLeverageBps: 0,
34
- maxConcurrentPositions: 0,
35
33
  },
36
34
  "perps-trader": {
37
35
  label: "Perps Trader",
@@ -43,8 +41,6 @@ export const VAULT_PRESETS = {
43
41
  maxSlippageBps: 500, // 5%
44
42
  protocolMode: PROTOCOL_MODE_ALLOWLIST,
45
43
  protocols: [JUPITER_PROGRAM_ADDRESS, FLASH_TRADE_PROGRAM],
46
- maxLeverageBps: 10_000, // 10x
47
- maxConcurrentPositions: 5,
48
44
  },
49
45
  "lending-optimizer": {
50
46
  label: "Lending Optimizer",
@@ -60,8 +56,6 @@ export const VAULT_PRESETS = {
60
56
  JUPITER_LEND_PROGRAM,
61
57
  KAMINO_LEND_PROGRAM,
62
58
  ],
63
- maxLeverageBps: 0,
64
- maxConcurrentPositions: 0,
65
59
  },
66
60
  "full-access": {
67
61
  label: "Full Access",
@@ -73,8 +67,6 @@ export const VAULT_PRESETS = {
73
67
  maxSlippageBps: 500, // 5%
74
68
  protocolMode: PROTOCOL_MODE_ALL,
75
69
  protocols: [],
76
- maxLeverageBps: 20_000, // 20x
77
- maxConcurrentPositions: 10,
78
70
  },
79
71
  };
80
72
  // ─── Functions ──────────────────────────────────────────────────────────────
@@ -113,8 +105,6 @@ export function presetToCreateVaultFields(name) {
113
105
  maxSlippageBps: preset.maxSlippageBps,
114
106
  protocolMode: preset.protocolMode,
115
107
  protocols: [...preset.protocols],
116
- maxLeverageBps: preset.maxLeverageBps,
117
- maxConcurrentPositions: preset.maxConcurrentPositions,
118
108
  };
119
109
  }
120
110
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,GAAG,EAAqB,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,gFAAgF;AAEhF,MAAM,mBAAmB,GACvB,8CAAyD,CAAC;AAC5D,MAAM,oBAAoB,GACxB,6CAAwD,CAAC;AAC3D,MAAM,mBAAmB,GACvB,6CAAwD,CAAC;AA4C3D,+EAA+E;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,kBAAkB,EAAE;QAClB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,mGAAmG;QACrG,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,eAAe;QAC5B,mBAAmB,EAAE,GAAG,CAAC,UAAY,CAAC,EAAE,OAAO;QAC/C,qBAAqB,EAAE,GAAG,CAAC,UAAY,CAAC,EAAE,OAAO;QACjD,cAAc,EAAE,GAAG,EAAE,KAAK;QAC1B,YAAY,EAAE,uBAAuB;QACrC,SAAS,EAAE,CAAC,uBAAuB,CAAC;QACpC,cAAc,EAAE,CAAC;QACjB,sBAAsB,EAAE,CAAC;KAC1B;IACD,cAAc,EAAE;QACd,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,yFAAyF;QAC3F,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,eAAe;QAC5B,mBAAmB,EAAE,GAAG,CAAC,WAAc,CAAC,EAAE,SAAS;QACnD,qBAAqB,EAAE,GAAG,CAAC,WAAc,CAAC,EAAE,SAAS;QACrD,cAAc,EAAE,GAAG,EAAE,KAAK;QAC1B,YAAY,EAAE,uBAAuB;QACrC,SAAS,EAAE,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;QACzD,cAAc,EAAE,MAAM,EAAE,MAAM;QAC9B,sBAAsB,EAAE,CAAC;KAC1B;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,kGAAkG;QACpG,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,eAAe;QAC5B,mBAAmB,EAAE,GAAG,CAAC,WAAc,CAAC,EAAE,SAAS;QACnD,qBAAqB,EAAE,GAAG,CAAC,UAAY,CAAC,EAAE,OAAO;QACjD,cAAc,EAAE,GAAG,EAAE,KAAK;QAC1B,YAAY,EAAE,uBAAuB;QACrC,SAAS,EAAE;YACT,uBAAuB;YACvB,oBAAoB;YACpB,mBAAmB;SACpB;QACD,cAAc,EAAE,CAAC;QACjB,sBAAsB,EAAE,CAAC;KAC1B;IACD,aAAa,EAAE;QACb,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,qGAAqG;QACvG,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,eAAe;QAC5B,mBAAmB,EAAE,GAAG,CAAC,YAAe,CAAC,EAAE,UAAU;QACrD,qBAAqB,EAAE,GAAG,CAAC,WAAc,CAAC,EAAE,SAAS;QACrD,cAAc,EAAE,GAAG,EAAE,KAAK;QAC1B,YAAY,EAAE,iBAAiB;QAC/B,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,MAAM,EAAE,MAAM;QAC9B,sBAAsB,EAAE,EAAE;KAC3B;CAC6C,CAAC;AAIjD,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,OAAQ,aAA6C,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAiB,CAAC;AACpD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAgB;IAYhB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;QACnD,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QAChC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;KACtD,CAAC;AACJ,CAAC;AAsBD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW,EAAE;QACX,gBAAgB,EAAE,IAAI,EAAE,SAAS;QACjC,gBAAgB,EAAE,GAAG,CAAC,UAAY,CAAC,EAAE,aAAa;QAClD,mBAAmB,EAAE,GAAG,CAAC,UAAY,CAAC,EAAE,sBAAsB;KAC/D;IACD,UAAU,EAAE;QACV,gBAAgB,EAAE,KAAK,EAAE,WAAW;QACpC,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,IAAI;KAC1B;CACoD,CAAC;AAIxD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAsB,EACtB,YAAyC,EAAE;IAE3C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO;QACL,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB;QACvE,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB;QACvE,mBAAmB,EACjB,SAAS,CAAC,mBAAmB,IAAI,MAAM,CAAC,mBAAmB;KAC9D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAA0B;IAKpE,IAAI,MAAM,CAAC,gBAAgB,KAAK,IAAI,IAAI,MAAM,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CACb,6DAA6D;YAC3D,gEAAgE;YAChE,4DAA4D;YAC5D,4DAA4D;YAC5D,0BAA0B,CAC7B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;KAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}