@openzeppelin/miden-multisig-client 0.16.1 → 0.17.0-rc.1

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 (207) hide show
  1. package/README.md +192 -11
  2. package/dist/account/builder.d.ts.map +1 -1
  3. package/dist/account/builder.js +32 -25
  4. package/dist/account/builder.js.map +1 -1
  5. package/dist/account/builder.test.js +73 -21
  6. package/dist/account/builder.test.js.map +1 -1
  7. package/dist/account/layout.d.ts +31 -0
  8. package/dist/account/layout.d.ts.map +1 -0
  9. package/dist/account/layout.js +31 -0
  10. package/dist/account/layout.js.map +1 -0
  11. package/dist/account/masm/account-components/auth.d.ts +1 -4
  12. package/dist/account/masm/account-components/auth.d.ts.map +1 -1
  13. package/dist/account/masm/account-components/auth.js +36 -53
  14. package/dist/account/masm/account-components/auth.js.map +1 -1
  15. package/dist/account/masm/index.d.ts +0 -1
  16. package/dist/account/masm/index.d.ts.map +1 -1
  17. package/dist/account/masm/index.js +0 -1
  18. package/dist/account/masm/index.js.map +1 -1
  19. package/dist/account/storage.d.ts +4 -0
  20. package/dist/account/storage.d.ts.map +1 -1
  21. package/dist/account/storage.js +9 -20
  22. package/dist/account/storage.js.map +1 -1
  23. package/dist/client.d.ts +4 -0
  24. package/dist/client.d.ts.map +1 -1
  25. package/dist/client.js +10 -5
  26. package/dist/client.js.map +1 -1
  27. package/dist/client.test.js +74 -16
  28. package/dist/client.test.js.map +1 -1
  29. package/dist/index.d.ts +5 -3
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +3 -3
  32. package/dist/index.js.map +1 -1
  33. package/dist/inspector.d.ts +59 -1
  34. package/dist/inspector.d.ts.map +1 -1
  35. package/dist/inspector.js +157 -29
  36. package/dist/inspector.js.map +1 -1
  37. package/dist/inspector.test.js +246 -37
  38. package/dist/inspector.test.js.map +1 -1
  39. package/dist/multisig.d.ts +109 -33
  40. package/dist/multisig.d.ts.map +1 -1
  41. package/dist/multisig.js +307 -104
  42. package/dist/multisig.js.map +1 -1
  43. package/dist/multisig.test.js +582 -58
  44. package/dist/multisig.test.js.map +1 -1
  45. package/dist/procedures.d.ts +6 -7
  46. package/dist/procedures.d.ts.map +1 -1
  47. package/dist/procedures.js +6 -7
  48. package/dist/procedures.js.map +1 -1
  49. package/dist/proposal/metadata.d.ts.map +1 -1
  50. package/dist/proposal/metadata.js +13 -2
  51. package/dist/proposal/metadata.js.map +1 -1
  52. package/dist/proposal/metadata.test.js +57 -0
  53. package/dist/proposal/metadata.test.js.map +1 -1
  54. package/dist/prover/errors.d.ts +5 -0
  55. package/dist/prover/errors.d.ts.map +1 -1
  56. package/dist/prover/errors.js +7 -155
  57. package/dist/prover/errors.js.map +1 -1
  58. package/dist/prover/errors.test.js +5 -0
  59. package/dist/prover/errors.test.js.map +1 -1
  60. package/dist/prover/retry.d.ts +1 -6
  61. package/dist/prover/retry.d.ts.map +1 -1
  62. package/dist/prover/retry.js +5 -28
  63. package/dist/prover/retry.js.map +1 -1
  64. package/dist/prover/retry.test.js +1 -1
  65. package/dist/prover/retry.test.js.map +1 -1
  66. package/dist/prover/workflow.d.ts +4 -3
  67. package/dist/prover/workflow.d.ts.map +1 -1
  68. package/dist/prover/workflow.js +5 -2
  69. package/dist/prover/workflow.js.map +1 -1
  70. package/dist/prover/workflow.test.js +28 -3
  71. package/dist/prover/workflow.test.js.map +1 -1
  72. package/dist/retry/classify.d.ts +16 -0
  73. package/dist/retry/classify.d.ts.map +1 -0
  74. package/dist/retry/classify.js +187 -0
  75. package/dist/retry/classify.js.map +1 -0
  76. package/dist/retry/runtime.d.ts +13 -0
  77. package/dist/retry/runtime.d.ts.map +1 -0
  78. package/dist/retry/runtime.js +33 -0
  79. package/dist/retry/runtime.js.map +1 -0
  80. package/dist/rpc/config.d.ts +11 -0
  81. package/dist/rpc/config.d.ts.map +1 -0
  82. package/dist/rpc/config.js +17 -0
  83. package/dist/rpc/config.js.map +1 -0
  84. package/dist/rpc/config.test.d.ts +2 -0
  85. package/dist/rpc/config.test.d.ts.map +1 -0
  86. package/dist/rpc/config.test.js +24 -0
  87. package/dist/rpc/config.test.js.map +1 -0
  88. package/dist/rpc/errors.d.ts +2 -0
  89. package/dist/rpc/errors.d.ts.map +1 -0
  90. package/dist/rpc/errors.js +11 -0
  91. package/dist/rpc/errors.js.map +1 -0
  92. package/dist/rpc/errors.test.d.ts +2 -0
  93. package/dist/rpc/errors.test.d.ts.map +1 -0
  94. package/dist/rpc/errors.test.js +34 -0
  95. package/dist/rpc/errors.test.js.map +1 -0
  96. package/dist/rpc/retry.d.ts +4 -0
  97. package/dist/rpc/retry.d.ts.map +1 -0
  98. package/dist/rpc/retry.js +6 -0
  99. package/dist/rpc/retry.js.map +1 -0
  100. package/dist/rpc/retry.test.d.ts +2 -0
  101. package/dist/rpc/retry.test.d.ts.map +1 -0
  102. package/dist/rpc/retry.test.js +98 -0
  103. package/dist/rpc/retry.test.js.map +1 -0
  104. package/dist/transaction/index.d.ts +1 -1
  105. package/dist/transaction/index.d.ts.map +1 -1
  106. package/dist/transaction/index.js +1 -1
  107. package/dist/transaction/index.js.map +1 -1
  108. package/dist/transaction/p2id.d.ts +17 -6
  109. package/dist/transaction/p2id.d.ts.map +1 -1
  110. package/dist/transaction/p2id.js +22 -31
  111. package/dist/transaction/p2id.js.map +1 -1
  112. package/dist/transaction/p2id.test.js +62 -24
  113. package/dist/transaction/p2id.test.js.map +1 -1
  114. package/dist/transaction/summary.d.ts +45 -2
  115. package/dist/transaction/summary.d.ts.map +1 -1
  116. package/dist/transaction/summary.js +42 -2
  117. package/dist/transaction/summary.js.map +1 -1
  118. package/dist/transaction/summary.test.d.ts +2 -0
  119. package/dist/transaction/summary.test.d.ts.map +1 -0
  120. package/dist/transaction/summary.test.js +26 -0
  121. package/dist/transaction/summary.test.js.map +1 -0
  122. package/dist/transaction/updateGuardian.d.ts.map +1 -1
  123. package/dist/transaction/updateGuardian.js +16 -18
  124. package/dist/transaction/updateGuardian.js.map +1 -1
  125. package/dist/transaction/updateProcedureThreshold.d.ts.map +1 -1
  126. package/dist/transaction/updateProcedureThreshold.js +15 -17
  127. package/dist/transaction/updateProcedureThreshold.js.map +1 -1
  128. package/dist/transaction/updateSigners.d.ts +6 -1
  129. package/dist/transaction/updateSigners.d.ts.map +1 -1
  130. package/dist/transaction/updateSigners.js +20 -17
  131. package/dist/transaction/updateSigners.js.map +1 -1
  132. package/dist/transaction.d.ts +2 -2
  133. package/dist/transaction.d.ts.map +1 -1
  134. package/dist/transaction.js +1 -1
  135. package/dist/transaction.js.map +1 -1
  136. package/dist/types/proposal.d.ts +28 -4
  137. package/dist/types/proposal.d.ts.map +1 -1
  138. package/dist/types/proposal.js +18 -0
  139. package/dist/types/proposal.js.map +1 -1
  140. package/dist/types.d.ts +0 -1
  141. package/dist/types.d.ts.map +1 -1
  142. package/dist/utils/signature.d.ts +11 -7
  143. package/dist/utils/signature.d.ts.map +1 -1
  144. package/dist/utils/signature.js +24 -58
  145. package/dist/utils/signature.js.map +1 -1
  146. package/dist/utils/word.d.ts +7 -0
  147. package/dist/utils/word.d.ts.map +1 -1
  148. package/dist/utils/word.js +15 -0
  149. package/dist/utils/word.js.map +1 -1
  150. package/masm/account_components/auth/guarded_multisig.masm +42 -0
  151. package/package.json +7 -4
  152. package/src/account/builder.test.ts +111 -45
  153. package/src/account/builder.ts +45 -33
  154. package/src/account/layout.ts +33 -0
  155. package/src/account/masm/account-components/auth.ts +36 -56
  156. package/src/account/masm/index.ts +0 -1
  157. package/src/account/storage.ts +9 -22
  158. package/src/client.test.ts +87 -16
  159. package/src/client.ts +16 -3
  160. package/src/index.ts +27 -1
  161. package/src/inspector.test.ts +330 -38
  162. package/src/inspector.ts +196 -33
  163. package/src/multisig.test.ts +680 -63
  164. package/src/multisig.ts +400 -115
  165. package/src/procedures.ts +6 -7
  166. package/src/proposal/metadata.test.ts +76 -0
  167. package/src/proposal/metadata.ts +13 -2
  168. package/src/prover/errors.test.ts +8 -0
  169. package/src/prover/errors.ts +7 -175
  170. package/src/prover/retry.test.ts +1 -1
  171. package/src/prover/retry.ts +10 -35
  172. package/src/prover/workflow.test.ts +40 -4
  173. package/src/prover/workflow.ts +16 -4
  174. package/src/retry/classify.ts +220 -0
  175. package/src/retry/runtime.ts +45 -0
  176. package/src/rpc/config.test.ts +45 -0
  177. package/src/rpc/config.ts +30 -0
  178. package/src/rpc/errors.test.ts +69 -0
  179. package/src/rpc/errors.ts +12 -0
  180. package/src/rpc/retry.test.ts +144 -0
  181. package/src/rpc/retry.ts +12 -0
  182. package/src/transaction/index.ts +7 -1
  183. package/src/transaction/p2id.test.ts +112 -31
  184. package/src/transaction/p2id.ts +39 -38
  185. package/src/transaction/summary.test.ts +32 -0
  186. package/src/transaction/summary.ts +83 -4
  187. package/src/transaction/updateGuardian.ts +15 -25
  188. package/src/transaction/updateProcedureThreshold.ts +13 -29
  189. package/src/transaction/updateSigners.ts +38 -30
  190. package/src/transaction.ts +8 -1
  191. package/src/types/proposal.ts +43 -4
  192. package/src/types.ts +0 -1
  193. package/src/utils/signature.ts +32 -65
  194. package/src/utils/word.ts +17 -0
  195. package/dist/account/masm/auth.d.ts +0 -5
  196. package/dist/account/masm/auth.d.ts.map +0 -1
  197. package/dist/account/masm/auth.js +0 -1509
  198. package/dist/account/masm/auth.js.map +0 -1
  199. package/masm/account_components/auth/multisig.masm +0 -12
  200. package/masm/account_components/auth/multisig_ecdsa.masm +0 -12
  201. package/masm/account_components/auth/multisig_guardian.masm +0 -16
  202. package/masm/account_components/auth/multisig_guardian_ecdsa.masm +0 -16
  203. package/masm/auth/guardian.masm +0 -199
  204. package/masm/auth/guardian_ecdsa.masm +0 -195
  205. package/masm/auth/multisig.masm +0 -554
  206. package/masm/auth/multisig_ecdsa.masm +0 -554
  207. package/src/account/masm/auth.ts +0 -1512
