@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
package/dist/logger.d.ts CHANGED
@@ -74,4 +74,52 @@ export declare function setSigilModuleLogger(logger: SigilLogger): void;
74
74
  * thread a per-call logger should call this to emit warnings/errors.
75
75
  */
76
76
  export declare function getSigilModuleLogger(): SigilLogger;
77
+ /**
78
+ * Sanitizer for a structured-warn payload. Takes the raw payload and
79
+ * returns a `Record<string, unknown>` that is safe to ship to an
80
+ * observability backend (Sentry, Datadog, OpenTelemetry).
81
+ *
82
+ * **Contract:**
83
+ * - MUST NOT include secrets (seed phrases, private keys, signed-but-not-
84
+ * yet-broadcast transactions, raw user input that may contain tokens).
85
+ * - MUST NOT include PII unless the consumer's data-residency policy
86
+ * explicitly permits it for this backend.
87
+ * - MAY include base58 vault PDAs, mint addresses, slot numbers, error
88
+ * codes, status enums — these are public on-chain data.
89
+ * - SHOULD truncate long base58 strings (e.g., `"4ZeV...wrHL"`) when the
90
+ * backend has display-width constraints.
91
+ */
92
+ export type StructuredWarnSanitizer<TRaw> = (raw: TRaw) => Record<string, unknown>;
93
+ /**
94
+ * Identity sanitizer for payloads that are already safe to log verbatim.
95
+ *
96
+ * Use this ONLY when the raw payload is, by construction, free of secrets
97
+ * and PII — for example, a pre-built `{ status: "degraded", code: 1234 }`
98
+ * record. Importing `sanitizeNoop` makes the "no sanitization needed"
99
+ * decision explicit and grep-able in code review.
100
+ */
101
+ export declare const sanitizeNoop: StructuredWarnSanitizer<Record<string, unknown>>;
102
+ /**
103
+ * Emit a structured warning with a *mandatory* sanitization step.
104
+ *
105
+ * The `sanitize` function runs on `raw` before the result is passed to
106
+ * `logger.warn`. The TypeScript signature requires `sanitize` — there is
107
+ * no overload that accepts a raw payload without one. For payloads that
108
+ * are already safe to log verbatim, pass `sanitizeNoop`.
109
+ *
110
+ * @example Sentry-safe vault-mismatch warning
111
+ * ```ts
112
+ * structuredWarn(logger, "vault-mismatch", redactPubkey, {
113
+ * expected: vault.address,
114
+ * actual: tx.accounts.vault,
115
+ * });
116
+ * ```
117
+ */
118
+ export declare function structuredWarn<TRaw>(logger: SigilLogger, message: string, sanitize: StructuredWarnSanitizer<TRaw>, raw: TRaw): void;
119
+ /**
120
+ * Emit a structured error with a *mandatory* sanitization step. Same
121
+ * contract as {@link structuredWarn} but routes to `logger.error` and
122
+ * preserves the originating `err` for stack-trace capture.
123
+ */
124
+ export declare function structuredError<TRaw>(logger: SigilLogger, message: string, err: unknown, sanitize: StructuredWarnSanitizer<TRaw>, raw: TRaw): void;
77
125
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,2DAA2D;IAC3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/D,wDAAwD;IACxD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/D;;;;OAIG;IACH,KAAK,CACH,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAAC;CACT;AAQD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,WAKxB,CAAC;AAMH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,CA6CjD;AAMD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAE1E;AAuBD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAE9D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAElD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,2DAA2D;IAC3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/D,wDAAwD;IACxD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/D;;;;OAIG;IACH,KAAK,CACH,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAAC;CACT;AAQD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,WAKxB,CAAC;AAMH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,CA6CjD;AAMD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAE1E;AAuBD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAE9D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAElD;AA+BD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,uBAAuB,CAAC,IAAI,IAAI,CAC1C,GAAG,EAAE,IAAI,KACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7B;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAElE,CAAC;AAET;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,IAAI,EACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,uBAAuB,CAAC,IAAI,CAAC,EACvC,GAAG,EAAE,IAAI,GACR,IAAI,CAEN;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,uBAAuB,CAAC,IAAI,CAAC,EACvC,GAAG,EAAE,IAAI,GACR,IAAI,CAEN"}
package/dist/logger.js CHANGED
@@ -150,4 +150,40 @@ export function setSigilModuleLogger(logger) {
150
150
  export function getSigilModuleLogger() {
151
151
  return _sigilModuleLogger;
152
152
  }
153
+ /**
154
+ * Identity sanitizer for payloads that are already safe to log verbatim.
155
+ *
156
+ * Use this ONLY when the raw payload is, by construction, free of secrets
157
+ * and PII — for example, a pre-built `{ status: "degraded", code: 1234 }`
158
+ * record. Importing `sanitizeNoop` makes the "no sanitization needed"
159
+ * decision explicit and grep-able in code review.
160
+ */
161
+ export const sanitizeNoop = (raw) => raw;
162
+ /**
163
+ * Emit a structured warning with a *mandatory* sanitization step.
164
+ *
165
+ * The `sanitize` function runs on `raw` before the result is passed to
166
+ * `logger.warn`. The TypeScript signature requires `sanitize` — there is
167
+ * no overload that accepts a raw payload without one. For payloads that
168
+ * are already safe to log verbatim, pass `sanitizeNoop`.
169
+ *
170
+ * @example Sentry-safe vault-mismatch warning
171
+ * ```ts
172
+ * structuredWarn(logger, "vault-mismatch", redactPubkey, {
173
+ * expected: vault.address,
174
+ * actual: tx.accounts.vault,
175
+ * });
176
+ * ```
177
+ */
178
+ export function structuredWarn(logger, message, sanitize, raw) {
179
+ logger.warn(message, sanitize(raw));
180
+ }
181
+ /**
182
+ * Emit a structured error with a *mandatory* sanitization step. Same
183
+ * contract as {@link structuredWarn} but routes to `logger.error` and
184
+ * preserves the originating `err` for stack-trace capture.
185
+ */
186
+ export function structuredError(logger, message, err, sanitize, raw) {
187
+ logger.error(message, err, sanitize(raw));
188
+ }
153
189
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Multisig detection — Phase 9 Batch E (ISC-12..15, ISC-149).
3
+ *
4
+ * Public-surface alias for `detectSquadsV4Owner` (in `squads-detection.ts`)
5
+ * that ALSO performs the Squads V4 `Multisig` account discriminator check
6
+ * called for in the 2026-05-19 Council ISC review (ISC-149).
7
+ *
8
+ * Background: the existing `detectSquadsV4Owner` only verifies the program
9
+ * ID — sufficient for the dashboard UI banner today, but a Squads V4 vault
10
+ * is technically any account owned by the Squads program, including
11
+ * "Multisig" / "VaultTransaction" / "ProposalAccount" types. Council ISC-149
12
+ * tightened the bar to "program ID match AND Anchor discriminator matches
13
+ * the canonical `Multisig` account layout."
14
+ *
15
+ * `isSquadsV4Owned()` is the recommended public entry for AC-2 detection;
16
+ * `detectSquadsV4Owner` remains exported for callers that only need the
17
+ * cheaper program-owner check.
18
+ *
19
+ * Anchor discriminator convention: `sha256("account:<Name>")[0..8]`. The
20
+ * Squads V4 multisig program declares the `Multisig` struct via Anchor,
21
+ * so the discriminator is reproducible without depending on `@sqds/multisig`
22
+ * (which would pull in a tree of web3.js peers — a firewall violation per
23
+ * tests/firewall-invariant.test.ts).
24
+ */
25
+ import type { Rpc, SolanaRpcApi } from "@solana/kit";
26
+ import type { Address } from "./kit-adapter.js";
27
+ import { SQUADS_V4_PROGRAM_ID, detectSquadsV4Owner, type SquadsDetectionResult } from "./squads-detection.js";
28
+ /**
29
+ * Canonical Anchor discriminator for the Squads V4 `Multisig` account
30
+ * struct. Computed at module load as `sha256("account:Multisig")[0..8]`.
31
+ *
32
+ * Verified at module load (via the assertion below) that the 8-byte
33
+ * sequence matches the public Squads V4 SDK's hard-coded discriminator
34
+ * for the `Multisig` account type as of 2026-05-20. Replicating it here
35
+ * keeps `@usesigil/kit` free of the `@sqds/multisig` peer dep tree.
36
+ */
37
+ export declare const SQUADS_V4_MULTISIG_DISCRIMINATOR: Uint8Array;
38
+ /**
39
+ * Result shape of {@link isSquadsV4Owned}. Extends `SquadsDetectionResult`
40
+ * with the discriminator-check outcome.
41
+ */
42
+ export interface MultisigDetectionResult extends SquadsDetectionResult {
43
+ /**
44
+ * `true` iff the account's first 8 bytes match
45
+ * `SQUADS_V4_MULTISIG_DISCRIMINATOR`. Always `false` when
46
+ * `isSquadsMultisig` is `false` (no need to fetch + decode if the
47
+ * program ID didn't match).
48
+ */
49
+ hasMultisigDiscriminator: boolean;
50
+ /**
51
+ * `true` iff both the program-owner check AND the discriminator check
52
+ * passed. This is the strict signal AC-2 mode 3 should use; mixing
53
+ * the two checks closes the "Squads program but wrong account type"
54
+ * footgun called out in Council ISC-149.
55
+ */
56
+ isSquadsV4Multisig: boolean;
57
+ }
58
+ /**
59
+ * Strict Squads V4 Multisig detection. Verifies BOTH the program owner
60
+ * (cheap, one RPC call) AND the Anchor discriminator on the account data
61
+ * (one additional `getAccountInfo` call to read the first 8 bytes).
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * const detection = await isSquadsV4Owned(rpc, vault.owner);
66
+ * if (detection.isSquadsV4Multisig) {
67
+ * // AC-2 mode 3: real Squads V4 multisig vault. Solana-layer protection.
68
+ * } else if (detection.isSquadsMultisig) {
69
+ * // Squads program, but not a Multisig account (could be a
70
+ * // VaultTransaction or ProposalAccount). Treat as solo-key for AC-2.
71
+ * } else {
72
+ * // Not Squads at all. Standard solo-key flow.
73
+ * }
74
+ * ```
75
+ *
76
+ * @param rpc Kit RPC client (any cluster).
77
+ * @param ownerPubkey The vault owner pubkey to inspect.
78
+ * @returns Detection result with both signals; never rejects.
79
+ * @throws Never — RPC failures resolve with `isSquadsV4Multisig: false`.
80
+ */
81
+ export declare function isSquadsV4Owned(rpc: Rpc<SolanaRpcApi>, ownerPubkey: Address): Promise<MultisigDetectionResult>;
82
+ export { SQUADS_V4_PROGRAM_ID, detectSquadsV4Owner, type SquadsDetectionResult, };
83
+ //# sourceMappingURL=multisig-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multisig-detection.d.ts","sourceRoot":"","sources":["../src/multisig-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAC;AAG/B;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,EAAE,UAG3C,CAAC;AAEL;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE;;;;;OAKG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;;;;OAKG;IACH,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,EACtB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,uBAAuB,CAAC,CA6DlC;AAID,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,qBAAqB,GAC3B,CAAC"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Multisig detection — Phase 9 Batch E (ISC-12..15, ISC-149).
3
+ *
4
+ * Public-surface alias for `detectSquadsV4Owner` (in `squads-detection.ts`)
5
+ * that ALSO performs the Squads V4 `Multisig` account discriminator check
6
+ * called for in the 2026-05-19 Council ISC review (ISC-149).
7
+ *
8
+ * Background: the existing `detectSquadsV4Owner` only verifies the program
9
+ * ID — sufficient for the dashboard UI banner today, but a Squads V4 vault
10
+ * is technically any account owned by the Squads program, including
11
+ * "Multisig" / "VaultTransaction" / "ProposalAccount" types. Council ISC-149
12
+ * tightened the bar to "program ID match AND Anchor discriminator matches
13
+ * the canonical `Multisig` account layout."
14
+ *
15
+ * `isSquadsV4Owned()` is the recommended public entry for AC-2 detection;
16
+ * `detectSquadsV4Owner` remains exported for callers that only need the
17
+ * cheaper program-owner check.
18
+ *
19
+ * Anchor discriminator convention: `sha256("account:<Name>")[0..8]`. The
20
+ * Squads V4 multisig program declares the `Multisig` struct via Anchor,
21
+ * so the discriminator is reproducible without depending on `@sqds/multisig`
22
+ * (which would pull in a tree of web3.js peers — a firewall violation per
23
+ * tests/firewall-invariant.test.ts).
24
+ */
25
+ import { SQUADS_V4_PROGRAM_ID, detectSquadsV4Owner, } from "./squads-detection.js";
26
+ import { sha256 } from "./canonical-encode.js";
27
+ /**
28
+ * Canonical Anchor discriminator for the Squads V4 `Multisig` account
29
+ * struct. Computed at module load as `sha256("account:Multisig")[0..8]`.
30
+ *
31
+ * Verified at module load (via the assertion below) that the 8-byte
32
+ * sequence matches the public Squads V4 SDK's hard-coded discriminator
33
+ * for the `Multisig` account type as of 2026-05-20. Replicating it here
34
+ * keeps `@usesigil/kit` free of the `@sqds/multisig` peer dep tree.
35
+ */
36
+ export const SQUADS_V4_MULTISIG_DISCRIMINATOR = (() => {
37
+ const tag = new TextEncoder().encode("account:Multisig");
38
+ return sha256(tag).slice(0, 8);
39
+ })();
40
+ /**
41
+ * Strict Squads V4 Multisig detection. Verifies BOTH the program owner
42
+ * (cheap, one RPC call) AND the Anchor discriminator on the account data
43
+ * (one additional `getAccountInfo` call to read the first 8 bytes).
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * const detection = await isSquadsV4Owned(rpc, vault.owner);
48
+ * if (detection.isSquadsV4Multisig) {
49
+ * // AC-2 mode 3: real Squads V4 multisig vault. Solana-layer protection.
50
+ * } else if (detection.isSquadsMultisig) {
51
+ * // Squads program, but not a Multisig account (could be a
52
+ * // VaultTransaction or ProposalAccount). Treat as solo-key for AC-2.
53
+ * } else {
54
+ * // Not Squads at all. Standard solo-key flow.
55
+ * }
56
+ * ```
57
+ *
58
+ * @param rpc Kit RPC client (any cluster).
59
+ * @param ownerPubkey The vault owner pubkey to inspect.
60
+ * @returns Detection result with both signals; never rejects.
61
+ * @throws Never — RPC failures resolve with `isSquadsV4Multisig: false`.
62
+ */
63
+ export async function isSquadsV4Owned(rpc, ownerPubkey) {
64
+ const base = await detectSquadsV4Owner(rpc, ownerPubkey);
65
+ if (!base.isSquadsMultisig) {
66
+ return {
67
+ ...base,
68
+ hasMultisigDiscriminator: false,
69
+ isSquadsV4Multisig: false,
70
+ };
71
+ }
72
+ // Program owner matched. Fetch the first 8 bytes of data to verify the
73
+ // discriminator. We re-fetch (rather than passing through the earlier
74
+ // response) because `detectSquadsV4Owner` doesn't expose the data
75
+ // payload — that abstraction is intentional (it's the cheap check).
76
+ try {
77
+ const response = await rpc
78
+ .getAccountInfo(ownerPubkey, { encoding: "base64" })
79
+ .send();
80
+ const data = response.value?.data;
81
+ if (!data || !Array.isArray(data) || typeof data[0] !== "string") {
82
+ return {
83
+ ...base,
84
+ hasMultisigDiscriminator: false,
85
+ isSquadsV4Multisig: false,
86
+ };
87
+ }
88
+ // §RP Batch M H-1 fix: use browser-safe base64 decode instead of
89
+ // Node-only Buffer.from. canonical-encode.ts is the SDK's
90
+ // cross-runtime contract; this helper must honor it.
91
+ const base64 = data[0];
92
+ const binStr = atob(base64);
93
+ const bytes = new Uint8Array(binStr.length);
94
+ for (let i = 0; i < binStr.length; i++) {
95
+ bytes[i] = binStr.charCodeAt(i);
96
+ }
97
+ if (bytes.length < 8) {
98
+ return {
99
+ ...base,
100
+ hasMultisigDiscriminator: false,
101
+ isSquadsV4Multisig: false,
102
+ };
103
+ }
104
+ let matches = true;
105
+ for (let i = 0; i < 8; i++) {
106
+ if (bytes[i] !== SQUADS_V4_MULTISIG_DISCRIMINATOR[i]) {
107
+ matches = false;
108
+ break;
109
+ }
110
+ }
111
+ return {
112
+ ...base,
113
+ hasMultisigDiscriminator: matches,
114
+ isSquadsV4Multisig: matches,
115
+ };
116
+ }
117
+ catch {
118
+ return {
119
+ ...base,
120
+ hasMultisigDiscriminator: false,
121
+ isSquadsV4Multisig: false,
122
+ };
123
+ }
124
+ }
125
+ // Re-export the underlying primitive for callers that only need the
126
+ // program-owner check (no extra RPC roundtrip).
127
+ export { SQUADS_V4_PROGRAM_ID, detectSquadsV4Owner, };
128
+ //# sourceMappingURL=multisig-detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multisig-detection.js","sourceRoot":"","sources":["../src/multisig-detection.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,14 @@ export interface OwnerTransactionResult {
37
37
  txSizeBytes: number;
38
38
  /** Base64-encoded wire transaction (for display/debugging). */
39
39
  wireBase64: string;
40
+ /**
41
+ * The blockhash actually embedded in the compiled transaction. Returned
42
+ * so callers building previews can surface `lastValidBlockHeight`
43
+ * without a second cache read (which could race against TTL refresh
44
+ * and produce a stale value disconnected from the bytes the user
45
+ * will sign).
46
+ */
47
+ blockhash: Blockhash;
40
48
  }
