@usesigil/kit 0.15.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 (229) hide show
  1. package/dist/agent-bootstrap.d.ts +118 -0
  2. package/dist/agent-bootstrap.d.ts.map +1 -0
  3. package/dist/agent-bootstrap.js +211 -0
  4. package/dist/agent-bootstrap.js.map +1 -0
  5. package/dist/agent-errors.d.ts +3 -3
  6. package/dist/agent-errors.d.ts.map +1 -1
  7. package/dist/agent-errors.js +227 -142
  8. package/dist/agent-errors.js.map +1 -1
  9. package/dist/build-unsigned.d.ts +152 -0
  10. package/dist/build-unsigned.d.ts.map +1 -0
  11. package/dist/build-unsigned.js +152 -0
  12. package/dist/build-unsigned.js.map +1 -0
  13. package/dist/constraints/index.d.ts +23 -0
  14. package/dist/constraints/index.d.ts.map +1 -0
  15. package/dist/constraints/index.js +24 -0
  16. package/dist/constraints/index.js.map +1 -0
  17. package/dist/create-vault.d.ts +10 -1
  18. package/dist/create-vault.d.ts.map +1 -1
  19. package/dist/create-vault.js +10 -2
  20. package/dist/create-vault.js.map +1 -1
  21. package/dist/dashboard/constraint-builders.d.ts +82 -0
  22. package/dist/dashboard/constraint-builders.d.ts.map +1 -0
  23. package/dist/dashboard/constraint-builders.js +204 -0
  24. package/dist/dashboard/constraint-builders.js.map +1 -0
  25. package/dist/dashboard/errors.d.ts +37 -0
  26. package/dist/dashboard/errors.d.ts.map +1 -1
  27. package/dist/dashboard/errors.js +76 -0
  28. package/dist/dashboard/errors.js.map +1 -1
  29. package/dist/dashboard/from-json.d.ts.map +1 -1
  30. package/dist/dashboard/from-json.js +1 -2
  31. package/dist/dashboard/from-json.js.map +1 -1
  32. package/dist/dashboard/index.d.ts +29 -3
  33. package/dist/dashboard/index.d.ts.map +1 -1
  34. package/dist/dashboard/index.js +36 -1
  35. package/dist/dashboard/index.js.map +1 -1
  36. package/dist/dashboard/mutations.d.ts +60 -1
  37. package/dist/dashboard/mutations.d.ts.map +1 -1
  38. package/dist/dashboard/mutations.js +127 -20
  39. package/dist/dashboard/mutations.js.map +1 -1
  40. package/dist/dashboard/post-assertion-validation.d.ts +88 -0
  41. package/dist/dashboard/post-assertion-validation.d.ts.map +1 -0
  42. package/dist/dashboard/post-assertion-validation.js +191 -0
  43. package/dist/dashboard/post-assertion-validation.js.map +1 -0
  44. package/dist/dashboard/reads.d.ts +93 -1
  45. package/dist/dashboard/reads.d.ts.map +1 -1
  46. package/dist/dashboard/reads.js +238 -9
  47. package/dist/dashboard/reads.js.map +1 -1
  48. package/dist/dashboard/types.d.ts +147 -11
  49. package/dist/dashboard/types.d.ts.map +1 -1
  50. package/dist/errors/codes.js +1 -1
  51. package/dist/events.d.ts.map +1 -1
  52. package/dist/events.js +2 -1
  53. package/dist/events.js.map +1 -1
  54. package/dist/generated/accounts/pendingAgentPermissionsUpdate.d.ts +12 -0
  55. package/dist/generated/accounts/pendingAgentPermissionsUpdate.d.ts.map +1 -1
  56. package/dist/generated/accounts/pendingAgentPermissionsUpdate.js +3 -1
  57. package/dist/generated/accounts/pendingAgentPermissionsUpdate.js.map +1 -1
  58. package/dist/generated/accounts/pendingCloseConstraints.d.ts +12 -0
  59. package/dist/generated/accounts/pendingCloseConstraints.d.ts.map +1 -1
  60. package/dist/generated/accounts/pendingCloseConstraints.js +4 -2
  61. package/dist/generated/accounts/pendingCloseConstraints.js.map +1 -1
  62. package/dist/generated/accounts/pendingConstraintsUpdate.d.ts +14 -0
  63. package/dist/generated/accounts/pendingConstraintsUpdate.d.ts.map +1 -1
  64. package/dist/generated/accounts/pendingConstraintsUpdate.js +4 -2
  65. package/dist/generated/accounts/pendingConstraintsUpdate.js.map +1 -1
  66. package/dist/generated/accounts/pendingPolicyUpdate.d.ts +24 -4
  67. package/dist/generated/accounts/pendingPolicyUpdate.d.ts.map +1 -1
  68. package/dist/generated/accounts/pendingPolicyUpdate.js +6 -4
  69. package/dist/generated/accounts/pendingPolicyUpdate.js.map +1 -1
  70. package/dist/generated/accounts/policyConfig.d.ts +28 -10
  71. package/dist/generated/accounts/policyConfig.d.ts.map +1 -1
  72. package/dist/generated/accounts/policyConfig.js +4 -4
  73. package/dist/generated/accounts/policyConfig.js.map +1 -1
  74. package/dist/generated/accounts/sessionAuthority.d.ts +18 -4
  75. package/dist/generated/accounts/sessionAuthority.d.ts.map +1 -1
  76. package/dist/generated/accounts/sessionAuthority.js +3 -3
  77. package/dist/generated/accounts/sessionAuthority.js.map +1 -1
  78. package/dist/generated/errors/sigil.d.ts +95 -81
  79. package/dist/generated/errors/sigil.d.ts.map +1 -1
  80. package/dist/generated/errors/sigil.js +107 -86
  81. package/dist/generated/errors/sigil.js.map +1 -1
  82. package/dist/generated/event-discriminators.d.ts.map +1 -1
  83. package/dist/generated/event-discriminators.js +2 -1
  84. package/dist/generated/event-discriminators.js.map +1 -1
  85. package/dist/generated/instructions/cleanupOrphanConstraintsPda.d.ts +67 -0
  86. package/dist/generated/instructions/cleanupOrphanConstraintsPda.d.ts.map +1 -0
  87. package/dist/generated/instructions/cleanupOrphanConstraintsPda.js +120 -0
  88. package/dist/generated/instructions/cleanupOrphanConstraintsPda.js.map +1 -0
  89. package/dist/generated/instructions/freezeVault.d.ts +8 -5
  90. package/dist/generated/instructions/freezeVault.d.ts.map +1 -1
  91. package/dist/generated/instructions/freezeVault.js +14 -3
  92. package/dist/generated/instructions/freezeVault.js.map +1 -1
  93. package/dist/generated/instructions/index.d.ts +1 -0
  94. package/dist/generated/instructions/index.d.ts.map +1 -1
  95. package/dist/generated/instructions/index.js +1 -0
  96. package/dist/generated/instructions/index.js.map +1 -1
  97. package/dist/generated/instructions/initializeVault.d.ts +0 -4
  98. package/dist/generated/instructions/initializeVault.d.ts.map +1 -1
  99. package/dist/generated/instructions/initializeVault.js +0 -2
  100. package/dist/generated/instructions/initializeVault.js.map +1 -1
  101. package/dist/generated/instructions/queuePolicyUpdate.d.ts +8 -8
  102. package/dist/generated/instructions/queuePolicyUpdate.d.ts.map +1 -1
  103. package/dist/generated/instructions/queuePolicyUpdate.js +4 -4
  104. package/dist/generated/instructions/queuePolicyUpdate.js.map +1 -1
  105. package/dist/generated/programs/sigil.d.ts +29 -25
  106. package/dist/generated/programs/sigil.d.ts.map +1 -1
  107. package/dist/generated/programs/sigil.js +37 -25
  108. package/dist/generated/programs/sigil.js.map +1 -1
  109. package/dist/generated/types/accountConstraint.d.ts +16 -1
  110. package/dist/generated/types/accountConstraint.d.ts.map +1 -1
  111. package/dist/generated/types/accountConstraint.js +2 -0
  112. package/dist/generated/types/accountConstraint.js.map +1 -1
  113. package/dist/generated/types/accountConstraintZC.d.ts +7 -0
  114. package/dist/generated/types/accountConstraintZC.d.ts.map +1 -1
  115. package/dist/generated/types/accountConstraintZC.js +4 -2
  116. package/dist/generated/types/accountConstraintZC.js.map +1 -1
  117. package/dist/generated/types/constraintEntry.d.ts +0 -4
  118. package/dist/generated/types/constraintEntry.d.ts.map +1 -1
  119. package/dist/generated/types/constraintEntry.js +1 -3
  120. package/dist/generated/types/constraintEntry.js.map +1 -1
  121. package/dist/generated/types/constraintEntryZC.d.ts +17 -12
  122. package/dist/generated/types/constraintEntryZC.d.ts.map +1 -1
  123. package/dist/generated/types/constraintEntryZC.js +2 -2
  124. package/dist/generated/types/constraintEntryZC.js.map +1 -1
  125. package/dist/generated/types/index.d.ts +1 -0
  126. package/dist/generated/types/index.d.ts.map +1 -1
  127. package/dist/generated/types/index.js +1 -0
  128. package/dist/generated/types/index.js.map +1 -1
  129. package/dist/generated/types/orphanConstraintsPdaCleaned.d.ts +22 -0
  130. package/dist/generated/types/orphanConstraintsPdaCleaned.d.ts.map +1 -0
  131. package/dist/generated/types/orphanConstraintsPdaCleaned.js +26 -0
  132. package/dist/generated/types/orphanConstraintsPdaCleaned.js.map +1 -0
  133. package/dist/generated/types/vaultFrozen.d.ts +12 -0
  134. package/dist/generated/types/vaultFrozen.d.ts.map +1 -1
  135. package/dist/generated/types/vaultFrozen.js +3 -1
  136. package/dist/generated/types/vaultFrozen.js.map +1 -1
  137. package/dist/index.d.ts +11 -1
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +22 -1
  140. package/dist/index.js.map +1 -1
  141. package/dist/inscribe.d.ts +0 -4
  142. package/dist/inscribe.d.ts.map +1 -1
  143. package/dist/inscribe.js +0 -1
  144. package/dist/inscribe.js.map +1 -1
  145. package/dist/kit-adapter.d.ts +1 -1
  146. package/dist/kit-adapter.d.ts.map +1 -1
  147. package/dist/kit-adapter.js +1 -1
  148. package/dist/kit-adapter.js.map +1 -1
  149. package/dist/logger.d.ts +48 -0
  150. package/dist/logger.d.ts.map +1 -1
  151. package/dist/logger.js +36 -0
  152. package/dist/logger.js.map +1 -1
  153. package/dist/owner-transaction.d.ts +8 -0
  154. package/dist/owner-transaction.d.ts.map +1 -1
  155. package/dist/owner-transaction.js +1 -0
  156. package/dist/owner-transaction.js.map +1 -1
  157. package/dist/post-assertions/cross-field-lte.d.ts +134 -0
  158. package/dist/post-assertions/cross-field-lte.d.ts.map +1 -0
  159. package/dist/post-assertions/cross-field-lte.js +129 -0
  160. package/dist/post-assertions/cross-field-lte.js.map +1 -0
  161. package/dist/post-assertions/index.d.ts +28 -0
  162. package/dist/post-assertions/index.d.ts.map +1 -0
  163. package/dist/post-assertions/index.js +28 -0
  164. package/dist/post-assertions/index.js.map +1 -0
  165. package/dist/post-assertions/presets/flash-trade.d.ts +139 -0
  166. package/dist/post-assertions/presets/flash-trade.d.ts.map +1 -0
  167. package/dist/post-assertions/presets/flash-trade.js +154 -0
  168. package/dist/post-assertions/presets/flash-trade.js.map +1 -0
  169. package/dist/presets.d.ts +1 -7
  170. package/dist/presets.d.ts.map +1 -1
  171. package/dist/presets.js +0 -5
  172. package/dist/presets.js.map +1 -1
  173. package/dist/preview-create-vault.d.ts +280 -0
  174. package/dist/preview-create-vault.d.ts.map +1 -0
  175. package/dist/preview-create-vault.js +477 -0
  176. package/dist/preview-create-vault.js.map +1 -0
  177. package/dist/protocol-registry/annotations/drift.json +7 -0
  178. package/dist/protocol-registry/annotations/flash-trade.json +7 -0
  179. package/dist/protocol-registry/annotations/jupiter-borrow.json +7 -0
  180. package/dist/protocol-registry/annotations/jupiter-earn.json +7 -0
  181. package/dist/protocol-registry/annotations/jupiter-lend.json +7 -0
  182. package/dist/protocol-registry/annotations/jupiter.json +7 -0
  183. package/dist/protocol-registry/annotations/kamino.json +7 -0
  184. package/dist/protocol-registry/index.d.ts +45 -0
  185. package/dist/protocol-registry/index.d.ts.map +1 -0
  186. package/dist/protocol-registry/index.js +76 -0
  187. package/dist/protocol-registry/index.js.map +1 -0
  188. package/dist/protocol-tier.d.ts +157 -0
  189. package/dist/protocol-tier.d.ts.map +1 -0
  190. package/dist/protocol-tier.js +104 -0
  191. package/dist/protocol-tier.js.map +1 -0
  192. package/dist/seal.d.ts.map +1 -1
  193. package/dist/seal.js +26 -2
  194. package/dist/seal.js.map +1 -1
  195. package/dist/sigil.d.ts +0 -4
  196. package/dist/sigil.d.ts.map +1 -1
  197. package/dist/simulation.d.ts.map +1 -1
  198. package/dist/simulation.js +72 -91
  199. package/dist/simulation.js.map +1 -1
  200. package/dist/testing/devnet.d.ts.map +1 -1
  201. package/dist/testing/devnet.js +0 -1
  202. package/dist/testing/devnet.js.map +1 -1
  203. package/dist/testing/errors/expect.d.ts +137 -0
  204. package/dist/testing/errors/expect.d.ts.map +1 -0
  205. package/dist/testing/errors/expect.js +372 -0
  206. package/dist/testing/errors/expect.js.map +1 -0
  207. package/dist/testing/errors/index.d.ts +3 -0
  208. package/dist/testing/errors/index.d.ts.map +1 -0
  209. package/dist/testing/errors/index.js +8 -0
  210. package/dist/testing/errors/index.js.map +1 -0
  211. package/dist/testing/errors/names.generated.d.ts +188 -0
  212. package/dist/testing/errors/names.generated.d.ts.map +1 -0
  213. package/dist/testing/errors/names.generated.js +183 -0
  214. package/dist/testing/errors/names.generated.js.map +1 -0
  215. package/dist/testing/index.d.ts +1 -0
  216. package/dist/testing/index.d.ts.map +1 -1
  217. package/dist/testing/index.js +8 -0
  218. package/dist/testing/index.js.map +1 -1
  219. package/dist/testing/mock-rpc.d.ts +8 -0
  220. package/dist/testing/mock-rpc.d.ts.map +1 -1
  221. package/dist/testing/mock-rpc.js +14 -0
  222. package/dist/testing/mock-rpc.js.map +1 -1
  223. package/dist/testing/mock-state.js +2 -2
  224. package/dist/testing/mock-state.js.map +1 -1
  225. package/package.json +15 -3
  226. package/dist/integrations/protocol-handler.d.ts +0 -59
  227. package/dist/integrations/protocol-handler.d.ts.map +0 -1
  228. package/dist/integrations/protocol-handler.js +0 -9
  229. package/dist/integrations/protocol-handler.js.map +0 -1