@@ -11,13 +11,12 @@
11
11
  * human-readable encoding and should not be copied into this table.
12
12
  */
13
13
  export declare const PROCEDURE_ROOTS: {
14
- readonly update_signers: "0x34963b067dbba634e57b416bc2f2a9a8d4ac24147f40b2900148c9ba44774274";
15
- readonly update_procedure_threshold: "0xec74c4b96ce593c11017ae54dec9c0ae5e0d242e8b3074eb3908d961300aed67";
16
- readonly auth_tx: "0x0708020dce7b91b61116e3eb27e5d686e129a83df3c540e0a7693b4523814e72";
17
- readonly update_guardian: "0xeceb1f2c2d7d20312dbaf091e9a27a2b63f9fcba120948043069793a5715bc96";
18
- readonly verify_guardian: "0xe6a8a62d37117f55a79b5345aa3d263ab16e973d486bac9a1612663dfdecf82d";
19
- readonly send_asset: "0xfb1c73d10de1954e9e8948964e3e77cf4e33759d2e012cb00eb10c50f2974eb4";
20
- readonly receive_asset: "0x6170fd6d682d91777b551fd866258f43cc657f1291f8f071500f4e56e9c153da";
14
+ readonly update_signers: "0xa261cfd3c8791ac5abe1e78e14eade2f20789d73ab1c23c430418de59bc3380e";
15
+ readonly update_procedure_threshold: "0x97587c61d49313b1d5a3c8b7437e0080e67ed9bd9d3e7206bcae562f934ccd03";
16
+ readonly auth_tx: "0xa6aa6f69d9358535272ba433cd48d20628a5c69598e00c6dd01a22e83a5f15df";
17
+ readonly update_guardian: "0x0a614ff7c81a561cbd2a4c2d9482031a7a841ca5de33349daed23a9d871b3675";
18
+ readonly send_asset: "0x595bc83258726a66bd904912cfd5186c07cbd902dfbc115b7d6bc8105efc57e3";
19
+ readonly receive_asset: "0x34a56dd18f6fe5aab63198b9dcfc6467e793ebabb37d56b994b902504635da13";
21
20
  };
