@aztec/stdlib 5.0.0-rc.2 → 5.0.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 (196) hide show
  1. package/dest/block/attestation_info.d.ts +1 -1
  2. package/dest/block/attestation_info.d.ts.map +1 -1
  3. package/dest/block/attestation_info.js +7 -4
  4. package/dest/block/l2_block_source.d.ts +34 -3
  5. package/dest/block/l2_block_source.d.ts.map +1 -1
  6. package/dest/block/l2_block_source.js +15 -0
  7. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts +39 -0
  8. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts.map +1 -0
  9. package/dest/block/l2_block_stream/event_driven_l2_block_stream.js +165 -0
  10. package/dest/block/l2_block_stream/index.d.ts +2 -1
  11. package/dest/block/l2_block_stream/index.d.ts.map +1 -1
  12. package/dest/block/l2_block_stream/index.js +1 -0
  13. package/dest/block/l2_block_stream/interfaces.d.ts +16 -2
  14. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  15. package/dest/block/l2_block_stream/interfaces.js +25 -1
  16. package/dest/block/l2_block_stream/l2_block_stream.d.ts +21 -35
  17. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  18. package/dest/block/l2_block_stream/l2_block_stream.js +5 -30
  19. package/dest/block/proposal/attestations_and_signers.d.ts +19 -1
  20. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  21. package/dest/block/proposal/attestations_and_signers.js +47 -7
  22. package/dest/block/validate_block_result.d.ts +16 -1
  23. package/dest/block/validate_block_result.d.ts.map +1 -1
  24. package/dest/block/validate_block_result.js +18 -3
  25. package/dest/config/network-consensus-config.d.ts +1 -1
  26. package/dest/config/network-consensus-config.d.ts.map +1 -1
  27. package/dest/config/network-consensus-config.js +2 -10
  28. package/dest/contract/contract_address.d.ts +5 -4
  29. package/dest/contract/contract_address.d.ts.map +1 -1
  30. package/dest/contract/contract_instance.d.ts +16 -2
  31. package/dest/contract/contract_instance.d.ts.map +1 -1
  32. package/dest/contract/contract_instance.js +45 -0
  33. package/dest/contract/interfaces/contract_instance.d.ts +71 -10
  34. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  35. package/dest/contract/interfaces/contract_instance.js +7 -2
  36. package/dest/contract/partial_address.d.ts +9 -3
  37. package/dest/contract/partial_address.d.ts.map +1 -1
  38. package/dest/contract/partial_address.js +8 -2
  39. package/dest/database-version/version_manager.d.ts +18 -4
  40. package/dest/database-version/version_manager.d.ts.map +1 -1
  41. package/dest/database-version/version_manager.js +76 -6
  42. package/dest/ha-signing/config.d.ts +19 -5
  43. package/dest/ha-signing/config.d.ts.map +1 -1
  44. package/dest/ha-signing/config.js +9 -3
  45. package/dest/ha-signing/local_config.d.ts +10 -2
  46. package/dest/ha-signing/local_config.d.ts.map +1 -1
  47. package/dest/ha-signing/local_config.js +8 -2
  48. package/dest/hash/hash.d.ts +1 -2
  49. package/dest/hash/hash.d.ts.map +1 -1
  50. package/dest/hash/hash.js +0 -7
  51. package/dest/interfaces/archiver.d.ts +8 -1
  52. package/dest/interfaces/archiver.d.ts.map +1 -1
  53. package/dest/interfaces/archiver.js +2 -1
  54. package/dest/interfaces/aztec-node-admin.d.ts +5 -2
  55. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  56. package/dest/interfaces/configs.d.ts +4 -1
  57. package/dest/interfaces/configs.d.ts.map +1 -1
  58. package/dest/interfaces/configs.js +1 -0
  59. package/dest/interfaces/private_kernel_prover.d.ts +9 -11
  60. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  61. package/dest/interfaces/proving-job.d.ts +87 -74
  62. package/dest/interfaces/proving-job.d.ts.map +1 -1
  63. package/dest/interfaces/proving-job.js +13 -4
  64. package/dest/interfaces/server_circuit_prover.d.ts +3 -3
  65. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  66. package/dest/interfaces/validator.d.ts +7 -3
  67. package/dest/interfaces/validator.d.ts.map +1 -1
  68. package/dest/interfaces/world_state.d.ts +14 -1
  69. package/dest/interfaces/world_state.d.ts.map +1 -1
  70. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +8 -2
  71. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts.map +1 -1
  72. package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +12 -74
  73. package/dest/kernel/index.d.ts +2 -2
  74. package/dest/kernel/index.d.ts.map +1 -1
  75. package/dest/kernel/index.js +1 -1
  76. package/dest/kernel/private_circuit_public_inputs.d.ts +13 -3
  77. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  78. package/dest/kernel/private_circuit_public_inputs.js +14 -7
  79. package/dest/kernel/private_context_inputs.d.ts +4 -3
  80. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  81. package/dest/kernel/private_context_inputs.js +7 -3
  82. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +7 -1
  83. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  84. package/dest/kernel/private_kernel_circuit_public_inputs.js +7 -0
  85. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +2 -3
  86. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -1
  87. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +3 -5
  88. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +2 -3
  89. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -1
  90. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +3 -5
  91. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -9
  92. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  93. package/dest/kernel/private_kernel_init_circuit_private_inputs.js +2 -6
  94. package/dest/kernel/private_kernel_reset_dimensions.d.ts +7 -8
  95. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  96. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts +29 -0
  97. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts.map +1 -0
  98. package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.js +36 -0
  99. package/dest/keys/derivation.d.ts +41 -6
  100. package/dest/keys/derivation.d.ts.map +1 -1
  101. package/dest/keys/derivation.js +49 -26
  102. package/dest/logs/app_tagging_secret.d.ts +16 -8
  103. package/dest/logs/app_tagging_secret.d.ts.map +1 -1
  104. package/dest/logs/app_tagging_secret.js +24 -27
  105. package/dest/logs/index.d.ts +1 -3
  106. package/dest/logs/index.d.ts.map +1 -1
  107. package/dest/logs/index.js +0 -2
  108. package/dest/logs/shared_secret_derivation.d.ts +19 -6
  109. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  110. package/dest/logs/shared_secret_derivation.js +26 -11
  111. package/dest/messaging/l1_to_l2_message.d.ts +23 -2
  112. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  113. package/dest/messaging/l1_to_l2_message.js +36 -11
  114. package/dest/p2p/attestation_utils.d.ts +1 -1
  115. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  116. package/dest/p2p/attestation_utils.js +8 -1
  117. package/dest/p2p/checkpoint_attestation.d.ts +9 -1
  118. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  119. package/dest/p2p/checkpoint_attestation.js +10 -0
  120. package/dest/p2p/signature_utils.d.ts +10 -1
  121. package/dest/p2p/signature_utils.d.ts.map +1 -1
  122. package/dest/p2p/signature_utils.js +9 -1
  123. package/dest/rollup/avm_proof_data.d.ts +3 -3
  124. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  125. package/dest/stats/stats.d.ts +2 -2
  126. package/dest/stats/stats.d.ts.map +1 -1
  127. package/dest/tests/factories.d.ts +1 -1
  128. package/dest/tests/factories.d.ts.map +1 -1
  129. package/dest/tests/factories.js +4 -3
  130. package/dest/tx/private_tx_constant_data.d.ts +18 -2
  131. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  132. package/dest/tx/private_tx_constant_data.js +13 -4
  133. package/dest/tx/simulated_tx.d.ts +10 -6
  134. package/dest/tx/simulated_tx.d.ts.map +1 -1
  135. package/dest/world-state/genesis_data.d.ts +9 -1
  136. package/dest/world-state/genesis_data.d.ts.map +1 -1
  137. package/dest/world-state/genesis_data.js +1 -0
  138. package/package.json +8 -8
  139. package/src/block/attestation_info.ts +7 -2
  140. package/src/block/l2_block_source.ts +54 -2
  141. package/src/block/l2_block_stream/event_driven_l2_block_stream.ts +207 -0
  142. package/src/block/l2_block_stream/index.ts +1 -0
  143. package/src/block/l2_block_stream/interfaces.ts +35 -1
  144. package/src/block/l2_block_stream/l2_block_stream.ts +35 -62
  145. package/src/block/proposal/attestations_and_signers.ts +53 -7
  146. package/src/block/validate_block_result.ts +48 -2
  147. package/src/config/network-consensus-config.ts +2 -13
  148. package/src/contract/contract_address.ts +4 -3
  149. package/src/contract/contract_instance.ts +62 -1
  150. package/src/contract/interfaces/contract_instance.ts +26 -8
  151. package/src/contract/partial_address.ts +8 -2
  152. package/src/database-version/version_manager.ts +96 -6
  153. package/src/ha-signing/config.ts +23 -5
  154. package/src/ha-signing/local_config.ts +20 -1
  155. package/src/hash/hash.ts +0 -8
  156. package/src/interfaces/archiver.ts +8 -0
  157. package/src/interfaces/configs.ts +3 -0
  158. package/src/interfaces/private_kernel_prover.ts +10 -12
  159. package/src/interfaces/proving-job.ts +15 -3
  160. package/src/interfaces/server_circuit_prover.ts +2 -2
  161. package/src/interfaces/world_state.ts +14 -0
  162. package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +22 -112
  163. package/src/kernel/index.ts +1 -1
  164. package/src/kernel/private_circuit_public_inputs.ts +12 -1
  165. package/src/kernel/private_context_inputs.ts +10 -3
  166. package/src/kernel/private_kernel_circuit_public_inputs.ts +9 -0
  167. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +0 -3
  168. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +0 -3
  169. package/src/kernel/private_kernel_init_circuit_private_inputs.ts +0 -6
  170. package/src/kernel/private_kernel_reset_dimensions.ts +15 -5
  171. package/src/kernel/private_kernel_reset_tail_circuit_private_inputs.ts +69 -0
  172. package/src/keys/derivation.ts +69 -24
  173. package/src/logs/app_tagging_secret.ts +34 -27
  174. package/src/logs/index.ts +0 -2
  175. package/src/logs/shared_secret_derivation.ts +31 -15
  176. package/src/messaging/l1_to_l2_message.ts +51 -13
  177. package/src/p2p/attestation_utils.ts +8 -1
  178. package/src/p2p/checkpoint_attestation.ts +12 -0
  179. package/src/p2p/signature_utils.ts +9 -0
  180. package/src/rollup/avm_proof_data.ts +2 -2
  181. package/src/stats/stats.ts +2 -2
  182. package/src/tests/factories.ts +3 -6
  183. package/src/tx/private_tx_constant_data.ts +25 -2
  184. package/src/world-state/genesis_data.ts +10 -0
  185. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +0 -47
  186. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +0 -1
  187. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +0 -38
  188. package/dest/logs/message_context.d.ts +0 -17
  189. package/dest/logs/message_context.d.ts.map +0 -1
  190. package/dest/logs/message_context.js +0 -9
  191. package/dest/logs/pending_tagged_log.d.ts +0 -11
  192. package/dest/logs/pending_tagged_log.d.ts.map +0 -1
  193. package/dest/logs/pending_tagged_log.js +0 -4
  194. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +0 -58
  195. package/src/logs/message_context.ts +0 -18
  196. package/src/logs/pending_tagged_log.ts +0 -12
