@aztec/stdlib 0.87.7 → 1.0.0-nightly.20250605

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 (224) hide show
  1. package/dest/abi/abi.d.ts +3 -0
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +38 -0
  4. package/dest/avm/avm.d.ts +1318 -33
  5. package/dest/avm/avm.d.ts.map +1 -1
  6. package/dest/avm/avm.js +37 -14
  7. package/dest/avm/avm_accumulated_data.d.ts +77 -0
  8. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  9. package/dest/avm/avm_accumulated_data.js +67 -0
  10. package/dest/avm/avm_circuit_public_inputs.d.ts +103 -10
  11. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  12. package/dest/avm/avm_circuit_public_inputs.js +25 -10
  13. package/dest/avm/avm_proving_request.d.ts +648 -0
  14. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  15. package/dest/avm/gas.d.ts +7 -0
  16. package/dest/avm/gas.d.ts.map +1 -0
  17. package/dest/avm/gas.js +13 -0
  18. package/dest/avm/index.d.ts +1 -0
  19. package/dest/avm/index.d.ts.map +1 -1
  20. package/dest/avm/index.js +1 -0
  21. package/dest/block/body.d.ts +1 -1
  22. package/dest/block/body.d.ts.map +1 -1
  23. package/dest/block/body.js +2 -2
  24. package/dest/block/index.d.ts +1 -0
  25. package/dest/block/index.d.ts.map +1 -1
  26. package/dest/block/index.js +1 -0
  27. package/dest/block/l2_block.d.ts +3 -2
  28. package/dest/block/l2_block.d.ts.map +1 -1
  29. package/dest/block/l2_block.js +10 -5
  30. package/dest/block/l2_block_source.d.ts +9 -4
  31. package/dest/block/l2_block_source.d.ts.map +1 -1
  32. package/dest/block/l2_block_source.js +1 -0
  33. package/dest/block/proposal/committee_attestation.d.ts +34 -0
  34. package/dest/block/proposal/committee_attestation.d.ts.map +1 -0
  35. package/dest/block/proposal/committee_attestation.js +59 -0
  36. package/dest/block/proposal/index.d.ts +2 -0
  37. package/dest/block/proposal/index.d.ts.map +1 -0
  38. package/dest/block/proposal/index.js +1 -0
  39. package/dest/block/published_l2_block.d.ts +99 -69
  40. package/dest/block/published_l2_block.d.ts.map +1 -1
  41. package/dest/block/published_l2_block.js +38 -12
  42. package/dest/block/test/l2_tips_store_test_suite.js +1 -1
  43. package/dest/fees/transaction_fee.d.ts +5 -0
  44. package/dest/fees/transaction_fee.d.ts.map +1 -1
  45. package/dest/fees/transaction_fee.js +10 -3
  46. package/dest/interfaces/archiver.js +2 -2
  47. package/dest/interfaces/aztec-node.d.ts +3 -8
  48. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  49. package/dest/interfaces/aztec-node.js +3 -6
  50. package/dest/interfaces/block-builder.d.ts +41 -2
  51. package/dest/interfaces/block-builder.d.ts.map +1 -1
  52. package/dest/interfaces/block-builder.js +1 -1
  53. package/dest/interfaces/epoch-prover.d.ts +2 -2
  54. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  55. package/dest/interfaces/merkle_tree_operations.d.ts +14 -0
  56. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  57. package/dest/interfaces/p2p.d.ts +6 -3
  58. package/dest/interfaces/p2p.d.ts.map +1 -1
  59. package/dest/interfaces/p2p.js +1 -2
  60. package/dest/interfaces/proving-job.d.ts +652 -4
  61. package/dest/interfaces/proving-job.d.ts.map +1 -1
  62. package/dest/interfaces/proving-job.js +2 -2
  63. package/dest/interfaces/server_circuit_prover.d.ts +3 -2
  64. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  65. package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +1 -1
  66. package/dest/kernel/hints/key_validation_hint.d.ts +2 -6
  67. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  68. package/dest/kernel/hints/key_validation_hint.js +5 -7
  69. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +7 -7
  70. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  71. package/dest/kernel/hints/private_kernel_reset_hints.js +8 -4
  72. package/dest/kernel/hints/read_request_hints.d.ts +8 -8
  73. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  74. package/dest/kernel/index.d.ts +1 -0
  75. package/dest/kernel/index.d.ts.map +1 -1
  76. package/dest/kernel/index.js +1 -0
  77. package/dest/kernel/padded_side_effects.d.ts +26 -0
  78. package/dest/kernel/padded_side_effects.d.ts.map +1 -0
  79. package/dest/kernel/padded_side_effects.js +51 -0
  80. package/dest/kernel/private_kernel_data.d.ts +6 -25
  81. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  82. package/dest/kernel/private_kernel_data.js +8 -19
  83. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +7 -4
  84. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  85. package/dest/kernel/private_kernel_reset_circuit_private_inputs.js +10 -6
  86. package/dest/kernel/private_kernel_reset_dimensions.d.ts +10 -10
  87. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  88. package/dest/kernel/private_kernel_reset_dimensions.js +29 -29
  89. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  90. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  91. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +8 -3
  92. package/dest/kernel/private_to_avm_accumulated_data.d.ts +1 -0
  93. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  94. package/dest/kernel/private_to_avm_accumulated_data.js +4 -0
  95. package/dest/kernel/public_call_request.d.ts +54 -0
  96. package/dest/kernel/public_call_request.d.ts.map +1 -1
  97. package/dest/kernel/public_call_request.js +58 -0
  98. package/dest/logs/contract_class_log.d.ts +0 -4
  99. package/dest/logs/contract_class_log.d.ts.map +1 -1
  100. package/dest/logs/contract_class_log.js +0 -33
  101. package/dest/logs/log_with_tx_data.d.ts +13 -3
  102. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  103. package/dest/logs/log_with_tx_data.js +26 -14
  104. package/dest/logs/private_log.d.ts +1 -0
  105. package/dest/logs/private_log.d.ts.map +1 -1
  106. package/dest/logs/private_log.js +3 -0
  107. package/dest/logs/public_log.d.ts +1 -0
  108. package/dest/logs/public_log.d.ts.map +1 -1
  109. package/dest/logs/public_log.js +3 -0
  110. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  111. package/dest/logs/tx_scoped_l2_log.js +1 -0
  112. package/dest/messaging/index.d.ts +1 -0
  113. package/dest/messaging/index.d.ts.map +1 -1
  114. package/dest/messaging/index.js +1 -0
  115. package/dest/messaging/l2_to_l1_membership.d.ts +11 -0
  116. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -0
  117. package/dest/messaging/l2_to_l1_membership.js +70 -0
  118. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  119. package/dest/rollup/avm_proof_data.d.ts +7 -5
  120. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  121. package/dest/rollup/avm_proof_data.js +12 -4
  122. package/dest/rollup/base_rollup_hints.d.ts +4 -4
  123. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  124. package/dest/rollup/base_rollup_hints.js +8 -8
  125. package/dest/rollup/previous_rollup_block_data.d.ts +6 -15
  126. package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
  127. package/dest/rollup/previous_rollup_block_data.js +8 -13
  128. package/dest/rollup/previous_rollup_data.d.ts +6 -15
  129. package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
  130. package/dest/rollup/previous_rollup_data.js +8 -13
  131. package/dest/rollup/private_tube_data.d.ts +3 -3
  132. package/dest/rollup/private_tube_data.d.ts.map +1 -1
  133. package/dest/rollup/private_tube_data.js +3 -3
  134. package/dest/rollup/public_tube_data.d.ts +3 -3
  135. package/dest/rollup/public_tube_data.d.ts.map +1 -1
  136. package/dest/rollup/public_tube_data.js +3 -3
  137. package/dest/rollup/root_rollup.d.ts +9 -10
  138. package/dest/rollup/root_rollup.d.ts.map +1 -1
  139. package/dest/rollup/root_rollup.js +9 -20
  140. package/dest/tests/factories.d.ts +2 -1
  141. package/dest/tests/factories.d.ts.map +1 -1
  142. package/dest/tests/factories.js +53 -28
  143. package/dest/tests/mocks.d.ts.map +1 -1
  144. package/dest/tests/mocks.js +4 -3
  145. package/dest/tx/processed_tx.d.ts.map +1 -1
  146. package/dest/tx/processed_tx.js +2 -5
  147. package/dest/tx/tx.d.ts +10 -25
  148. package/dest/tx/tx.d.ts.map +1 -1
  149. package/dest/tx/tx.js +25 -50
  150. package/dest/tx/tx_effect.d.ts +1 -1
  151. package/dest/tx/tx_effect.d.ts.map +1 -1
  152. package/dest/tx/tx_effect.js +2 -2
  153. package/dest/tx/tx_hash.d.ts +1 -0
  154. package/dest/tx/tx_hash.d.ts.map +1 -1
  155. package/dest/tx/tx_hash.js +3 -0
  156. package/dest/validators/types.d.ts +4 -0
  157. package/dest/validators/types.d.ts.map +1 -1
  158. package/dest/vks/index.d.ts +1 -1
  159. package/dest/vks/index.d.ts.map +1 -1
  160. package/dest/vks/index.js +1 -1
  161. package/dest/vks/{vk_witness_data.d.ts → vk_data.d.ts} +8 -8
  162. package/dest/vks/vk_data.d.ts.map +1 -0
  163. package/dest/vks/{vk_witness_data.js → vk_data.js} +10 -10
  164. package/package.json +7 -7
  165. package/src/abi/abi.ts +37 -0
  166. package/src/avm/avm.ts +37 -4
  167. package/src/avm/avm_accumulated_data.ts +93 -0
  168. package/src/avm/avm_circuit_public_inputs.ts +33 -3
  169. package/src/avm/gas.ts +26 -0
  170. package/src/avm/index.ts +1 -0
  171. package/src/block/body.ts +7 -2
  172. package/src/block/index.ts +1 -0
  173. package/src/block/l2_block.ts +8 -3
  174. package/src/block/l2_block_source.ts +9 -3
  175. package/src/block/proposal/committee_attestation.ts +70 -0
  176. package/src/block/proposal/index.ts +1 -0
  177. package/src/block/published_l2_block.ts +38 -24
  178. package/src/block/test/l2_tips_store_test_suite.ts +1 -1
  179. package/src/fees/transaction_fee.ts +12 -3
  180. package/src/interfaces/archiver.ts +2 -2
  181. package/src/interfaces/aztec-node.ts +8 -16
  182. package/src/interfaces/block-builder.ts +49 -2
  183. package/src/interfaces/epoch-prover.ts +2 -2
  184. package/src/interfaces/merkle_tree_operations.ts +20 -0
  185. package/src/interfaces/p2p.ts +9 -4
  186. package/src/interfaces/proving-job.ts +3 -3
  187. package/src/interfaces/server_circuit_prover.ts +3 -2
  188. package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +3 -3
  189. package/src/kernel/hints/key_validation_hint.ts +4 -6
  190. package/src/kernel/hints/private_kernel_reset_hints.ts +34 -43
  191. package/src/kernel/hints/read_request_hints.ts +27 -15
  192. package/src/kernel/index.ts +1 -0
  193. package/src/kernel/padded_side_effects.ts +73 -0
  194. package/src/kernel/private_kernel_data.ts +7 -29
  195. package/src/kernel/private_kernel_reset_circuit_private_inputs.ts +16 -13
  196. package/src/kernel/private_kernel_reset_dimensions.ts +27 -27
  197. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +10 -2
  198. package/src/kernel/private_to_avm_accumulated_data.ts +9 -0
  199. package/src/kernel/public_call_request.ts +66 -0
  200. package/src/logs/contract_class_log.ts +0 -36
  201. package/src/logs/log_with_tx_data.ts +26 -12
  202. package/src/logs/private_log.ts +4 -0
  203. package/src/logs/public_log.ts +4 -0
  204. package/src/logs/tx_scoped_l2_log.ts +1 -0
  205. package/src/messaging/index.ts +1 -0
  206. package/src/messaging/l2_to_l1_membership.ts +113 -0
  207. package/src/p2p/consensus_payload.ts +3 -1
  208. package/src/rollup/avm_proof_data.ts +14 -7
  209. package/src/rollup/base_rollup_hints.ts +4 -4
  210. package/src/rollup/previous_rollup_block_data.ts +6 -12
  211. package/src/rollup/previous_rollup_data.ts +6 -12
  212. package/src/rollup/private_tube_data.ts +4 -4
  213. package/src/rollup/public_tube_data.ts +4 -4
  214. package/src/rollup/root_rollup.ts +6 -19
  215. package/src/tests/factories.ts +82 -43
  216. package/src/tests/mocks.ts +6 -3
  217. package/src/tx/processed_tx.ts +4 -5
  218. package/src/tx/tx.ts +28 -54
  219. package/src/tx/tx_effect.ts +23 -5
  220. package/src/tx/tx_hash.ts +4 -0
  221. package/src/validators/types.ts +2 -0
  222. package/src/vks/index.ts +1 -1
  223. package/src/vks/{vk_witness_data.ts → vk_data.ts} +6 -6
  224. package/dest/vks/vk_witness_data.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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"}