22
21
  /**
23
22
  * Valid procedure names that can be used for threshold overrides.
@@ -1 +1 @@
1
- {"version":3,"file":"procedures.d.ts","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe;;;;;;;;CAQlB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,eAAe,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,aAAa,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAEnD"}
1
+ {"version":3,"file":"procedures.d.ts","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe;;;;;;;CAOlB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,eAAe,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,aAAa,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAEnD"}
@@ -11,13 +11,12 @@
11
11
  * human-readable encoding and should not be copied into this table.
12
12
  */
13
13
  export const PROCEDURE_ROOTS = {
14
- update_signers: '0x34963b067dbba634e57b416bc2f2a9a8d4ac24147f40b2900148c9ba44774274',
15
- update_procedure_threshold: '0xec74c4b96ce593c11017ae54dec9c0ae5e0d242e8b3074eb3908d961300aed67',
16
- auth_tx: '0x0708020dce7b91b61116e3eb27e5d686e129a83df3c540e0a7693b4523814e72',
17
- update_guardian: '0xeceb1f2c2d7d20312dbaf091e9a27a2b63f9fcba120948043069793a5715bc96',
18
- verify_guardian: '0xe6a8a62d37117f55a79b5345aa3d263ab16e973d486bac9a1612663dfdecf82d',
19
- send_asset: '0xfb1c73d10de1954e9e8948964e3e77cf4e33759d2e012cb00eb10c50f2974eb4',
20
- receive_asset: '0x6170fd6d682d91777b551fd866258f43cc657f1291f8f071500f4e56e9c153da',
14
+ update_signers: '0xa261cfd3c8791ac5abe1e78e14eade2f20789d73ab1c23c430418de59bc3380e',
15
+ update_procedure_threshold: '0x97587c61d49313b1d5a3c8b7437e0080e67ed9bd9d3e7206bcae562f934ccd03',
16
+ auth_tx: '0xa6aa6f69d9358535272ba433cd48d20628a5c69598e00c6dd01a22e83a5f15df',
17
+ update_guardian: '0x0a614ff7c81a561cbd2a4c2d9482031a7a841ca5de33349daed23a9d871b3675',
18
+ send_asset: '0x595bc83258726a66bd904912cfd5186c07cbd902dfbc115b7d6bc8105efc57e3',
19
+ receive_asset: '0x34a56dd18f6fe5aab63198b9dcfc6467e793ebabb37d56b994b902504635da13',
21
20
  };
