@usesigil/kit 0.15.0 → 0.17.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 (627) hide show
  1. package/README.md +56 -0
  2. package/dist/advanced-analytics.d.ts +3 -2
  3. package/dist/advanced-analytics.d.ts.map +1 -1
  4. package/dist/advanced-analytics.js +9 -42
  5. package/dist/advanced-analytics.js.map +1 -1
  6. package/dist/agent-bootstrap.d.ts +117 -0
  7. package/dist/agent-bootstrap.d.ts.map +1 -0
  8. package/dist/agent-bootstrap.js +211 -0
  9. package/dist/agent-bootstrap.js.map +1 -0
  10. package/dist/agent-errors.d.ts +20 -4
  11. package/dist/agent-errors.d.ts.map +1 -1
  12. package/dist/agent-errors.js +947 -377
  13. package/dist/agent-errors.js.map +1 -1
  14. package/dist/audit-log.d.ts +101 -0
  15. package/dist/audit-log.d.ts.map +1 -0
  16. package/dist/audit-log.js +145 -0
  17. package/dist/audit-log.js.map +1 -0
  18. package/dist/build-unsigned.d.ts +152 -0
  19. package/dist/build-unsigned.d.ts.map +1 -0
  20. package/dist/build-unsigned.js +152 -0
  21. package/dist/build-unsigned.js.map +1 -0
  22. package/dist/caip2-network.d.ts +171 -0
  23. package/dist/caip2-network.d.ts.map +1 -0
  24. package/dist/caip2-network.js +202 -0
  25. package/dist/caip2-network.js.map +1 -0
  26. package/dist/canonical-encode.d.ts +59 -0
  27. package/dist/canonical-encode.d.ts.map +1 -0
  28. package/dist/canonical-encode.js +141 -0
  29. package/dist/canonical-encode.js.map +1 -0
  30. package/dist/cosign-helper.d.ts +264 -0
  31. package/dist/cosign-helper.d.ts.map +1 -0
  32. package/dist/cosign-helper.js +147 -0
  33. package/dist/cosign-helper.js.map +1 -0
  34. package/dist/create-vault.d.ts +102 -1
  35. package/dist/create-vault.d.ts.map +1 -1
  36. package/dist/create-vault.js +108 -9
  37. package/dist/create-vault.js.map +1 -1
  38. package/dist/dashboard/close-vault.d.ts +110 -0
  39. package/dist/dashboard/close-vault.d.ts.map +1 -0
  40. package/dist/dashboard/close-vault.js +165 -0
  41. package/dist/dashboard/close-vault.js.map +1 -0
  42. package/dist/dashboard/errors.d.ts +37 -0
  43. package/dist/dashboard/errors.d.ts.map +1 -1
  44. package/dist/dashboard/errors.js +81 -1
  45. package/dist/dashboard/errors.js.map +1 -1
  46. package/dist/dashboard/from-json.d.ts.map +1 -1
  47. package/dist/dashboard/from-json.js +1 -2
  48. package/dist/dashboard/from-json.js.map +1 -1
  49. package/dist/dashboard/index.d.ts +204 -31
  50. package/dist/dashboard/index.d.ts.map +1 -1
  51. package/dist/dashboard/index.js +290 -49
  52. package/dist/dashboard/index.js.map +1 -1
  53. package/dist/dashboard/mutations.d.ts +160 -10
  54. package/dist/dashboard/mutations.d.ts.map +1 -1
  55. package/dist/dashboard/mutations.js +584 -66
  56. package/dist/dashboard/mutations.js.map +1 -1
  57. package/dist/dashboard/post-assertion-validation.d.ts +88 -0
  58. package/dist/dashboard/post-assertion-validation.d.ts.map +1 -0
  59. package/dist/dashboard/post-assertion-validation.js +312 -0
  60. package/dist/dashboard/post-assertion-validation.js.map +1 -0
  61. package/dist/dashboard/reads.d.ts +92 -1
  62. package/dist/dashboard/reads.d.ts.map +1 -1
  63. package/dist/dashboard/reads.js +244 -26
  64. package/dist/dashboard/reads.js.map +1 -1
  65. package/dist/dashboard/types.d.ts +172 -21
  66. package/dist/dashboard/types.d.ts.map +1 -1
  67. package/dist/errors/agent-errors.generated.d.ts +21 -0
  68. package/dist/errors/agent-errors.generated.d.ts.map +1 -0
  69. package/dist/errors/agent-errors.generated.js +133 -0
  70. package/dist/errors/agent-errors.generated.js.map +1 -0
  71. package/dist/errors/codes.d.ts +21 -2
  72. package/dist/errors/codes.d.ts.map +1 -1
  73. package/dist/errors/codes.js +20 -1
  74. package/dist/errors/codes.js.map +1 -1
  75. package/dist/errors/context.d.ts +9 -1
  76. package/dist/errors/context.d.ts.map +1 -1
  77. package/dist/event-analytics.d.ts +1 -3
  78. package/dist/event-analytics.d.ts.map +1 -1
  79. package/dist/event-analytics.js +28 -81
  80. package/dist/event-analytics.js.map +1 -1
  81. package/dist/events.d.ts.map +1 -1
  82. package/dist/events.js +23 -13
  83. package/dist/events.js.map +1 -1
  84. package/dist/generated/accounts/agentSpendOverlay.d.ts +60 -0
  85. package/dist/generated/accounts/agentSpendOverlay.d.ts.map +1 -1
  86. package/dist/generated/accounts/agentSpendOverlay.js +6 -2
  87. package/dist/generated/accounts/agentSpendOverlay.js.map +1 -1
  88. package/dist/generated/accounts/agentVault.d.ts +168 -4
  89. package/dist/generated/accounts/agentVault.d.ts.map +1 -1
  90. package/dist/generated/accounts/agentVault.js +11 -3
  91. package/dist/generated/accounts/agentVault.js.map +1 -1
  92. package/dist/generated/accounts/auditLogRejected.d.ts +66 -0
  93. package/dist/generated/accounts/auditLogRejected.d.ts.map +1 -0
  94. package/dist/generated/accounts/auditLogRejected.js +68 -0
  95. package/dist/generated/accounts/auditLogRejected.js.map +1 -0
  96. package/dist/generated/accounts/auditLogSuccess.d.ts +78 -0
  97. package/dist/generated/accounts/auditLogSuccess.d.ts.map +1 -0
  98. package/dist/generated/accounts/auditLogSuccess.js +68 -0
  99. package/dist/generated/accounts/auditLogSuccess.js.map +1 -0
  100. package/dist/generated/accounts/index.d.ts +4 -4
  101. package/dist/generated/accounts/index.d.ts.map +1 -1
  102. package/dist/generated/accounts/index.js +4 -4
  103. package/dist/generated/accounts/index.js.map +1 -1
  104. package/dist/generated/accounts/pendingAgentGrant.d.ts +199 -0
  105. package/dist/generated/accounts/pendingAgentGrant.d.ts.map +1 -0
  106. package/dist/generated/accounts/pendingAgentGrant.js +75 -0
  107. package/dist/generated/accounts/pendingAgentGrant.js.map +1 -0
  108. package/dist/generated/accounts/pendingAgentPermissionsUpdate.d.ts +76 -0
  109. package/dist/generated/accounts/pendingAgentPermissionsUpdate.d.ts.map +1 -1
  110. package/dist/generated/accounts/pendingAgentPermissionsUpdate.js +9 -1
  111. package/dist/generated/accounts/pendingAgentPermissionsUpdate.js.map +1 -1
  112. package/dist/generated/accounts/pendingOwnershipTransfer.d.ts +131 -0
  113. package/dist/generated/accounts/pendingOwnershipTransfer.d.ts.map +1 -0
  114. package/dist/generated/accounts/pendingOwnershipTransfer.js +76 -0
  115. package/dist/generated/accounts/pendingOwnershipTransfer.js.map +1 -0
  116. package/dist/generated/accounts/pendingPolicyUpdate.d.ts +220 -4
  117. package/dist/generated/accounts/pendingPolicyUpdate.d.ts.map +1 -1
  118. package/dist/generated/accounts/pendingPolicyUpdate.js +25 -5
  119. package/dist/generated/accounts/pendingPolicyUpdate.js.map +1 -1
  120. package/dist/generated/accounts/policyConfig.d.ts +495 -34
  121. package/dist/generated/accounts/policyConfig.d.ts.map +1 -1
  122. package/dist/generated/accounts/policyConfig.js +34 -7
  123. package/dist/generated/accounts/policyConfig.js.map +1 -1
  124. package/dist/generated/accounts/postExecutionAssertions.d.ts +2 -2
  125. package/dist/generated/accounts/postExecutionAssertions.d.ts.map +1 -1
  126. package/dist/generated/accounts/postExecutionAssertions.js +3 -3
  127. package/dist/generated/accounts/sessionAuthority.d.ts +154 -12
  128. package/dist/generated/accounts/sessionAuthority.d.ts.map +1 -1
  129. package/dist/generated/accounts/sessionAuthority.js +12 -10
  130. package/dist/generated/accounts/sessionAuthority.js.map +1 -1
  131. package/dist/generated/accounts/spendTracker.d.ts +83 -3
  132. package/dist/generated/accounts/spendTracker.d.ts.map +1 -1
  133. package/dist/generated/accounts/spendTracker.js +14 -2
  134. package/dist/generated/accounts/spendTracker.js.map +1 -1
  135. package/dist/generated/errors/sigil.d.ts +160 -100
  136. package/dist/generated/errors/sigil.d.ts.map +1 -1
  137. package/dist/generated/errors/sigil.js +214 -124
  138. package/dist/generated/errors/sigil.js.map +1 -1
  139. package/dist/generated/event-discriminators.d.ts.map +1 -1
  140. package/dist/generated/event-discriminators.js +11 -13
  141. package/dist/generated/event-discriminators.js.map +1 -1
  142. package/dist/generated/instructions/acceptOwnershipTransfer.d.ts +142 -0
  143. package/dist/generated/instructions/acceptOwnershipTransfer.d.ts.map +1 -0
  144. package/dist/generated/instructions/acceptOwnershipTransfer.js +171 -0
  145. package/dist/generated/instructions/acceptOwnershipTransfer.js.map +1 -0
  146. package/dist/generated/instructions/acceptOwnershipTransferMultisig.d.ts +142 -0
  147. package/dist/generated/instructions/acceptOwnershipTransferMultisig.d.ts.map +1 -0
  148. package/dist/generated/instructions/acceptOwnershipTransferMultisig.js +171 -0
  149. package/dist/generated/instructions/acceptOwnershipTransferMultisig.js.map +1 -0
  150. package/dist/generated/instructions/applyAgentGrant.d.ts +100 -0
  151. package/dist/generated/instructions/applyAgentGrant.d.ts.map +1 -0
  152. package/dist/generated/instructions/{applyConstraintsUpdate.js → applyAgentGrant.js} +66 -42
  153. package/dist/generated/instructions/applyAgentGrant.js.map +1 -0
  154. package/dist/generated/instructions/applyAgentPermissionsUpdate.d.ts +31 -8
  155. package/dist/generated/instructions/applyAgentPermissionsUpdate.d.ts.map +1 -1
  156. package/dist/generated/instructions/applyAgentPermissionsUpdate.js +38 -2
  157. package/dist/generated/instructions/applyAgentPermissionsUpdate.js.map +1 -1
  158. package/dist/generated/instructions/applyPendingPolicy.d.ts +18 -7
  159. package/dist/generated/instructions/applyPendingPolicy.d.ts.map +1 -1
  160. package/dist/generated/instructions/applyPendingPolicy.js +38 -2
  161. package/dist/generated/instructions/applyPendingPolicy.js.map +1 -1
  162. package/dist/generated/instructions/cancelAgentGrant.d.ts +106 -0
  163. package/dist/generated/instructions/cancelAgentGrant.d.ts.map +1 -0
  164. package/dist/generated/instructions/{allocatePendingConstraintsPda.js → cancelAgentGrant.js} +54 -42
  165. package/dist/generated/instructions/cancelAgentGrant.js.map +1 -0
  166. package/dist/generated/instructions/cancelOwnershipTransfer.d.ts +121 -0
  167. package/dist/generated/instructions/cancelOwnershipTransfer.d.ts.map +1 -0
  168. package/dist/generated/instructions/{queueCloseConstraints.js → cancelOwnershipTransfer.js} +58 -44
  169. package/dist/generated/instructions/cancelOwnershipTransfer.js.map +1 -0
  170. package/dist/generated/instructions/closePostAssertions.d.ts +6 -1
  171. package/dist/generated/instructions/closePostAssertions.d.ts.map +1 -1
  172. package/dist/generated/instructions/closePostAssertions.js +11 -3
  173. package/dist/generated/instructions/closePostAssertions.js.map +1 -1
  174. package/dist/generated/instructions/closeVault.d.ts +40 -8
  175. package/dist/generated/instructions/closeVault.d.ts.map +1 -1
  176. package/dist/generated/instructions/closeVault.js +40 -2
  177. package/dist/generated/instructions/closeVault.js.map +1 -1
  178. package/dist/generated/instructions/createPostAssertions.d.ts +4 -0
  179. package/dist/generated/instructions/createPostAssertions.d.ts.map +1 -1
  180. package/dist/generated/instructions/createPostAssertions.js +2 -0
  181. package/dist/generated/instructions/createPostAssertions.js.map +1 -1
  182. package/dist/generated/instructions/depositFunds.d.ts +21 -10
  183. package/dist/generated/instructions/depositFunds.d.ts.map +1 -1
  184. package/dist/generated/instructions/depositFunds.js +37 -2
  185. package/dist/generated/instructions/depositFunds.js.map +1 -1
  186. package/dist/generated/instructions/finalizeSession.d.ts +49 -7
  187. package/dist/generated/instructions/finalizeSession.d.ts.map +1 -1
  188. package/dist/generated/instructions/finalizeSession.js +59 -2
  189. package/dist/generated/instructions/finalizeSession.js.map +1 -1
  190. package/dist/generated/instructions/freezeVault.d.ts +39 -5
  191. package/dist/generated/instructions/freezeVault.d.ts.map +1 -1
  192. package/dist/generated/instructions/freezeVault.js +77 -5
  193. package/dist/generated/instructions/freezeVault.js.map +1 -1
  194. package/dist/generated/instructions/index.d.ts +10 -14
  195. package/dist/generated/instructions/index.d.ts.map +1 -1
  196. package/dist/generated/instructions/index.js +10 -14
  197. package/dist/generated/instructions/index.js.map +1 -1
  198. package/dist/generated/instructions/initializeVault.d.ts +79 -13
  199. package/dist/generated/instructions/initializeVault.d.ts.map +1 -1
  200. package/dist/generated/instructions/initializeVault.js +57 -5
  201. package/dist/generated/instructions/initializeVault.js.map +1 -1
  202. package/dist/generated/instructions/initiateOwnershipTransfer.d.ts +106 -0
  203. package/dist/generated/instructions/initiateOwnershipTransfer.d.ts.map +1 -0
  204. package/dist/generated/instructions/initiateOwnershipTransfer.js +181 -0
  205. package/dist/generated/instructions/initiateOwnershipTransfer.js.map +1 -0
  206. package/dist/generated/instructions/pauseAgent.d.ts +49 -5
  207. package/dist/generated/instructions/pauseAgent.d.ts.map +1 -1
  208. package/dist/generated/instructions/pauseAgent.js +80 -5
  209. package/dist/generated/instructions/pauseAgent.js.map +1 -1
  210. package/dist/generated/instructions/promoteGraylistDestination.d.ts +56 -0
  211. package/dist/generated/instructions/promoteGraylistDestination.d.ts.map +1 -0
  212. package/dist/generated/instructions/{createInstructionConstraints.js → promoteGraylistDestination.js} +23 -40
  213. package/dist/generated/instructions/promoteGraylistDestination.js.map +1 -0
  214. package/dist/generated/instructions/queueAgentGrant.d.ts +113 -0
  215. package/dist/generated/instructions/queueAgentGrant.d.ts.map +1 -0
  216. package/dist/generated/instructions/queueAgentGrant.js +181 -0
  217. package/dist/generated/instructions/queueAgentGrant.js.map +1 -0
  218. package/dist/generated/instructions/queueAgentPermissionsUpdate.d.ts +8 -0
  219. package/dist/generated/instructions/queueAgentPermissionsUpdate.d.ts.map +1 -1
  220. package/dist/generated/instructions/queueAgentPermissionsUpdate.js +4 -0
  221. package/dist/generated/instructions/queueAgentPermissionsUpdate.js.map +1 -1
  222. package/dist/generated/instructions/queuePolicyUpdate.d.ts +40 -8
  223. package/dist/generated/instructions/queuePolicyUpdate.d.ts.map +1 -1
  224. package/dist/generated/instructions/queuePolicyUpdate.js +21 -5
  225. package/dist/generated/instructions/queuePolicyUpdate.js.map +1 -1
  226. package/dist/generated/instructions/reactivateVault.d.ts +71 -5
  227. package/dist/generated/instructions/reactivateVault.d.ts.map +1 -1
  228. package/dist/generated/instructions/reactivateVault.js +80 -5
  229. package/dist/generated/instructions/reactivateVault.js.map +1 -1
  230. package/dist/generated/instructions/recordAgentViolation.d.ts +89 -0
  231. package/dist/generated/instructions/recordAgentViolation.d.ts.map +1 -0
  232. package/dist/generated/instructions/recordAgentViolation.js +152 -0
  233. package/dist/generated/instructions/recordAgentViolation.js.map +1 -0
  234. package/dist/generated/instructions/registerAgent.d.ts +84 -6
  235. package/dist/generated/instructions/registerAgent.d.ts.map +1 -1
  236. package/dist/generated/instructions/registerAgent.js +81 -4
  237. package/dist/generated/instructions/registerAgent.js.map +1 -1
  238. package/dist/generated/instructions/revokeAgent.d.ts +49 -6
  239. package/dist/generated/instructions/revokeAgent.d.ts.map +1 -1
  240. package/dist/generated/instructions/revokeAgent.js +81 -4
  241. package/dist/generated/instructions/revokeAgent.js.map +1 -1
  242. package/dist/generated/instructions/setObserveOnly.d.ts +56 -0
  243. package/dist/generated/instructions/setObserveOnly.d.ts.map +1 -0
  244. package/dist/generated/instructions/setObserveOnly.js +111 -0
  245. package/dist/generated/instructions/setObserveOnly.js.map +1 -0
  246. package/dist/generated/instructions/unpauseAgent.d.ts +46 -5
  247. package/dist/generated/instructions/unpauseAgent.d.ts.map +1 -1
  248. package/dist/generated/instructions/unpauseAgent.js +80 -5
  249. package/dist/generated/instructions/unpauseAgent.js.map +1 -1
  250. package/dist/generated/instructions/validateAndAuthorize.d.ts +29 -0
  251. package/dist/generated/instructions/validateAndAuthorize.d.ts.map +1 -1
  252. package/dist/generated/instructions/validateAndAuthorize.js +4 -0
  253. package/dist/generated/instructions/validateAndAuthorize.js.map +1 -1
  254. package/dist/generated/instructions/withdrawFunds.d.ts +53 -11
  255. package/dist/generated/instructions/withdrawFunds.d.ts.map +1 -1
  256. package/dist/generated/instructions/withdrawFunds.js +51 -2
  257. package/dist/generated/instructions/withdrawFunds.js.map +1 -1
  258. package/dist/generated/programs/sigil.d.ts +79 -95
  259. package/dist/generated/programs/sigil.d.ts.map +1 -1
  260. package/dist/generated/programs/sigil.js +139 -187
  261. package/dist/generated/programs/sigil.js.map +1 -1
  262. package/dist/generated/types/actionAuthorized.d.ts +0 -2
  263. package/dist/generated/types/actionAuthorized.d.ts.map +1 -1
  264. package/dist/generated/types/actionAuthorized.js +0 -2
  265. package/dist/generated/types/actionAuthorized.js.map +1 -1
  266. package/dist/generated/types/agentAutoRevoked.d.ts +31 -0
  267. package/dist/generated/types/agentAutoRevoked.d.ts.map +1 -0
  268. package/dist/generated/types/{pdaAllocated.js → agentAutoRevoked.js} +12 -10
  269. package/dist/generated/types/agentAutoRevoked.js.map +1 -0
  270. package/dist/generated/types/agentEntry.d.ts +48 -0
  271. package/dist/generated/types/agentEntry.d.ts.map +1 -1
  272. package/dist/generated/types/agentEntry.js +4 -2
  273. package/dist/generated/types/agentEntry.js.map +1 -1
  274. package/dist/generated/types/agentGrantApplied.d.ts +38 -0
  275. package/dist/generated/types/agentGrantApplied.d.ts.map +1 -0
  276. package/dist/generated/types/agentGrantApplied.js +34 -0
  277. package/dist/generated/types/agentGrantApplied.js.map +1 -0
  278. package/dist/generated/types/agentGrantCancelled.d.ts +33 -0
  279. package/dist/generated/types/agentGrantCancelled.d.ts.map +1 -0
  280. package/dist/generated/types/agentGrantCancelled.js +28 -0
  281. package/dist/generated/types/agentGrantCancelled.js.map +1 -0
  282. package/dist/generated/types/agentGrantQueued.d.ts +38 -0
  283. package/dist/generated/types/agentGrantQueued.d.ts.map +1 -0
  284. package/dist/generated/types/agentGrantQueued.js +32 -0
  285. package/dist/generated/types/agentGrantQueued.js.map +1 -0
  286. package/dist/generated/types/auditEntry.d.ts +120 -0
  287. package/dist/generated/types/auditEntry.d.ts.map +1 -0
  288. package/dist/generated/types/auditEntry.js +34 -0
  289. package/dist/generated/types/auditEntry.js.map +1 -0
  290. package/dist/generated/types/destinationGraylistEntry.d.ts +32 -0
  291. package/dist/generated/types/destinationGraylistEntry.d.ts.map +1 -0
  292. package/dist/generated/types/destinationGraylistEntry.js +24 -0
  293. package/dist/generated/types/destinationGraylistEntry.js.map +1 -0
  294. package/dist/generated/types/graylistEntered.d.ts +31 -0
  295. package/dist/generated/types/graylistEntered.d.ts.map +1 -0
  296. package/dist/generated/types/graylistEntered.js +30 -0
  297. package/dist/generated/types/graylistEntered.js.map +1 -0
  298. package/dist/generated/types/graylistPromoted.d.ts +29 -0
  299. package/dist/generated/types/graylistPromoted.d.ts.map +1 -0
  300. package/dist/generated/types/graylistPromoted.js +28 -0
  301. package/dist/generated/types/graylistPromoted.js.map +1 -0
  302. package/dist/generated/types/index.d.ts +13 -21
  303. package/dist/generated/types/index.d.ts.map +1 -1
  304. package/dist/generated/types/index.js +13 -21
  305. package/dist/generated/types/index.js.map +1 -1
  306. package/dist/generated/types/observeOnlyChanged.d.ts +33 -0
  307. package/dist/generated/types/observeOnlyChanged.d.ts.map +1 -0
  308. package/dist/generated/types/observeOnlyChanged.js +32 -0
  309. package/dist/generated/types/observeOnlyChanged.js.map +1 -0
  310. package/dist/generated/types/ownershipTransferAccepted.d.ts +32 -0
  311. package/dist/generated/types/ownershipTransferAccepted.d.ts.map +1 -0
  312. package/dist/generated/types/ownershipTransferAccepted.js +30 -0
  313. package/dist/generated/types/ownershipTransferAccepted.js.map +1 -0
  314. package/dist/generated/types/ownershipTransferCancelled.d.ts +29 -0
  315. package/dist/generated/types/ownershipTransferCancelled.d.ts.map +1 -0
  316. package/dist/generated/types/ownershipTransferCancelled.js +28 -0
  317. package/dist/generated/types/ownershipTransferCancelled.js.map +1 -0
  318. package/dist/generated/types/ownershipTransferInitiated.d.ts +33 -0
  319. package/dist/generated/types/ownershipTransferInitiated.d.ts.map +1 -0
  320. package/dist/generated/types/ownershipTransferInitiated.js +30 -0
  321. package/dist/generated/types/ownershipTransferInitiated.js.map +1 -0
  322. package/dist/generated/types/perRecipientCounter.d.ts +61 -0
  323. package/dist/generated/types/perRecipientCounter.d.ts.map +1 -0
  324. package/dist/generated/types/perRecipientCounter.js +26 -0
  325. package/dist/generated/types/perRecipientCounter.js.map +1 -0
  326. package/dist/generated/types/postAssertionEntry.d.ts +14 -7
  327. package/dist/generated/types/postAssertionEntry.d.ts.map +1 -1
  328. package/dist/generated/types/postAssertionEntry.js +5 -7
  329. package/dist/generated/types/postAssertionEntry.js.map +1 -1
  330. package/dist/generated/types/postAssertionEntryZC.d.ts +53 -22
  331. package/dist/generated/types/postAssertionEntryZC.d.ts.map +1 -1
  332. package/dist/generated/types/postAssertionEntryZC.js +4 -6
  333. package/dist/generated/types/postAssertionEntryZC.js.map +1 -1
  334. package/dist/generated/types/sessionFinalized.d.ts +0 -4
  335. package/dist/generated/types/sessionFinalized.d.ts.map +1 -1
  336. package/dist/generated/types/sessionFinalized.js +0 -2
  337. package/dist/generated/types/sessionFinalized.js.map +1 -1
  338. package/dist/generated/types/vaultFrozen.d.ts +26 -0
  339. package/dist/generated/types/vaultFrozen.d.ts.map +1 -1
  340. package/dist/generated/types/vaultFrozen.js +5 -1
  341. package/dist/generated/types/vaultFrozen.js.map +1 -1
  342. package/dist/index.d.ts +35 -6
  343. package/dist/index.d.ts.map +1 -1
  344. package/dist/index.js +81 -7
  345. package/dist/index.js.map +1 -1
  346. package/dist/inscribe.d.ts +0 -4
  347. package/dist/inscribe.d.ts.map +1 -1
  348. package/dist/inscribe.js +0 -1
  349. package/dist/inscribe.js.map +1 -1
  350. package/dist/inspector.d.ts +0 -23
  351. package/dist/inspector.d.ts.map +1 -1
  352. package/dist/inspector.js +0 -52
  353. package/dist/inspector.js.map +1 -1
  354. package/dist/kit-adapter.d.ts +1 -1
  355. package/dist/kit-adapter.d.ts.map +1 -1
  356. package/dist/kit-adapter.js +1 -1
  357. package/dist/kit-adapter.js.map +1 -1
  358. package/dist/logger.d.ts +48 -0
  359. package/dist/logger.d.ts.map +1 -1
  360. package/dist/logger.js +36 -0
  361. package/dist/logger.js.map +1 -1
  362. package/dist/multisig-detection.d.ts +83 -0
  363. package/dist/multisig-detection.d.ts.map +1 -0
  364. package/dist/multisig-detection.js +128 -0
  365. package/dist/multisig-detection.js.map +1 -0
  366. package/dist/owner-transaction.d.ts +8 -0
  367. package/dist/owner-transaction.d.ts.map +1 -1
  368. package/dist/owner-transaction.js +1 -0
  369. package/dist/owner-transaction.js.map +1 -1
  370. package/dist/ownership-transfer.d.ts +79 -0
  371. package/dist/ownership-transfer.d.ts.map +1 -0
  372. package/dist/ownership-transfer.js +66 -0
  373. package/dist/ownership-transfer.js.map +1 -0
  374. package/dist/policy/compute-cosign-digest.d.ts +193 -0
  375. package/dist/policy/compute-cosign-digest.d.ts.map +1 -0
  376. package/dist/policy/compute-cosign-digest.js +318 -0
  377. package/dist/policy/compute-cosign-digest.js.map +1 -0
  378. package/dist/policy/compute-policy-preview-digest.d.ts +258 -0
  379. package/dist/policy/compute-policy-preview-digest.d.ts.map +1 -0
  380. package/dist/policy/compute-policy-preview-digest.js +351 -0
  381. package/dist/policy/compute-policy-preview-digest.js.map +1 -0
  382. package/dist/policy-attestation.d.ts +51 -0
  383. package/dist/policy-attestation.d.ts.map +1 -0
  384. package/dist/policy-attestation.js +43 -0
  385. package/dist/policy-attestation.js.map +1 -0
  386. package/dist/presets.d.ts +1 -7
  387. package/dist/presets.d.ts.map +1 -1
  388. package/dist/presets.js +0 -5
  389. package/dist/presets.js.map +1 -1
  390. package/dist/preview-create-vault.d.ts +280 -0
  391. package/dist/preview-create-vault.d.ts.map +1 -0
  392. package/dist/preview-create-vault.js +498 -0
  393. package/dist/preview-create-vault.js.map +1 -0
  394. package/dist/resolve-accounts.d.ts +75 -10
  395. package/dist/resolve-accounts.d.ts.map +1 -1
  396. package/dist/resolve-accounts.js +68 -32
  397. package/dist/resolve-accounts.js.map +1 -1
  398. package/dist/rpc-helpers.d.ts +29 -3
  399. package/dist/rpc-helpers.d.ts.map +1 -1
  400. package/dist/rpc-helpers.js +51 -12
  401. package/dist/rpc-helpers.js.map +1 -1
  402. package/dist/seal/intent-digest.d.ts +195 -0
  403. package/dist/seal/intent-digest.d.ts.map +1 -0
  404. package/dist/seal/intent-digest.js +372 -0
  405. package/dist/seal/intent-digest.js.map +1 -0
  406. package/dist/seal.d.ts +166 -3
  407. package/dist/seal.d.ts.map +1 -1
  408. package/dist/seal.js +428 -8
  409. package/dist/seal.js.map +1 -1
  410. package/dist/security-analytics.d.ts +3 -3
  411. package/dist/security-analytics.d.ts.map +1 -1
  412. package/dist/security-analytics.js +13 -128
  413. package/dist/security-analytics.js.map +1 -1
  414. package/dist/session-mint.d.ts +72 -0
  415. package/dist/session-mint.d.ts.map +1 -0
  416. package/dist/session-mint.js +59 -0
  417. package/dist/session-mint.js.map +1 -0
  418. package/dist/sigil.d.ts +0 -4
  419. package/dist/sigil.d.ts.map +1 -1
  420. package/dist/simulation.d.ts +19 -0
  421. package/dist/simulation.d.ts.map +1 -1
  422. package/dist/simulation.js +211 -138
  423. package/dist/simulation.js.map +1 -1
  424. package/dist/squads-detection.d.ts +135 -0
  425. package/dist/squads-detection.d.ts.map +1 -0
  426. package/dist/squads-detection.js +124 -0
  427. package/dist/squads-detection.js.map +1 -0
  428. package/dist/state-resolver.d.ts +0 -16
  429. package/dist/state-resolver.d.ts.map +1 -1
  430. package/dist/state-resolver.js +162 -97
  431. package/dist/state-resolver.js.map +1 -1
  432. package/dist/testing/devnet.d.ts +40 -1
  433. package/dist/testing/devnet.d.ts.map +1 -1
  434. package/dist/testing/devnet.js +333 -45
  435. package/dist/testing/devnet.js.map +1 -1
  436. package/dist/testing/errors/expect.d.ts +137 -0
  437. package/dist/testing/errors/expect.d.ts.map +1 -0
  438. package/dist/testing/errors/expect.js +372 -0
  439. package/dist/testing/errors/expect.js.map +1 -0
  440. package/dist/testing/errors/index.d.ts +3 -0
  441. package/dist/testing/errors/index.d.ts.map +1 -0
  442. package/dist/testing/errors/index.js +8 -0
  443. package/dist/testing/errors/index.js.map +1 -0
  444. package/dist/testing/errors/names.generated.d.ts +211 -0
  445. package/dist/testing/errors/names.generated.d.ts.map +1 -0
  446. package/dist/testing/errors/names.generated.js +206 -0
  447. package/dist/testing/errors/names.generated.js.map +1 -0
  448. package/dist/testing/index.d.ts +1 -0
  449. package/dist/testing/index.d.ts.map +1 -1
  450. package/dist/testing/index.js +8 -0
  451. package/dist/testing/index.js.map +1 -1
  452. package/dist/testing/mock-rpc.d.ts +16 -0
  453. package/dist/testing/mock-rpc.d.ts.map +1 -1
  454. package/dist/testing/mock-rpc.js +27 -0
  455. package/dist/testing/mock-rpc.js.map +1 -1
  456. package/dist/testing/mock-state.d.ts +2 -0
  457. package/dist/testing/mock-state.d.ts.map +1 -1
  458. package/dist/testing/mock-state.js +45 -6
  459. package/dist/testing/mock-state.js.map +1 -1
  460. package/dist/types.d.ts +5 -15
  461. package/dist/types.d.ts.map +1 -1
  462. package/dist/types.js +11 -69
  463. package/dist/types.js.map +1 -1
  464. package/dist/vault-analytics.d.ts +0 -2
  465. package/dist/vault-analytics.d.ts.map +1 -1
  466. package/dist/vault-analytics.js +1 -9
  467. package/dist/vault-analytics.js.map +1 -1
  468. package/package.json +12 -5
  469. package/dist/dashboard/constraint-reads.d.ts +0 -50
  470. package/dist/dashboard/constraint-reads.d.ts.map +0 -1
  471. package/dist/dashboard/constraint-reads.js +0 -119
  472. package/dist/dashboard/constraint-reads.js.map +0 -1
  473. package/dist/generated/accounts/escrowDeposit.d.ts +0 -50
  474. package/dist/generated/accounts/escrowDeposit.d.ts.map +0 -1
  475. package/dist/generated/accounts/escrowDeposit.js +0 -76
  476. package/dist/generated/accounts/escrowDeposit.js.map +0 -1
  477. package/dist/generated/accounts/instructionConstraints.d.ts +0 -46
  478. package/dist/generated/accounts/instructionConstraints.d.ts.map +0 -1
  479. package/dist/generated/accounts/instructionConstraints.js +0 -73
  480. package/dist/generated/accounts/instructionConstraints.js.map +0 -1
  481. package/dist/generated/accounts/pendingCloseConstraints.d.ts +0 -37
  482. package/dist/generated/accounts/pendingCloseConstraints.d.ts.map +0 -1
  483. package/dist/generated/accounts/pendingCloseConstraints.js +0 -66
  484. package/dist/generated/accounts/pendingCloseConstraints.js.map +0 -1
  485. package/dist/generated/accounts/pendingConstraintsUpdate.d.ts +0 -62
  486. package/dist/generated/accounts/pendingConstraintsUpdate.d.ts.map +0 -1
  487. package/dist/generated/accounts/pendingConstraintsUpdate.js +0 -75
  488. package/dist/generated/accounts/pendingConstraintsUpdate.js.map +0 -1
  489. package/dist/generated/instructions/allocateConstraintsPda.d.ts +0 -62
  490. package/dist/generated/instructions/allocateConstraintsPda.d.ts.map +0 -1
  491. package/dist/generated/instructions/allocateConstraintsPda.js +0 -134
  492. package/dist/generated/instructions/allocateConstraintsPda.js.map +0 -1
  493. package/dist/generated/instructions/allocatePendingConstraintsPda.d.ts +0 -66
  494. package/dist/generated/instructions/allocatePendingConstraintsPda.d.ts.map +0 -1
  495. package/dist/generated/instructions/allocatePendingConstraintsPda.js.map +0 -1
  496. package/dist/generated/instructions/applyCloseConstraints.d.ts +0 -59
  497. package/dist/generated/instructions/applyCloseConstraints.d.ts.map +0 -1
  498. package/dist/generated/instructions/applyCloseConstraints.js +0 -143
  499. package/dist/generated/instructions/applyCloseConstraints.js.map +0 -1
  500. package/dist/generated/instructions/applyConstraintsUpdate.d.ts +0 -62
  501. package/dist/generated/instructions/applyConstraintsUpdate.d.ts.map +0 -1
  502. package/dist/generated/instructions/applyConstraintsUpdate.js.map +0 -1
  503. package/dist/generated/instructions/cancelCloseConstraints.d.ts +0 -51
  504. package/dist/generated/instructions/cancelCloseConstraints.d.ts.map +0 -1
  505. package/dist/generated/instructions/cancelCloseConstraints.js +0 -115
  506. package/dist/generated/instructions/cancelCloseConstraints.js.map +0 -1
  507. package/dist/generated/instructions/cancelConstraintsUpdate.d.ts +0 -51
  508. package/dist/generated/instructions/cancelConstraintsUpdate.d.ts.map +0 -1
  509. package/dist/generated/instructions/cancelConstraintsUpdate.js +0 -115
  510. package/dist/generated/instructions/cancelConstraintsUpdate.js.map +0 -1
  511. package/dist/generated/instructions/closeSettledEscrow.d.ts +0 -72
  512. package/dist/generated/instructions/closeSettledEscrow.d.ts.map +0 -1
  513. package/dist/generated/instructions/closeSettledEscrow.js +0 -127
  514. package/dist/generated/instructions/closeSettledEscrow.js.map +0 -1
  515. package/dist/generated/instructions/createEscrow.d.ts +0 -131
  516. package/dist/generated/instructions/createEscrow.d.ts.map +0 -1
  517. package/dist/generated/instructions/createEscrow.js +0 -272
  518. package/dist/generated/instructions/createEscrow.js.map +0 -1
  519. package/dist/generated/instructions/createInstructionConstraints.d.ts +0 -68
  520. package/dist/generated/instructions/createInstructionConstraints.d.ts.map +0 -1
  521. package/dist/generated/instructions/createInstructionConstraints.js.map +0 -1
  522. package/dist/generated/instructions/extendPda.d.ts +0 -52
  523. package/dist/generated/instructions/extendPda.d.ts.map +0 -1
  524. package/dist/generated/instructions/extendPda.js +0 -86
  525. package/dist/generated/instructions/extendPda.js.map +0 -1
  526. package/dist/generated/instructions/queueCloseConstraints.d.ts +0 -66
  527. package/dist/generated/instructions/queueCloseConstraints.d.ts.map +0 -1
  528. package/dist/generated/instructions/queueCloseConstraints.js.map +0 -1
  529. package/dist/generated/instructions/queueConstraintsUpdate.d.ts +0 -75
  530. package/dist/generated/instructions/queueConstraintsUpdate.d.ts.map +0 -1
  531. package/dist/generated/instructions/queueConstraintsUpdate.js +0 -154
  532. package/dist/generated/instructions/queueConstraintsUpdate.js.map +0 -1
  533. package/dist/generated/instructions/refundEscrow.d.ts +0 -74
  534. package/dist/generated/instructions/refundEscrow.d.ts.map +0 -1
  535. package/dist/generated/instructions/refundEscrow.js +0 -142
  536. package/dist/generated/instructions/refundEscrow.js.map +0 -1
  537. package/dist/generated/instructions/settleEscrow.d.ts +0 -80
  538. package/dist/generated/instructions/settleEscrow.d.ts.map +0 -1
  539. package/dist/generated/instructions/settleEscrow.js +0 -173
  540. package/dist/generated/instructions/settleEscrow.js.map +0 -1
  541. package/dist/generated/types/accountConstraint.d.ts +0 -18
  542. package/dist/generated/types/accountConstraint.d.ts.map +0 -1
  543. package/dist/generated/types/accountConstraint.js +0 -24
  544. package/dist/generated/types/accountConstraint.js.map +0 -1
  545. package/dist/generated/types/accountConstraintZC.d.ts +0 -18
  546. package/dist/generated/types/accountConstraintZC.d.ts.map +0 -1
  547. package/dist/generated/types/accountConstraintZC.js +0 -26
  548. package/dist/generated/types/accountConstraintZC.js.map +0 -1
  549. package/dist/generated/types/closeConstraintsApplied.d.ts +0 -20
  550. package/dist/generated/types/closeConstraintsApplied.d.ts.map +0 -1
  551. package/dist/generated/types/closeConstraintsApplied.js +0 -24
  552. package/dist/generated/types/closeConstraintsApplied.js.map +0 -1
  553. package/dist/generated/types/closeConstraintsCancelled.d.ts +0 -16
  554. package/dist/generated/types/closeConstraintsCancelled.d.ts.map +0 -1
  555. package/dist/generated/types/closeConstraintsCancelled.js +0 -18
  556. package/dist/generated/types/closeConstraintsCancelled.js.map +0 -1
  557. package/dist/generated/types/closeConstraintsQueued.d.ts +0 -20
  558. package/dist/generated/types/closeConstraintsQueued.d.ts.map +0 -1
  559. package/dist/generated/types/closeConstraintsQueued.js +0 -24
  560. package/dist/generated/types/closeConstraintsQueued.js.map +0 -1
  561. package/dist/generated/types/constraintEntry.d.ts +0 -39
  562. package/dist/generated/types/constraintEntry.d.ts.map +0 -1
  563. package/dist/generated/types/constraintEntry.js +0 -31
  564. package/dist/generated/types/constraintEntry.js.map +0 -1
  565. package/dist/generated/types/constraintEntryZC.d.ts +0 -68
  566. package/dist/generated/types/constraintEntryZC.d.ts.map +0 -1
  567. package/dist/generated/types/constraintEntryZC.js +0 -49
  568. package/dist/generated/types/constraintEntryZC.js.map +0 -1
  569. package/dist/generated/types/constraintOperator.d.ts +0 -22
  570. package/dist/generated/types/constraintOperator.d.ts.map +0 -1
  571. package/dist/generated/types/constraintOperator.js +0 -28
  572. package/dist/generated/types/constraintOperator.js.map +0 -1
  573. package/dist/generated/types/constraintsChangeApplied.d.ts +0 -30
  574. package/dist/generated/types/constraintsChangeApplied.d.ts.map +0 -1
  575. package/dist/generated/types/constraintsChangeApplied.js +0 -32
  576. package/dist/generated/types/constraintsChangeApplied.js.map +0 -1
  577. package/dist/generated/types/constraintsChangeCancelled.d.ts +0 -16
  578. package/dist/generated/types/constraintsChangeCancelled.d.ts.map +0 -1
  579. package/dist/generated/types/constraintsChangeCancelled.js +0 -18
  580. package/dist/generated/types/constraintsChangeCancelled.js.map +0 -1
  581. package/dist/generated/types/constraintsChangeQueued.d.ts +0 -30
  582. package/dist/generated/types/constraintsChangeQueued.d.ts.map +0 -1
  583. package/dist/generated/types/constraintsChangeQueued.js +0 -32
  584. package/dist/generated/types/constraintsChangeQueued.js.map +0 -1
  585. package/dist/generated/types/dataConstraint.d.ts +0 -23
  586. package/dist/generated/types/dataConstraint.d.ts.map +0 -1
  587. package/dist/generated/types/dataConstraint.js +0 -27
  588. package/dist/generated/types/dataConstraint.js.map +0 -1
  589. package/dist/generated/types/dataConstraintZC.d.ts +0 -20
  590. package/dist/generated/types/dataConstraintZC.d.ts.map +0 -1
  591. package/dist/generated/types/dataConstraintZC.js +0 -30
  592. package/dist/generated/types/dataConstraintZC.js.map +0 -1
  593. package/dist/generated/types/discriminatorFormat.d.ts +0 -25
  594. package/dist/generated/types/discriminatorFormat.d.ts.map +0 -1
  595. package/dist/generated/types/discriminatorFormat.js +0 -31
  596. package/dist/generated/types/discriminatorFormat.js.map +0 -1
  597. package/dist/generated/types/escrowCreated.d.ts +0 -30
  598. package/dist/generated/types/escrowCreated.d.ts.map +0 -1
  599. package/dist/generated/types/escrowCreated.js +0 -34
  600. package/dist/generated/types/escrowCreated.js.map +0 -1
  601. package/dist/generated/types/escrowRefunded.d.ts +0 -26
  602. package/dist/generated/types/escrowRefunded.d.ts.map +0 -1
  603. package/dist/generated/types/escrowRefunded.js +0 -30
  604. package/dist/generated/types/escrowRefunded.js.map +0 -1
  605. package/dist/generated/types/escrowSettled.d.ts +0 -26
  606. package/dist/generated/types/escrowSettled.d.ts.map +0 -1
  607. package/dist/generated/types/escrowSettled.js +0 -30
  608. package/dist/generated/types/escrowSettled.js.map +0 -1
  609. package/dist/generated/types/escrowStatus.d.ts +0 -18
  610. package/dist/generated/types/escrowStatus.d.ts.map +0 -1
  611. package/dist/generated/types/escrowStatus.js +0 -24
  612. package/dist/generated/types/escrowStatus.js.map +0 -1
  613. package/dist/generated/types/instructionConstraintsCreated.d.ts +0 -34
  614. package/dist/generated/types/instructionConstraintsCreated.d.ts.map +0 -1
  615. package/dist/generated/types/instructionConstraintsCreated.js +0 -36
  616. package/dist/generated/types/instructionConstraintsCreated.js.map +0 -1
  617. package/dist/generated/types/pdaAllocated.d.ts +0 -24
  618. package/dist/generated/types/pdaAllocated.d.ts.map +0 -1
  619. package/dist/generated/types/pdaAllocated.js.map +0 -1
  620. package/dist/generated/types/pdaExtended.d.ts +0 -24
  621. package/dist/generated/types/pdaExtended.d.ts.map +0 -1
  622. package/dist/generated/types/pdaExtended.js +0 -28
  623. package/dist/generated/types/pdaExtended.js.map +0 -1
  624. package/dist/integrations/protocol-handler.d.ts +0 -59
  625. package/dist/integrations/protocol-handler.d.ts.map +0 -1
  626. package/dist/integrations/protocol-handler.js +0 -9
  627. package/dist/integrations/protocol-handler.js.map +0 -1
