@openzeppelin/miden-multisig-client 0.13.1 → 0.13.2

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 (275) hide show
  1. package/README.md +98 -119
  2. package/dist/account/builder.d.ts +18 -0
  3. package/dist/account/builder.d.ts.map +1 -1
  4. package/dist/account/builder.js +59 -29
  5. package/dist/account/builder.js.map +1 -1
  6. package/dist/account/builder.test.js +108 -32
  7. package/dist/account/builder.test.js.map +1 -1
  8. package/dist/account/index.d.ts +1 -1
  9. package/dist/account/index.d.ts.map +1 -1
  10. package/dist/account/index.js +1 -1
  11. package/dist/account/index.js.map +1 -1
  12. package/dist/account/masm/account-components/auth.d.ts +5 -0
  13. package/dist/account/masm/account-components/auth.d.ts.map +1 -0
  14. package/dist/account/masm/account-components/auth.js +67 -0
  15. package/dist/account/masm/account-components/auth.js.map +1 -0
  16. package/dist/account/masm/auth.d.ts +5 -0
  17. package/dist/account/masm/auth.d.ts.map +1 -0
  18. package/dist/account/masm/auth.js +1395 -0
  19. package/dist/account/masm/auth.js.map +1 -0
  20. package/dist/account/masm/index.d.ts +3 -0
  21. package/dist/account/masm/index.d.ts.map +1 -0
  22. package/dist/account/masm/index.js +5 -0
  23. package/dist/account/masm/index.js.map +1 -0
  24. package/dist/account/masm.d.ts +1 -4
  25. package/dist/account/masm.d.ts.map +1 -1
  26. package/dist/account/masm.js +3 -1034
  27. package/dist/account/masm.js.map +1 -1
  28. package/dist/account/storage.d.ts +2 -2
  29. package/dist/account/storage.d.ts.map +1 -1
  30. package/dist/account/storage.js +18 -16
  31. package/dist/account/storage.js.map +1 -1
  32. package/dist/client.d.ts +67 -9
  33. package/dist/client.d.ts.map +1 -1
  34. package/dist/client.js +73 -22
  35. package/dist/client.js.map +1 -1
  36. package/dist/client.test.js +31 -32
  37. package/dist/client.test.js.map +1 -1
  38. package/dist/index.d.ts +54 -12
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +53 -9
  41. package/dist/index.js.map +1 -1
  42. package/dist/inspector.d.ts +32 -6
  43. package/dist/inspector.d.ts.map +1 -1
  44. package/dist/inspector.js +58 -23
  45. package/dist/inspector.js.map +1 -1
  46. package/dist/inspector.test.js +18 -18
  47. package/dist/inspector.test.js.map +1 -1
  48. package/dist/multisig/proposal/execution.d.ts +4 -4
  49. package/dist/multisig/proposal/execution.d.ts.map +1 -1
  50. package/dist/multisig/proposal/execution.js +42 -31
  51. package/dist/multisig/proposal/execution.js.map +1 -1
  52. package/dist/multisig/proposal/parser.d.ts +3 -3
  53. package/dist/multisig/proposal/parser.d.ts.map +1 -1
  54. package/dist/multisig/proposal/parser.js +23 -23
  55. package/dist/multisig/proposal/parser.js.map +1 -1
  56. package/dist/multisig/signing.d.ts +3 -3
  57. package/dist/multisig/signing.d.ts.map +1 -1
  58. package/dist/multisig/signing.js +3 -3
  59. package/dist/multisig/signing.js.map +1 -1
  60. package/dist/multisig.d.ts +188 -48
  61. package/dist/multisig.d.ts.map +1 -1
  62. package/dist/multisig.js +650 -308
  63. package/dist/multisig.js.map +1 -1
  64. package/dist/multisig.test.js +1680 -241
  65. package/dist/multisig.test.js.map +1 -1
  66. package/dist/procedures.d.ts +46 -24
  67. package/dist/procedures.d.ts.map +1 -1
  68. package/dist/procedures.js +46 -21
  69. package/dist/procedures.js.map +1 -1
  70. package/dist/proposal/factory.d.ts +18 -0
  71. package/dist/proposal/factory.d.ts.map +1 -0
  72. package/dist/proposal/factory.js +99 -0
  73. package/dist/proposal/factory.js.map +1 -0
  74. package/dist/proposal/metadata.d.ts +5 -12
  75. package/dist/proposal/metadata.d.ts.map +1 -1
  76. package/dist/proposal/metadata.js +118 -174
  77. package/dist/proposal/metadata.js.map +1 -1
  78. package/dist/proposal/signatures.d.ts +10 -0
  79. package/dist/proposal/signatures.d.ts.map +1 -0
  80. package/dist/proposal/signatures.js +54 -0
  81. package/dist/proposal/signatures.js.map +1 -0
  82. package/dist/signer.d.ts +2 -0
  83. package/dist/signer.d.ts.map +1 -1
  84. package/dist/signer.js +2 -0
  85. package/dist/signer.js.map +1 -1
  86. package/dist/signers/ecdsa.d.ts +3 -0
  87. package/dist/signers/ecdsa.d.ts.map +1 -1
  88. package/dist/signers/ecdsa.js +8 -4
  89. package/dist/signers/ecdsa.js.map +1 -1
  90. package/dist/signers/ecdsa.test.d.ts +2 -0
  91. package/dist/signers/ecdsa.test.d.ts.map +1 -0
  92. package/dist/signers/ecdsa.test.js +65 -0
  93. package/dist/signers/ecdsa.test.js.map +1 -0
  94. package/dist/signers/falcon.d.ts +3 -0
  95. package/dist/signers/falcon.d.ts.map +1 -1
  96. package/dist/signers/falcon.js +8 -4
  97. package/dist/signers/falcon.js.map +1 -1
  98. package/dist/signers/falcon.test.js +12 -0
  99. package/dist/signers/falcon.test.js.map +1 -1
  100. package/dist/signers/miden-wallet.d.ts +3 -1
  101. package/dist/signers/miden-wallet.d.ts.map +1 -1
  102. package/dist/signers/miden-wallet.js +11 -2
  103. package/dist/signers/miden-wallet.js.map +1 -1
  104. package/dist/signers/miden-wallet.test.js +26 -0
  105. package/dist/signers/miden-wallet.test.js.map +1 -1
  106. package/dist/signers/para.d.ts +3 -3
  107. package/dist/signers/para.d.ts.map +1 -1
  108. package/dist/signers/para.js +15 -6
  109. package/dist/signers/para.js.map +1 -1
  110. package/dist/signers/para.test.js +39 -0
  111. package/dist/signers/para.test.js.map +1 -1
  112. package/dist/transaction/consumeNotes.d.ts.map +1 -1
  113. package/dist/transaction/consumeNotes.js +1 -0
  114. package/dist/transaction/consumeNotes.js.map +1 -1
  115. package/dist/transaction/index.d.ts +2 -1
  116. package/dist/transaction/index.d.ts.map +1 -1
  117. package/dist/transaction/index.js +2 -1
  118. package/dist/transaction/index.js.map +1 -1
  119. package/dist/transaction/options.d.ts +1 -1
  120. package/dist/transaction/options.d.ts.map +1 -1
  121. package/dist/transaction/p2id.d.ts +1 -0
  122. package/dist/transaction/p2id.d.ts.map +1 -1
  123. package/dist/transaction/p2id.js +9 -3
  124. package/dist/transaction/p2id.js.map +1 -1
  125. package/dist/transaction/updateGuardian.d.ts +7 -0
  126. package/dist/transaction/updateGuardian.d.ts.map +1 -0
  127. package/dist/transaction/{updatePsm.js → updateGuardian.js} +15 -29
  128. package/dist/transaction/updateGuardian.js.map +1 -0
  129. package/dist/transaction/updateProcedureThreshold.d.ts +9 -0
  130. package/dist/transaction/updateProcedureThreshold.d.ts.map +1 -0
  131. package/dist/transaction/updateProcedureThreshold.js +55 -0
  132. package/dist/transaction/updateProcedureThreshold.js.map +1 -0
  133. package/dist/transaction/updateSigners.d.ts.map +1 -1
  134. package/dist/transaction/updateSigners.js +5 -23
  135. package/dist/transaction/updateSigners.js.map +1 -1
  136. package/dist/transaction.d.ts +2 -1
  137. package/dist/transaction.d.ts.map +1 -1
  138. package/dist/transaction.js +2 -1
  139. package/dist/transaction.js.map +1 -1
  140. package/dist/types/proposal.d.ts +32 -15
  141. package/dist/types/proposal.d.ts.map +1 -1
  142. package/dist/types.d.ts +24 -7
  143. package/dist/types.d.ts.map +1 -1
  144. package/dist/utils/digest.d.ts +5 -0
  145. package/dist/utils/digest.d.ts.map +1 -1
  146. package/dist/utils/digest.js +34 -1
  147. package/dist/utils/digest.js.map +1 -1
  148. package/dist/utils/digest.test.d.ts +2 -0
  149. package/dist/utils/digest.test.d.ts.map +1 -0
  150. package/dist/utils/digest.test.js +48 -0
  151. package/dist/utils/digest.test.js.map +1 -0
  152. package/dist/utils/signature.d.ts +3 -1
  153. package/dist/utils/signature.d.ts.map +1 -1
  154. package/dist/utils/signature.js +31 -6
  155. package/dist/utils/signature.js.map +1 -1
  156. package/dist/utils/word.test.js +1 -52
  157. package/dist/utils/word.test.js.map +1 -1
  158. package/masm/account_components/auth/multisig.masm +13 -0
  159. package/masm/account_components/auth/multisig_ecdsa.masm +13 -0
  160. package/masm/account_components/auth/multisig_guardian.masm +17 -0
  161. package/masm/account_components/auth/multisig_guardian_ecdsa.masm +17 -0
  162. package/masm/auth/guardian.masm +177 -0
  163. package/masm/auth/guardian_ecdsa.masm +178 -0
  164. package/masm/{multisig.masm → auth/multisig.masm} +149 -55
  165. package/masm/{multisig_ecdsa.masm → auth/multisig_ecdsa.masm} +148 -56
  166. package/package.json +11 -9
  167. package/src/account/builder.test.ts +165 -0
  168. package/src/account/builder.ts +71 -34
  169. package/src/account/index.ts +1 -1
  170. package/src/account/masm/account-components/auth.ts +70 -0
  171. package/src/account/masm/auth.ts +1398 -0
  172. package/src/account/masm/index.ts +5 -0
  173. package/src/account/masm.ts +3 -1040
  174. package/src/account/storage.ts +18 -16
  175. package/src/client.test.ts +31 -35
  176. package/src/client.ts +98 -26
  177. package/src/index.ts +84 -22
  178. package/src/inspector.test.ts +17 -17
  179. package/src/inspector.ts +63 -29
  180. package/src/multisig/proposal/execution.ts +66 -49
  181. package/src/multisig/proposal/parser.ts +26 -26
  182. package/src/multisig/signing.ts +4 -4
  183. package/src/multisig.test.ts +2097 -248
  184. package/src/multisig.ts +882 -388
  185. package/src/procedures.ts +50 -26
  186. package/src/proposal/factory.ts +171 -0
  187. package/src/proposal/metadata.ts +165 -0
  188. package/src/proposal/signatures.ts +68 -0
  189. package/src/signer.ts +2 -0
  190. package/src/signers/ecdsa.test.ts +80 -0
  191. package/src/signers/ecdsa.ts +15 -4
  192. package/src/signers/falcon.test.ts +19 -0
  193. package/src/signers/falcon.ts +16 -5
  194. package/src/signers/miden-wallet.test.ts +47 -0
  195. package/src/signers/miden-wallet.ts +18 -1
  196. package/src/signers/para.test.ts +57 -0
  197. package/src/signers/para.ts +26 -7
  198. package/src/transaction/consumeNotes.ts +1 -0
  199. package/src/transaction/index.ts +2 -2
  200. package/src/transaction/options.ts +1 -2
  201. package/src/transaction/p2id.test.ts +190 -0
  202. package/src/transaction/p2id.ts +11 -5
  203. package/src/transaction/rpoRandomCoin.test.ts +64 -0
  204. package/src/transaction/rpoRandomCoin.ts +24 -0
  205. package/src/transaction/{updatePsm.ts → updateGuardian.ts} +19 -32
  206. package/src/transaction/updateProcedureThreshold.ts +97 -0
  207. package/src/transaction/updateSigners.ts +12 -27
  208. package/src/transaction.ts +5 -3
  209. package/src/types/proposal.ts +43 -11
  210. package/src/types.ts +29 -11
  211. package/src/utils/digest.test.ts +55 -0
  212. package/src/utils/digest.ts +51 -1
  213. package/src/utils/signature.ts +47 -9
  214. package/src/utils/word.test.ts +1 -55
  215. package/dist/account.d.ts +0 -104
  216. package/dist/account.d.ts.map +0 -1
  217. package/dist/account.js +0 -136
  218. package/dist/account.js.map +0 -1
  219. package/dist/builder.d.ts +0 -54
  220. package/dist/builder.d.ts.map +0 -1
  221. package/dist/builder.js +0 -78
  222. package/dist/builder.js.map +0 -1
  223. package/dist/http.d.ts +0 -64
  224. package/dist/http.d.ts.map +0 -1
  225. package/dist/http.js +0 -162
  226. package/dist/http.js.map +0 -1
  227. package/dist/keystore.d.ts +0 -65
  228. package/dist/keystore.d.ts.map +0 -1
  229. package/dist/keystore.js +0 -121
  230. package/dist/keystore.js.map +0 -1
  231. package/dist/miden.d.ts +0 -9
  232. package/dist/miden.d.ts.map +0 -1
  233. package/dist/miden.js +0 -26
  234. package/dist/miden.js.map +0 -1
  235. package/dist/multisig/metadata.d.ts +0 -18
  236. package/dist/multisig/metadata.d.ts.map +0 -1
  237. package/dist/multisig/metadata.js +0 -100
  238. package/dist/multisig/metadata.js.map +0 -1
  239. package/dist/multisig/metadata.test.d.ts +0 -2
  240. package/dist/multisig/metadata.test.d.ts.map +0 -1
  241. package/dist/multisig/metadata.test.js +0 -323
  242. package/dist/multisig/metadata.test.js.map +0 -1
  243. package/dist/proposal/exported.d.ts +0 -12
  244. package/dist/proposal/exported.d.ts.map +0 -1
  245. package/dist/proposal/exported.js +0 -88
  246. package/dist/proposal/exported.js.map +0 -1
  247. package/dist/signer.test.d.ts +0 -2
  248. package/dist/signer.test.d.ts.map +0 -1
  249. package/dist/signer.test.js +0 -123
  250. package/dist/signer.test.js.map +0 -1
  251. package/dist/transaction/p2id.interop.test.d.ts +0 -2
  252. package/dist/transaction/p2id.interop.test.d.ts.map +0 -1
  253. package/dist/transaction/p2id.interop.test.js +0 -36
  254. package/dist/transaction/p2id.interop.test.js.map +0 -1
  255. package/dist/transaction/updatePsm.d.ts +0 -7
  256. package/dist/transaction/updatePsm.d.ts.map +0 -1
  257. package/dist/transaction/updatePsm.js.map +0 -1
  258. package/dist/transport/http.d.ts +0 -64
  259. package/dist/transport/http.d.ts.map +0 -1
  260. package/dist/transport/http.js +0 -162
  261. package/dist/transport/http.js.map +0 -1
  262. package/dist/transport/index.d.ts +0 -5
  263. package/dist/transport/index.d.ts.map +0 -1
  264. package/dist/transport/index.js +0 -5
  265. package/dist/transport/index.js.map +0 -1
  266. package/dist/utils/state-validation.d.ts +0 -5
  267. package/dist/utils/state-validation.d.ts.map +0 -1
  268. package/dist/utils/state-validation.js +0 -30
  269. package/dist/utils/state-validation.js.map +0 -1
  270. package/dist/utils/validation.d.ts +0 -6
  271. package/dist/utils/validation.d.ts.map +0 -1
  272. package/dist/utils/validation.js +0 -52
  273. package/dist/utils/validation.js.map +0 -1
  274. package/masm/psm.masm +0 -178
  275. package/masm/psm_ecdsa.masm +0 -179