22
21
  /**
23
22
  * Get the procedure root for a given procedure name.
@@ -1 +1 @@
1
- {"version":3,"file":"procedures.js","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc,EAAE,oEAAoE;IACpF,0BAA0B,EAAE,oEAAoE;IAChG,OAAO,EAAE,oEAAoE;IAC7E,eAAe,EAAE,oEAAoE;IACrF,eAAe,EAAE,oEAAoE;IACrF,UAAU,EAAE,oEAAoE;IAChF,aAAa,EAAE,oEAAoE;CAC3E,CAAC;AAOX;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAmB;IAClD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,IAAI,eAAe,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAoB,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"procedures.js","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc,EAAE,oEAAoE;IACpF,0BAA0B,EAAE,oEAAoE;IAChG,OAAO,EAAE,oEAAoE;IAC7E,eAAe,EAAE,oEAAoE;IACrF,UAAU,EAAE,oEAAoE;IAChF,aAAa,EAAE,oEAAoE;CAC3E,CAAC;AAOX;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAmB;IAClD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,IAAI,eAAe,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAoB,CAAC;AACzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/proposal/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,qBAAa,qBAAqB;IAChC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,wBAAwB;IAuDvE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,wBAAwB,GAAG,gBAAgB;IAwF1E,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB;CA0C9D"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/proposal/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,qBAAa,qBAAqB;IAChC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,wBAAwB;IA6DvE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,wBAAwB,GAAG,gBAAgB;IA2F1E,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB;CA4C9D"}
@@ -1,5 +1,5 @@
1
1
  import { isProcedureName } from '../procedures.js';
2
- import { isP2idNoteVisibility } from '../types/proposal.js';
2
+ import { isP2idNoteVisibility, parseP2ideHeight } from '../types/proposal.js';
3
3
  export class ProposalMetadataCodec {
4
4
  static toGuardian(metadata) {
5
5
  const base = {
@@ -7,6 +7,7 @@ export class ProposalMetadataCodec {
7
7
  description: metadata.description,
8
8
  salt: metadata.saltHex,
9
9
  requiredSignatures: metadata.requiredSignatures,
10
+ chainAnchor: metadata.chainAnchor,
10
11
  };
11
12
  switch (metadata.proposalType) {
12
13
  case 'consume_notes':
@@ -26,6 +27,11 @@ export class ProposalMetadataCodec {
26
27
  // keeps the pre-#322 wire shape and matches the Rust encoder (which
27
28
  // round-trips through the NoteType enum). Absent => public.
28
29
  noteType: metadata.noteType === 'private' ? 'private' : undefined,
30
+ // Validated on encode too: the create path already rejects bad
31
+ // heights when building the note, but metadata handed directly to
32
+ // the codec must not reach the wire with a value cosigners reject.
33
+ reclaimHeight: parseP2ideHeight('reclaimHeight', metadata.reclaimHeight),
34
+ timelockHeight: parseP2ideHeight('timelockHeight', metadata.timelockHeight),
29
35
  };
30
36
  case 'switch_guardian':
31
37
  return {
@@ -62,6 +68,7 @@ export class ProposalMetadataCodec {
62
68
  description: guardian.description ?? '',
63
69
  saltHex: guardian.salt,
64
70
  requiredSignatures: guardian.requiredSignatures,
71
+ chainAnchor: guardian.chainAnchor,
65
72
  };
66
73
  switch (guardian.proposalType) {
67
74
  case 'p2id':
@@ -78,6 +85,8 @@ export class ProposalMetadataCodec {
78
85
  faucetId: guardian.faucetId,
79
86
  amount: guardian.amount,
80
87
  noteType: guardian.noteType,
88
+ reclaimHeight: parseP2ideHeight('reclaimHeight', guardian.reclaimHeight),
89
+ timelockHeight: parseP2ideHeight('timelockHeight', guardian.timelockHeight),
81
90
  };
82
91
  case 'consume_notes':
83
92
  if (!guardian.noteIds || guardian.noteIds.length === 0) {
@@ -129,7 +138,7 @@ export class ProposalMetadataCodec {
129
138
  };
130
139
  default:
131
140
  // Any proposal type the SDK does not model collapses to the 'custom'
132
- // bucket while preserving the original label (issue #266).
141
+ // bucket while preserving the original label.
133
142
  return {
134
143
  ...base,
135
144
  proposalType: 'custom',
@@ -170,6 +179,8 @@ export class ProposalMetadataCodec {
170
179
  if (metadata.noteType !== undefined && !isP2idNoteVisibility(metadata.noteType)) {
171
180
  throw new Error(`p2id proposal has unsupported noteType '${metadata.noteType}'`);
172
181
  }
182
+ parseP2ideHeight('reclaimHeight', metadata.reclaimHeight);
183
+ parseP2ideHeight('timelockHeight', metadata.timelockHeight);
173
184
  return metadata;
174
185
  case 'custom':
175
186
  // Custom proposals are opaque to the SDK; nothing to validate beyond
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/proposal/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/proposal/metadata.ts"],"names":[],"mappings":"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"}
@@ -133,4 +133,61 @@ describe('ProposalMetadataCodec p2id noteType (issue #322)', () => {
133
133
  expect(() => ProposalMetadataCodec.validate(md)).toThrow(/unsupported noteType/);
134
134
  });
135
135
  });
136
+ describe('ProposalMetadataCodec p2id P2IDE heights (issue #366)', () => {
137
+ const baseWire = {
138
+ proposalType: 'p2id',
139
+ recipientId: '0xrecipient',
140
+ faucetId: '0xfaucet',
141
+ amount: '1000',
142
+ };
143
+ it('round-trips reclaim and timelock heights through the codec', () => {
144
+ const md = ProposalMetadataCodec.fromGuardian({
145
+ ...baseWire,
146
+ reclaimHeight: 12345,
147
+ timelockHeight: 700,
148
+ });
149
+ expect(md.reclaimHeight).toBe(12345);
150
+ expect(md.timelockHeight).toBe(700);
151
+ const wire = ProposalMetadataCodec.toGuardian(md);
152
+ expect(wire.reclaimHeight).toBe(12345);
153
+ expect(wire.timelockHeight).toBe(700);
154
+ });
155
+ it('leaves heights absent for plain P2ID proposals (pre-#366 wire shape)', () => {
156
+ const md = ProposalMetadataCodec.fromGuardian(baseWire);
157
+ expect(md.reclaimHeight).toBeUndefined();
158
+ expect(md.timelockHeight).toBeUndefined();
159
+ const wire = ProposalMetadataCodec.toGuardian(md);
160
+ expect(wire.reclaimHeight).toBeUndefined();
161
+ expect(wire.timelockHeight).toBeUndefined();
162
+ });
163
+ it('fromGuardian rejects a zero height (encodes "no constraint" on-chain)', () => {
164
+ expect(() => ProposalMetadataCodec.fromGuardian({ ...baseWire, reclaimHeight: 0 })).toThrow(/unsupported reclaimHeight/);
165
+ });
166
+ it('fromGuardian rejects a non-integer or out-of-range height', () => {
167
+ expect(() => ProposalMetadataCodec.fromGuardian({ ...baseWire, timelockHeight: 1.5 })).toThrow(/unsupported timelockHeight/);
168
+ expect(() => ProposalMetadataCodec.fromGuardian({ ...baseWire, reclaimHeight: 0x1_0000_0000 })).toThrow(/unsupported reclaimHeight/);
169
+ });
170
+ it('validate rejects an invalid height', () => {
171
+ const md = {
172
+ proposalType: 'p2id',
173
+ description: '',
174
+ recipientId: '0xrecipient',
175
+ faucetId: '0xfaucet',
176
+ amount: '1000',
177
+ reclaimHeight: -1,
178
+ };
179
+ expect(() => ProposalMetadataCodec.validate(md)).toThrow(/unsupported reclaimHeight/);
180
+ });
181
+ it('toGuardian rejects an invalid height instead of emitting it on the wire', () => {
182
+ const base = {
183
+ proposalType: 'p2id',
184
+ description: '',
185
+ recipientId: '0xrecipient',
186
+ faucetId: '0xfaucet',
187
+ amount: '1000',
188
+ };
189
+ expect(() => ProposalMetadataCodec.toGuardian({ ...base, reclaimHeight: 0 })).toThrow(/unsupported reclaimHeight/);
190
+ expect(() => ProposalMetadataCodec.toGuardian({ ...base, timelockHeight: 1.5 })).toThrow(/unsupported timelockHeight/);
191
+ });
192
+ });
136
193
  //# sourceMappingURL=metadata.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.test.js","sourceRoot":"","sources":["../../src/proposal/metadata.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.test.js","sourceRoot":"","sources":["../../src/proposal/metadata.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,7 @@
1
+ /**
2
+ * Prover-policy classification: the shared classifier with no transport-text
3
+ * extras — a bare "connection error" from a prover is treated as its
4
+ * considered answer.
5
+ */
1
6
  export declare function isTransientProverError(error: unknown): boolean;