@@ -0,0 +1,498 @@
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 { createNoopSigner } from "./kit-adapter.js";
51
+ import { getVaultPDA, getPolicyPDA, getTrackerPDA, getAgentOverlayPDA, } from "./resolve-accounts.js";
52
+ import { createVault } from "./create-vault.js";
53
+ import { buildOwnerTransaction } from "./owner-transaction.js";
54
+ import { CU_VAULT_CREATION } from "./priority-fees.js";
55
+ import { validateNetwork, SYSTEM_PROGRAM_ADDRESS, MAX_DEVELOPER_FEE_RATE, MAX_ALLOWED_PROTOCOLS, U64_MAX, } from "./types.js";
56
+ import { SigilSdkDomainError } from "./errors/sdk.js";
57
+ import { SIGIL_ERROR__SDK__INVALID_PARAMS } from "./errors/codes.js";
58
+ // ─── On-chain account sizes (verified against programs/sigil/src/state/*.rs) ─
59
+ /**
60
+ * `AgentVault::SIZE` from `programs/sigil/src/state/vault.rs:135-152`.
61
+ * Layout: 8 disc + 32 owner + 8 vault_id + 4 vec_prefix + (49 * 10) agents
62
+ * + 32 fee_destination + 1 status + 1 bump + 8 created_at
63
+ * + 8 total_transactions + 8 total_volume
64
+ * + 8 total_fees_collected + 8 total_deposited_usd + 8 total_withdrawn_usd
65
+ * + 8 total_failed_transactions + 1 active_sessions
66
+ * + 1 observe_only [Phase 2 TA-19] + 8 frozen_at_timestamp + 1 freeze_reason
67
+ * + 1 owner_type [F-Q6] + 32 vault_authority [Phase 8 LBL-01] = 676.
68
+ * (Was 634 — stale: it predated the Phase-8 fields frozen_at_timestamp +
69
+ * freeze_reason + vault_authority (+41) and F-Q6 owner_type (+1); corrected
70
+ * to the rent-exact 676 here.)
71
+ */
72
+ const AGENT_VAULT_SIZE = 676;
73
+ /**
74
+ * `PolicyConfig::SIZE` from `programs/sigil/src/state/policy.rs:323-350`.
75
+ * Layout: 8 disc + 32 vault + 8 daily_cap + 8 max_tx + 1 protocol_mode
76
+ * + (4 + 32*10) protocols + 2 dev_fee + 2 max_slippage_bps
77
+ * + 8 session_window + (4 + 32*10) allowed_destinations
78
+ * + 1 has_pending_policy + 1 has_protocol_caps [M1-04 removed has_constraints]
79
+ * + (4 + 8*10) protocol_caps + 8 session_expiry + 1 bump
80
+ * + 8 policy_version + 1 has_post_assertions + 1 destination_mode
81
+ * + 32 policy_preview_digest [TA-19 Phase 2]
82
+ * + 8 created_at_slot [PEN-CROSS-2]
83
+ * + 4 operating_hours [TA-05 Phase 3]
84
+ * + (4 + 40*10) destination_graylist [TA-07 Phase 3]
85
+ * + 1 auto_promote_grays [TA-07] + 1 auto_revoke_threshold [TA-17]
86
+ * + 8 stable_balance_floor [TA-12 Phase 5]
87
+ * + 8 per_recipient_daily_cap_usd [TA-14 Phase 5]
88
+ * + 1 cosign_required [G6 audit 2026-05-18]
89
+ * + 32 cosign_session_pubkey [D-5 audit 2026-05-19, F-RP3-1]
90
+ * + 8 operator_grant_delay_seconds [F-Q6 2026-06-02] = 1,329.
91
+ * (Was 1,322 pre-F-Q6 — that value double-counted the M1-04-removed
92
+ * has_constraints byte; corrected to the rent-exact 1,329 here.)
93
+ */
94
+ const POLICY_CONFIG_SIZE = 1_329;
95
+ /**
96
+ * `SpendTracker::SIZE` from `programs/sigil/src/state/tracker.rs:200-214`.
97
+ * Layout: 8 disc + 32 vault + (16 * 144) buckets + (48 * 10) protocol_counters
98
+ * + 8 last_write_epoch + 1 bump + 7 padding
99
+ * + (48 * 10) per_recipient [TA-14 Phase 5]
100
+ * + 1 per_recipient_count + 7 _padding_recipient = 3,328.
101
+ */
102
+ const SPEND_TRACKER_SIZE = 3_328;
103
+ /**
104
+ * `AgentSpendOverlay::SIZE` from `programs/sigil/src/state/agent_spend_overlay.rs:114-123`.
105
+ * Layout: 8 disc + 32 vault + (232 * 10) entries + 1 bump + 7 padding
106
+ * + (8 * 10) lifetime_spend + (8 * 10) lifetime_tx_count
107
+ * + (8 * 10) cooldown_seconds [TA-06 Phase 3]
108
+ * + (8 * 10) last_action_unix [TA-06 Phase 3] = 2,688.
109
+ */
110
+ const AGENT_SPEND_OVERLAY_SIZE = 2_688;
111
+ /** Default priority fee when caller doesn't supply one. Conservative. */
112
+ const DEFAULT_PRIORITY_FEE_MICRO_LAMPORTS = 10_000;
113
+ /** `1_000_000_000` lamports per SOL. */
114
+ const LAMPORTS_PER_SOL = 1000000000n;
115
+ /** Microlamports per lamport. */
116
+ const MICRO_LAMPORTS_PER_LAMPORT = 1000000n;
117
+ /** Heuristic: dailyCapUsd above $1,000,000 (6-decimal base units) → warn. */
118
+ const DAILY_CAP_HIGH_THRESHOLD = 1000000000000n;
119
+ /**
120
+ * Upper bound for any 6-decimal USD bigint at the public API edge.
121
+ * Re-exported from `types.U64_MAX` (`18_446_744_073_709_551_615n`). The
122
+ * on-chain program stores these as `u64`; values above overflow there. We
123
+ * reject at the kit edge rather than ship a tx the program will reject.
124
+ */
125
+ const MAX_USD_BASE_UNITS = U64_MAX;
126
+ /** Mirror of `MIN_TIMELOCK_DURATION` (1800) from `state/mod.rs`. */
127
+ const MIN_TIMELOCK_DURATION_SECONDS = 1800n;
128
+ /** Mirror of `MAX_ALLOWED_DESTINATIONS` (10) from `state/mod.rs`. */
129
+ const MAX_ALLOWED_DESTINATIONS_COUNT = 10;
130
+ // ─── Implementation ──────────────────────────────────────────────────────────
131
+ /**
132
+ * Generate a `CreateVaultPreview` for the dashboard split-screen `/onboard`
133
+ * flow. See module JSDoc for the algorithm and design rationale.
134
+ *
135
+ * @throws {RangeError} If any bigint config field is negative or any count
136
+ * exceeds its on-chain maximum, or if `timelockDuration < 1800n`,
137
+ * or if `developerFeeRate > 500`.
138
+ * @throws {SigilSdkDomainError} If `validateNetwork(config.network)` fails,
139
+ * if `getMinimumBalanceForRentExemption` returns 0n / undefined,
140
+ * or if `createVault()` rejects the config (e.g., owner == agent,
141
+ * spendingLimit > dailyCap aggregate).
142
+ */
143
+ export async function previewCreateVault(config) {
144
+ // 1. Validate config at the API edge (fail fast, descriptive errors).
145
+ validateConfig(config);
146
+ // Normalize "mainnet-beta" → "mainnet" for createVault / buildOwnerTransaction
147
+ // (which use the short literal type) while still accepting either form.
148
+ const buildNetwork = toBuildNetwork(config.network);
149
+ // 2 + 3. Derive PDAs and fetch rent concurrently.
150
+ //
151
+ // Rent depends on size only, not address — fire all 4 rent RPC fetches
152
+ // in parallel with PDA derivation. PDA derivation is pure CPU (sha256
153
+ // in a 0..255 bump search loop) so overlapping it with network latency
154
+ // removes the serial CPU step from the wall-clock path on hot
155
+ // dashboard re-types.
156
+ //
157
+ // `vault` is the seed for the other three PDAs, so we wrap the
158
+ // dependent chain (`getVaultPDA` → policy/tracker/overlay) in a single
159
+ // async IIFE and `Promise.all` it alongside the rent fetches. Wrapping
160
+ // (rather than `await`-ing the vault PDA up front) keeps the rent
161
+ // promises in a Promise.all from the moment they're created, so a
162
+ // rejecting RPC never produces a transient
163
+ // `PromiseRejectionHandledWarning`.
164
+ const vaultChain = (async () => {
165
+ const [vAddr, vBump] = await getVaultPDA(config.owner, config.vaultId);
166
+ const [policy, tracker, overlay] = await Promise.all([
167
+ getPolicyPDA(vAddr),
168
+ getTrackerPDA(vAddr),
169
+ getAgentOverlayPDA(vAddr, 0),
170
+ ]);
171
+ return { vAddr, vBump, policy, tracker, overlay };
172
+ })();
173
+ const [{ vAddr, vBump, policy, tracker, overlay }, vaultRent, policyRent, trackerRent, overlayRent,] = await Promise.all([
174
+ vaultChain,
175
+ fetchRentForSize(config.rpc, AGENT_VAULT_SIZE, "AgentVault"),
176
+ fetchRentForSize(config.rpc, POLICY_CONFIG_SIZE, "PolicyConfig"),
177
+ fetchRentForSize(config.rpc, SPEND_TRACKER_SIZE, "SpendTracker"),
178
+ fetchRentForSize(config.rpc, AGENT_SPEND_OVERLAY_SIZE, "AgentSpendOverlay"),
179
+ ]);
180
+ const vaultAddress = vAddr;
181
+ const vaultBump = vBump;
182
+ const [policyAddress, policyBump] = policy;
183
+ const [trackerAddress, trackerBump] = tracker;
184
+ const [overlayAddress, overlayBump] = overlay;
185
+ // 4. Build the pdaList tuple in deterministic on-chain `init` order.
186
+ const pdaList = Object.freeze([
187
+ makePdaInfo("AgentVault", vaultAddress, vaultBump, AGENT_VAULT_SIZE, vaultRent),
188
+ makePdaInfo("PolicyConfig", policyAddress, policyBump, POLICY_CONFIG_SIZE, policyRent),
189
+ makePdaInfo("SpendTracker", trackerAddress, trackerBump, SPEND_TRACKER_SIZE, trackerRent),
190
+ makePdaInfo("AgentSpendOverlay", overlayAddress, overlayBump, AGENT_SPEND_OVERLAY_SIZE, overlayRent),
191
+ ]);
192
+ const rentLamports = vaultRent + policyRent + trackerRent + overlayRent;
193
+ // 5. Build the create-vault instructions. `createVault` validates aggregate
194
+ // caps and owner≠agent for us; we propagate its throws.
195
+ const ownerSigner = createNoopSigner(config.owner);
196
+ const agentSigner = createNoopSigner(config.agentAddress);
197
+ const createResult = await createVault({
198
+ rpc: config.rpc,
199
+ network: buildNetwork,
200
+ owner: ownerSigner,
201
+ agent: agentSigner,
202
+ permissions: config.capabilityTier !== undefined
203
+ ? config.capabilityTier
204
+ : undefined,
205
+ spendingLimitUsd: config.spendingLimitUsd,
206
+ dailySpendingCapUsd: config.dailyCapUsd,
207
+ maxTransactionSizeUsd: config.maxTxSizeUsd,
208
+ feeDestination: config.feeDestination,
209
+ developerFeeRate: config.developerFeeRate,
210
+ protocols: [...config.protocols],
211
+ protocolMode: config.protocolMode,
212
+ maxSlippageBps: config.maxSlippageBps,
213
+ timelockDuration: Number(config.timelockDuration),
214
+ allowedDestinations: [...config.allowedDestinations],
215
+ vaultId: config.vaultId,
216
+ protocolCaps: config.protocolCaps.length > 0 ? [...config.protocolCaps] : undefined,
217
+ });
218
+ // 6. Compile the unsigned transaction.
219
+ const computeUnits = config.computeUnits ?? CU_VAULT_CREATION;
220
+ const priorityFeeMicroLamports = config.priorityFeeMicroLamports ?? DEFAULT_PRIORITY_FEE_MICRO_LAMPORTS;
221
+ const ownerTx = await buildOwnerTransaction({
222
+ rpc: config.rpc,
223
+ owner: ownerSigner,
224
+ instructions: [
225
+ createResult.initializeVaultIx,
226
+ createResult.registerAgentIx,
227
+ ],
228
+ network: buildNetwork,
229
+ computeUnits,
230
+ priorityFeeMicroLamports,
231
+ ...(config.blockhash !== undefined ? { blockhash: config.blockhash } : {}),
232
+ ...(config.addressLookupTables !== undefined
233
+ ? { addressLookupTables: config.addressLookupTables }
234
+ : {}),
235
+ });
236
+ // 7. feeLamports: microLamports per CU * CU / 1_000_000. Mul-before-divide
237
+ // in BigInt to avoid number/bigint mixing.
238
+ const feeLamports = (BigInt(priorityFeeMicroLamports) * BigInt(computeUnits)) /
239
+ MICRO_LAMPORTS_PER_LAMPORT;
240
+ // 8. totalCostUsd: mul-before-divide preserves precision down to 1 unit of
241
+ // 6-decimal USD.
242
+ const totalCostUsd = ((rentLamports + feeLamports) * config.solPriceUsd) / LAMPORTS_PER_SOL;
243
+ const unsignedTxBytes = base64ToUint8Array(ownerTx.wireBase64);
244
+ // 9. lastValidBlockHeight is sourced from the same blockhash baked into the
245
+ // wire bytes — never re-read the cache (TTL refresh would race the bytes
246
+ // the user is about to sign).
247
+ const blockhash = ownerTx.blockhash;
248
+ // 10. Warnings (sorted by code) → undefined when empty so the FE skips
249
+ // rendering the panel.
250
+ const warningsRaw = buildWarnings(config);
251
+ const warnings = warningsRaw.length > 0
252
+ ? Object.freeze(warningsRaw)
253
+ : undefined;
254
+ const preview = {
255
+ pdaList,
256
+ rentLamports,
257
+ computeUnits,
258
+ feeLamports,
259
+ totalCostUsd,
260
+ vaultAddress,
261
+ unsignedTxBytes,
262
+ txSizeBytes: ownerTx.txSizeBytes,
263
+ lastValidBlockHeight: blockhash.lastValidBlockHeight,
264
+ ...(warnings !== undefined ? { warnings } : {}),
265
+ };
266
+ return Object.freeze(preview);
267
+ }
268
+ // ─── Private helpers ─────────────────────────────────────────────────────────
269
+ /**
270
+ * Build one frozen `VaultPdaInfo` entry for `pdaList`. The literal `name`
271
+ * type is preserved so each tuple slot narrows to its specific account class
272
+ * (e.g. `pdaList[0].name === "AgentVault"`).
273
+ */
274
+ function makePdaInfo(name, address, bump, sizeBytes, rentLamports) {
275
+ return Object.freeze({
276
+ name,
277
+ address,
278
+ bump,
279
+ sizeBytes,
280
+ rentLamports,
281
+ });
282
+ }
283
+ /**
284
+ * Validate config at the API edge. Throws `RangeError` for value-out-of-range
285
+ * (matches the `composeAgentBootstrap` convention) and lets `validateNetwork`
286
+ * propagate its `SigilSdkDomainError`.
287
+ */
288
+ function validateConfig(config) {
289
+ // Network — propagates SigilSdkDomainError if invalid.
290
+ validateNetwork(config.network);
291
+ // Negative bigints. `solPriceUsd` rejects 0n too — kit has no oracle, and
292
+ // a price of 0 silently produces `totalCostUsd === 0n` which the FE
293
+ // would render as "Free". Fail loud.
294
+ if (config.vaultId < 0n) {
295
+ throw new RangeError(`vaultId must be >= 0; received ${config.vaultId}`);
296
+ }
297
+ if (config.dailyCapUsd < 0n) {
298
+ throw new RangeError(`dailyCapUsd must be >= 0; received ${config.dailyCapUsd}`);
299
+ }
300
+ if (config.maxTxSizeUsd < 0n) {
301
+ throw new RangeError(`maxTxSizeUsd must be >= 0; received ${config.maxTxSizeUsd}`);
302
+ }
303
+ if (config.spendingLimitUsd < 0n) {
304
+ throw new RangeError(`spendingLimitUsd must be >= 0; received ${config.spendingLimitUsd}`);
305
+ }
306
+ if (config.solPriceUsd <= 0n) {
307
+ throw new RangeError(`solPriceUsd must be > 0n; received ${config.solPriceUsd}. ` +
308
+ `The kit has no oracle — caller must supply a fresh, positive price.`);
309
+ }
310
+ if (config.timelockDuration < 0n) {
311
+ throw new RangeError(`timelockDuration must be >= 0; received ${config.timelockDuration}`);
312
+ }
313
+ // Upper bounds — `u64::MAX` overflow guards. The on-chain program stores
314
+ // these as `u64`; values above `(1 << 64) - 1` overflow there. Reject at
315
+ // the kit edge.
316
+ if (config.dailyCapUsd > MAX_USD_BASE_UNITS) {
317
+ throw new RangeError(`dailyCapUsd must be <= u64::MAX (${MAX_USD_BASE_UNITS}); received ${config.dailyCapUsd}`);
318
+ }
319
+ if (config.maxTxSizeUsd > MAX_USD_BASE_UNITS) {
320
+ throw new RangeError(`maxTxSizeUsd must be <= u64::MAX; received ${config.maxTxSizeUsd}`);
321
+ }
322
+ if (config.spendingLimitUsd > MAX_USD_BASE_UNITS) {
323
+ throw new RangeError(`spendingLimitUsd must be <= u64::MAX; received ${config.spendingLimitUsd}`);
324
+ }
325
+ if (config.solPriceUsd > MAX_USD_BASE_UNITS) {
326
+ throw new RangeError(`solPriceUsd must be <= u64::MAX; received ${config.solPriceUsd}`);
327
+ }
328
+ // `timelockDuration` is a bigint at the API but createVault takes a
329
+ // number. Number can lose precision above 2^53. Reject silently-lossy
330
+ // values rather than ship a tx with a different timelock than the user
331
+ // typed.
332
+ if (config.timelockDuration > BigInt(Number.MAX_SAFE_INTEGER)) {
333
+ throw new RangeError(`timelockDuration must be <= Number.MAX_SAFE_INTEGER (${Number.MAX_SAFE_INTEGER}); ` +
334
+ `received ${config.timelockDuration}. Larger values lose precision in the bigint→number cast.`);
335
+ }
336
+ // On-chain hard limits — mirror as early throws.
337
+ if (config.timelockDuration < MIN_TIMELOCK_DURATION_SECONDS) {
338
+ throw new RangeError(`timelockDuration must be >= ${MIN_TIMELOCK_DURATION_SECONDS}n (MIN_TIMELOCK_DURATION); ` +
339
+ `the on-chain program rejects shorter timelocks. Received ${config.timelockDuration}.`);
340
+ }
341
+ if (!Number.isInteger(config.developerFeeRate) ||
342
+ config.developerFeeRate < 0) {
343
+ throw new RangeError(`developerFeeRate must be a non-negative integer; received ${config.developerFeeRate}`);
344
+ }
345
+ if (config.developerFeeRate > MAX_DEVELOPER_FEE_RATE) {
346
+ throw new RangeError(`developerFeeRate must be <= ${MAX_DEVELOPER_FEE_RATE} BPS (MAX_DEVELOPER_FEE_RATE); ` +
347
+ `received ${config.developerFeeRate}`);
348
+ }
349
+ if (!Number.isInteger(config.maxSlippageBps) || config.maxSlippageBps < 0) {
350
+ throw new RangeError(`maxSlippageBps must be a non-negative integer; received ${config.maxSlippageBps}`);
351
+ }
352
+ if (config.protocols.length > MAX_ALLOWED_PROTOCOLS) {
353
+ throw new RangeError(`protocols.length must be <= ${MAX_ALLOWED_PROTOCOLS} (MAX_ALLOWED_PROTOCOLS); ` +
354
+ `received ${config.protocols.length}`);
355
+ }
356
+ if (config.allowedDestinations.length > MAX_ALLOWED_DESTINATIONS_COUNT) {
357
+ throw new RangeError(`allowedDestinations.length must be <= ${MAX_ALLOWED_DESTINATIONS_COUNT} (MAX_ALLOWED_DESTINATIONS); ` +
358
+ `received ${config.allowedDestinations.length}`);
359
+ }
360
+ // protocol_caps when non-empty must align with allowlist mode and length.
361
+ if (config.protocolCaps.length > 0) {
362
+ if (config.protocolMode !== 1) {
363
+ throw new RangeError(`protocolCaps requires protocolMode === 1 (ALLOWLIST); received ${config.protocolMode}`);
364
+ }
365
+ if (config.protocolCaps.length !== config.protocols.length) {
366
+ throw new RangeError(`protocolCaps.length (${config.protocolCaps.length}) must equal protocols.length (${config.protocols.length})`);
367
+ }
368
+ for (const cap of config.protocolCaps) {
369
+ if (cap < 0n) {
370
+ throw new RangeError(`each protocolCaps entry must be >= 0; received ${cap}`);
371
+ }
372
+ if (cap > MAX_USD_BASE_UNITS) {
373
+ throw new RangeError(`each protocolCaps entry must be <= u64::MAX; received ${cap}`);
374
+ }
375
+ }
376
+ }
377
+ // `feeDestination` cannot be the system program (Pubkey::default = all-1s
378
+ // base58); the on-chain program rejects it at line 91-93 of
379
+ // initialize_vault.rs with `InvalidFeeDestination`.
380
+ if (config.feeDestination === SYSTEM_PROGRAM_ADDRESS) {
381
+ throw new RangeError(`feeDestination must not be the system program ` +
382
+ `(${SYSTEM_PROGRAM_ADDRESS}); the on-chain program rejects it as ` +
383
+ `InvalidFeeDestination`);
384
+ }
385
+ // Optional numeric overrides — must be non-negative integers. Negatives
386
+ // and NaN both produce silent drift (negative fee in preview but skipped
387
+ // on-chain; non-integer throws deep in BigInt(...)).
388
+ if (config.priorityFeeMicroLamports !== undefined) {
389
+ if (!Number.isInteger(config.priorityFeeMicroLamports) ||
390
+ config.priorityFeeMicroLamports < 0) {
391
+ throw new RangeError(`priorityFeeMicroLamports must be a non-negative integer; received ${config.priorityFeeMicroLamports}`);
392
+ }
393
+ }
394
+ if (config.computeUnits !== undefined) {
395
+ if (!Number.isInteger(config.computeUnits) || config.computeUnits <= 0) {
396
+ throw new RangeError(`computeUnits must be a positive integer; received ${config.computeUnits}`);
397
+ }
398
+ }
399
+ }
400
+ /**
401
+ * Resolve a `NetworkInput` to the `"devnet" | "mainnet"` shape that
402
+ * `createVault` and `buildOwnerTransaction` accept. `validateNetwork` has
403
+ * already gated the input by the time this runs.
404
+ */
405
+ function toBuildNetwork(network) {
406
+ // After validateNetwork, network is one of "devnet", "mainnet", "mainnet-beta".
407
+ // createVault accepts only the short literal; "mainnet-beta" → "mainnet".
408
+ return network === "devnet" ? "devnet" : "mainnet";
409
+ }
410
+ /**
411
+ * Wrap `getMinimumBalanceForRentExemption` with explicit defensive checks.
412
+ * If the RPC returns `0n` or anything non-bigint, we surface a typed
413
+ * `SigilSdkDomainError` instead of producing a preview that lies about
414
+ * cost. Caller errors propagate with cause attached.
415
+ */
416
+ async function fetchRentForSize(rpc, size, pdaName) {
417
+ const rent = await rpc.getMinimumBalanceForRentExemption(BigInt(size)).send();
418
+ if (typeof rent !== "bigint") {
419
+ throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_PARAMS, `getMinimumBalanceForRentExemption returned non-bigint for ${pdaName} (size=${size})`, { context: { field: pdaName, received: typeof rent } });
420
+ }
421
+ // Reject 0n AND negatives. Rent must always be positive — a "free" PDA
422
+ // doesn't exist on Solana, and a negative rent is non-physical and would
423
+ // produce a negative `totalCostUsd` (FE displays "you'll be paid to
424
+ // create this vault"). Both indicate a misbehaving RPC; surface as a
425
+ // typed throw so the caller can retry / switch RPC.
426
+ if (rent <= 0n) {
427
+ throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_PARAMS, `getMinimumBalanceForRentExemption returned ${rent} for ${pdaName} (size=${size}); ` +
428
+ `expected a positive lamport value. RPC may be misconfigured or returning stale data.`, { context: { field: pdaName, received: rent } });
429
+ }
430
+ return rent;
431
+ }
432
+ /**
433
+ * Build the warnings array. Sorted by `code` ascending so the FE's React
434
+ * keys are stable across re-types (no banner flicker). Returns an empty
435
+ * array when nothing fires; the caller converts to `undefined` for the
436
+ * preview shape.
437
+ */
438
+ function buildWarnings(config) {
439
+ const warnings = [];
440
+ if (config.dailyCapUsd === 0n) {
441
+ warnings.push({
442
+ code: "daily_cap_zero",
443
+ severity: "info",
444
+ message: "Daily spending cap is 0. The vault will accept deposits but the " +
445
+ "agent cannot execute any spending action until the cap is raised.",
446
+ field: "dailyCapUsd",
447
+ });
448
+ }
449
+ if (config.dailyCapUsd > DAILY_CAP_HIGH_THRESHOLD) {
450
+ warnings.push({
451
+ code: "daily_cap_unusually_high",
452
+ severity: "warning",
453
+ message: "Daily spending cap exceeds $1,000,000 — confirm this matches the " +
454
+ "intended risk tolerance.",
455
+ field: "dailyCapUsd",
456
+ suggestedValue: DAILY_CAP_HIGH_THRESHOLD,
457
+ });
458
+ }
459
+ if (config.protocolMode === 1 && config.protocols.length === 0) {
460
+ warnings.push({
461
+ code: "no_protocols_approved",
462
+ severity: "warning",
463
+ message: "Protocol mode is ALLOWLIST but no protocols are listed; the agent " +
464
+ "cannot reach any DeFi protocol with this policy.",
465
+ field: "protocols",
466
+ });
467
+ }
468
+ if (config.maxTxSizeUsd > config.dailyCapUsd) {
469
+ warnings.push({
470
+ code: "max_tx_exceeds_daily_cap",
471
+ severity: "warning",
472
+ message: "Max transaction size exceeds daily cap; a single transaction can " +
473
+ "consume the entire 24h budget.",
474
+ field: "maxTxSizeUsd",
475
+ suggestedValue: config.dailyCapUsd,
476
+ });
477
+ }
478
+ // Sort by code ascending so the FE's React keys stay stable.
479
+ warnings.sort((a, b) => (a.code < b.code ? -1 : a.code > b.code ? 1 : 0));
480
+ // Freeze each warning so callers can't mutate after return. The cast
481
+ // preserves the discriminated-union type Object.freeze would erase to
482
+ // `Readonly<PreviewWarning>`.
483
+ return warnings.map((w) => Object.freeze(w));
484
+ }
485
+ /**
486
+ * Decode a base64 string to `Uint8Array`. Uses `atob` (built-in in browser
487
+ * and Node ≥ 16) so the kit stays Node-only-free. Validates input shape
488
+ * defensively — `atob` will throw `InvalidCharacterError` on non-base64.
489
+ */
490
+ function base64ToUint8Array(b64) {
491
+ const binary = atob(b64);
492
+ const bytes = new Uint8Array(binary.length);
493
+ for (let i = 0; i < binary.length; i++) {
494
+ bytes[i] = binary.charCodeAt(i);
495
+ }
496
+ return bytes;
497
+ }
498
+ //# sourceMappingURL=preview-create-vault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-create-vault.js","sourceRoot":"","sources":["../src/preview-create-vault.ts"],"names":[],"mappings":"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"}
@@ -5,35 +5,100 @@
5
5
  * seed encoding. All 9 PDA types are derivable.