@@ -1 +0,0 @@
1
- {"version":3,"file":"updatePsm.d.ts","sourceRoot":"","sources":["../../src/transaction/updatePsm.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAGlB,SAAS,EACT,IAAI,EAEL,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAsCrD,wBAAsB,gCAAgC,CACpD,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAiCtD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"updatePsm.js","sourceRoot":"","sources":["../../src/transaction/updatePsm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,EAET,yBAAyB,EAIzB,IAAI,IAAI,QAAQ,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,SAAS,0BAA0B,CAAC,SAAoB;IACtD,MAAM,UAAU,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IACtE,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG;;;;;;;;GAQpB,CAAC;IAEF,OAAO,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,yBAAyB,CAAC,SAAoB;IACrD,MAAM,UAAU,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC;IAClF,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG;;;;;;;;GAQpB,CAAC;IAEF,OAAO,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,SAAoB,EACpB,YAAoB,EACpB,UAA4B,EAAE;IAE9B,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,QAAQ,CAAC;IAC5D,MAAM,MAAM,GAAG,eAAe,KAAK,OAAO;QACxC,CAAC,CAAC,yBAAyB,CAAC,SAAS,CAAC;QACtC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAE1C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;IAE/E,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5E,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEhF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE3E,IAAI,SAAS,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAChD,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACzD,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9C,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1E,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE;QAC1B,IAAI,EAAE,iBAAiB;KACxB,CAAC;AACJ,CAAC"}
@@ -1,64 +0,0 @@
1
- /**
2
- * HTTP client for PSM server communication.
3
- */
4
- import type { ConfigureRequest, ConfigureResponse, DeltaObject, DeltaProposalRequest, DeltaProposalResponse, SignProposalRequest, Signer, StateObject } from '../types.js';
5
- /**
6
- * Error thrown by the PSM HTTP client.
7
- */
8
- export declare class PsmHttpError extends Error {
9
- readonly status: number;
10
- readonly statusText: string;
11
- readonly body: string;
12
- constructor(status: number, statusText: string, body: string);
13
- }
14
- /**
15
- * HTTP client for PSM server.
16
- */
17
- export declare class PsmHttpClient {
18
- private readonly baseUrl;
19
- private signer;
20
- constructor(baseUrl: string);
21
- /**
22
- * Set the signer for authenticated requests.
23
- */
24
- setSigner(signer: Signer): void;
25
- /**
26
- * Get the PSM server's public key.
27
- */
28
- getPubkey(): Promise<string>;
29
- /**
30
- * Configure/register an account on PSM.
31
- */
32
- configure(request: ConfigureRequest): Promise<ConfigureResponse>;
33
- /**
34
- * Get account state from PSM.
35
- */
36
- getState(accountId: string): Promise<StateObject>;
37
- /**
38
- * Get all delta proposals for an account.
39
- */
40
- getDeltaProposals(accountId: string): Promise<DeltaObject[]>;
41
- /**
42
- * Push a new delta proposal.
43
- */
44
- pushDeltaProposal(request: DeltaProposalRequest): Promise<DeltaProposalResponse>;
45
- /**
46
- * Sign a delta proposal.
47
- */
48
- signDeltaProposal(request: SignProposalRequest): Promise<DeltaObject>;
49
- /**
50
- * Push a delta (execute a proposal).
51
- */
52
- pushDelta(delta: DeltaObject): Promise<DeltaObject>;
53
- /**
54
- * Get a specific delta by nonce.
55
- */
56
- getDelta(accountId: string, nonce: number): Promise<DeltaObject>;
57
- /**
58
- * Get merged delta since a nonce.
59
- */
60
- getDeltaSince(accountId: string, fromNonce: number): Promise<DeltaObject>;
61
- private fetch;
62
- private fetchAuthenticated;
63
- }
64
- //# sourceMappingURL=http.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EAIrB,mBAAmB,EACnB,MAAM,EACN,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;aAEnB,MAAM,EAAE,MAAM;aACd,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,MAAM;gBAFZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM;CAK/B;AAED;;GAEG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,MAAM,CAAuB;gBAER,OAAO,EAAE,MAAM;IAE5C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAMlC;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQtE;;OAEG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQvD;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IASlE;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQtF;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3E;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAQzD;;OAEG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAWtE;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;YAejE,KAAK;YAkBL,kBAAkB;CAoBjC"}
@@ -1,162 +0,0 @@
1
- /**
2
- * HTTP client for PSM server communication.
3
- */
4
- /**
5
- * Error thrown by the PSM HTTP client.
6
- */
7
- export class PsmHttpError extends Error {
8
- status;
9
- statusText;
10
- body;
11
- constructor(status, statusText, body) {
12
- super(`PSM HTTP error ${status}: ${statusText} - ${body}`);
13
- this.status = status;
14
- this.statusText = statusText;
15
- this.body = body;
16
- this.name = 'PsmHttpError';
17
- }
18
- }
19
- /**
20
- * HTTP client for PSM server.
21
- */
22
- export class PsmHttpClient {
23
- baseUrl;
24
- signer = null;
25
- constructor(baseUrl) {
26
- this.baseUrl = baseUrl;
27
- }
28
- /**
29
- * Set the signer for authenticated requests.
30
- */
31
- setSigner(signer) {
32
- this.signer = signer;
33
- }
34
- /**
35
- * Get the PSM server's public key.
36
- */
37
- async getPubkey() {
38
- const response = await this.fetch('/pubkey', { method: 'GET' });
39
- const data = (await response.json());
40
- return data.pubkey;
41
- }
42
- /**
43
- * Configure/register an account on PSM.
44
- */
45
- async configure(request) {
46
- const response = await this.fetchAuthenticated('/configure', {
47
- method: 'POST',
48
- body: JSON.stringify(request),
49
- }, request.account_id);
50
- return (await response.json());
51
- }
52
- /**
53
- * Get account state from PSM.
54
- */
55
- async getState(accountId) {
56
- const params = new URLSearchParams({ account_id: accountId });
57
- const response = await this.fetchAuthenticated(`/state?${params}`, {
58
- method: 'GET',
59
- }, accountId);
60
- return (await response.json());
61
- }
62
- /**
63
- * Get all delta proposals for an account.
64
- */
65
- async getDeltaProposals(accountId) {
66
- const params = new URLSearchParams({ account_id: accountId });
67
- const response = await this.fetchAuthenticated(`/delta/proposal?${params}`, {
68
- method: 'GET',
69
- }, accountId);
70
- const data = (await response.json());
71
- return data.proposals;
72
- }
73
- /**
74
- * Push a new delta proposal.
75
- */
76
- async pushDeltaProposal(request) {
77
- const response = await this.fetchAuthenticated('/delta/proposal', {
78
- method: 'POST',
79
- body: JSON.stringify(request),
80
- }, request.account_id);
81
- return (await response.json());
82
- }
83
- /**
84
- * Sign a delta proposal.
85
- */
86
- async signDeltaProposal(request) {
87
- const response = await this.fetchAuthenticated('/delta/proposal', {
88
- method: 'PUT',
89
- body: JSON.stringify(request),
90
- }, request.account_id);
91
- return (await response.json());
92
- }
93
- /**
94
- * Push a delta (execute a proposal).
95
- */
96
- async pushDelta(delta) {
97
- const response = await this.fetchAuthenticated('/delta', {
98
- method: 'POST',
99
- body: JSON.stringify(delta),
100
- }, delta.account_id);
101
- return (await response.json());
102
- }
103
- /**
104
- * Get a specific delta by nonce.
105
- */
106
- async getDelta(accountId, nonce) {
107
- const params = new URLSearchParams({
108
- account_id: accountId,
109
- nonce: nonce.toString(),
110
- });
111
- const response = await this.fetchAuthenticated(`/delta?${params}`, {
112
- method: 'GET',
113
- }, accountId);
114
- return (await response.json());
115
- }
116
- /**
117
- * Get merged delta since a nonce.
118
- */
119
- async getDeltaSince(accountId, fromNonce) {
120
- const params = new URLSearchParams({
121
- account_id: accountId,
122
- nonce: fromNonce.toString(),
123
- });
124
- const response = await this.fetchAuthenticated(`/delta/since?${params}`, {
125
- method: 'GET',
126
- }, accountId);
127
- return (await response.json());
128
- }
129
- // ==========================================================================
130
- // Private helpers
131
- // ==========================================================================
132
- async fetch(path, init) {
133
- const url = `${this.baseUrl}${path}`;
134
- const response = await fetch(url, {
135
- ...init,
136
- headers: {
137
- 'Content-Type': 'application/json',
138
- ...init.headers,
139
- },
140
- });
141
- if (!response.ok) {
142
- const body = await response.text();
143
- throw new PsmHttpError(response.status, response.statusText, body);
144
- }
145
- return response;
146
- }
147
- async fetchAuthenticated(path, init, accountId) {
148
- if (!this.signer) {
149
- throw new Error('No signer configured. Call setSigner() first.');
150
- }
151
- const signature = this.signer.signAccountId(accountId);
152
- return this.fetch(path, {
153
- ...init,
154
- headers: {
155
- ...init.headers,
156
- 'x-pubkey': this.signer.publicKey,
157
- 'x-signature': signature,
158
- },
159
- });
160
- }
161
- }
162
- //# sourceMappingURL=http.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Transport layer for PSM server communication.
3
- */
4
- export { PsmHttpClient, PsmHttpError } from './http.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Transport layer for PSM server communication.
3
- */
4
- export { PsmHttpClient, PsmHttpError } from './http.js';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { Account, AccountId, WebClient } from '@miden-sdk/miden-sdk';
2
- export declare function fetchNormalizedOnChainCommitment(webClient: WebClient, accountId: AccountId): Promise<string>;
3
- export declare function verifyStateCommitmentAgainstOnChain(accountId: AccountId, stateCommitmentHex: string, onChainCommitmentHex: string): void;
4
- export declare function verifyDeserializedAccountMatchesState(accountId: AccountId, stateCommitmentHex: string, account: Account, onChainCommitmentHex: string): void;
5
- //# sourceMappingURL=state-validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-validation.d.ts","sourceRoot":"","sources":["../../src/utils/state-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAmB1E,wBAAsB,gCAAgC,CACpD,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,MAAM,EAC1B,oBAAoB,EAAE,MAAM,GAC3B,IAAI,CAON;AAED,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,OAAO,EAChB,oBAAoB,EAAE,MAAM,GAC3B,IAAI,CAgBN"}
@@ -1,30 +0,0 @@
1
- import { normalizeHexWord } from './encoding.js';
2
- function asAccountDetailsReader(webClient) {
3
- const candidate = webClient;
4
- if (typeof candidate.getAccountDetails !== 'function') {
5
- throw new Error('WebClient does not expose getAccountDetails');
6
- }
7
- return candidate;
8
- }
9
- export async function fetchNormalizedOnChainCommitment(webClient, accountId) {
10
- const fetchedAccount = await asAccountDetailsReader(webClient).getAccountDetails(accountId);
11
- return normalizeHexWord(fetchedAccount.commitment().toHex());
12
- }
13
- export function verifyStateCommitmentAgainstOnChain(accountId, stateCommitmentHex, onChainCommitmentHex) {
14
- const normalizedStateCommitment = normalizeHexWord(stateCommitmentHex);
15
- if (normalizedStateCommitment !== onChainCommitmentHex) {
16
- throw new Error(`PSM state commitment does not match on-chain commitment for account ${accountId.toString()}`);
17
- }
18
- }
19
- export function verifyDeserializedAccountMatchesState(accountId, stateCommitmentHex, account, onChainCommitmentHex) {
20
- if (account.id().toString().toLowerCase() !== accountId.toString().toLowerCase()) {
21
- throw new Error(`PSM state account ID ${account.id().toString()} does not match requested account ID ${accountId.toString()}`);
22
- }
23
- const normalizedStateCommitment = normalizeHexWord(stateCommitmentHex);
24
- const normalizedAccountCommitment = normalizeHexWord(account.commitment().toHex());
25
- if (normalizedAccountCommitment !== normalizedStateCommitment) {
26
- throw new Error(`PSM state commitment does not match deserialized account commitment for account ${accountId.toString()}`);
27
- }
28
- verifyStateCommitmentAgainstOnChain(accountId, normalizedStateCommitment, onChainCommitmentHex);
29
- }
30
- //# sourceMappingURL=state-validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-validation.js","sourceRoot":"","sources":["../../src/utils/state-validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAUjD,SAAS,sBAAsB,CAAC,SAAoB;IAClD,MAAM,SAAS,GAAG,SAAqD,CAAC;IACxE,IAAI,OAAO,SAAS,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,SAAiC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,SAAoB,EACpB,SAAoB;IAEpB,MAAM,cAAc,GAAG,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC5F,OAAO,gBAAgB,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,SAAoB,EACpB,kBAA0B,EAC1B,oBAA4B;IAE5B,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACvE,IAAI,yBAAyB,KAAK,oBAAoB,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,uEAAuE,SAAS,CAAC,QAAQ,EAAE,EAAE,CAC9F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,SAAoB,EACpB,kBAA0B,EAC1B,OAAgB,EAChB,oBAA4B;IAE5B,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CACb,wBAAwB,OAAO,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,wCAAwC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAC9G,CAAC;IACJ,CAAC;IAED,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACvE,MAAM,2BAA2B,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACnF,IAAI,2BAA2B,KAAK,yBAAyB,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,mFAAmF,SAAS,CAAC,QAAQ,EAAE,EAAE,CAC1G,CAAC;IACJ,CAAC;IAED,mCAAmC,CAAC,SAAS,EAAE,yBAAyB,EAAE,oBAAoB,CAAC,CAAC;AAClG,CAAC"}
@@ -1,6 +0,0 @@
1
- import { type Account, type AccountId } from '@miden-sdk/miden-sdk';
2
- export declare function isMissingAccountRecordError(error: unknown): boolean;
3
- export declare function getOnChainCommitment(rpcEndpoint: string, accountId: AccountId): Promise<string>;
4
- export declare function validateStateCommitmentMatchesOnChain(accountId: AccountId, stateCommitmentHex: string, onChainCommitmentHex: string): void;
5
- export declare function validateAccountMatchesState(accountId: AccountId, stateCommitmentHex: string, account: Account): void;
6
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,sBAAsB,CAAC;AAGzF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMnE;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,MAAM,EAC1B,oBAAoB,EAAE,MAAM,GAC3B,IAAI,CAON;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,OAAO,GACf,IAAI,CAyBN"}
@@ -1,52 +0,0 @@
1
- import { Endpoint, RpcClient } from '@miden-sdk/miden-sdk';
2
- import { normalizeHexWord } from './encoding.js';
3
- export function isMissingAccountRecordError(error) {
4
- const message = error instanceof Error ? error.message : String(error);
5
- return (message.includes('No account header record found for given ID') ||
6
- message.includes('null pointer passed to rust'));
7
- }
8
- export async function getOnChainCommitment(rpcEndpoint, accountId) {
9
- const rpcClient = new RpcClient(new Endpoint(rpcEndpoint));
10
- try {
11
- const fetchedAccount = await rpcClient.getAccountDetails(accountId);
12
- if (!fetchedAccount) {
13
- throw new Error('No account header record found for given ID');
14
- }
15
- return normalizeHexWord(fetchedAccount.commitment().toHex());
16
- }
17
- catch (error) {
18
- const message = error instanceof Error ? error.message : String(error);
19
- if (message.includes('null pointer passed to rust')) {
20
- throw new Error('No account header record found for given ID');
21
- }
22
- throw error;
23
- }
24
- }
25
- export function validateStateCommitmentMatchesOnChain(accountId, stateCommitmentHex, onChainCommitmentHex) {
26
- const normalizedStateCommitment = normalizeHexWord(stateCommitmentHex);
27
- if (normalizedStateCommitment !== onChainCommitmentHex) {
28
- throw new Error(`PSM state commitment does not match on-chain commitment for account ${accountId.toString()}`);
29
- }
30
- }
31
- export function validateAccountMatchesState(accountId, stateCommitmentHex, account) {
32
- try {
33
- const accountIdString = account.id().toString().toLowerCase();
34
- const requestedIdString = accountId.toString().toLowerCase();
35
- if (accountIdString !== requestedIdString) {
36
- throw new Error(`PSM state account ID ${accountIdString} does not match requested account ID ${requestedIdString}`);
37
- }
38
- const normalizedStateCommitment = normalizeHexWord(stateCommitmentHex);
39
- const normalizedAccountCommitment = normalizeHexWord(account.commitment().toHex());
40
- if (normalizedAccountCommitment !== normalizedStateCommitment) {
41
- throw new Error(`PSM state commitment does not match deserialized account commitment for account ${requestedIdString}`);
42
- }
43
- }
44
- catch (error) {
45
- const message = error instanceof Error ? error.message : String(error);
46
- if (message.includes('null pointer passed to rust')) {
47
- throw new Error('No account header record found for given ID');
48
- }
49
- throw error;
50
- }
51
- }
52
- //# sourceMappingURL=validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
package/masm/psm.masm DELETED
@@ -1,178 +0,0 @@
1
- # Private State Manager (PSM) Authentication Component
2
- #
3
- # This component provides PSM signature verification for accounts.
4
- # It can be used standalone or in conjunction with other auth components like multisig.
5
-
6
- use miden::active_account
7
- use miden::native_account
8
-
9
- # Type definitions for v0.12 syntax
10
- type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
11
-
12
- # IMPORTANT SECURITY NOTES
13
- # --------------------------------------------------------------------------------
14
- # - The selector in `PSM_SELECTOR_SLOT` controls whether the extra PSM signature
15
- # is enforced:
16
- # * PSM_ON => exactly one valid PSM signature is required.
17
- # * PSM_OFF => PSM signature is skipped for that call.
18
- #
19
- # - `verify_psm_signature` reads the selector from initial storage state.
20
- # This means changes made during the same transaction won't affect the check.
21
- #
22
- # - `enable_psm` / `disable_psm` procedures allow explicit control over PSM state.
23
- #
24
- # - `update_psm_public_key`:
25
- # * Installs a new PSM public key in the map at `PSM_PUBLIC_KEY_MAP_SLOT`.
26
- # * Does not itself perform any signature checks.
27
- # * To update the key without requiring PSM signature, ensure selector is OFF.
28
- #
29
- # Storage Layout
30
- # --------------------------------------------------------------------------------
31
- #
32
- # +---------------------+---------------+
33
- # | DESCRIPTION | SLOT |
34
- # +---------------------+---------------+
35
- # | PSM SELECTOR (word) | 0 |
36
- # | PSM PUBLIC KEY MAP | 1 |
37
- # +---------------------+---------------+
38
- #
39
- # - PSM_SELECTOR_SLOT (0):
40
- # * Stores a word that is compared against [1, 0, 0, 0] (PSM_ON).
41
- # * Any value != PSM_ON is treated as PSM_OFF.
42
- #
43
- # - PSM_PUBLIC_KEY_MAP_SLOT (1):
44
- # * A map from a fixed key [0, 0, 0, 0] to the single PSM public key:
45
- # [0, 0, 0, 0] => PSM_PUBLIC_KEY
46
- # * PSM_PUBLIC_KEY is a RPO Falcon 512 public key represented as a word.
47
-
48
- # CONSTANTS
49
- # =================================================================================================
50
-
51
- # Slot where the PSM selector flag is stored:
52
- # - PSM_ON => PSM signature required
53
- # - PSM_OFF => PSM signature skipped
54
- const PSM_SELECTOR_SLOT = 0
55
-
56
- # Map slot for PSM public key
57
- # Uses exactly one PSM public key at index [0, 0, 0, 0]
58
- # [0, 0, 0, 0] => PSM_PUBLIC_KEY
59
- const PSM_PUBLIC_KEY_MAP_SLOT = 1
60
-
61
- # Selector flag values
62
- const PSM_ON = [1, 0, 0, 0]
63
- const PSM_OFF = [0, 0, 0, 0]
64
-
65
- # The event emitted when a signature is not found for a required signer.
66
- const AUTH_UNAUTHORIZED_EVENT = event("miden::auth::unauthorized")
67
-
68
- # PSM PROCEDURES
69
- # =================================================================================================
70
-
71
- #! Enable PSM verification by setting the selector to ON.
72
- #!
73
- #! Operand stack inputs: []
74
- #! Outputs: []
75
- #!
76
- #! Notes:
77
- #! - Sets PSM_SELECTOR_SLOT to PSM_ON (1)
78
- #! - After this, transactions will require PSM signature verification
79
- proc.enable_psm
80
- push.PSM_ON
81
- # => [PSM_ON]
82
-
83
- push.PSM_SELECTOR_SLOT
84
- # => [PSM_SELECTOR_SLOT, PSM_ON]
85
-
86
- exec.native_account::set_item
87
- # => [OLD_ROOT]
88
-
89
- dropw
90
- # => []
91
- end
92
-
93
- #! Disable PSM verification by setting the selector to OFF.
94
- #!
95
- #! Operand stack inputs: []
96
- #! Outputs: []
97
- #!
98
- #! Notes:
99
- #! - Sets PSM_SELECTOR_SLOT to PSM_OFF (0)
100
- #! - After this, transactions will NOT require PSM signature verification
101
- proc.disable_psm
102
- push.PSM_OFF
103
- # => [PSM_OFF]
104
-
105
- push.PSM_SELECTOR_SLOT
106
- # => [PSM_SELECTOR_SLOT, PSM_OFF]
107
-
108
- exec.native_account::set_item
109
- # => [OLD_ROOT]
110
-
111
- dropw
112
- # => []
113
- end
114
-
115
- #! Update the PSM public key.
116
- #!
117
- #! Operand stack inputs: []
118
- #! Advice stack inputs: [PUB_KEY]
119
- #! - PUB_KEY is the new PSM RPO Falcon 512 public key
120
- #!
121
- #! Notes:
122
- #! - Stores PUB_KEY into PSM_PUBLIC_KEY_MAP_SLOT:
123
- #! [0, 0, 0, 0] => PSM_PUBLIC_KEY
124
- #! - To update the key without requiring PSM signature, ensure
125
- #! PSM_SELECTOR_SLOT = 0 (OFF) before calling this.
126
- pub proc update_psm_public_key
127
- exec.disable_psm
128
- # ------ Update the PSM public key ------
129
- adv_loadw
130
- # => [PUB_KEY]
131
-
132
- push.0.0.0.0
133
- # => [MAP_KEY, PUB_KEY]
134
- # Note that MAP_KEY is [0, 0, 0, 0] for a single PSM_KEY
135
-
136
- push.PSM_PUBLIC_KEY_MAP_SLOT
137
- # => [index, MAP_KEY, PUB_KEY]
138
-
139
- exec.native_account::set_map_item
140
- # => [OLD_MAP_ROOT, OLD_MAP_VALUE]
141
-
142
- dropw dropw
143
- # => []
144
- end
145
-
146
- #! Conditionally verify a "PSM" signature against a stored public key hash.
147
- #! The condition is controlled by the selector at PSM_SELECTOR_SLOT.
148
- #!
149
- #! Inputs: [MSG]
150
- #! Outputs: [MSG]
151
- #!
152
- #! Panics if:
153
- #! - Selector is ON but the provided PSM signature is invalid or missing.
154
- #!
155
- #! Notes:
156
- #! - MSG is TX_SUMMARY_COMMITMENT provided by auth procedure
157
- #! - If selector is OFF (0), PSM verification is skipped
158
- #! - Selector value is read from initial storage state
159
- pub proc verify_psm_signature(msg: BeWord)
160
- push.PSM_SELECTOR_SLOT
161
- exec.active_account::get_item
162
- drop drop drop
163
- # => [selector, MSG]
164
-
165
- push.1 eq
166
- if.true
167
- push.1
168
- push.PSM_PUBLIC_KEY_MAP_SLOT
169
- exec.::miden::auth::rpo_falcon512::verify_signatures
170
- push.1 neq
171
- if.true
172
- emit.AUTH_UNAUTHORIZED_EVENT
173
- push.0 assert.err="invalid PSM signature"
174
- end
175
- end
176
- # => [MSG]
177
- exec.enable_psm
178
- end