2
7
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/prover/errors.ts"],"names":[],"mappings":"AA4HA,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAqD9D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/prover/errors.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9D"}
@@ -1,158 +1,10 @@
1
- const TRANSIENT_GRPC = new Set([
2
- 'cancelled',
3
- 'canceled',
4
- 'deadlineexceeded',
5
- 'unavailable',
6
- 'resourceexhausted',
7
- ]);
8
- const PERMANENT_GRPC = new Set([
9
- 'invalidargument',
10
- 'failedprecondition',
11
- 'permissiondenied',
12
- 'unauthenticated',
13
- 'notfound',
14
- 'alreadyexists',
15
- 'outofrange',
16
- 'unimplemented',
17
- 'aborted',
18
- 'internal',
19
- 'dataloss',
20
- ]);
21
- const TRANSIENT_HTTP = new Set([408, 429, 502, 503, 504]);
22
- const NUMERIC_GRPC_CODES = new Map([
23
- [0, 'ok'],
24
- [1, 'cancelled'],
25
- [2, 'unknown'],
26
- [3, 'invalidargument'],
27
- [4, 'deadlineexceeded'],
28
- [5, 'notfound'],
29
- [6, 'alreadyexists'],
30
- [7, 'permissiondenied'],
31
- [8, 'resourceexhausted'],
32
- [9, 'failedprecondition'],
33
- [10, 'aborted'],
34
- [11, 'outofrange'],
35
- [12, 'unimplemented'],
36
- [13, 'internal'],
37
- [14, 'unavailable'],
38
- [15, 'dataloss'],
39
- [16, 'unauthenticated'],
40
- ]);
41
- function normalizeCode(value) {
42
- if (typeof value === 'number') {
43
- return NUMERIC_GRPC_CODES.get(value);
44
- }
45
- return typeof value === 'string' ? value.replaceAll(/[\s_-]/g, '').toLowerCase() : undefined;
46
- }
47
- function grpcEvidence(value) {
48
- const code = normalizeCode(value);
49
- if (code === undefined) {
50
- return undefined;
51
- }
52
- if (TRANSIENT_GRPC.has(code)) {
53
- return 'transient';
54
- }
55
- if (PERMANENT_GRPC.has(code)) {
56
- return 'permanent';
57
- }
58
- if (code === 'unknown' || code === 'ok') {
59
- return 'indeterminate';
60
- }
61
- return undefined;
62
- }
63
- function httpEvidence(value) {
64
- if (typeof value !== 'number' || !Number.isInteger(value) || value < 400 || value > 599) {
65
- return undefined;
66
- }
67
- return TRANSIENT_HTTP.has(value) ? 'transient' : 'permanent';
68
- }
69
- function httpMessageEvidence(message) {
70
- let hasTransient = false;
71
- for (const match of message.matchAll(/(?:\bhttp(?:\s+status)?|\bstatus\s*:?)\s*(\d{3})\b/g)) {
72
- const evidence = httpEvidence(Number(match[1]));
73
- if (evidence === 'permanent') {
74
- return 'permanent';
75
- }
76
- hasTransient ||= evidence === 'transient';
77
- }
78
- return hasTransient ? 'transient' : undefined;
79
- }
80
- function flattenedTransient(message) {
81
- return [
82
- 'cancelled',
83
- 'canceled',
84
- 'deadline exceeded',
85
- 'timeout',
86
- 'unavailable',
87
- 'resource exhausted',
88
- 'request timeout',
89
- 'too many requests',
90
- 'rate limited',
91
- 'rate limit',
92
- 'bad gateway',
93
- 'service unavailable',
94
- 'gateway timeout',
95
- 'i/o timeout',
96
- 'io timeout',
97
- 'connection reset',
98
- 'broken pipe',
99
- ].some((signal) => message.includes(signal));
100
- }
101
- function asRecord(value) {
102
- return typeof value === 'object' && value !== null ? value : undefined;
103
- }
1
+ import { isTransientError } from '../retry/classify.js';
2
+ /**
3
+ * Prover-policy classification: the shared classifier with no transport-text
4
+ * extras — a bare "connection error" from a prover is treated as its
5
+ * considered answer.
6
+ */
104
7
  export function isTransientProverError(error) {
105
- const seen = new Set();
106
- const messages = [];
107
- let hasTransient = false;
108
- let hasPermanent = false;
109
- let current = error;
110
- while (current !== undefined && current !== null) {
111
- const record = asRecord(current);
112
- if (record !== undefined) {
113
- if (seen.has(record)) {
114
- break;
115
- }
116
- seen.add(record);
117
- for (const evidence of [
118
- grpcEvidence(record.code),
119
- httpEvidence(record.status),
120
- httpEvidence(record.statusCode),
121
- ]) {
122
- hasTransient ||= evidence === 'transient';
123
- hasPermanent ||= evidence === 'permanent';
124
- }
125
- if (typeof record.message === 'string') {
126
- const message = record.message.toLowerCase();
127
- messages.push(message);
128
- const evidence = httpMessageEvidence(message);
129
- hasTransient ||= evidence === 'transient';
130
- hasPermanent ||= evidence === 'permanent';
131
- }
132
- else {
133
- const message = String(current).toLowerCase();
134
- messages.push(message);
135
- const evidence = httpMessageEvidence(message);
136
- hasTransient ||= evidence === 'transient';
137
- hasPermanent ||= evidence === 'permanent';
138
- }
139
- current = record.cause;
140
- }
141
- else {
142
- const message = String(current).toLowerCase();
143
- messages.push(message);
144
- const evidence = httpMessageEvidence(message);
145
- hasTransient ||= evidence === 'transient';
146
- hasPermanent ||= evidence === 'permanent';
147
- break;
148
- }
149
- }
150
- if (hasPermanent) {
151
- return false;
152
- }
153
- if (hasTransient) {
154
- return true;
155
- }
156
- return messages.some(flattenedTransient);
8
+ return isTransientError(error);
157
9
  }