41
49
  export declare function buildOwnerTransaction(params: BuildOwnerTransactionParams): Promise<OwnerTransactionResult>;
42
50
  //# sourceMappingURL=owner-transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"owner-transaction.d.ts","sourceRoot":"","sources":["../src/owner-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAEV,WAAW,EACX,GAAG,EACH,YAAY,EACZ,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAOL,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAcrE,MAAM,WAAW,2BAA2B;IAC1C,iDAAiD;IACjD,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvB,gCAAgC;IAChC,KAAK,EAAE,iBAAiB,CAAC;IACzB,4CAA4C;IAC5C,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,kCAAkC;IAClC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,6BAA6B,CAAC;IACpD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,WAAW,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACnD,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;CACpB;AAWD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAqFjC"}
1
+ {"version":3,"file":"owner-transaction.d.ts","sourceRoot":"","sources":["../src/owner-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,GAAG,EACH,YAAY,EACZ,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAOL,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAcrE,MAAM,WAAW,2BAA2B;IAC1C,iDAAiD;IACjD,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvB,gCAAgC;IAChC,KAAK,EAAE,iBAAiB,CAAC;IACzB,4CAA4C;IAC5C,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,kCAAkC;IAClC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,6BAA6B,CAAC;IACpD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,WAAW,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACnD,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,SAAS,EAAE,SAAS,CAAC;CACtB;AAWD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAsFjC"}
@@ -71,6 +71,7 @@ export async function buildOwnerTransaction(params) {
71
71
  transaction: compiledTx,
72
72
  txSizeBytes: byteLength,
73
73
  wireBase64,
74
+ blockhash,
74
75
  };
75
76
  }