@@ -14,9 +14,8 @@ import { PrivateCallData } from './private_call_data.js';
14
14
  privateCall1;
15
15
  privateCall2;
16
16
  isPrivateOnly;
17
- firstNullifierHint;
18
17
  revertibleCounterHint;
19
- constructor(txRequest, vkTreeRoot, protocolContracts, privateCall0, privateCall1, privateCall2, isPrivateOnly, firstNullifierHint, revertibleCounterHint){
18
+ constructor(txRequest, vkTreeRoot, protocolContracts, privateCall0, privateCall1, privateCall2, isPrivateOnly, revertibleCounterHint){
20
19
  this.txRequest = txRequest;
21
20
  this.vkTreeRoot = vkTreeRoot;
22
21
  this.protocolContracts = protocolContracts;
@@ -24,14 +23,13 @@ import { PrivateCallData } from './private_call_data.js';
24
23
  this.privateCall1 = privateCall1;
25
24
  this.privateCall2 = privateCall2;
26
25
  this.isPrivateOnly = isPrivateOnly;
27
- this.firstNullifierHint = firstNullifierHint;
28
26
  this.revertibleCounterHint = revertibleCounterHint;
29
27
  }
30
28
  toBuffer() {
31
- return serializeToBuffer(this.txRequest, this.vkTreeRoot, this.protocolContracts, this.privateCall0, this.privateCall1, this.privateCall2, this.firstNullifierHint, this.revertibleCounterHint);
29
+ return serializeToBuffer(this.txRequest, this.vkTreeRoot, this.protocolContracts, this.privateCall0, this.privateCall1, this.privateCall2, this.revertibleCounterHint);
32
30
  }
33
31
  static fromBuffer(buffer) {
34
32
  const reader = BufferReader.asReader(buffer);
35
- return new PrivateKernelInit3CircuitPrivateInputs(reader.readObject(TxRequest), Fr.fromBuffer(reader), reader.readObject(ProtocolContracts), reader.readObject(PrivateCallData), reader.readObject(PrivateCallData), reader.readObject(PrivateCallData), reader.readBoolean(), Fr.fromBuffer(reader), reader.readNumber());
33
+ return new PrivateKernelInit3CircuitPrivateInputs(reader.readObject(TxRequest), Fr.fromBuffer(reader), reader.readObject(ProtocolContracts), reader.readObject(PrivateCallData), reader.readObject(PrivateCallData), reader.readObject(PrivateCallData), reader.readBoolean(), reader.readNumber());
36
34
  }
37
35
  }