6
6
  */
7
7
  import type { Address } from "./kit-adapter.js";
8
- export declare function getVaultPDA(owner: Address, vaultId: bigint, programAddress?: Address): Promise<[Address, number]>;
8
+ /**
9
+ * Minimal shape consumed by {@link getVaultPdaFromState}. The full on-chain
10
+ * `AgentVault` account (see `state/vault.rs`) carries many fields; only the
11
+ * two seed inputs are required to rebuild the PDA, so callers may pass any
12
+ * object that exposes them (typically the result of `fetchAgentVault().data`
13
+ * or a `ResolvedVaultState`).
14
+ */
15
+ export interface VaultPdaSeedSource {
16
+ /**
17
+ * Phase 8 LBL-01 — the IMMUTABLE seed-key written exactly once in
18
+ * `initialize_vault`. Survives ownership transfer; reads cleanly from
19
+ * on-chain `AgentVault.vault_authority`.
20
+ */
21
+ vaultAuthority: Address;
22
+ /** The same `vault_id` (u64) supplied to `initialize_vault`. */
23
+ vaultId: bigint;
24
+ }
25
+ /**
26
+ * Derive the AgentVault PDA from its on-chain seeds.
27
+ *
28
+ * **Important — post Phase 8 LBL-01:** the on-chain seed is
29
+ * `vault.vault_authority`, not the current `vault.owner`. The two are
30
+ * IDENTICAL at `initialize_vault` time (the handler writes
31
+ * `vault.vault_authority = owner.key()`), so at vault creation a caller
32
+ * may legitimately pass the initial owner here. After an
33
+ * `accept_ownership_transfer` the two diverge: `vault.owner` becomes the
34
+ * new owner while `vault.vault_authority` stays pinned to the original
35
+ * owner — and the on-chain PDA address is unchanged.
36
+ *
37
+ * If you are deriving a PDA for a vault that has (or might have) been
38
+ * ownership-transferred, prefer {@link getVaultPdaFromState} which reads
39
+ * `vault_authority` directly from on-chain state. Passing the current
40
+ * `owner` here for a transferred vault produces the WRONG address and
41
+ * silently returns a PDA that does not exist on-chain.
42
+ *
43
+ * @param vaultAuthority — the immutable seed-key. At `initialize_vault`
44
+ * time this is the same as `owner`; thereafter callers must read it
45
+ * from `AgentVault.vault_authority`.
46
+ * @param vaultId — the same `u64` passed to `initialize_vault`.
47
+ * @param programAddress — defaults to the canonical Sigil program id.
48
+ *
49
+ * @deprecated NH-4 close (Bucket 2 re-audit 2026-05-21): the parameter
50
+ * was renamed `owner → vaultAuthority` in 0.16.0 to make the LBL-01
51
+ * contract explicit at the type level. Direct callers that historically
52
+ * passed `vault.owner` will now silently derive the WRONG PDA for any
53
+ * ownership-transferred vault. Use {@link getVaultPdaFromState} which
54
+ * takes a `{ vaultAuthority, vaultId }` shape — the field name forces
55
+ * the caller to read the immutable seed from on-chain state rather
56
+ * than assume `owner == vault_authority`. This function stays for
57
+ * pre-LBL-01 backward compatibility (init-time call sites where the
58
+ * two are equal by construction) and will be removed in v0.18.
59
+ */
60
+ export declare function getVaultPDA(vaultAuthority: Address, vaultId: bigint, programAddress?: Address): Promise<[Address, number]>;
61
+ /**
62
+ * Derive the AgentVault PDA from on-chain state.
63
+ *
64
+ * **Use this AFTER an ownership transfer.** Reads `vault.vault_authority`
65
+ * (the immutable Phase 8 LBL-01 seed-key) instead of the current
66
+ * `vault.owner`, which would resolve to the wrong PDA once
67
+ * `accept_ownership_transfer` has run.
68
+ *
69
+ * Equivalent to calling `getVaultPDA(vault.vaultAuthority, vault.vaultId)`,
70
+ * but the dedicated name documents the intent at the call site.
71
+ */
72
+ export declare function getVaultPdaFromState(vault: VaultPdaSeedSource, programAddress?: Address): Promise<[Address, number]>;
9
73
  export declare function getPolicyPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