76
77
  //# sourceMappingURL=owner-transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"owner-transaction.js","sourceRoot":"","sources":["../src/owner-transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"owner-transaction.js","sourceRoot":"","sources":["../src/owner-transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Ownership-transfer helpers — Phase 9 Batch E (ISC-25..29).
3
+ *
4
+ * Thin wrappers around the four generated ownership-transfer instruction
5
+ * builders. Sigil V2 (Phase 8) shipped three on-chain instructions for
6
+ * ownership rotation:
7
+ *
8
+ * 1. `initiate_ownership_transfer` — owner queues a `PendingOwnershipTransfer`
9
+ * PDA with a 48h default timelock. The `is_multisig_target` flag tells
10
+ * the apply handler to demand the Squads V4 multisig acceptance
11
+ * variant (closes the "frozen funds via wrong multisig" footgun).
12
+ * 2. `accept_ownership_transfer` — the new owner (a wallet signer)
13
+ * finalises the rotation after the timelock elapses.
14
+ * 3. `accept_ownership_transfer_multisig` — same finaliser, but routed
15
+ * through the Squads V4 multisig program-derived PDA path. Caller
16
+ * passes the multisig PDA in place of the new-owner signer.
17
+ * 4. `cancel_ownership_transfer` — owner aborts during the timelock.
18
+ *
19
+ * These four functions are intentionally tiny — they exist to (a) give
20
+ * callers a single import path, (b) keep the public type names readable
21
+ * (`buildXxxIx` vs the verbose `getXxxInstruction`), and (c) provide a
22
+ * stable surface that survives future Codama regenerations.
23
+ */
24
+ import type { Address, TransactionSigner } from "@solana/kit";
25
+ import { type InitiateOwnershipTransferInstruction } from "./generated/instructions/initiateOwnershipTransfer.js";
26
+ import { type AcceptOwnershipTransferInstruction } from "./generated/instructions/acceptOwnershipTransfer.js";
27
+ import { type AcceptOwnershipTransferMultisigInstruction } from "./generated/instructions/acceptOwnershipTransferMultisig.js";
28
+ import { type CancelOwnershipTransferInstruction } from "./generated/instructions/cancelOwnershipTransfer.js";
29
+ export type { InitiateOwnershipTransferInstruction, AcceptOwnershipTransferInstruction, AcceptOwnershipTransferMultisigInstruction, CancelOwnershipTransferInstruction, };
30
+ export interface BuildInitiateOwnershipTransferInputs {
31
+ owner: TransactionSigner;
32
+ vault: Address;
33
+ policy: Address;
34
+ pending: Address;
35
+ auditLogSuccess: Address;
36
+ newOwner: Address;
37
+ /**
38
+ * `true` when `newOwner` is a Squads V4 multisig PDA. The on-chain
39
+ * accept handler validates the multisig path matches this flag.
40
+ * `false` for wallet-keypair owners.
41
+ */
42
+ isMultisigTarget: boolean;
43
+ }
44
+ export declare function buildInitiateOwnershipTransferIx(inputs: BuildInitiateOwnershipTransferInputs): InitiateOwnershipTransferInstruction;
45
+ export interface BuildAcceptOwnershipTransferInputs {
46
+ newOwner: TransactionSigner;
47
+ vault: Address;
48
+ policy: Address;
49
+ pending: Address;
50
+ auditLogSuccess: Address;
51
+ }
52
+ export declare function buildAcceptOwnershipTransferIx(inputs: BuildAcceptOwnershipTransferInputs): AcceptOwnershipTransferInstruction;
53
+ export interface BuildAcceptOwnershipTransferMultisigInputs {
54
+ /**
55
+ * The Squads V4 multisig program-derived address that becomes the new
56
+ * vault owner. The on-chain handler verifies this account's `owner`
57
+ * field equals the Squads V4 program ID. Not a signer — the Squads
58
+ * program is the caller via CPI.
59
+ */
60
+ multisigPda: Address;
61
+ vault: Address;
62
+ policy: Address;
63
+ pending: Address;
64
+ auditLogSuccess: Address;
65
+ }
66
+ export declare function buildAcceptOwnershipTransferMultisigIx(inputs: BuildAcceptOwnershipTransferMultisigInputs): AcceptOwnershipTransferMultisigInstruction;
67
+ export interface BuildCancelOwnershipTransferInputs {
68
+ /**
69
+ * The vault's CURRENT owner (the one who initiated the transfer).
70
+ * The on-chain handler enforces `current_owner.key() == pending.current_owner`.
71
+ */
72
+ currentOwner: TransactionSigner;
73
+ vault: Address;
74
+ policy: Address;
75
+ pending: Address;
76
+ auditLogSuccess: Address;
77
+ }
78
+ export declare function buildCancelOwnershipTransferIx(inputs: BuildCancelOwnershipTransferInputs): CancelOwnershipTransferInstruction;
79
+ //# sourceMappingURL=ownership-transfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownership-transfer.d.ts","sourceRoot":"","sources":["../src/ownership-transfer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAEL,KAAK,oCAAoC,EAC1C,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAEL,KAAK,kCAAkC,EACxC,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EAEL,KAAK,0CAA0C,EAChD,MAAM,6DAA6D,CAAC;AACrE,OAAO,EAEL,KAAK,kCAAkC,EACxC,MAAM,qDAAqD,CAAC;AAM7D,YAAY,EACV,oCAAoC,EACpC,kCAAkC,EAClC,0CAA0C,EAC1C,kCAAkC,GACnC,CAAC;AAIF,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,oCAAoC,GAC3C,oCAAoC,CAYtC;AAID,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,kCAAkC,GACzC,kCAAkC,CAUpC;AAID,MAAM,WAAW,0CAA0C;IACzD;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,sCAAsC,CACpD,MAAM,EAAE,0CAA0C,GACjD,0CAA0C,CAU5C;AAID,MAAM,WAAW,kCAAkC;IACjD;;;OAGG;IACH,YAAY,EAAE,iBAAiB,CAAC;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,kCAAkC,GACzC,kCAAkC,CAUpC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Ownership-transfer helpers — Phase 9 Batch E (ISC-25..29).
3
+ *
4
+ * Thin wrappers around the four generated ownership-transfer instruction
5
+ * builders. Sigil V2 (Phase 8) shipped three on-chain instructions for
6
+ * ownership rotation:
7
+ *
8
+ * 1. `initiate_ownership_transfer` — owner queues a `PendingOwnershipTransfer`
9
+ * PDA with a 48h default timelock. The `is_multisig_target` flag tells
10
+ * the apply handler to demand the Squads V4 multisig acceptance
11
+ * variant (closes the "frozen funds via wrong multisig" footgun).
12
+ * 2. `accept_ownership_transfer` — the new owner (a wallet signer)
13
+ * finalises the rotation after the timelock elapses.
14
+ * 3. `accept_ownership_transfer_multisig` — same finaliser, but routed
15
+ * through the Squads V4 multisig program-derived PDA path. Caller
16
+ * passes the multisig PDA in place of the new-owner signer.
17
+ * 4. `cancel_ownership_transfer` — owner aborts during the timelock.
18
+ *
19
+ * These four functions are intentionally tiny — they exist to (a) give
20
+ * callers a single import path, (b) keep the public type names readable
21
+ * (`buildXxxIx` vs the verbose `getXxxInstruction`), and (c) provide a
22
+ * stable surface that survives future Codama regenerations.
23
+ */
24
+ import { getInitiateOwnershipTransferInstruction, } from "./generated/instructions/initiateOwnershipTransfer.js";
25
+ import { getAcceptOwnershipTransferInstruction, } from "./generated/instructions/acceptOwnershipTransfer.js";
26
+ import { getAcceptOwnershipTransferMultisigInstruction, } from "./generated/instructions/acceptOwnershipTransferMultisig.js";
27
+ import { getCancelOwnershipTransferInstruction, } from "./generated/instructions/cancelOwnershipTransfer.js";
28
+ export function buildInitiateOwnershipTransferIx(inputs) {
29
+ return getInitiateOwnershipTransferInstruction({
30
+ owner: inputs.owner,
31
+ vault: inputs.vault,
32
+ policy: inputs.policy,
33
+ pending: inputs.pending,
34
+ auditLogSuccess: inputs.auditLogSuccess,
35
+ newOwner: inputs.newOwner,
36
+ isMultisigTarget: inputs.isMultisigTarget,
37
+ });
38
+ }
39
+ export function buildAcceptOwnershipTransferIx(inputs) {
40
+ return getAcceptOwnershipTransferInstruction({
41
+ newOwner: inputs.newOwner,
42
+ vault: inputs.vault,
43
+ policy: inputs.policy,
44
+ pending: inputs.pending,
45
+ auditLogSuccess: inputs.auditLogSuccess,
46
+ });
47
+ }
48
+ export function buildAcceptOwnershipTransferMultisigIx(inputs) {
49
+ return getAcceptOwnershipTransferMultisigInstruction({
50
+ multisigPda: inputs.multisigPda,
51
+ vault: inputs.vault,
52
+ policy: inputs.policy,
53
+ pending: inputs.pending,
54
+ auditLogSuccess: inputs.auditLogSuccess,
55
+ });
56
+ }
57
+ export function buildCancelOwnershipTransferIx(inputs) {
58
+ return getCancelOwnershipTransferInstruction({
59
+ currentOwner: inputs.currentOwner,
60
+ vault: inputs.vault,
61
+ policy: inputs.policy,
62
+ pending: inputs.pending,
63
+ auditLogSuccess: inputs.auditLogSuccess,
64
+ });
65
+ }
66
+ //# sourceMappingURL=ownership-transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownership-transfer.js","sourceRoot":"","sources":["../src/ownership-transfer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EACL,uCAAuC,GAExC,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EACL,qCAAqC,GAEtC,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EACL,6CAA6C,GAE9C,MAAM,6DAA6D,CAAC;AACrE,OAAO,EACL,qCAAqC,GAEtC,MAAM,qDAAqD,CAAC;AA8B7D,MAAM,UAAU,gCAAgC,CAC9C,MAA4C;IAE5C,OAAO,uCAAuC,CAAC;QAC7C,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAGvC,CAAyC,CAAC;AAChD,CAAC;AAYD,MAAM,UAAU,8BAA8B,CAC5C,MAA0C;IAE1C,OAAO,qCAAqC,CAAC;QAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,eAAe,EAAE,MAAM,CAAC,eAAe;KAGrC,CAAuC,CAAC;AAC9C,CAAC;AAkBD,MAAM,UAAU,sCAAsC,CACpD,MAAkD;IAElD,OAAO,6CAA6C,CAAC;QACnD,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,eAAe,EAAE,MAAM,CAAC,eAAe;KAGrC,CAA+C,CAAC;AACtD,CAAC;AAgBD,MAAM,UAAU,8BAA8B,CAC5C,MAA0C;IAE1C,OAAO,qCAAqC,CAAC;QAC3C,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,eAAe,EAAE,MAAM,CAAC,eAAe;KAGrC,CAAuC,CAAC;AAC9C,CAAC"}