@@ -27,10 +27,6 @@ export declare class PrivateKernelInitCircuitPrivateInputs {
27
27
  * Wether this tx will make public calls or not.
28
28
  */
29
29
  isPrivateOnly: boolean;
30
- /**
31
- * A hint to what will be the first nullifier of the transaction, used for nonce generation.
32
- */
33
- firstNullifierHint: Fr;
34
30
  /**
35
31
  * A claim to the final min revertible side effect counter of a tx.
36
32
  */
@@ -56,10 +52,6 @@ export declare class PrivateKernelInitCircuitPrivateInputs {
56
52
  * Wether this tx will make public calls or not.
57
53
  */
58
54
  isPrivateOnly: boolean,
59
- /**
60
- * A hint to what will be the first nullifier of the transaction, used for nonce generation.
61
- */
62
- firstNullifierHint: Fr,
63
55
  /**
64
56
  * A claim to the final min revertible side effect counter of a tx.
65
57
  */
@@ -76,4 +68,4 @@ export declare class PrivateKernelInitCircuitPrivateInputs {
76
68
  */
77
69
  static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelInitCircuitPrivateInputs;
78
70
  }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfaW5pdF9jaXJjdWl0X3ByaXZhdGVfaW5wdXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2VybmVsL3ByaXZhdGVfa2VybmVsX2luaXRfY2lyY3VpdF9wcml2YXRlX2lucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpEOztHQUVHO0FBQ0gscUJBQWEscUNBQXFDO0lBRTlDOztPQUVHO0lBQ0ksU0FBUyxFQUFFLFNBQVM7SUFDM0I7O09BRUc7SUFDSSxVQUFVLEVBQUUsRUFBRTtJQUNyQjs7T0FFRztJQUNJLGlCQUFpQixFQUFFLGlCQUFpQjtJQUMzQzs7T0FFRztJQUNJLFdBQVcsRUFBRSxlQUFlO0lBQ25DOztPQUVHO0lBQ0ksYUFBYSxFQUFFLE9BQU87SUFDN0I7O09BRUc7SUFDSSxrQkFBa0IsRUFBRSxFQUFFO0lBQzdCOztPQUVHO0lBQ0kscUJBQXFCLEVBQUUsTUFBTTtJQTVCdEM7SUFDRTs7T0FFRztJQUNJLFNBQVMsRUFBRSxTQUFTO0lBQzNCOztPQUVHO0lBQ0ksVUFBVSxFQUFFLEVBQUU7SUFDckI7O09BRUc7SUFDSSxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDM0M7O09BRUc7SUFDSSxXQUFXLEVBQUUsZUFBZTtJQUNuQzs7T0FFRztJQUNJLGFBQWEsRUFBRSxPQUFPO0lBQzdCOztPQUVHO0lBQ0ksa0JBQWtCLEVBQUUsRUFBRTtJQUM3Qjs7T0FFRztJQUNJLHFCQUFxQixFQUFFLE1BQU0sRUFDbEM7SUFFSjs7O09BR0c7SUFDSCxRQUFRLDRCQVNQO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcscUNBQXFDLENBV3RGO0NBQ0YifQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfaW5pdF9jaXJjdWl0X3ByaXZhdGVfaW5wdXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2VybmVsL3ByaXZhdGVfa2VybmVsX2luaXRfY2lyY3VpdF9wcml2YXRlX2lucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpEOztHQUVHO0FBQ0gscUJBQWEscUNBQXFDO0lBRTlDOztPQUVHO0lBQ0ksU0FBUyxFQUFFLFNBQVM7SUFDM0I7O09BRUc7SUFDSSxVQUFVLEVBQUUsRUFBRTtJQUNyQjs7T0FFRztJQUNJLGlCQUFpQixFQUFFLGlCQUFpQjtJQUMzQzs7T0FFRztJQUNJLFdBQVcsRUFBRSxlQUFlO0lBQ25DOztPQUVHO0lBQ0ksYUFBYSxFQUFFLE9BQU87SUFDN0I7O09BRUc7SUFDSSxxQkFBcUIsRUFBRSxNQUFNO0lBeEJ0QztJQUNFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLFNBQVM7SUFDM0I7O09BRUc7SUFDSSxVQUFVLEVBQUUsRUFBRTtJQUNyQjs7T0FFRztJQUNJLGlCQUFpQixFQUFFLGlCQUFpQjtJQUMzQzs7T0FFRztJQUNJLFdBQVcsRUFBRSxlQUFlO0lBQ25DOztPQUVHO0lBQ0ksYUFBYSxFQUFFLE9BQU87SUFDN0I7O09BRUc7SUFDSSxxQkFBcUIsRUFBRSxNQUFNLEVBQ2xDO0lBRUo7OztPQUdHO0lBQ0gsUUFBUSw0QkFRUDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLHFDQUFxQyxDQVV0RjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"private_kernel_init_circuit_private_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_init_circuit_private_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,qBAAa,qCAAqC;IAE9C;;OAEG;IACI,SAAS,EAAE,SAAS;IAC3B;;OAEG;IACI,UAAU,EAAE,EAAE;IACrB;;OAEG;IACI,iBAAiB,EAAE,iBAAiB;IAC3C;;OAEG;IACI,WAAW,EAAE,eAAe;IACnC;;OAEG;IACI,aAAa,EAAE,OAAO;IAC7B;;OAEG;IACI,kBAAkB,EAAE,EAAE;IAC7B;;OAEG;IACI,qBAAqB,EAAE,MAAM;IA5BtC;IACE;;OAEG;IACI,SAAS,EAAE,SAAS;IAC3B;;OAEG;IACI,UAAU,EAAE,EAAE;IACrB;;OAEG;IACI,iBAAiB,EAAE,iBAAiB;IAC3C;;OAEG;IACI,WAAW,EAAE,eAAe;IACnC;;OAEG;IACI,aAAa,EAAE,OAAO;IAC7B;;OAEG;IACI,kBAAkB,EAAE,EAAE;IAC7B;;OAEG;IACI,qBAAqB,EAAE,MAAM,EAClC;IAEJ;;;OAGG;IACH,QAAQ,4BASP;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,qCAAqC,CAWtF;CACF"}
1
+ {"version":3,"file":"private_kernel_init_circuit_private_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_init_circuit_private_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,qBAAa,qCAAqC;IAE9C;;OAEG;IACI,SAAS,EAAE,SAAS;IAC3B;;OAEG;IACI,UAAU,EAAE,EAAE;IACrB;;OAEG;IACI,iBAAiB,EAAE,iBAAiB;IAC3C;;OAEG;IACI,WAAW,EAAE,eAAe;IACnC;;OAEG;IACI,aAAa,EAAE,OAAO;IAC7B;;OAEG;IACI,qBAAqB,EAAE,MAAM;IAxBtC;IACE;;OAEG;IACI,SAAS,EAAE,SAAS;IAC3B;;OAEG;IACI,UAAU,EAAE,EAAE;IACrB;;OAEG;IACI,iBAAiB,EAAE,iBAAiB;IAC3C;;OAEG;IACI,WAAW,EAAE,eAAe;IACnC;;OAEG;IACI,aAAa,EAAE,OAAO;IAC7B;;OAEG;IACI,qBAAqB,EAAE,MAAM,EAClC;IAEJ;;;OAGG;IACH,QAAQ,4BAQP;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,qCAAqC,CAUtF;CACF"}
@@ -11,7 +11,6 @@ import { PrivateCallData } from './private_call_data.js';
11
11
  protocolContracts;
12
12
  privateCall;
13
13
  isPrivateOnly;
14
- firstNullifierHint;
15
14
  revertibleCounterHint;
16
15
  constructor(/**
17
16
  * The transaction request which led to the creation of these inputs.
@@ -24,8 +23,6 @@ import { PrivateCallData } from './private_call_data.js';
24
23
  */ privateCall, /**
25
24
  * Wether this tx will make public calls or not.
26
25
  */ isPrivateOnly, /**
27
- * A hint to what will be the first nullifier of the transaction, used for nonce generation.
28
- */ firstNullifierHint, /**
29
26
  * A claim to the final min revertible side effect counter of a tx.
30
27
  */ revertibleCounterHint){
31
28
  this.txRequest = txRequest;
@@ -33,14 +30,13 @@ import { PrivateCallData } from './private_call_data.js';
33
30
  this.protocolContracts = protocolContracts;
34
31
  this.privateCall = privateCall;
35
32
  this.isPrivateOnly = isPrivateOnly;
36
- this.firstNullifierHint = firstNullifierHint;
37
33
  this.revertibleCounterHint = revertibleCounterHint;
38
34
  }
39
35
  /**
40
36
  * Serialize this as a buffer.
41
37
  * @returns The buffer.
42
38
  */ toBuffer() {
43
- return serializeToBuffer(this.txRequest, this.vkTreeRoot, this.protocolContracts, this.privateCall, this.firstNullifierHint, this.revertibleCounterHint);
39
+ return serializeToBuffer(this.txRequest, this.vkTreeRoot, this.protocolContracts, this.privateCall, this.revertibleCounterHint);
44
40
  }
45
41
  /**
46
42
  * Deserializes from a buffer or reader.
@@ -48,6 +44,6 @@ import { PrivateCallData } from './private_call_data.js';
48
44
  * @returns The deserialized instance.
49
45
  */ static fromBuffer(buffer) {
50
46
  const reader = BufferReader.asReader(buffer);
51
- return new PrivateKernelInitCircuitPrivateInputs(reader.readObject(TxRequest), Fr.fromBuffer(reader), reader.readObject(ProtocolContracts), reader.readObject(PrivateCallData), reader.readBoolean(), Fr.fromBuffer(reader), reader.readNumber());
47
+ return new PrivateKernelInitCircuitPrivateInputs(reader.readObject(TxRequest), Fr.fromBuffer(reader), reader.readObject(ProtocolContracts), reader.readObject(PrivateCallData), reader.readBoolean(), reader.readNumber());
52
48
  }
53
49
  }
@@ -18,15 +18,14 @@ export declare class PrivateKernelResetDimensions {
18
18
  }
19
19
  export type DimensionName = keyof FieldsOf<PrivateKernelResetDimensions>;
20
20
  export declare const privateKernelResetDimensionNames: DimensionName[];