158
10
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/prover/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/prover/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
@@ -20,5 +20,10 @@ describe('isTransientProverError', () => {
20
20
  expect(isTransientProverError({ code: 14, message: 'unavailable' })).toBe(true);
21
21
  expect(isTransientProverError({ code: 3, message: 'timeout text' })).toBe(false);
22
22
  });
23
+ it('reads grpc code wording out of plain message text', () => {
24
+ expect(isTransientProverError(new Error('grpc code: NotFound'))).toBe(false);
25
+ expect(isTransientProverError(new Error('grpc code: Internal; nested timeout'))).toBe(false);
26
+ expect(isTransientProverError(new Error('grpc code: Unavailable'))).toBe(true);
27
+ });
23
28
  });
24
29
  //# sourceMappingURL=errors.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../src/prover/errors.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAiBrD,SAAS,QAAQ;IACf,OAAO,IAAI,CAAC,KAAK,CACf,YAAY,CACV,IAAI,GAAG,CACL,wEAAwE,EACxE,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,EACD,MAAM,CACP,CACU,CAAC;AAChB,CAAC;AAED,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC,eAAe,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CACrC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,EACrC,SAAS,CACV,CAAC;YACF,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAC1E,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChF,MAAM,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../src/prover/errors.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAiBrD,SAAS,QAAQ;IACf,OAAO,IAAI,CAAC,KAAK,CACf,YAAY,CACV,IAAI,GAAG,CACL,wEAAwE,EACxE,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,EACD,MAAM,CACP,CACU,CAAC;AAChB,CAAC;AAED,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC,eAAe,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CACrC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,EACrC,SAAS,CACV,CAAC;YACF,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAC1E,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChF,MAAM,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7E,MAAM,CACJ,sBAAsB,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CACzE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,MAAM,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,10 +1,5 @@