package/dest/tx/tx.js CHANGED
@@ -16,7 +16,7 @@ import { TxHash } from './tx_hash.js';
16
16
  */ export class Tx extends Gossipable {
17
17
  data;
18
18
  clientIvcProof;
19
- contractClassLogs;
19
+ contractClassLogFields;
20
20
  publicFunctionCalldata;
21
21
  static p2pTopic = TopicType.tx;
22
22
  // For memoization
@@ -28,11 +28,13 @@ import { TxHash } from './tx_hash.js';
28
28
  * Proof from the private kernel circuit.
29
29
  * TODO(#7368): This client IVC object currently contains various VKs that will eventually be more like static data.
30
30
  */ clientIvcProof, /**
31
- * Contract class logs generated by the tx.
32
- */ contractClassLogs, /**
31
+ * Contract class log fields emitted from the tx.
32
+ * Their order should match the order of the log hashes returned from `this.data.getNonEmptyContractClassLogsHashes`.
33
+ * It's checked in data_validator.ts
34
+ */ contractClassLogFields, /**
33
35
  * An array of calldata for the enqueued public function calls and the teardown function call.
34
36
  */ publicFunctionCalldata){
35
- super(), this.data = data, this.clientIvcProof = clientIvcProof, this.contractClassLogs = contractClassLogs, this.publicFunctionCalldata = publicFunctionCalldata;
37
+ super(), this.data = data, this.clientIvcProof = clientIvcProof, this.contractClassLogFields = contractClassLogFields, this.publicFunctionCalldata = publicFunctionCalldata;
36
38
  }
37
39
  // Gossipable method
38
40
  async generateP2PMessageIdentifier() {
@@ -86,7 +88,7 @@ import { TxHash } from './tx_hash.js';
86
88
  return serializeToBuffer([
87
89
  this.data,
88
90
  this.clientIvcProof,
89
- serializeArrayOfBufferableToVector(this.contractClassLogs, 1),
91
+ serializeArrayOfBufferableToVector(this.contractClassLogFields, 1),
90
92
  serializeArrayOfBufferableToVector(this.publicFunctionCalldata, 1)
91
93
  ]);
92
94
  }
@@ -94,12 +96,12 @@ import { TxHash } from './tx_hash.js';
94
96
  return z.object({
95
97
  data: PrivateKernelTailCircuitPublicInputs.schema,
96
98
  clientIvcProof: ClientIvcProof.schema,
97
- contractClassLogs: z.array(ContractClassLogFields.schema),
99
+ contractClassLogFields: z.array(ContractClassLogFields.schema),
98
100
  publicFunctionCalldata: z.array(HashedValues.schema)
99
101
  }).transform(Tx.from);
100
102
  }