21
- export interface DimensionConfig {
22
- variants: number[];
23
- standalone: number[];
21
+ export interface ResetCatalogEntry {
22
+ name: string;
23
+ dimensions: number[];
24
24
  cost: number;
25
25
  }
26
26
  export interface PrivateKernelResetDimensionsConfig {
27
- dimensions: {
28
- [K in DimensionName]: DimensionConfig;
29
- };
30
- specialCases: number[][];
27
+ inner: ResetCatalogEntry[];
28
+ finalTail: ResetCatalogEntry[];
29
+ finalTailToPublic: ResetCatalogEntry[];
31
30
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfcmVzZXRfZGltZW5zaW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tlcm5lbC9wcml2YXRlX2tlcm5lbF9yZXNldF9kaW1lbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELHFCQUFhLDRCQUE0QjtJQUU5QixzQkFBc0IsRUFBRSxNQUFNO0lBQzlCLHNCQUFzQixFQUFFLE1BQU07SUFDOUIsc0JBQXNCLEVBQUUsTUFBTTtJQUM5QixzQkFBc0IsRUFBRSxNQUFNO0lBQzlCLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLHdCQUF3QixFQUFFLE1BQU07SUFDaEMsaUJBQWlCLEVBQUUsTUFBTTtJQUN6QixpQkFBaUIsRUFBRSxNQUFNO0lBQ3pCLG1CQUFtQixFQUFFLE1BQU07SUFUcEMsWUFDUyxzQkFBc0IsRUFBRSxNQUFNLEVBQzlCLHNCQUFzQixFQUFFLE1BQU0sRUFDOUIsc0JBQXNCLEVBQUUsTUFBTSxFQUM5QixzQkFBc0IsRUFBRSxNQUFNLEVBQzlCLGNBQWMsRUFBRSxNQUFNLEVBQ3RCLHdCQUF3QixFQUFFLE1BQU0sRUFDaEMsaUJBQWlCLEVBQUUsTUFBTSxFQUN6QixpQkFBaUIsRUFBRSxNQUFNLEVBQ3pCLG1CQUFtQixFQUFFLE1BQU0sRUFDaEM7SUFFSixRQUFRLDRCQVlQO0lBRUQsTUFBTSxDQUFDLEtBQUssaUNBRVg7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLDRCQUE0QixDQUFDLENBQUMsZ0NBSWxFO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGdDQVNqQztJQUVELFFBQVEsYUFFUDtDQUNGO0FBRUQsTUFBTSxNQUFNLGFBQWEsR0FBRyxNQUFNLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBRXpFLGVBQU8sTUFBTSxnQ0FBZ0MsRUFBRSxhQUFhLEVBVTNELENBQUM7QUFFRixNQUFNLFdBQVcsZUFBZTtJQUM5QixRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbkIsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3JCLElBQUksRUFBRSxNQUFNLENBQUM7Q0FDZDtBQUdELE1BQU0sV0FBVyxrQ0FBa0M7SUFDakQsVUFBVSxFQUFFO1NBQUcsQ0FBQyxJQUFJLGFBQWEsR0FBRyxlQUFlO0tBQUUsQ0FBQztJQUN0RCxZQUFZLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztDQUMxQiJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfcmVzZXRfZGltZW5zaW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tlcm5lbC9wcml2YXRlX2tlcm5lbF9yZXNldF9kaW1lbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELHFCQUFhLDRCQUE0QjtJQUU5QixzQkFBc0IsRUFBRSxNQUFNO0lBQzlCLHNCQUFzQixFQUFFLE1BQU07SUFDOUIsc0JBQXNCLEVBQUUsTUFBTTtJQUM5QixzQkFBc0IsRUFBRSxNQUFNO0lBQzlCLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLHdCQUF3QixFQUFFLE1BQU07SUFDaEMsaUJBQWlCLEVBQUUsTUFBTTtJQUN6QixpQkFBaUIsRUFBRSxNQUFNO0lBQ3pCLG1CQUFtQixFQUFFLE1BQU07SUFUcEMsWUFDUyxzQkFBc0IsRUFBRSxNQUFNLEVBQzlCLHNCQUFzQixFQUFFLE1BQU0sRUFDOUIsc0JBQXNCLEVBQUUsTUFBTSxFQUM5QixzQkFBc0IsRUFBRSxNQUFNLEVBQzlCLGNBQWMsRUFBRSxNQUFNLEVBQ3RCLHdCQUF3QixFQUFFLE1BQU0sRUFDaEMsaUJBQWlCLEVBQUUsTUFBTSxFQUN6QixpQkFBaUIsRUFBRSxNQUFNLEVBQ3pCLG1CQUFtQixFQUFFLE1BQU0sRUFDaEM7SUFFSixRQUFRLDRCQVlQO0lBRUQsTUFBTSxDQUFDLEtBQUssaUNBRVg7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLDRCQUE0QixDQUFDLENBQUMsZ0NBSWxFO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGdDQVNqQztJQUVELFFBQVEsYUFFUDtDQUNGO0FBRUQsTUFBTSxNQUFNLGFBQWEsR0FBRyxNQUFNLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBRXpFLGVBQU8sTUFBTSxnQ0FBZ0MsRUFBRSxhQUFhLEVBVTNELENBQUM7QUFFRixNQUFNLFdBQVcsaUJBQWlCO0lBQ2hDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFLckIsSUFBSSxFQUFFLE1BQU0sQ0FBQztDQUNkO0FBR0QsTUFBTSxXQUFXLGtDQUFrQztJQUVqRCxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztJQUczQixTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztJQUcvQixpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0NBQ3hDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"private_kernel_reset_dimensions.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_reset_dimensions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,qBAAa,4BAA4B;IAE9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,cAAc,EAAE,MAAM;IACtB,wBAAwB,EAAE,MAAM;IAChC,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,MAAM;IACzB,mBAAmB,EAAE,MAAM;IATpC,YACS,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,cAAc,EAAE,MAAM,EACtB,wBAAwB,EAAE,MAAM,EAChC,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,MAAM,EACzB,mBAAmB,EAAE,MAAM,EAChC;IAEJ,QAAQ,4BAYP;IAED,MAAM,CAAC,KAAK,iCAEX;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,gCAIlE;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,gCASjC;IAED,QAAQ,aAEP;CACF;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,4BAA4B,CAAC,CAAC;AAEzE,eAAO,MAAM,gCAAgC,EAAE,aAAa,EAU3D,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,kCAAkC;IACjD,UAAU,EAAE;SAAG,CAAC,IAAI,aAAa,GAAG,eAAe;KAAE,CAAC;IACtD,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;CAC1B"}
1
+ {"version":3,"file":"private_kernel_reset_dimensions.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_reset_dimensions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,qBAAa,4BAA4B;IAE9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,MAAM;IAC9B,cAAc,EAAE,MAAM;IACtB,wBAAwB,EAAE,MAAM;IAChC,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,MAAM;IACzB,mBAAmB,EAAE,MAAM;IATpC,YACS,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,sBAAsB,EAAE,MAAM,EAC9B,cAAc,EAAE,MAAM,EACtB,wBAAwB,EAAE,MAAM,EAChC,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,MAAM,EACzB,mBAAmB,EAAE,MAAM,EAChC;IAEJ,QAAQ,4BAYP;IAED,MAAM,CAAC,KAAK,iCAEX;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,gCAIlE;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,gCASjC;IAED,QAAQ,aAEP;CACF;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,4BAA4B,CAAC,CAAC;AAEzE,eAAO,MAAM,gCAAgC,EAAE,aAAa,EAU3D,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IAKrB,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,kCAAkC;IAEjD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAG3B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAG/B,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;CACxC"}
@@ -0,0 +1,29 @@
1
+ import type { MAX_KEY_VALIDATION_REQUESTS_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX } from '@aztec/constants';
2
+ import type { UInt64 } from '../types/shared.js';
3
+ import type { PrivateKernelResetHints } from './hints/private_kernel_reset_hints.js';
4
+ import type { PaddedSideEffectAmounts, PaddedSideEffects } from './padded_side_effects.js';
5
+ import type { PrivateKernelData } from './private_kernel_data.js';
6
+ import { PrivateKernelResetCircuitPrivateInputsVariants } from './private_kernel_reset_circuit_private_inputs.js';
7
+ import type { PrivateKernelResetDimensions } from './private_kernel_reset_dimensions.js';
8
+ /**
9
+ * Input to a terminal reset+tail circuit. `isForPublic()` selects the rollup-bound (`reset_tail`)
10
+ * or public-bound (`reset_tail_to_public`) family.
11
+ */
12
+ export declare class PrivateKernelResetTailCircuitPrivateInputs {
13
+ previousKernel: PrivateKernelData;
14
+ paddedSideEffects: PaddedSideEffects;
15
+ hints: PrivateKernelResetHints<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX, typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX, typeof MAX_NULLIFIERS_PER_TX>;
16
+ dimensions: PrivateKernelResetDimensions;
17
+ paddedSideEffectAmounts: PaddedSideEffectAmounts;
18
+ expirationTimestampUpperBound: UInt64;
19
+ constructor(previousKernel: PrivateKernelData, paddedSideEffects: PaddedSideEffects, hints: PrivateKernelResetHints<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX, typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX, typeof MAX_NULLIFIERS_PER_TX>, dimensions: PrivateKernelResetDimensions, paddedSideEffectAmounts: PaddedSideEffectAmounts, expirationTimestampUpperBound: UInt64);
20
+ isForPublic(): boolean;
21
+ /**
22
+ * Returns a dimension-trimmed view of the reset portion of these inputs (without the tail
23
+ * fields). The prover uses this to feed witness generation of the variant matching the chosen
24
+ * dimensions.
25
+ */
26
+ trimResetToSizes(): PrivateKernelResetCircuitPrivateInputsVariants<number, number, number, number, number, number>;
27
+ toBuffer(): Buffer<ArrayBufferLike>;
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfcmVzZXRfdGFpbF9jaXJjdWl0X3ByaXZhdGVfaW5wdXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2VybmVsL3ByaXZhdGVfa2VybmVsX3Jlc2V0X3RhaWxfY2lyY3VpdF9wcml2YXRlX2lucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFDVixrQ0FBa0MsRUFDbEMsa0NBQWtDLEVBQ2xDLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFDbkMsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0YsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNsSCxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXpGOzs7R0FHRztBQUNILHFCQUFhLDBDQUEwQztJQUU1QyxjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGlCQUFpQixFQUFFLGlCQUFpQjtJQUNwQyxLQUFLLEVBQUUsdUJBQXVCLENBQ25DLE9BQU8sa0NBQWtDLEVBQ3pDLE9BQU8sa0NBQWtDLEVBQ3pDLE9BQU8sa0NBQWtDLEVBQ3pDLE9BQU8sa0NBQWtDLEVBQ3pDLE9BQU8sa0NBQWtDLEVBQ3pDLE9BQU8scUJBQXFCLENBQzdCO0lBQ00sVUFBVSxFQUFFLDRCQUE0QjtJQUN4Qyx1QkFBdUIsRUFBRSx1QkFBdUI7SUFDaEQsNkJBQTZCLEVBQUUsTUFBTTtJQWI5QyxZQUNTLGNBQWMsRUFBRSxpQkFBaUIsRUFDakMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQ3BDLEtBQUssRUFBRSx1QkFBdUIsQ0FDbkMsT0FBTyxrQ0FBa0MsRUFDekMsT0FBTyxrQ0FBa0MsRUFDekMsT0FBTyxrQ0FBa0MsRUFDekMsT0FBTyxrQ0FBa0MsRUFDekMsT0FBTyxrQ0FBa0MsRUFDekMsT0FBTyxxQkFBcUIsQ0FDN0IsRUFDTSxVQUFVLEVBQUUsNEJBQTRCLEVBQ3hDLHVCQUF1QixFQUFFLHVCQUF1QixFQUNoRCw2QkFBNkIsRUFBRSxNQUFNLEVBQzFDO0lBRUosV0FBVyxZQUVWO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixtR0FVZjtJQUVELFFBQVEsNEJBU1A7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private_kernel_reset_tail_circuit_private_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_reset_tail_circuit_private_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kCAAkC,EAClC,kCAAkC,EAClC,qBAAqB,EACrB,kCAAkC,EACnC,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,8CAA8C,EAAE,MAAM,kDAAkD,CAAC;AAClH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF;;;GAGG;AACH,qBAAa,0CAA0C;IAE5C,cAAc,EAAE,iBAAiB;IACjC,iBAAiB,EAAE,iBAAiB;IACpC,KAAK,EAAE,uBAAuB,CACnC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,qBAAqB,CAC7B;IACM,UAAU,EAAE,4BAA4B;IACxC,uBAAuB,EAAE,uBAAuB;IAChD,6BAA6B,EAAE,MAAM;IAb9C,YACS,cAAc,EAAE,iBAAiB,EACjC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,uBAAuB,CACnC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,kCAAkC,EACzC,OAAO,qBAAqB,CAC7B,EACM,UAAU,EAAE,4BAA4B,EACxC,uBAAuB,EAAE,uBAAuB,EAChD,6BAA6B,EAAE,MAAM,EAC1C;IAEJ,WAAW,YAEV;IAED;;;;OAIG;IACH,gBAAgB,mGAUf;IAED,QAAQ,4BASP;CACF"}
@@ -0,0 +1,36 @@
1
+ import { bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
2
+ import { kernelStateIsForPublic } from './private_kernel_circuit_public_inputs.js';
3
+ import { PrivateKernelResetCircuitPrivateInputsVariants } from './private_kernel_reset_circuit_private_inputs.js';
4
+ /**
5
+ * Input to a terminal reset+tail circuit. `isForPublic()` selects the rollup-bound (`reset_tail`)
6
+ * or public-bound (`reset_tail_to_public`) family.
7
+ */ export class PrivateKernelResetTailCircuitPrivateInputs {
8
+ previousKernel;
9
+ paddedSideEffects;
10
+ hints;
11
+ dimensions;
12
+ paddedSideEffectAmounts;
13
+ expirationTimestampUpperBound;
14
+ constructor(previousKernel, paddedSideEffects, hints, dimensions, paddedSideEffectAmounts, expirationTimestampUpperBound){
15
+ this.previousKernel = previousKernel;
16
+ this.paddedSideEffects = paddedSideEffects;
17
+ this.hints = hints;
18
+ this.dimensions = dimensions;
19
+ this.paddedSideEffectAmounts = paddedSideEffectAmounts;
20
+ this.expirationTimestampUpperBound = expirationTimestampUpperBound;
21
+ }
22
+ isForPublic() {
23
+ return kernelStateIsForPublic(this.previousKernel.publicInputs);
24
+ }
25
+ /**
26
+ * Returns a dimension-trimmed view of the reset portion of these inputs (without the tail
27
+ * fields). The prover uses this to feed witness generation of the variant matching the chosen
28
+ * dimensions.
29
+ */ trimResetToSizes() {
30
+ const hints = this.hints.trimToSizes(this.dimensions.NOTE_HASH_PENDING_READ, this.dimensions.NOTE_HASH_SETTLED_READ, this.dimensions.NULLIFIER_PENDING_READ, this.dimensions.NULLIFIER_SETTLED_READ, this.dimensions.KEY_VALIDATION, this.dimensions.TRANSIENT_DATA_SQUASHING);
31
+ return new PrivateKernelResetCircuitPrivateInputsVariants(this.previousKernel, this.paddedSideEffects, hints);
32
+ }
33
+ toBuffer() {
34
+ return serializeToBuffer(this.previousKernel, this.paddedSideEffects, this.hints, this.dimensions, this.paddedSideEffectAmounts, bigintToUInt64BE(this.expirationTimestampUpperBound));
35
+ }
36
+ }
@@ -4,30 +4,65 @@ import { AztecAddress } from '../aztec-address/index.js';
4
4
  import type { KeyPrefix } from './key_types.js';
5
5
  import { PublicKey } from './public_key.js';
6
6
  import { PublicKeys } from './public_keys.js';
7
- export declare function computeAppNullifierHidingKey(masterNullifierHidingKey: GrumpkinScalar, app: AztecAddress): Promise<Fr>;
7
+ export declare function computeAppNullifierHidingKey(masterNullifierHidingSecretKey: GrumpkinScalar, app: AztecAddress): Promise<Fr>;
8
8
  export declare function computeAppSecretKey(skM: GrumpkinScalar, app: AztecAddress, keyPrefix: KeyPrefix): Promise<Fr>;
9
9
  export declare function computeOvskApp(ovsk: GrumpkinScalar, app: AztecAddress): Promise<Fq>;
10
- export declare function deriveMasterNullifierHidingKey(secretKey: Fr): GrumpkinScalar;
10
+ export declare function deriveMasterNullifierHidingSecretKey(secretKey: Fr): GrumpkinScalar;
11
11
  export declare function deriveMasterIncomingViewingSecretKey(secretKey: Fr): GrumpkinScalar;
12
12
  export declare function deriveMasterOutgoingViewingSecretKey(secretKey: Fr): GrumpkinScalar;
13
- export declare function deriveSigningKey(secretKey: Fr): GrumpkinScalar;
13
+ export declare function deriveMasterMessageSigningSecretKey(secretKey: Fr): GrumpkinScalar;
14
+ export declare function deriveMasterFallbackSecretKey(secretKey: Fr): GrumpkinScalar;
14
15
  export declare function computePreaddress(publicKeysHash: Fr, partialAddress: Fr): Promise<Fr>;
15
16
  export declare function computeAddress(publicKeys: PublicKeys, partialAddress: Fr): Promise<AztecAddress>;
16
17
  export declare function computeAddressSecret(preaddress: Fr, ivsk: Fq): Promise<Fq>;
17
18
  export declare function derivePublicKeyFromSecretKey(secretKey: Fq): Promise<PublicKey>;
19
+ /**
20
+ * The six master secret keys that fully define an account's privacy keys.
21
+ */
22
+ export type MasterSecretKeys = {
23
+ masterNullifierHidingSecretKey: GrumpkinScalar;
24
+ masterIncomingViewingSecretKey: GrumpkinScalar;
25
+ masterOutgoingViewingSecretKey: GrumpkinScalar;
26
+ masterTaggingSecretKey: GrumpkinScalar;
27
+ masterMessageSigningSecretKey: GrumpkinScalar;
28
+ masterFallbackSecretKey: GrumpkinScalar;
29
+ };
18
30
  /**
19
31
  * Computes secret and public keys and public keys hash from a secret key.
20
32
  * @param secretKey - The secret key to derive keys from.
21
33
  * @returns The derived keys.
22
34
  */
23
35
  export declare function deriveKeys(secretKey: Fr): Promise<{
24
- masterNullifierHidingKey: Fq;
36
+ masterNullifierHidingSecretKey: Fq;
37
+ masterIncomingViewingSecretKey: Fq;
38
+ masterOutgoingViewingSecretKey: Fq;
39
+ masterTaggingSecretKey: Fq;
40
+ masterMessageSigningSecretKey: Fq;
41
+ masterFallbackSecretKey: Fq;
42
+ masterNullifierHidingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
43
+ masterOutgoingViewingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
44
+ masterTaggingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
45
+ masterMessageSigningPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
46
+ masterFallbackPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
47
+ publicKeys: PublicKeys;
48
+ }>;
49
+ /**
50
+ * Derives the master public keys and the {@link PublicKeys} struct from a set of master secret keys.
51
+ * @param secretKeys - The master secret keys to derive public keys from.
52
+ * @returns The provided secret keys alongside the derived public keys.
53
+ */
54
+ export declare function deriveKeysFromMasterSecretKeys(secretKeys: MasterSecretKeys): Promise<{
55
+ masterNullifierHidingSecretKey: Fq;
25
56
  masterIncomingViewingSecretKey: Fq;
26
57
  masterOutgoingViewingSecretKey: Fq;
27
58
  masterTaggingSecretKey: Fq;
28
- masterNullifierPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
59
+ masterMessageSigningSecretKey: Fq;
60
+ masterFallbackSecretKey: Fq;
61
+ masterNullifierHidingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
29
62
  masterOutgoingViewingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
30
63
  masterTaggingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
64
+ masterMessageSigningPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
65
+ masterFallbackPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
31
66
  publicKeys: PublicKeys;
32
67
  }>;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZhdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tleXMvZGVyaXZhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsd0JBQWdCLDRCQUE0QixDQUFDLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFckg7QUFFRCx3QkFBZ0IsbUJBQW1CLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUc3RztBQUVELHdCQUFzQixjQUFjLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FLekY7QUFFRCx3QkFBZ0IsOEJBQThCLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRTVFO0FBRUQsd0JBQWdCLG9DQUFvQyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUVsRjtBQUVELHdCQUFnQixvQ0FBb0MsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FFbEY7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRzlEO0FBRUQsd0JBQWdCLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLEVBQUUsZUFFdkU7QUFFRCx3QkFBc0IsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBWXRHO0FBRUQsd0JBQXNCLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFvQmxFO0FBRUQsd0JBQWdCLDRCQUE0QixDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUU5RTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0IsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFOzs7Ozs7Ozs7R0F3QzdDIn0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZhdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tleXMvZGVyaXZhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsd0JBQWdCLDRCQUE0QixDQUMxQyw4QkFBOEIsRUFBRSxjQUFjLEVBQzlDLEdBQUcsRUFBRSxZQUFZLEdBQ2hCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFYjtBQUVELHdCQUFnQixtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBRzdHO0FBRUQsd0JBQXNCLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUt6RjtBQUVELHdCQUFnQixvQ0FBb0MsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FFbEY7QUFFRCx3QkFBZ0Isb0NBQW9DLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRWxGO0FBRUQsd0JBQWdCLG9DQUFvQyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUVsRjtBQUVELHdCQUFnQixtQ0FBbUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FFakY7QUFFRCx3QkFBZ0IsNkJBQTZCLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRTNFO0FBRUQsd0JBQWdCLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLEVBQUUsZUFFdkU7QUFFRCx3QkFBc0IsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBWXRHO0FBRUQsd0JBQXNCLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFvQmxFO0FBRUQsd0JBQWdCLDRCQUE0QixDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQU85RTtBQUVEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCLDhCQUE4QixFQUFFLGNBQWMsQ0FBQztJQUMvQyw4QkFBOEIsRUFBRSxjQUFjLENBQUM7SUFDL0MsOEJBQThCLEVBQUUsY0FBYyxDQUFDO0lBQy9DLHNCQUFzQixFQUFFLGNBQWMsQ0FBQztJQUN2Qyw2QkFBNkIsRUFBRSxjQUFjLENBQUM7SUFDOUMsdUJBQXVCLEVBQUUsY0FBYyxDQUFDO0NBQ3pDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsd0JBQWdCLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRTs7Ozs7Ozs7Ozs7OztHQVd2QztBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0IsOEJBQThCLENBQUMsVUFBVSxFQUFFLGdCQUFnQjs7Ozs7Ozs7Ozs7OztHQTRDaEYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/keys/derivation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,wBAAgB,4BAA4B,CAAC,wBAAwB,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAErH;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAG7G;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAKzF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAE5E;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAG9D;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,eAEvE;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAYtG;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,eAoBlE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAE9E;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,EAAE;;;;;;;;;GAwC7C"}
1
+ {"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/keys/derivation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,wBAAgB,4BAA4B,CAC1C,8BAA8B,EAAE,cAAc,EAC9C,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,EAAE,CAAC,CAEb;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAG7G;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAKzF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAEjF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAE3E;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,eAEvE;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAYtG;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,eAoBlE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAO9E;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,8BAA8B,EAAE,cAAc,CAAC;IAC/C,8BAA8B,EAAE,cAAc,CAAC;IAC/C,8BAA8B,EAAE,cAAc,CAAC;IAC/C,sBAAsB,EAAE,cAAc,CAAC;IACvC,6BAA6B,EAAE,cAAc,CAAC;IAC9C,uBAAuB,EAAE,cAAc,CAAC;CACzC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,EAAE;;;;;;;;;;;;;GAWvC;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAAC,UAAU,EAAE,gBAAgB;;;;;;;;;;;;;GA4ChF"}
@@ -1,15 +1,15 @@
1
- import { DEFAULT_FBPK_M_HASH, DEFAULT_MSPK_M_HASH, DomainSeparator } from '@aztec/constants';
1
+ import { DomainSeparator } from '@aztec/constants';
2
2
  import { Grumpkin } from '@aztec/foundation/crypto/grumpkin';
3
3
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
4
4
  import { sha512ToGrumpkinScalar } from '@aztec/foundation/crypto/sha512';
5
5
  import { Fq, Fr } from '@aztec/foundation/curves/bn254';
6
6
  import { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
7
7
  import { AztecAddress } from '../aztec-address/index.js';
8
- import { hashPublicKey } from './public_key.js';
8
+ import { PublicKey, hashPublicKey } from './public_key.js';
9
9
  import { PublicKeys } from './public_keys.js';
10
10
  import { getKeyGenerator } from './utils.js';
11
- export function computeAppNullifierHidingKey(masterNullifierHidingKey, app) {
12
- return computeAppSecretKey(masterNullifierHidingKey, app, 'n'); // 'n' is the key prefix for nullifier hiding key
11
+ export function computeAppNullifierHidingKey(masterNullifierHidingSecretKey, app) {
12
+ return computeAppSecretKey(masterNullifierHidingSecretKey, app, 'n'); // 'n' is the key prefix for nullifier hiding key
13
13
  }
14
14
  export function computeAppSecretKey(skM, app, keyPrefix) {
15
15
  const generator = getKeyGenerator(keyPrefix);
@@ -25,7 +25,7 @@ export async function computeOvskApp(ovsk, app) {
25
25
  // P = s * G will not be uniform because 2 * (q - r) / q is small.
26
26
  return GrumpkinScalar.fromBuffer(ovskAppFr.toBuffer());
27
27
  }
28
- export function deriveMasterNullifierHidingKey(secretKey) {
28
+ export function deriveMasterNullifierHidingSecretKey(secretKey) {
29
29
  return sha512ToGrumpkinScalar([
30
30
  secretKey,
31
31
  DomainSeparator.NHK_M
@@ -43,11 +43,16 @@ export function deriveMasterOutgoingViewingSecretKey(secretKey) {
43
43
  DomainSeparator.OVSK_M
44
44
  ]);
45
45
  }
46
- export function deriveSigningKey(secretKey) {
47
- // TODO(#5837): come up with a standard signing key derivation scheme instead of using ivsk_m as signing keys here
46
+ export function deriveMasterMessageSigningSecretKey(secretKey) {
48
47
  return sha512ToGrumpkinScalar([
49
48
  secretKey,
50
- DomainSeparator.IVSK_M
49
+ DomainSeparator.MSSK_M
50
+ ]);
51
+ }
52
+ export function deriveMasterFallbackSecretKey(secretKey) {
53
+ return sha512ToGrumpkinScalar([
54
+ secretKey,
55
+ DomainSeparator.FBSK_M
51
56
  ]);
52
57
  }
53
58
  export function computePreaddress(publicKeysHash, partialAddress) {
@@ -85,43 +90,61 @@ export async function computeAddressSecret(preaddress, ivsk) {
85
90
  return addressSecretCandidate;
86
91
  }
87
92
  export function derivePublicKeyFromSecretKey(secretKey) {
93
+ // 0 * G is the point at infinity. The WASM encodes infinity with an out-of-field x coordinate that Point cannot
94
+ // deserialize, so return the point directly instead of calling into it.
95
+ if (secretKey.isZero()) {
96
+ return Promise.resolve(PublicKey.INFINITY);
97
+ }
88
98
  return Grumpkin.mul(Grumpkin.generator, secretKey);
89
99
  }
90
100
  /**
91
101
  * Computes secret and public keys and public keys hash from a secret key.
92
102
  * @param secretKey - The secret key to derive keys from.
93
103
  * @returns The derived keys.
94
- */ export async function deriveKeys(secretKey) {
104
+ */ export function deriveKeys(secretKey) {
95
105
  // First we derive master secret/hiding keys - we use sha512 here because this derivation will never take place
96
106
  // in a circuit
97
- const masterNullifierHidingKey = deriveMasterNullifierHidingKey(secretKey);
98
- const masterIncomingViewingSecretKey = deriveMasterIncomingViewingSecretKey(secretKey);
99
- const masterOutgoingViewingSecretKey = deriveMasterOutgoingViewingSecretKey(secretKey);
100
- const masterTaggingSecretKey = sha512ToGrumpkinScalar([
101
- secretKey,
102
- DomainSeparator.TSK_M
103
- ]);
104
- // Then we derive master public keys
105
- const masterNullifierPublicKey = await derivePublicKeyFromSecretKey(masterNullifierHidingKey);
107
+ return deriveKeysFromMasterSecretKeys({
108
+ masterNullifierHidingSecretKey: deriveMasterNullifierHidingSecretKey(secretKey),
109
+ masterIncomingViewingSecretKey: deriveMasterIncomingViewingSecretKey(secretKey),
110
+ masterOutgoingViewingSecretKey: deriveMasterOutgoingViewingSecretKey(secretKey),
111
+ masterTaggingSecretKey: sha512ToGrumpkinScalar([
112
+ secretKey,
113
+ DomainSeparator.TSK_M
114
+ ]),
115
+ masterMessageSigningSecretKey: deriveMasterMessageSigningSecretKey(secretKey),
116
+ masterFallbackSecretKey: deriveMasterFallbackSecretKey(secretKey)
117
+ });
118
+ }
119
+ /**
120
+ * Derives the master public keys and the {@link PublicKeys} struct from a set of master secret keys.
121
+ * @param secretKeys - The master secret keys to derive public keys from.
122
+ * @returns The provided secret keys alongside the derived public keys.
123
+ */ export async function deriveKeysFromMasterSecretKeys(secretKeys) {
124
+ const { masterNullifierHidingSecretKey, masterIncomingViewingSecretKey, masterOutgoingViewingSecretKey, masterTaggingSecretKey, masterMessageSigningSecretKey, masterFallbackSecretKey } = secretKeys;
125
+ const masterNullifierHidingPublicKey = await derivePublicKeyFromSecretKey(masterNullifierHidingSecretKey);
106
126
  const masterIncomingViewingPublicKey = await derivePublicKeyFromSecretKey(masterIncomingViewingSecretKey);
107
127
  const masterOutgoingViewingPublicKey = await derivePublicKeyFromSecretKey(masterOutgoingViewingSecretKey);
108
128
  const masterTaggingPublicKey = await derivePublicKeyFromSecretKey(masterTaggingSecretKey);
129
+ const masterMessageSigningPublicKey = await derivePublicKeyFromSecretKey(masterMessageSigningSecretKey);
130
+ const masterFallbackPublicKey = await derivePublicKeyFromSecretKey(masterFallbackSecretKey);
109
131
  // The non-owner-visible PublicKeys carries hashes for npk/ovpk/tpk/mspk/fbpk and the raw
110
- // point only for ivpk_m. The npk/ovpk/tpk raw points are also returned alongside so the key
111
- // store can persist them under `${account}-{n|ov|t}pk_m` (only their hashes live in publicKeys).
132
+ // point only for ivpk_m. The npk/ovpk/tpk/mspk/fbpk raw points are also returned alongside so the key
133
+ // store can persist them under `${account}-{n|ov|t|ms|fb}pk_m` (only their hashes live in publicKeys).
112
134
  // The ivpk_m point isn't returned separately because it already lives in publicKeys.ivpkM.
113
- //
114
- // TODO: There isn't a derivation path for the message signing(msk) and fallback(fbk) keys yet. So we just use the the
115
- // default values for now.
116
- const publicKeys = new PublicKeys(await hashPublicKey(masterNullifierPublicKey), masterIncomingViewingPublicKey, await hashPublicKey(masterOutgoingViewingPublicKey), await hashPublicKey(masterTaggingPublicKey), new Fr(DEFAULT_MSPK_M_HASH), new Fr(DEFAULT_FBPK_M_HASH));
135
+ const publicKeys = new PublicKeys(await hashPublicKey(masterNullifierHidingPublicKey), masterIncomingViewingPublicKey, await hashPublicKey(masterOutgoingViewingPublicKey), await hashPublicKey(masterTaggingPublicKey), await hashPublicKey(masterMessageSigningPublicKey), await hashPublicKey(masterFallbackPublicKey));
117
136
  return {
118
- masterNullifierHidingKey,
137
+ masterNullifierHidingSecretKey,
119
138
  masterIncomingViewingSecretKey,
120
139
  masterOutgoingViewingSecretKey,
121
140
  masterTaggingSecretKey,
122
- masterNullifierPublicKey,
141
+ masterMessageSigningSecretKey,
142
+ masterFallbackSecretKey,
143
+ masterNullifierHidingPublicKey,
123
144
  masterOutgoingViewingPublicKey,
124
145
  masterTaggingPublicKey,
146
+ masterMessageSigningPublicKey,
147
+ masterFallbackPublicKey,
125
148
  publicKeys
126
149
  };
127
150
  }
@@ -19,22 +19,30 @@ export declare class AppTaggingSecret {
19
19
  /**
20
20
  * Derives an app-siloed, recipient-directional tagging secret from a shared tagging secret point.
21
21
  *
22
+ * App-silos the point via {@link appSiloEcdhSharedSecretPoint}, then directs the result to `recipient`:
23
+ * `h([s_app, recipient])`. The directional step stops a symmetric shared secret (ECDH against an address, or an
24
+ * arbitrary registered point) from colliding bidirectionally, so two parties never share a tag sequence.
25
+ *
22
26
  * The point is obtained either via {@link computeSharedTaggingSecret} (an ECDH key exchange against a sender) or
23
- * registered directly as a pre-shared secret. Each secret point yields a distinct tagging secret per (app, recipient)
24
- * pair.
27
+ * registered directly as a pre-shared secret.
25
28
  *
26
29
  * @param taggingSecretPoint - The shared tagging secret point (ECDH output, or a directly registered pre-shared secret)
27
30
  * @param app - Contract address to silo the secret to
28
31
  * @param recipient - Recipient of the log. Defines the "direction of the secret".
29
32
  * @returns The secret that can be used along with an index to compute a tag to be included in a log.
30
33
  */
31
- static compute(taggingSecretPoint: Point, app: AztecAddress, recipient: AztecAddress): Promise<AppTaggingSecret>;
34
+ static computeDirectional(taggingSecretPoint: Point, app: AztecAddress, recipient: AztecAddress): Promise<AppTaggingSecret>;
35
+ /**
36
+ * Derives the bare app-siloed tagging secret from a shared secret point via {@link appSiloEcdhSharedSecretPoint},
37
+ * under the given delivery-mode kind.
38
+ */
39
+ static computeAppSiloed(taggingSecretPoint: Point, app: AztecAddress, kind: AppTaggingSecretKind): Promise<AppTaggingSecret>;
32
40
  /**
33
- * Derives the unconstrained tagging secret for `(externalAddress, recipient, app)` by performing the ECDH key
34
- * exchange against `externalAddress` and then siloing and directing the result. Returns undefined if
35
- * `externalAddress` is not a valid address.
41
+ * Derives the tagging secret for `(externalAddress, recipient, app)` by performing an ECDH key exchange against
42
+ * `externalAddress` to obtain the shared point, then siloing and directing it via {@link computeDirectional}.
43
+ * Returns undefined if `externalAddress` is not a valid address.
36
44
  */
37
- static computeUnconstrained(localAddress: CompleteAddress, localIvsk: Fq, externalAddress: AztecAddress, app: AztecAddress, recipient: AztecAddress): Promise<AppTaggingSecret | undefined>;
45
+ static computeViaEcdh(localAddress: CompleteAddress, localIvsk: Fq, externalAddress: AztecAddress, app: AztecAddress, recipient: AztecAddress): Promise<AppTaggingSecret | undefined>;
38
46
  toString(): string;
39
47
  static fromString(str: string): AppTaggingSecret;
40
48
  }
@@ -58,4 +66,4 @@ export declare const AppTaggingSecretSchema: z.ZodPipe<z.ZodObject<{
58
66
  * Returns undefined if `externalAddress` is an invalid address.
59
67
  */
60
68
  export declare function computeSharedTaggingSecret(localAddress: CompleteAddress, localIvsk: Fq, externalAddress: AztecAddress): Promise<Point | undefined>;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX3RhZ2dpbmdfc2VjcmV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ncy9hcHBfdGFnZ2luZ19zZWNyZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBT3BFOzs7Ozs7R0FNRztBQUNILHFCQUFhLGdCQUFnQjthQUVULE1BQU0sRUFBRSxFQUFFO2FBQ1YsR0FBRyxFQUFFLFlBQVk7YUFDakIsSUFBSSxFQUFFLG9CQUFvQjtJQUg1QyxZQUNrQixNQUFNLEVBQUUsRUFBRSxFQUNWLEdBQUcsRUFBRSxZQUFZLEVBQ2pCLElBQUksR0FBRSxvQkFBeUQsRUFDN0U7SUFFSjs7Ozs7Ozs7Ozs7T0FXRztJQUNILE9BQWEsT0FBTyxDQUNsQixrQkFBa0IsRUFBRSxLQUFLLEVBQ3pCLEdBQUcsRUFBRSxZQUFZLEVBQ2pCLFNBQVMsRUFBRSxZQUFZLEdBQ3RCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUszQjtJQUVEOzs7O09BSUc7SUFDSCxPQUFhLG9CQUFvQixDQUMvQixZQUFZLEVBQUUsZUFBZSxFQUM3QixTQUFTLEVBQUUsRUFBRSxFQUNiLGVBQWUsRUFBRSxZQUFZLEVBQzdCLEdBQUcsRUFBRSxZQUFZLEVBQ2pCLFNBQVMsRUFBRSxZQUFZLEdBQ3RCLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FPdkM7SUFFRCxRQUFRLElBQUksTUFBTSxDQU1qQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxnQkFBZ0IsQ0FnQi9DO0NBQ0Y7QUFFRDs7R0FFRztBQUNILHdCQUFnQiwwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLGdCQUFnQixDQUV4RTtBQUVELGVBQU8sTUFBTSxzQkFBc0I7Ozs7Ozs7O0dBTTZDLENBQUM7QUFhakY7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsMEJBQTBCLENBQzlDLFlBQVksRUFBRSxlQUFlLEVBQzdCLFNBQVMsRUFBRSxFQUFFLEVBQ2IsZUFBZSxFQUFFLFlBQVksR0FDNUIsT0FBTyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FlNUIifQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX3RhZ2dpbmdfc2VjcmV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ncy9hcHBfdGFnZ2luZ19zZWNyZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUXBFOzs7Ozs7R0FNRztBQUNILHFCQUFhLGdCQUFnQjthQUVULE1BQU0sRUFBRSxFQUFFO2FBQ1YsR0FBRyxFQUFFLFlBQVk7YUFDakIsSUFBSSxFQUFFLG9CQUFvQjtJQUg1QyxZQUNrQixNQUFNLEVBQUUsRUFBRSxFQUNWLEdBQUcsRUFBRSxZQUFZLEVBQ2pCLElBQUksR0FBRSxvQkFBeUQsRUFDN0U7SUFFSjs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILE9BQWEsa0JBQWtCLENBQzdCLGtCQUFrQixFQUFFLEtBQUssRUFDekIsR0FBRyxFQUFFLFlBQVksRUFDakIsU0FBUyxFQUFFLFlBQVksR0FDdEIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBSzNCO0lBRUQ7OztPQUdHO0lBQ0gsT0FBYSxnQkFBZ0IsQ0FDM0Isa0JBQWtCLEVBQUUsS0FBSyxFQUN6QixHQUFHLEVBQUUsWUFBWSxFQUNqQixJQUFJLEVBQUUsb0JBQW9CLEdBQ3pCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUUzQjtJQUVEOzs7O09BSUc7SUFDSCxPQUFhLGNBQWMsQ0FDekIsWUFBWSxFQUFFLGVBQWUsRUFDN0IsU0FBUyxFQUFFLEVBQUUsRUFDYixlQUFlLEVBQUUsWUFBWSxFQUM3QixHQUFHLEVBQUUsWUFBWSxFQUNqQixTQUFTLEVBQUUsWUFBWSxHQUN0QixPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLENBT3ZDO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLENBVy9DO0NBQ0Y7QUFFRDs7R0FFRztBQUNILHdCQUFnQiwwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLGdCQUFnQixDQUV4RTtBQUVELGVBQU8sTUFBTSxzQkFBc0I7Ozs7Ozs7O0dBTTZDLENBQUM7QUFhakY7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsMEJBQTBCLENBQzlDLFlBQVksRUFBRSxlQUFlLEVBQzdCLFNBQVMsRUFBRSxFQUFFLEVBQ2IsZUFBZSxFQUFFLFlBQVksR0FDNUIsT0FBTyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FlNUIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"app_tagging_secret.d.ts","sourceRoot":"","sources":["../../src/logs/app_tagging_secret.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAOpE;;;;;;GAMG;AACH,qBAAa,gBAAgB;aAET,MAAM,EAAE,EAAE;aACV,GAAG,EAAE,YAAY;aACjB,IAAI,EAAE,oBAAoB;IAH5C,YACkB,MAAM,EAAE,EAAE,EACV,GAAG,EAAE,YAAY,EACjB,IAAI,GAAE,oBAAyD,EAC7E;IAEJ;;;;;;;;;;;OAWG;IACH,OAAa,OAAO,CAClB,kBAAkB,EAAE,KAAK,EACzB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAK3B;IAED;;;;OAIG;IACH,OAAa,oBAAoB,CAC/B,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,EAAE,EACb,eAAe,EAAE,YAAY,EAC7B,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAOvC;IAED,QAAQ,IAAI,MAAM,CAMjB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAgB/C;CACF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAExE;AAED,eAAO,MAAM,sBAAsB;;;;;;;;GAM6C,CAAC;AAajF;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,EAAE,EACb,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAe5B"}
1
+ {"version":3,"file":"app_tagging_secret.d.ts","sourceRoot":"","sources":["../../src/logs/app_tagging_secret.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAQpE;;;;;;GAMG;AACH,qBAAa,gBAAgB;aAET,MAAM,EAAE,EAAE;aACV,GAAG,EAAE,YAAY;aACjB,IAAI,EAAE,oBAAoB;IAH5C,YACkB,MAAM,EAAE,EAAE,EACV,GAAG,EAAE,YAAY,EACjB,IAAI,GAAE,oBAAyD,EAC7E;IAEJ;;;;;;;;;;;;;;OAcG;IACH,OAAa,kBAAkB,CAC7B,kBAAkB,EAAE,KAAK,EACzB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAK3B;IAED;;;OAGG;IACH,OAAa,gBAAgB,CAC3B,kBAAkB,EAAE,KAAK,EACzB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAE3B;IAED;;;;OAIG;IACH,OAAa,cAAc,CACzB,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,EAAE,EACb,eAAe,EAAE,YAAY,EAC7B,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAOvC;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAW/C;CACF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAExE;AAED,eAAO,MAAM,sBAAsB;;;;;;;;GAM6C,CAAC;AAajF;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,EAAE,EACb,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAe5B"}
@@ -5,6 +5,7 @@ import { z } from 'zod';
5
5
  import { AztecAddress } from '../aztec-address/index.js';
6
6
  import { computeAddressSecret, computePreaddress } from '../keys/derivation.js';
7
7
  import { AppTaggingSecretKind } from './app_tagging_secret_kind.js';
8
+ import { appSiloEcdhSharedSecretPoint } from './shared_secret_derivation.js';
8
9
  const AppTaggingSecretKindSchema = z.union([
9
10
  z.literal(AppTaggingSecretKind.UNCONSTRAINED),
10
11
  z.literal(AppTaggingSecretKind.CONSTRAINED)
@@ -27,56 +28,52 @@ const AppTaggingSecretKindSchema = z.union([
27
28
  /**
28
29
  * Derives an app-siloed, recipient-directional tagging secret from a shared tagging secret point.
29
30
  *
31
+ * App-silos the point via {@link appSiloEcdhSharedSecretPoint}, then directs the result to `recipient`:
32
+ * `h([s_app, recipient])`. The directional step stops a symmetric shared secret (ECDH against an address, or an
33
+ * arbitrary registered point) from colliding bidirectionally, so two parties never share a tag sequence.
34
+ *
30
35
  * The point is obtained either via {@link computeSharedTaggingSecret} (an ECDH key exchange against a sender) or
31
- * registered directly as a pre-shared secret. Each secret point yields a distinct tagging secret per (app, recipient)
32
- * pair.
36
+ * registered directly as a pre-shared secret.
33
37
  *
34
38
  * @param taggingSecretPoint - The shared tagging secret point (ECDH output, or a directly registered pre-shared secret)
35
39
  * @param app - Contract address to silo the secret to
36
40
  * @param recipient - Recipient of the log. Defines the "direction of the secret".
37
41
  * @returns The secret that can be used along with an index to compute a tag to be included in a log.
38
- */ static async compute(taggingSecretPoint, app, recipient) {
39
- const appTaggingSecret = await poseidon2Hash([
40
- taggingSecretPoint.x,
41
- taggingSecretPoint.y,
42
- app
43
- ]);
42
+ */ static async computeDirectional(taggingSecretPoint, app, recipient) {
43
+ const appSiloedSecret = await appSiloEcdhSharedSecretPoint(taggingSecretPoint, app);
44
44
  const directionalAppTaggingSecret = await poseidon2Hash([
45
- appTaggingSecret,
45
+ appSiloedSecret,
46
46
  recipient
47
47
  ]);
48
48
  return new AppTaggingSecret(directionalAppTaggingSecret, app);
49
49
  }
50
50
  /**
51
- * Derives the unconstrained tagging secret for `(externalAddress, recipient, app)` by performing the ECDH key
52
- * exchange against `externalAddress` and then siloing and directing the result. Returns undefined if
53
- * `externalAddress` is not a valid address.
54
- */ static async computeUnconstrained(localAddress, localIvsk, externalAddress, app, recipient) {
51
+ * Derives the bare app-siloed tagging secret from a shared secret point via {@link appSiloEcdhSharedSecretPoint},
52
+ * under the given delivery-mode kind.
53
+ */ static async computeAppSiloed(taggingSecretPoint, app, kind) {
54
+ return new AppTaggingSecret(await appSiloEcdhSharedSecretPoint(taggingSecretPoint, app), app, kind);
55
+ }
56
+ /**
57
+ * Derives the tagging secret for `(externalAddress, recipient, app)` by performing an ECDH key exchange against
58
+ * `externalAddress` to obtain the shared point, then siloing and directing it via {@link computeDirectional}.
59
+ * Returns undefined if `externalAddress` is not a valid address.
60
+ */ static async computeViaEcdh(localAddress, localIvsk, externalAddress, app, recipient) {
55
61
  const taggingSecretPoint = await computeSharedTaggingSecret(localAddress, localIvsk, externalAddress);
56
62
  if (!taggingSecretPoint) {
57
63
  return undefined;
58
64
  }
59
- return AppTaggingSecret.compute(taggingSecretPoint, app, recipient);
65
+ return AppTaggingSecret.computeDirectional(taggingSecretPoint, app, recipient);
60
66
  }
61
67
  toString() {
62
- // TODO(F-680): Migrate stored tagging keys and remove the legacy unconstrained format.
63
- if (this.kind === AppTaggingSecretKind.UNCONSTRAINED) {
64
- return `${this.secret.toString()}:${this.app.toString()}`;
65
- }
66
68
  return `${this.kind}:${this.secret.toString()}:${this.app.toString()}`;
67
69
  }
68
70
  static fromString(str) {
69
71
  const parts = str.split(':');
70
- if (parts.length === 2) {
71
- // TODO(F-680): Remove legacy two-part parsing after stored tagging keys are migrated.
72
- const [secretStr, appStr] = parts;
73
- return new AppTaggingSecret(Fr.fromString(secretStr), AztecAddress.fromStringUnsafe(appStr));
74
- }
75
- if (parts.length === 3) {
76
- const [kindStr, secretStr, appStr] = parts;
77
- return new AppTaggingSecret(Fr.fromString(secretStr), AztecAddress.fromStringUnsafe(appStr), appTaggingSecretKindFromString(kindStr));
72
+ if (parts.length !== 3) {
73
+ throw new Error(`Invalid AppTaggingSecret string: ${str}`);
78
74
  }
79
- throw new Error(`Invalid AppTaggingSecret string: ${str}`);
75
+ const [kindStr, secretStr, appStr] = parts;
76
+ return new AppTaggingSecret(Fr.fromString(secretStr), AztecAddress.fromStringUnsafe(appStr), appTaggingSecretKindFromString(kindStr));
80
77
  }
81
78
  }
82
79
  /**
@@ -5,15 +5,13 @@ export * from './tagging_index_range.js';
5
5
  export * from './contract_class_log.js';
6
6
  export * from './public_log.js';
7
7
  export * from './private_log.js';
8
- export * from './pending_tagged_log.js';
9
8
  export * from './log_result.js';
10
9
  export * from './log_cursor.js';
11
10
  export * from './logs_query.js';
12
11
  export * from './query_all_logs_by_tags.js';
13
12
  export * from './shared_secret_derivation.js';
14
- export * from './message_context.js';
15
13
  export * from './debug_log.js';
16
14
  export * from './debug_log_store.js';
17
15
  export * from './tag.js';
18
16
  export * from './siloed_tag.js';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsaUJBQWlCLENBQUMifQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxpQkFBaUIsQ0FBQyJ9