package/dist/presets.d.ts CHANGED
@@ -43,8 +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
46
  }
49
47
  export declare const VAULT_PRESETS: {
50
48
  readonly "jupiter-swap-bot": {
@@ -57,7 +55,6 @@ export declare const VAULT_PRESETS: {
57
55
  readonly maxSlippageBps: 200;
58
56
  readonly protocolMode: 1;
59
57
  readonly protocols: [Address];
60
- readonly maxLeverageBps: 0;
61
58
  };
62
59
  readonly "perps-trader": {
63
60
  readonly label: "Perps Trader";
@@ -69,7 +66,6 @@ export declare const VAULT_PRESETS: {
69
66
  readonly maxSlippageBps: 500;
70
67
  readonly protocolMode: 1;
71
68
  readonly protocols: [Address, Address];
72
- readonly maxLeverageBps: 10000;
73
69
  };
74
70
  readonly "lending-optimizer": {
75
71
  readonly label: "Lending Optimizer";
@@ -81,7 +77,6 @@ export declare const VAULT_PRESETS: {
81
77
  readonly maxSlippageBps: 100;
82
78
  readonly protocolMode: 1;
83
79
  readonly protocols: [Address, Address, Address];
84
- readonly maxLeverageBps: 0;
85
80
  };
86
81
  readonly "full-access": {
87
82
  readonly label: "Full Access";
@@ -93,7 +88,6 @@ export declare const VAULT_PRESETS: {
93
88
  readonly maxSlippageBps: 500;
94
89
  readonly protocolMode: 0;
95
90
  readonly protocols: [];
96
- readonly maxLeverageBps: 20000;
97
91
  };
98
92
  };
99
93
  export type PresetName = keyof typeof VAULT_PRESETS;
@@ -117,7 +111,7 @@ export declare function listPresets(): PresetName[];
117
111
  * const result = await createVault(opts);
118
112
  * ```
119
113
  */
120
- export declare function presetToCreateVaultFields(name: PresetName): Pick<CreateVaultOptions, "permissions" | "dailySpendingCapUsd" | "maxTransactionSizeUsd" | "maxSlippageBps" | "protocolMode" | "protocols" | "maxLeverageBps">;
114
+ export declare function presetToCreateVaultFields(name: PresetName): Pick<CreateVaultOptions, "permissions" | "dailySpendingCapUsd" | "maxTransactionSizeUsd" | "maxSlippageBps" | "protocolMode" | "protocols">;
121
115
  /**
122
116
  * Fields a safety preset can fill. `null` means "caller must supply" —
123
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;CACxB;AAID,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDsB,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,CACnB,CAWA;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,7 +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
33
  },
35
34
  "perps-trader": {
36
35
  label: "Perps Trader",
@@ -42,7 +41,6 @@ export const VAULT_PRESETS = {
42
41
  maxSlippageBps: 500, // 5%
43
42
  protocolMode: PROTOCOL_MODE_ALLOWLIST,
44
43
  protocols: [JUPITER_PROGRAM_ADDRESS, FLASH_TRADE_PROGRAM],
45
- maxLeverageBps: 10_000, // 10x
46
44
  },
47
45
  "lending-optimizer": {
48
46
  label: "Lending Optimizer",
@@ -58,7 +56,6 @@ export const VAULT_PRESETS = {
58
56
  JUPITER_LEND_PROGRAM,
59
57
  KAMINO_LEND_PROGRAM,
60
58
  ],
61
- maxLeverageBps: 0,
62
59
  },
63
60
  "full-access": {
64
61
  label: "Full Access",
@@ -70,7 +67,6 @@ export const VAULT_PRESETS = {
70
67
  maxSlippageBps: 500, // 5%
71
68
  protocolMode: PROTOCOL_MODE_ALL,
72
69
  protocols: [],
73
- maxLeverageBps: 20_000, // 20x
74
70
  },
75
71
  };
76
72
  // ─── Functions ──────────────────────────────────────────────────────────────
@@ -109,7 +105,6 @@ export function presetToCreateVaultFields(name) {
109
105
  maxSlippageBps: preset.maxSlippageBps,
110
106
  protocolMode: preset.protocolMode,
111
107
  protocols: [...preset.protocols],
112
- maxLeverageBps: preset.maxLeverageBps,
113
108
  };
114
109
  }
115
110
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
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;AAwC3D,+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;KACrC;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;KAC1D;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;KACF;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;KACd;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;IAUhB,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;KACjC,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"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * `@usesigil/kit/previewCreateVault`.
3
+ *
4
+ * Builds a `CreateVaultPreview` that the dashboard split-screen `/onboard`
5
+ * page renders BEFORE the user signs. Wraps the existing `createVault()`
6
+ * + `buildOwnerTransaction()` primitives — does not reinvent PDA derivation,
7
+ * compute-budget construction, or transaction compilation.
8
+ *
9
+ * ## Algorithm
10
+ *
11
+ * 1. **Validate** the config at the API edge. Negative bigints throw
12
+ * `RangeError`; on-chain hard limits (`MIN_TIMELOCK_DURATION`,
13
+ * `MAX_DEVELOPER_FEE_RATE`, `MAX_ALLOWED_PROTOCOLS`,
14
+ * `MAX_ALLOWED_DESTINATIONS`) are mirrored as early throws so the FE
15
+ * surfaces "your config will be rejected" before signing.
16
+ * `validateNetwork()` propagates as-is.
17
+ * 2. **Derive 4 PDAs.** `vault` first (it's the seed for the others),
18
+ * then `policy` / `tracker` / `agent_spend_overlay` in parallel.
19
+ * 3. **Fetch rent** for each PDA size in parallel via
20
+ * `getMinimumBalanceForRentExemption(size)`. The 4 sizes are pinned to
21
+ * the on-chain `<account>::SIZE` constants — drift between Rust and TS
22
+ * is regression-tested.
23
+ * 4. **Build instructions** via `createVault()` (which validates
24
+ * aggregate caps and rejects owner==agent).
25
+ * 5. **Compile transaction** via `buildOwnerTransaction()` with
26
+ * `CU_VAULT_CREATION` (400_000) and the caller's optional priority fee.
27
+ * 6. **Compute totalCostUsd** via BigInt-safe math with explicit
28
+ * mul-before-divide:
29
+ * `(rentLamports + feeLamports) * solPriceUsd / 1_000_000_000n`.
30
+ * Units: lamports × (6-decimal-USD per SOL) ÷ (lamports per SOL)
31
+ * = 6-decimal USD.
32
+ * 7. **Build warnings** for soft-signal issues (cap=0, cap>$1M, allowlist
33
+ * with no protocols, max-tx > daily-cap). Sorted by `code` ascending so
34
+ * React keys don't thrash on re-type.
35
+ * 8. **Freeze + return.** The returned object is `Object.freeze`d; the
36
+ * `pdaList` and `warnings` arrays are also frozen.
37
+ *
38
+ * ## What this does NOT do
39
+ *
40
+ * - **Submit any transaction.** Preview is read-only RPC: rent + blockhash
41
+ * + ALT lookup. No `sendTransaction`, no `simulateTransaction`.
42
+ * - **Sign.** Internally constructs `createNoopSigner(address)` instances
43
+ * so `buildOwnerTransaction` can compile a fee-payer-bound message.
44
+ * Wallet adapter signs the returned `unsignedTxBytes` later.
45
+ * - **Fetch SOL price.** Kit has no oracle. Caller passes
46
+ * `solPriceUsd: bigint` (6-decimal USD per SOL). Without it, the kit
47
+ * would have to either pin a default (silent lie) or take an RPC
48
+ * dependency on a price feed (scope creep).
49
+ */
50
+ import type { Address, AddressesByLookupTableAddress, ReadonlyUint8Array, Rpc, SolanaRpcApi } from "./kit-adapter.js";
51
+ import { type Network, type NetworkInput } from "./types.js";
52
+ /**
53
+ * Canonical PDA names matching on-chain Anchor `#[account]` struct names.
54
+ * The order in `pdaList` is also the order accounts are `init`'d on-chain
55
+ * by `initialize_vault` — useful for FE rendering "creation order."
56
+ */
57
+ export type VaultPdaName = "AgentVault" | "PolicyConfig" | "SpendTracker" | "AgentSpendOverlay";
58
+ /**
59
+ * One PDA that the create-vault transaction will create.
60
+ *
61
+ * `sizeBytes` mirrors the on-chain `<Account>::SIZE` constant.
62
+ * `rentLamports` is the per-PDA rent-exempt minimum at current rent rates,
63
+ * computed via `rpc.getMinimumBalanceForRentExemption(sizeBytes)`.
64
+ *
65
+ * Generic over `name` so the `pdaList` tuple type can pin each slot to a
66
+ * specific account class — `pdaList[0]` is `VaultPdaInfo<"AgentVault">`,
67
+ * not just `VaultPdaInfo`. This lets FE indexing into the list narrow the
68
+ * `name` field down to a single literal.
69
+ */
70
+ export interface VaultPdaInfo<N extends VaultPdaName = VaultPdaName> {
71
+ readonly name: N;
72
+ readonly address: Address;
73
+ readonly bump: number;
74
+ readonly sizeBytes: number;
75
+ readonly rentLamports: bigint;
76
+ }
77
+ /**
78
+ * Soft-signal warnings the FE renders inline before the user signs.
79
+ *
80
+ * **Discriminated union by `code`.** Each warning has the exact set of
81
+ * `field` + `suggestedValue` it carries — no optionals to narrow at the
82
+ * FE. The FE switches on `code`:
83
+ *
84
+ * ```ts
85
+ * switch (warning.code) {
86
+ * case "daily_cap_unusually_high":
87
+ * // warning.suggestedValue is bigint, never undefined
88
+ * return `${warning.message} (suggested: $${formatUsd(warning.suggestedValue)})`;
89
+ * case "no_protocols_approved":
90
+ * // no suggestedValue here — TS knows
91
+ * return warning.message;
92
+ * }
93
+ * ```
94
+ *
95
+ * Every warning code is part of the public API — renaming a code is a
96
+ * breaking change. Adding a new code is a minor bump. Hard rules
97
+ * (timelock < 1800, dev fee > 500 bps, etc.) are NOT warnings — they
98
+ * THROW at the API edge. Warnings only signal soft configuration
99
+ * concerns that the program would still accept.
100
+ */
101
+ export type PreviewWarning = {
102
+ readonly code: "daily_cap_zero";
103
+ readonly severity: "info";
104
+ readonly message: string;
105
+ readonly field: "dailyCapUsd";
106
+ } | {
107
+ readonly code: "daily_cap_unusually_high";
108
+ readonly severity: "warning";
109
+ readonly message: string;
110
+ readonly field: "dailyCapUsd";
111
+ /** Recommended cap (the heuristic threshold). */
112
+ readonly suggestedValue: bigint;
113
+ } | {
114
+ readonly code: "no_protocols_approved";
115
+ readonly severity: "warning";
116
+ readonly message: string;
117
+ readonly field: "protocols";
118
+ } | {
119
+ readonly code: "max_tx_exceeds_daily_cap";
120
+ readonly severity: "warning";
121
+ readonly message: string;
122
+ readonly field: "maxTxSizeUsd";
123
+ /** Recommended max-tx size (clamped to dailyCapUsd). */
124
+ readonly suggestedValue: bigint;
125
+ };
126
+ /**
127
+ * Output of `previewCreateVault`. Ships the dashboard's split-screen
128
+ * `/onboard` right column AND the unsigned transaction the FE passes to
129
+ * the wallet adapter for signing — one call, no second build.
130
+ *
131
+ * The object is `Object.freeze`d at runtime, and so are `pdaList` +
132
+ * `warnings`. Note: `Object.freeze` only protects the property bindings
133
+ * and the array containers — it does NOT freeze the underlying
134
+ * `unsignedTxBytes` buffer (typed-array contents are not frozen by
135
+ * `Object.freeze`). The type is `ReadonlyUint8Array` so consumers using
136
+ * the kit's typed alias get compile-time read-only enforcement; vanilla
137
+ * JS callers can still mutate the bytes. If your call site mutates them,
138
+ * the wallet adapter will sign whatever you mutated to — the kit doesn't
139
+ * (and can't) defend the buffer at runtime.
140
+ */
141
+ export interface CreateVaultPreview {
142
+ /**
143
+ * The 4 PDAs `initialize_vault` creates, in canonical on-chain `init`
144
+ * order. Pinned as a length-4 tuple so `pdaList[0].name === "AgentVault"`
145
+ * is type-narrowed and FE indexing doesn't need runtime guards.
146
+ */
147
+ readonly pdaList: readonly [
148
+ VaultPdaInfo<"AgentVault">,
149
+ VaultPdaInfo<"PolicyConfig">,
150
+ VaultPdaInfo<"SpendTracker">,
151
+ VaultPdaInfo<"AgentSpendOverlay">
152
+ ];
153
+ /** Sum of `pdaList[].rentLamports`. The user sinks this into rent at sign time. */
154
+ readonly rentLamports: bigint;
155
+ /** Compute-unit limit set on the tx. Defaults to `CU_VAULT_CREATION` (400,000). */
156
+ readonly computeUnits: number;
157
+ /** `priorityFeeMicroLamports * computeUnits / 1_000_000` (microLamports → lamports). */
158
+ readonly feeLamports: bigint;
159
+ /** `(rentLamports + feeLamports) * solPriceUsd / 1_000_000_000n` — 6-decimal USD. */
160
+ readonly totalCostUsd: bigint;
161
+ /** Same as `pdaList[0].address` (AgentVault). Convenience field. */
162
+ readonly vaultAddress: Address;
163
+ /**
164
+ * Wire-encoded versioned transaction with empty signature placeholders.
165
+ * `ReadonlyUint8Array` for compile-time immutability via the kit's
166
+ * typed alias. Pass to wallet adapter `.signTransaction(bytes)`.
167
+ */
168
+ readonly unsignedTxBytes: ReadonlyUint8Array;
169
+ /** Wire size in bytes; ≤ 1232 (Solana hard limit; `buildOwnerTransaction` enforces). */
170
+ readonly txSizeBytes: number;
171
+ /**
172
+ * Last block height at which the blockhash embedded in
173
+ * `unsignedTxBytes` is still valid. Sourced from the same blockhash
174
+ * `buildOwnerTransaction` baked into the bytes — no race with cache
175
+ * TTL refresh. FE polls block height to detect stale-blockhash before
176
+ * sign and re-previews if needed.
177
+ */
178
+ readonly lastValidBlockHeight: bigint;
179
+ /** Soft warnings; `undefined` when none fire. Sorted by `code` ascending. */
180
+ readonly warnings?: readonly PreviewWarning[];
181
+ }
182
+ /**
183
+ * Input config for `previewCreateVault`. Mirrors `CreateVaultOptions`
184
+ * field-for-field where overlap exists, with a few preview-specific
185
+ * additions:
186
+ *
187
+ * - `owner` is `Address` (preview never signs; we synthesize a noop signer).
188
+ * - `agentAddress` is `Address` (same reason; named differently to match
189
+ * the FE↔BE contract §3.3 example shape).
190
+ * - `solPriceUsd` is REQUIRED (kit has no oracle).
191
+ *
192
+ * `priorityFeeMicroLamports` defaults to `10_000` if omitted —
193
+ * conservative-but-not-zero so the preview's `feeLamports` is realistic
194
+ * without requiring callers to estimate first. Tests pin a value for
195
+ * deterministic assertions.
196
+ */
197
+ export interface PreviewCreateVaultConfig {
198
+ /** RPC client for blockhash, rent, and ALT resolution. */
199
+ readonly rpc: Rpc<SolanaRpcApi>;
200
+ /** Owner pubkey. Becomes the fee payer on the unsigned tx. */
201
+ readonly owner: Address;
202
+ /** Initial agent's pubkey (gets registered atomically with vault init). */
203
+ readonly agentAddress: Address;
204
+ /** Network determines stablecoin mints + ALT address. */
205
+ readonly network: NetworkInput;
206
+ /** Vault id (u64). Use `0n` for the first vault per owner. */
207
+ readonly vaultId: bigint;
208
+ /** Vault-wide 24h cap in 6-decimal USD base units. `0n` blocks all spending. */
209
+ readonly dailyCapUsd: bigint;
210
+ /** Per-tx max in 6-decimal USD base units. */
211
+ readonly maxTxSizeUsd: bigint;
212
+ /** Per-agent cap in 6-decimal USD base units. */
213
+ readonly spendingLimitUsd: bigint;
214
+ /** Developer fee in BPS (200 = 0.02%, max `MAX_DEVELOPER_FEE_RATE` = 500). */
215
+ readonly developerFeeRate: number;
216
+ /** Max slippage in BPS (max `MAX_SLIPPAGE_BPS` = 5000). */
217
+ readonly maxSlippageBps: number;
218
+ /** Owner-policy timelock in seconds. Min `MIN_TIMELOCK_DURATION` = 1800. */
219
+ readonly timelockDuration: bigint;
220
+ /** Protocol-mode discriminator: 0 = ALL, 1 = ALLOWLIST, 2 = DENYLIST. */
221
+ readonly protocolMode: 0 | 1 | 2;
222
+ /** Up to 10 protocol program addresses for the (allow|deny)list. */
223
+ readonly protocols: readonly Address[];
224
+ /** Per-protocol caps (6-decimal USD base units). Length must match `protocols`. */
225
+ readonly protocolCaps: readonly bigint[];
226
+ /** Up to 10 destination addresses for agent transfers. */
227
+ readonly allowedDestinations: readonly Address[];
228
+ /** Where collected fees flow. Cannot be the system program (0…0). */
229
+ readonly feeDestination: Address;
230
+ /** Capability tier: 0 = Disabled, 1 = Observer, 2 = Operator. Defaults to 2n. */
231
+ readonly capabilityTier?: 0n | 1n | 2n;
232
+ /**
233
+ * Current SOL price in 6-decimal USD base units.
234
+ * E.g., $250 = `250_000_000n`. Required — kit has no oracle.
235
+ */
236
+ readonly solPriceUsd: bigint;
237
+ /**
238
+ * Priority fee in microLamports per CU. Defaults to `10_000` if omitted.
239
+ * Tests should pass `0` for deterministic feeLamports of 0n.
240
+ */
241
+ readonly priorityFeeMicroLamports?: number;
242
+ /** CU limit override. Defaults to `CU_VAULT_CREATION` (400_000). */
243
+ readonly computeUnits?: number;
244
+ /**
245
+ * Pre-fetched blockhash to skip the RPC `getLatestBlockhash` call.
246
+ * Useful for tests + for FE callers that already have a fresh blockhash
247
+ * from an upstream call.
248
+ */
249
+ readonly blockhash?: {
250
+ blockhash: string;
251
+ lastValidBlockHeight: bigint;
252
+ };
253
+ /**
254
+ * Pre-resolved address-lookup tables to skip ALT discovery via RPC.
255
+ * Pass `{}` to disable ALT compression entirely (useful for unit tests
256
+ * that don't want to mock `getMultipleAccounts`). Production callers
257
+ * normally omit this so the kit's ALT cache resolves the canonical
258
+ * Sigil ALT for the given network.
259
+ */
260
+ readonly addressLookupTables?: AddressesByLookupTableAddress;
261
+ }
262
+ /**
263
+ * Generate a `CreateVaultPreview` for the dashboard split-screen `/onboard`
264
+ * flow. See module JSDoc for the algorithm and design rationale.
265
+ *
266
+ * @throws {RangeError} If any bigint config field is negative or any count
267
+ * exceeds its on-chain maximum, or if `timelockDuration < 1800n`,
268
+ * or if `developerFeeRate > 500`.
269
+ * @throws {SigilSdkDomainError} If `validateNetwork(config.network)` fails,
270
+ * if `getMinimumBalanceForRentExemption` returns 0n / undefined,
271
+ * or if `createVault()` rejects the config (e.g., owner == agent,
272
+ * spendingLimit > dailyCap aggregate).
273
+ */
274
+ export declare function previewCreateVault(config: PreviewCreateVaultConfig): Promise<CreateVaultPreview>;
275
+ /**
276
+ * Re-export `Network` so consumers importing `PreviewCreateVaultConfig`
277
+ * have the related type for narrowing without a second import.
278
+ */
279
+ export type { Network };
280
+ //# sourceMappingURL=preview-create-vault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-create-vault.d.ts","sourceRoot":"","sources":["../src/preview-create-vault.ts"],"names":[],"mappings":"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"}