101
103
  static from(fields) {
102
- return new Tx(fields.data, fields.clientIvcProof, fields.contractClassLogs, fields.publicFunctionCalldata);
104
+ return new Tx(fields.data, fields.clientIvcProof, fields.contractClassLogFields, fields.publicFunctionCalldata);
103
105
  }
104
106
  /**
105
107
  * Gets public logs emitted by this tx.
@@ -110,38 +112,25 @@ import { TxHash } from './tx_hash.js';
110
112
  txHash: await this.getTxHash()
111
113
  });
112
114
  }
115
+ getContractClassLogs() {
116
+ const logHashes = this.data.getNonEmptyContractClassLogsHashes();
117
+ return logHashes.map((logHash, i)=>ContractClassLog.from({
118
+ contractAddress: logHash.contractAddress,
119
+ fields: this.contractClassLogFields[i],
120
+ emittedLength: logHash.logHash.length
121
+ }));
122
+ }
113
123
  /**
114
124
  * Gets either revertible or non revertible contract class logs emitted by this tx.
115
125
  * @param revertible - true for revertible only logs, false for non reverible only logs.
116
126
  * @returns The requested logs.
117
- */ async getSplitContractClassLogs(revertible, silo = false) {
118
- // Should only be called on txs with public calls
127
+ */ getSplitContractClassLogs(revertible) {
119
128
  if (!this.data.forPublic) {
120
- return [];
129
+ throw new Error('`getSplitContractClassLogs` should only be called on txs with public calls');
121
130
  }
122
- const contractClassLogsHashes = revertible ? this.data.forPublic.revertibleAccumulatedData.contractClassLogsHashes.filter((h)=>!h.isEmpty()) : this.data.forPublic.nonRevertibleAccumulatedData.contractClassLogsHashes.filter((h)=>!h.isEmpty());
123
- return await this.filterContractClassLogs(contractClassLogsHashes, silo);
124
- }
125
- /**
126
- * Filters contract class logs emitted by this tx.
127
- * @param logHashes - logs to keep represented by their hashes.
128
- * @param silo - whether to silo the logs before returning them.
129
- * @returns The requested logs.
130
- */ async filterContractClassLogs(logHashes, silo = false) {
131
- const contractClassLogs = [];
132
- for (const fields of this.contractClassLogs){
133
- const hashedLog = await fields.hash();
134
- const logHash = logHashes.find((hash)=>hash.value.equals(hashedLog));
135
- if (logHash) {
136
- const log = ContractClassLog.from({
137
- contractAddress: logHash.contractAddress,
138
- fields,
139
- emittedLength: logHash.logHash.length
140
- });
141
- contractClassLogs.push(silo ? await log.silo() : log);
142
- }
143
- }
144
- return contractClassLogs;
131
+ const contractClassLogs = this.getContractClassLogs();
132
+ const numNonRevertible = this.data.forPublic.nonRevertibleAccumulatedData.contractClassLogsHashes.filter((h)=>!h.isEmpty()).length;
133
+ return revertible ? contractClassLogs.slice(numNonRevertible) : contractClassLogs.slice(0, numNonRevertible);
145
134
  }
146
135
  /**
147
136
  * Computes (if necessary) & return transaction hash.
@@ -184,7 +173,7 @@ import { TxHash } from './tx_hash.js';
184
173
  };
185
174
  }
186
175
  getSize() {
187
- return this.data.getSize() + this.clientIvcProof.clientIvcProofBuffer.length + arraySerializedSizeOfNonEmpty(this.contractClassLogs) + this.publicFunctionCalldata.reduce((accum, cd)=>accum + cd.getSize(), 0);
176
+ return this.data.getSize() + this.clientIvcProof.clientIvcProofBuffer.length + arraySerializedSizeOfNonEmpty(this.contractClassLogFields) + this.publicFunctionCalldata.reduce((accum, cd)=>accum + cd.getSize(), 0);
188
177
  }
189
178
  /**
190
179
  * Estimates the tx size based on its private effects. Note that the actual size of the tx
@@ -213,9 +202,9 @@ import { TxHash } from './tx_hash.js';
213
202
  */ static clone(tx) {
214
203
  const publicInputs = PrivateKernelTailCircuitPublicInputs.fromBuffer(tx.data.toBuffer());
215
204
  const clientIvcProof = ClientIvcProof.fromBuffer(tx.clientIvcProof.toBuffer());
216
- const contractClassLogs = tx.contractClassLogs.map((p)=>p.clone());
205
+ const contractClassLogFields = tx.contractClassLogFields.map((p)=>p.clone());
217
206
  const publicFunctionCalldata = tx.publicFunctionCalldata.map((cd)=>HashedValues.fromBuffer(cd.toBuffer()));
218
- const clonedTx = new Tx(publicInputs, clientIvcProof, contractClassLogs, publicFunctionCalldata);
207
+ const clonedTx = new Tx(publicInputs, clientIvcProof, contractClassLogFields, publicFunctionCalldata);
219
208
  if (tx.txHash) {
220
209
  clonedTx.setTxHash(TxHash.fromBuffer(tx.txHash.toBuffer()));
221
210
  }
@@ -232,20 +221,6 @@ import { TxHash } from './tx_hash.js';
232
221
  HashedValues.random()
233
222
  ]);