10
74
  export declare function getTrackerPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
11
75
  export declare function getSessionPDA(vault: Address, agent: Address, tokenMint: Address, programAddress?: Address): Promise<[Address, number]>;
12
76
  export declare function getPendingPolicyPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
13
- export declare function getEscrowPDA(sourceVault: Address, destinationVault: Address, escrowId: bigint, programAddress?: Address): Promise<[Address, number]>;
14
77
  export declare function getAgentOverlayPDA(vault: Address, shardIndex?: number, programAddress?: Address): Promise<[Address, number]>;
15
- export declare function getConstraintsPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
16
- export declare function getPendingConstraintsPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
17
78
  /**
18
- * Derive PDA for pending CLOSE constraints (queue_close_constraints).
19
- * Seed: "pending_close_constraints" NOT the same as "pending_constraints" (which is for updates).
20
- * See close_vault.rs:127.
79
+ * Phase 7 — derive PDA for `AuditLogSuccess` at `[b"audit_success", vault]`.
80
+ * Allocated at vault creation, written by every mutating instruction that
81
+ * lands on the success path. Closed at `close_vault`.
82
+ */
83
+ export declare function getAuditLogSuccessPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
84
+ /**
85
+ * Phase 7 — derive PDA for `AuditLogRejected` at `[b"audit_rejected", vault]`.
86
+ * Audit #2 F-19 split: keeps rejected-finalize bursts out of the success
87
+ * buffer's blast radius.
21
88
  */