1
1
  import type { TransactionExecution, TransactionProof } from '@miden-sdk/miden-sdk';
2
2
  import type { ResolvedProverConfig } from './config.js';
3
- export interface RetryRuntime {
4
- sleep(delayMs: number): Promise<void>;
5
- unitRandom(): number;
6
- }
7
- export declare const productionRetryRuntime: RetryRuntime;
8
- export declare function retryDelay(retryIndex: number, unitRandom: number): number;
3
+ import type { RetryRuntime } from '../retry/runtime.js';
9
4
  export declare function proveWithRetry(execution: TransactionExecution, config: ResolvedProverConfig, runtime?: RetryRuntime): Promise<TransactionProof>;
10
5
  //# sourceMappingURL=retry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/prover/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAMxD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,UAAU,IAAI,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,sBAAsB,EAAE,YAGpC,CAAC;AAEF,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED,wBAAsB,cAAc,CAClC,SAAS,EAAE,oBAAoB,EAC/B,MAAM,EAAE,oBAAoB,EAC5B,OAAO,GAAE,YAAqC,GAC7C,OAAO,CAAC,gBAAgB,CAAC,CAgB3B"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/prover/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,wBAAsB,cAAc,CAClC,SAAS,EAAE,oBAAoB,EAC/B,MAAM,EAAE,oBAAoB,EAC5B,OAAO,GAAE,YAAqC,GAC7C,OAAO,CAAC,gBAAgB,CAAC,CAU3B"}
@@ -1,32 +1,9 @@
1
1
  import { isTransientProverError } from './errors.js';
2
- const BASE_DELAY_MS = 500;
3
- const MAX_DELAY_MS = 8_000;
4
- export const productionRetryRuntime = {
5
- sleep: (delayMs) => new Promise((resolve) => setTimeout(resolve, delayMs)),
6
- unitRandom: () => Math.random(),
7
- };
8
- export function retryDelay(retryIndex, unitRandom) {
9
- const exponent = Math.min(retryIndex, 1023);
10
- const raw = BASE_DELAY_MS * 2 ** exponent;
11
- const finiteRandom = Number.isFinite(unitRandom) ? unitRandom : 0.5;
12
- const boundedRandom = Math.min(Math.max(finiteRandom, 0), 1 - Number.EPSILON);
13
- return Math.min(Math.floor(raw * (0.75 + boundedRandom * 0.5)), MAX_DELAY_MS);
14
- }
2
+ import { productionRetryRuntime, retryTransient } from '../retry/runtime.js';
15
3
  export async function proveWithRetry(execution, config, runtime = productionRetryRuntime) {
16
- for (let attempt = 0; attempt < config.maxAttempts; attempt += 1) {
17
- try {
18
- const prover = config.createProver();
19
- return prover === undefined
20
- ? await execution.prove()
21
- : await execution.prove({ prover });
22
- }
23
- catch (error) {
24
- if (!isTransientProverError(error) || attempt + 1 >= config.maxAttempts) {
25
- throw error;
26
- }
27
- await runtime.sleep(retryDelay(attempt, runtime.unitRandom()));
28
- }
29
- }
30
- throw new Error('unreachable prover retry state');
4
+ return retryTransient(async () => {
5
+ const prover = config.createProver();
6
+ return prover === undefined ? await execution.prove() : await execution.prove({ prover });
7
+ }, config.maxAttempts, isTransientProverError, runtime);
31
8
  }