234
223
  }
235
- /**
236
- * Filters out logs from functions that are not present in the provided kernel output.
237
- *
238
- * The purpose of this is to remove logs that got dropped due to a revert,
239
- * in which case, we only have the kernel's hashes to go on, as opposed to
240
- * this grouping by function maintained in this class.
241
- *
242
- * The logic therefore is to drop all FunctionLogs if any constituent hash
243
- * does not appear in the provided hashes: it is impossible for part of a
244
- * function to revert.
245
- */ // TODO: don't modify the tx object directly. The preimages should match the log hashes. When did the log hashes change?
246
- async filterRevertedLogs() {
247
- this.contractClassLogs = (await this.getSplitContractClassLogs(false)).map((log)=>log.fields);
248
- }
249
224
  #combinePublicCallRequestWithCallData(request) {
250
225
  const calldataMap = this.getCalldataMap();
251
226
  // Assume empty calldata if nothing is given for the hash.
@@ -112,7 +112,7 @@ export declare class TxEffect {
112
112
  * @dev Follows new_sha in variable_merkle_tree.nr
113
113
  */
114
114
  txOutHash(): Buffer<ArrayBufferLike>;
115
- static random(numPublicCallsPerTx?: number, numPublicLogsPerCall?: number): Promise<TxEffect>;
115
+ static random(numPublicCallsPerTx?: number, numPublicLogsPerCall?: number, maxEffects?: number | undefined): Promise<TxEffect>;
116
116
  static empty(): TxEffect;
117
117
  isEmpty(): boolean;
118
118
  /** Returns a hex representation of the TxEffect object. */
@@ -1 +1 @@
1
- {"version":3,"file":"tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/tx_effect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/tx_effect.ts"],"names":[],"mappings":"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"}
@@ -160,8 +160,8 @@ export class TxEffect {
160
160
  }