22
- export declare function getPendingCloseConstraintsPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
89
+ export declare function getAuditLogRejectedPDA(vault: Address, programAddress?: Address): Promise<[Address, number]>;
23
90
  export interface ResolveAccountsInput {
24
91
  vault: Address;
25
92
  agent: Address;
26
93
  tokenMint: Address;
27
94
  outputMint?: Address;
28
95
  feeDestination?: Address;
29
- hasConstraints?: boolean;
30
96
  }
31
97
  export interface ResolvedAccounts {
32
98
  vault: Address;
33
99
  policyPda: Address;
34
100
  trackerPda: Address;
35
101
  sessionPda: Address;
36
- constraintsPda?: Address;
37
102
  agentOverlayPda?: Address;
38
103
  }
39
104
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-accounts.d.ts","sourceRoot":"","sources":["../src/resolve-accounts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,kBAAkB,CAAC;AA8BpE,wBAAsB,WAAW,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,OAAO,EAClB,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAW5B;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED,wBAAsB,YAAY,CAChC,WAAW,EAAE,OAAO,EACpB,gBAAgB,EAAE,OAAO,EACzB,QAAQ,EAAE,MAAM,EAChB,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAW5B;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,OAAO,EACd,UAAU,GAAE,MAAU,EACtB,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAID,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,EAC3B,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,gBAAgB,CAAC,CA0B3B"}
1
+ {"version":3,"file":"resolve-accounts.d.ts","sourceRoot":"","sources":["../src/resolve-accounts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,kBAAkB,CAAC;AAIpE;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;CACjB;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,WAAW,CAC/B,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAU5B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,kBAAkB,EACzB,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAE5B;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,OAAO,EAClB,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAW5B;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAID,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,OAAO,EACd,UAAU,GAAE,MAAU,EACtB,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,OAAO,EACd,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAM5B;AAID,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,EAC3B,cAAc,GAAE,OAA+B,GAC9C,OAAO,CAAC,gBAAgB,CAAC,CAkB3B"}