32
9
  //# sourceMappingURL=retry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/prover/retry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,YAAY,GAAG,KAAK,CAAC;AAO3B,MAAM,CAAC,MAAM,sBAAsB,GAAiB;IAClD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1E,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;CAChC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,UAAkB,EAAE,UAAkB;IAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,aAAa,GAAG,CAAC,IAAI,QAAQ,CAAC;IAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9E,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAA+B,EAC/B,MAA4B,EAC5B,UAAwB,sBAAsB;IAE9C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YACrC,OAAO,MAAM,KAAK,SAAS;gBACzB,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE;gBACzB,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxE,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/prover/retry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE7E,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAA+B,EAC/B,MAA4B,EAC5B,UAAwB,sBAAsB;IAE9C,OAAO,cAAc,CACnB,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACrC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5F,CAAC,EACD,MAAM,CAAC,WAAW,EAClB,sBAAsB,EACtB,OAAO,CACR,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { describe, expect, it } from 'vitest';
3
- import { retryDelay } from './retry.js';
3
+ import { retryDelay } from '../retry/runtime.js';
4
4
  function fixtures() {
5
5
  return JSON.parse(readFileSync(new URL('../../../../fixtures/miden-multisig-client/prover-policy-fixtures.json', import.meta.url), 'utf8'));
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retry.test.js","sourceRoot":"","sources":["../../src/prover/retry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMxC,SAAS,QAAQ;IACf,OAAO,IAAI,CAAC,KAAK,CACf,YAAY,CACV,IAAI,GAAG,CACL,wEAAwE,EACxE,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,EACD,MAAM,CACP,CACU,CAAC;AAChB,CAAC;AAED,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CACvE,+CAA+C,EAC/C,CAAC,UAAU,EAAE,EAAE;QACb,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"retry.test.js","sourceRoot":"","sources":["../../src/prover/retry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMjD,SAAS,QAAQ;IACf,OAAO,IAAI,CAAC,KAAK,CACf,YAAY,CACV,IAAI,GAAG,CACL,wEAAwE,EACxE,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,EACD,MAAM,CACP,CACU,CAAC;AAChB,CAAC;AAED,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CACvE,+CAA+C,EAC/C,CAAC,UAAU,EAAE,EAAE;QACb,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,11 +1,12 @@
1
- import type { AccountId, MidenClient, TransactionRequest } from '@miden-sdk/miden-sdk';
1
+ import type { AccountId, ChainAnchor, MidenClient, TransactionRequest } from '@miden-sdk/miden-sdk';
2
2
  import type { ResolvedProverConfig } from './config.js';
3
- import type { RetryRuntime } from './retry.js';
3
+ import type { RetryRuntime } from '../retry/runtime.js';
4
4
  export declare class ProverWorkflow {
5
5
  private readonly client;
6
6
  private readonly config;
7
7
  private readonly runtime?;
8
8
  constructor(client: MidenClient, config: ResolvedProverConfig, runtime?: RetryRuntime | undefined);
9
- submit(accountId: AccountId, request: TransactionRequest): Promise<void>;
9
+ /** Proves, submits, and applies a request at its signed chain anchor. */
10
+ submitAt(accountId: AccountId, request: TransactionRequest, anchor: ChainAnchor): Promise<void>;
10
11
  }
11
12
  //# sourceMappingURL=workflow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/prover/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAFR,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,YAAY,YAAA;IAGnC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAM/E"}
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/prover/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAFR,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,YAAY,YAAA;IAGzC,yEAAyE;IACnE,QAAQ,CACZ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC;CAQjB"}
@@ -8,8 +8,11 @@ export class ProverWorkflow {
8
8
  this.config = config;
9
9
  this.runtime = runtime;
10
10
  }
11
- async submit(accountId, request) {
12
- const execution = await this.client.transactions.executeRequest(accountId, request);
11
+ /** Proves, submits, and applies a request at its signed chain anchor. */
12
+ async submitAt(accountId, request, anchor) {
13
+ const execution = await this.client.transactions.executeRequest(accountId, request, {
14
+ anchor,
15
+ });
13
16
  const proof = await proveWithRetry(execution, this.config, this.runtime);
14
17
  const submission = await proof.submit();
15
18
  await submission.apply();
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/prover/workflow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,OAAO,cAAc;IAEN;IACA;IACA;IAHnB,YACmB,MAAmB,EACnB,MAA4B,EAC5B,OAAsB;QAFtB,WAAM,GAAN,MAAM,CAAa;QACnB,WAAM,GAAN,MAAM,CAAsB;QAC5B,YAAO,GAAP,OAAO,CAAe;IACtC,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,SAAoB,EAAE,OAA2B;QAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/prover/workflow.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,OAAO,cAAc;IAEN;IACA;IACA;IAHnB,YACmB,MAAmB,EACnB,MAA4B,EAC5B,OAAsB;QAFtB,WAAM,GAAN,MAAM,CAAa;QACnB,WAAM,GAAN,MAAM,CAAsB;QAC5B,YAAO,GAAP,OAAO,CAAe;IACtC,CAAC;IAEJ,yEAAyE;IACzE,KAAK,CAAC,QAAQ,CACZ,SAAoB,EACpB,OAA2B,EAC3B,MAAmB;QAEnB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE;YAClF,MAAM;SACP,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF"}