161
161
  return thisLayer[0];
162
162
  }
163
- static async random(numPublicCallsPerTx = 3, numPublicLogsPerCall = 1) {
164
- return new TxEffect(RevertCode.random(), TxHash.random(), new Fr(Math.floor(Math.random() * 100_000)), makeTuple(MAX_NOTE_HASHES_PER_TX, Fr.random), makeTuple(MAX_NULLIFIERS_PER_TX, Fr.random), makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, Fr.random), makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataWrite.random), makeTuple(MAX_PRIVATE_LOGS_PER_TX, ()=>PrivateLog.random()), await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async ()=>await PublicLog.random()), await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random));
163
+ static async random(numPublicCallsPerTx = 3, numPublicLogsPerCall = 1, maxEffects = undefined) {
164
+ return new TxEffect(RevertCode.random(), TxHash.random(), new Fr(Math.floor(Math.random() * 100_000)), makeTuple(maxEffects === undefined ? MAX_NOTE_HASHES_PER_TX : Math.min(maxEffects, MAX_NOTE_HASHES_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_NULLIFIERS_PER_TX : Math.min(maxEffects, MAX_NULLIFIERS_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_L2_TO_L1_MSGS_PER_TX : Math.min(maxEffects, MAX_L2_TO_L1_MSGS_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX : Math.min(maxEffects, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX), PublicDataWrite.random), makeTuple(MAX_PRIVATE_LOGS_PER_TX, ()=>PrivateLog.random()), await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async ()=>await PublicLog.random()), await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random));
165
165
  }
166
166
  static empty() {
167
167
  return new TxEffect(RevertCode.OK, TxHash.zero(), Fr.ZERO, [], [], [], [], [], [], []);
@@ -13,6 +13,7 @@ export declare class TxHash {
13
13
  static fromBuffer(buffer: Uint8Array | BufferReader): TxHash;
14
14
  static fromString(str: string): TxHash;
15
15
  static fromBigInt(value: bigint): TxHash;
16
+ static fromField(value: Fr): TxHash;
16
17
  toBuffer(): Buffer<ArrayBufferLike>;
17
18
  toString(): `0x${string}`;
18
19
  toBigInt(): bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"tx_hash.d.ts","sourceRoot":"","sources":["../../src/tx/tx_hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D;;GAEG;AACH,qBAAa,MAAM;IAEf,mGAAmG;aACnF,IAAI,EAAE,EAAE;;IADxB,mGAAmG;IACnF,IAAI,EAAE,EAAE;IAG1B,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM;IAIxB,QAAQ;IAIR,QAAQ;IAIR,QAAQ;IAIf,MAAM;IAIC,MAAM,CAAC,KAAK,EAAE,MAAM;IAI3B,MAAM,KAAK,MAAM,iNAEhB;IAED,MAAM,CAAC,IAAI;IAIX,MAAM,KAAK,IAAI,WAEd;CACF"}
1
+ {"version":3,"file":"tx_hash.d.ts","sourceRoot":"","sources":["../../src/tx/tx_hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D;;GAEG;AACH,qBAAa,MAAM;IAEf,mGAAmG;aACnF,IAAI,EAAE,EAAE;;IADxB,mGAAmG;IACnF,IAAI,EAAE,EAAE;IAG1B,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM;IAI/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;IAInB,QAAQ;IAIR,QAAQ;IAIR,QAAQ;IAIf,MAAM;IAIC,MAAM,CAAC,KAAK,EAAE,MAAM;IAI3B,MAAM,KAAK,MAAM,iNAEhB;IAED,MAAM,CAAC,IAAI;IAIX,MAAM,KAAK,IAAI,WAEd;CACF"}
@@ -21,6 +21,9 @@ import { schemas } from '../schemas/index.js';
21
21
  static fromBigInt(value) {
22
22
  return new TxHash(new Fr(value));
23
23
  }
24
+ static fromField(value) {
25
+ return new TxHash(value);
26
+ }
24
27
  toBuffer() {
25
28
  return this.hash.toBuffer();
26
29
  }
@@ -36,4 +36,8 @@ export type ValidatorsStats = {
36
36
  initialSlot?: bigint;
37
37
  slotWindow: number;
38
38
  };
39
+ export type ValidatorsEpochPerformance = Record<`0x${string}`, {
40
+ missed: number;
41
+ total: number;
42
+ }>;
39
43
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAC7B,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,EAAE,CAAC;AAEvF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,eAAe,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,kBAAkB,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAC7B,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,EAAE,CAAC;AAEvF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,eAAe,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,kBAAkB,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export * from './verification_key.js';
2
- export * from './vk_witness_data.js';
2
+ export * from './vk_data.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}
package/dest/vks/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export * from './verification_key.js';
2
- export * from './vk_witness_data.js';
2
+ export * from './vk_data.js';
@@ -3,28 +3,28 @@ import { Fr } from '@aztec/foundation/fields';
3
3
  import { BufferReader, type Tuple } from '@aztec/foundation/serialize';
4
4
  import type { UInt32 } from '../types/shared.js';
5
5
  import { VerificationKeyData } from './verification_key.js';
6
- export declare class VkWitnessData {
6
+ export declare class VkData {
7
7
  vk: VerificationKeyData;
8
8
  /**
9
9
  * Index of the vk in the vk tree.
10
10
  */
11
- vkIndex: UInt32;
11
+ leafIndex: UInt32;
12
12
  /**
13
13
  * Sibling path of the vk in the vk tree.
14
14
  */
15
- vkPath: Tuple<Fr, typeof VK_TREE_HEIGHT>;
15
+ siblingPath: Tuple<Fr, typeof VK_TREE_HEIGHT>;
16
16
  constructor(vk: VerificationKeyData,
17
17
  /**
18
18
  * Index of the vk in the vk tree.
19
19
  */
20
- vkIndex: UInt32,
20
+ leafIndex: UInt32,
21
21
  /**
22
22
  * Sibling path of the vk in the vk tree.
23
23
  */
24
- vkPath: Tuple<Fr, typeof VK_TREE_HEIGHT>);
25
- static empty(): VkWitnessData;
26
- static fromBuffer(buffer: Buffer | BufferReader): VkWitnessData;
24
+ siblingPath: Tuple<Fr, typeof VK_TREE_HEIGHT>);
25
+ static empty(): VkData;
26
+ static fromBuffer(buffer: Buffer | BufferReader): VkData;
27
27
  toBuffer(): Buffer<ArrayBufferLike>;
28
28
  toString(): `0x${string}`;
29
29
  }
30
- //# sourceMappingURL=vk_witness_data.d.ts.map
30
+ //# sourceMappingURL=vk_data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vk_data.d.ts","sourceRoot":"","sources":["../../src/vks/vk_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAG1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,MAAM;IAER,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;gBAR7C,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;IAGtD,MAAM,CAAC,KAAK;IAIZ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAS/C,QAAQ;IAIR,QAAQ;CAGT"}
@@ -4,28 +4,28 @@ import { Fr } from '@aztec/foundation/fields';
4
4
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
5
  import { bufferToHex } from '@aztec/foundation/string';
6
6
  import { VerificationKeyData } from './verification_key.js';
7
- export class VkWitnessData {
7
+ export class VkData {
8
8
  vk;
9
- vkIndex;
10
- vkPath;
9
+ leafIndex;
10
+ siblingPath;
11
11
  constructor(vk, /**
12
12
  * Index of the vk in the vk tree.
13
- */ vkIndex, /**
13
+ */ leafIndex, /**
14
14
  * Sibling path of the vk in the vk tree.
15
- */ vkPath){
15
+ */ siblingPath){
16
16
  this.vk = vk;
17
- this.vkIndex = vkIndex;
18
- this.vkPath = vkPath;
17
+ this.leafIndex = leafIndex;
18
+ this.siblingPath = siblingPath;
19
19
  }
20
20
  static empty() {
21
- return new VkWitnessData(VerificationKeyData.empty(), 0, makeTuple(VK_TREE_HEIGHT, Fr.zero));
21
+ return new VkData(VerificationKeyData.empty(), 0, makeTuple(VK_TREE_HEIGHT, Fr.zero));
22
22
  }
23
23
  static fromBuffer(buffer) {
24
24
  const reader = BufferReader.asReader(buffer);
25
- return new VkWitnessData(reader.readObject(VerificationKeyData), reader.readNumber(), reader.readArray(VK_TREE_HEIGHT, Fr));
25
+ return new VkData(reader.readObject(VerificationKeyData), reader.readNumber(), reader.readArray(VK_TREE_HEIGHT, Fr));
26
26
  }
27
27
  toBuffer() {
28
- return serializeToBuffer(this.vk, this.vkIndex, this.vkPath);
28
+ return serializeToBuffer(this.vk, this.leafIndex, this.siblingPath);
29
29
  }
30
30
  toString() {
31
31
  return bufferToHex(this.toBuffer());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "0.87.7",
3
+ "version": "1.0.0-nightly.20250605",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -67,12 +67,12 @@
67
67
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
68
68
  },
69
69
  "dependencies": {
70
- "@aztec/bb.js": "0.87.7",
71
- "@aztec/blob-lib": "0.87.7",
72
- "@aztec/constants": "0.87.7",
73
- "@aztec/ethereum": "0.87.7",
74
- "@aztec/foundation": "0.87.7",
75
- "@aztec/noir-noirc_abi": "0.87.7",
70
+ "@aztec/bb.js": "1.0.0-nightly.20250605",
71
+ "@aztec/blob-lib": "1.0.0-nightly.20250605",
72
+ "@aztec/constants": "1.0.0-nightly.20250605",
73
+ "@aztec/ethereum": "1.0.0-nightly.20250605",
74
+ "@aztec/foundation": "1.0.0-nightly.20250605",
75
+ "@aztec/noir-noirc_abi": "1.0.0-nightly.20250605",
76
76
  "@google-cloud/storage": "^7.15.0",
77
77
  "axios": "^1.9.0",
78
78
  "json-stringify-deterministic": "1.0.12",
package/src/abi/abi.ts CHANGED
@@ -533,3 +533,40 @@ export function getInitializer(
533
533
  return initializerNameOrArtifact;
534
534
  }
535
535
  }
536
+
537
+ export function emptyFunctionAbi(): FunctionAbi {
538
+ return {
539
+ name: '',
540
+ functionType: FunctionType.PRIVATE,
541
+ isInternal: false,
542
+ isStatic: false,
543
+ parameters: [],
544
+ returnTypes: [],
545
+ errorTypes: {},
546
+ isInitializer: false,
547
+ };
548
+ }
549
+
550
+ export function emptyFunctionArtifact(): FunctionArtifact {
551
+ const abi = emptyFunctionAbi();
552
+ return {
553
+ ...abi,
554
+ bytecode: Buffer.from([]),
555
+ debugSymbols: '',
556
+ };
557
+ }
558
+
559
+ export function emptyContractArtifact(): ContractArtifact {
560
+ return {
561
+ name: '',
562
+ functions: [emptyFunctionArtifact()],
563
+ nonDispatchPublicFunctions: [emptyFunctionAbi()],
564
+ outputs: {
565
+ structs: {},
566
+ globals: {},
567
+ },
568
+ storageLayout: {},
569
+ fileMap: {},
570
+ notes: {},
571
+ };
572
+ }
package/src/avm/avm.ts CHANGED
@@ -5,13 +5,19 @@ import { schemas } from '@aztec/foundation/schemas';
5
5
  import { z } from 'zod';
6
6
 
7
7
  import { AztecAddress } from '../aztec-address/index.js';
8
+ import { computeEffectiveGasFees } from '../fees/transaction_fee.js';
9
+ import { Gas } from '../gas/gas.js';
10
+ import { GasFees } from '../gas/gas_fees.js';
11
+ import { GasSettings } from '../gas/gas_settings.js';
8
12
  import { PublicKeys } from '../keys/public_keys.js';
13
+ import { ScopedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
9
14
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
10
15
  import { MerkleTreeId } from '../trees/merkle_tree_id.js';
11
16
  import { NullifierLeafPreimage } from '../trees/nullifier_leaf.js';
12
17
  import { PublicDataTreeLeafPreimage } from '../trees/public_data_leaf.js';
13
18
  import { GlobalVariables, TreeSnapshots, type Tx } from '../tx/index.js';
14
19
  import { AvmCircuitPublicInputs } from './avm_circuit_public_inputs.js';
20
+ import { clampGasSettingsForAVM } from './gas.js';
15
21
  import { serializeWithMessagePack } from './message_pack.js';
16
22
 
17
23
  ////////////////////////////////////////////////////////////////////////////
@@ -406,27 +412,35 @@ export class AvmTxHint {
406
412
  constructor(
407
413
  public readonly hash: string,
408
414
  public readonly globalVariables: GlobalVariables,
415
+ public readonly gasSettings: GasSettings,
416
+ public readonly effectiveGasFees: GasFees,
409
417
  public readonly nonRevertibleAccumulatedData: {
410
418
  noteHashes: Fr[];
411
419
  nullifiers: Fr[];
412
- // TODO: add as needed.
420
+ l2ToL1Messages: ScopedL2ToL1Message[];
413
421
  },
414
422
  public readonly revertibleAccumulatedData: {
415
423
  noteHashes: Fr[];
416
424
  nullifiers: Fr[];
417
- // TODO: add as needed.
425
+ l2ToL1Messages: ScopedL2ToL1Message[];
418
426
  },
419
427
  public readonly setupEnqueuedCalls: AvmEnqueuedCallHint[],
420
428
  public readonly appLogicEnqueuedCalls: AvmEnqueuedCallHint[],
421
429
  // We need this to be null and not undefined because that's what
422
430
  // MessagePack expects for an std::optional.
423
431
  public readonly teardownEnqueuedCall: AvmEnqueuedCallHint | null,
432
+ public readonly gasUsedByPrivate: Gas,
424
433
  ) {}
425
434
 
426
435
  static async fromTx(tx: Tx): Promise<AvmTxHint> {
427
436
  const setupCallRequests = tx.getNonRevertiblePublicCallRequestsWithCalldata();
428
437
  const appLogicCallRequests = tx.getRevertiblePublicCallRequestsWithCalldata();
429
438
  const teardownCallRequest = tx.getTeardownPublicCallRequestWithCalldata();
439
+ const gasSettings = clampGasSettingsForAVM(tx.data.constants.txContext.gasSettings, tx.data.gasUsed);
440
+ const effectiveGasFees = computeEffectiveGasFees(
441
+ tx.data.constants.historicalHeader.globalVariables.gasFees,
442
+ gasSettings,
443
+ );
430
444
 
431
445
  // For informational purposes. Assumed quick because it should be cached.
432
446
  const txHash = await tx.getTxHash();
@@ -434,13 +448,17 @@ export class AvmTxHint {
434
448
  return new AvmTxHint(
435
449
  txHash.hash.toString(),
436
450
  tx.data.constants.historicalHeader.globalVariables,
451
+ gasSettings,
452
+ effectiveGasFees,
437
453
  {
438
454
  noteHashes: tx.data.forPublic!.nonRevertibleAccumulatedData.noteHashes.filter(x => !x.isZero()),
439
455
  nullifiers: tx.data.forPublic!.nonRevertibleAccumulatedData.nullifiers.filter(x => !x.isZero()),
456
+ l2ToL1Messages: tx.data.forPublic!.nonRevertibleAccumulatedData.l2ToL1Msgs.filter(x => !x.isEmpty()),
440
457
  },
441
458
  {
442
459
  noteHashes: tx.data.forPublic!.revertibleAccumulatedData.noteHashes.filter(x => !x.isZero()),
443
460
  nullifiers: tx.data.forPublic!.revertibleAccumulatedData.nullifiers.filter(x => !x.isZero()),
461
+ l2ToL1Messages: tx.data.forPublic!.revertibleAccumulatedData.l2ToL1Msgs.filter(x => !x.isEmpty()),
444
462
  },
445
463
  setupCallRequests.map(
446
464
  call =>
@@ -468,6 +486,7 @@ export class AvmTxHint {
468
486
  teardownCallRequest.request.isStaticCall,
469
487
  )
470
488
  : null,
489
+ tx.data.gasUsed,
471
490
  );
472
491
  }
473
492
 
@@ -475,11 +494,14 @@ export class AvmTxHint {
475
494
  return new AvmTxHint(
476
495
  '',
477
496
  GlobalVariables.empty(),
478
- { noteHashes: [], nullifiers: [] },
479
- { noteHashes: [], nullifiers: [] },
497
+ GasSettings.empty(),
498
+ GasFees.empty(),
499
+ { noteHashes: [], nullifiers: [], l2ToL1Messages: [] },
500
+ { noteHashes: [], nullifiers: [], l2ToL1Messages: [] },
480
501
  [],
481
502
  [],
482
503
  null,
504
+ Gas.empty(),
483
505
  );
484
506
  }
485
507
 
@@ -488,36 +510,47 @@ export class AvmTxHint {
488
510
  .object({
489
511
  hash: z.string(),
490
512
  globalVariables: GlobalVariables.schema,
513
+ gasSettings: GasSettings.schema,
514
+ effectiveGasFees: GasFees.schema,
491
515
  nonRevertibleAccumulatedData: z.object({
492
516
  noteHashes: schemas.Fr.array(),
493
517
  nullifiers: schemas.Fr.array(),
518
+ l2ToL1Messages: ScopedL2ToL1Message.schema.array(),
494
519
  }),
495
520
  revertibleAccumulatedData: z.object({
496
521
  noteHashes: schemas.Fr.array(),
497
522
  nullifiers: schemas.Fr.array(),
523
+ l2ToL1Messages: ScopedL2ToL1Message.schema.array(),
498
524
  }),
499
525
  setupEnqueuedCalls: AvmEnqueuedCallHint.schema.array(),
500
526
  appLogicEnqueuedCalls: AvmEnqueuedCallHint.schema.array(),
501
527
  teardownEnqueuedCall: AvmEnqueuedCallHint.schema.nullable(),
528
+ gasUsedByPrivate: Gas.schema,
502
529
  })
503
530
  .transform(
504
531
  ({
505
532
  hash,
506
533
  globalVariables,
534
+ gasSettings,
535
+ effectiveGasFees,
507
536
  nonRevertibleAccumulatedData,
508
537
  revertibleAccumulatedData,
509
538
  setupEnqueuedCalls,
510
539
  appLogicEnqueuedCalls,
511
540
  teardownEnqueuedCall,
541
+ gasUsedByPrivate,
512
542
  }) =>
513
543
  new AvmTxHint(
514
544
  hash,
515
545
  globalVariables,
546
+ gasSettings,
547
+ effectiveGasFees,
516
548
  nonRevertibleAccumulatedData,
517
549
  revertibleAccumulatedData,
518
550
  setupEnqueuedCalls,
519
551
  appLogicEnqueuedCalls,
520
552
  teardownEnqueuedCall,
553
+ gasUsedByPrivate,
521
554
  ),
522
555
  );
523
556
  }
@@ -185,3 +185,96 @@ export class AvmAccumulatedData {
185
185
  }`;
186
186
  }
187
187
  }
188
+
189
+ /**
190
+ * Represents the lengths of arrays in AVM accumulated data
191
+ */
192
+ export class AvmAccumulatedDataArrayLengths {
193
+ constructor(
194
+ /**
195
+ * Number of note hashes
196
+ */
197
+ public noteHashes: number,
198
+ /**
199
+ * Number of nullifiers
200
+ */
201
+ public nullifiers: number,
202
+ /**
203
+ * Number of L2 to L1 messages
204
+ */
205
+ public l2ToL1Msgs: number,
206
+ /**
207
+ * Number of public logs
208
+ */
209
+ public publicLogs: number,
210
+ /**
211
+ * Number of public data writes
212
+ */
213
+ public publicDataWrites: number,
214
+ ) {}
215
+
216
+ static get schema() {
217
+ return z
218
+ .object({
219
+ noteHashes: z.number(),
220
+ nullifiers: z.number(),
221
+ l2ToL1Msgs: z.number(),
222
+ publicLogs: z.number(),
223
+ publicDataWrites: z.number(),
224
+ })
225
+ .transform(
226
+ ({ noteHashes, nullifiers, l2ToL1Msgs, publicLogs, publicDataWrites }) =>
227
+ new AvmAccumulatedDataArrayLengths(noteHashes, nullifiers, l2ToL1Msgs, publicLogs, publicDataWrites),
228
+ );
229
+ }
230
+
231
+ static fromBuffer(buffer: Buffer | BufferReader) {
232
+ const reader = BufferReader.asReader(buffer);
233
+ return new AvmAccumulatedDataArrayLengths(
234
+ reader.readNumber(),
235
+ reader.readNumber(),
236
+ reader.readNumber(),
237
+ reader.readNumber(),
238
+ reader.readNumber(),
239
+ );
240
+ }
241
+
242
+ toBuffer() {
243
+ return serializeToBuffer(this.noteHashes, this.nullifiers, this.l2ToL1Msgs, this.publicLogs, this.publicDataWrites);
244
+ }
245
+
246
+ static fromFields(fields: Fr[] | FieldReader) {
247
+ const reader = FieldReader.asReader(fields);
248
+ return new AvmAccumulatedDataArrayLengths(
249
+ Number(reader.readField()),
250
+ Number(reader.readField()),
251
+ Number(reader.readField()),
252
+ Number(reader.readField()),
253
+ Number(reader.readField()),
254
+ );
255
+ }
256
+
257
+ toFields(): Fr[] {
258
+ return [
259
+ new Fr(this.noteHashes),
260
+ new Fr(this.nullifiers),
261
+ new Fr(this.l2ToL1Msgs),
262
+ new Fr(this.publicLogs),
263
+ new Fr(this.publicDataWrites),
264
+ ];
265
+ }
266
+
267
+ static empty() {
268
+ return new AvmAccumulatedDataArrayLengths(0, 0, 0, 0, 0);
269
+ }
270
+
271
+ [inspect.custom]() {
272
+ return `AvmAccumulatedDataArrayLengths {
273
+ noteHashes: ${this.noteHashes},
274
+ nullifiers: ${this.nullifiers},
275
+ l2ToL1Msgs: ${this.l2ToL1Msgs},
276
+ publicLogs: ${this.publicLogs},
277
+ publicDataWrites: ${this.publicDataWrites},
278
+ }`;
279
+ }
280
+ }