@aztec/stdlib 0.87.7 → 1.0.0-nightly.20250604

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 (220) 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 +1188 -25
  5. package/dest/avm/avm.d.ts.map +1 -1
  6. package/dest/avm/avm.js +31 -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 +73 -3
  11. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  12. package/dest/avm/avm_circuit_public_inputs.js +19 -9
  13. package/dest/avm/avm_proving_request.d.ts +572 -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/interfaces/archiver.js +2 -2
  44. package/dest/interfaces/aztec-node.d.ts +3 -8
  45. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  46. package/dest/interfaces/aztec-node.js +3 -6
  47. package/dest/interfaces/block-builder.d.ts +41 -2
  48. package/dest/interfaces/block-builder.d.ts.map +1 -1
  49. package/dest/interfaces/block-builder.js +1 -1
  50. package/dest/interfaces/epoch-prover.d.ts +2 -2
  51. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  52. package/dest/interfaces/merkle_tree_operations.d.ts +14 -0
  53. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  54. package/dest/interfaces/p2p.d.ts +6 -3
  55. package/dest/interfaces/p2p.d.ts.map +1 -1
  56. package/dest/interfaces/p2p.js +1 -2
  57. package/dest/interfaces/proving-job.d.ts +576 -4
  58. package/dest/interfaces/proving-job.d.ts.map +1 -1
  59. package/dest/interfaces/proving-job.js +2 -2
  60. package/dest/interfaces/server_circuit_prover.d.ts +3 -2
  61. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  62. package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +1 -1
  63. package/dest/kernel/hints/key_validation_hint.d.ts +2 -6
  64. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  65. package/dest/kernel/hints/key_validation_hint.js +5 -7
  66. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +7 -7
  67. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  68. package/dest/kernel/hints/private_kernel_reset_hints.js +8 -4
  69. package/dest/kernel/hints/read_request_hints.d.ts +8 -8
  70. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  71. package/dest/kernel/index.d.ts +1 -0
  72. package/dest/kernel/index.d.ts.map +1 -1
  73. package/dest/kernel/index.js +1 -0
  74. package/dest/kernel/padded_side_effects.d.ts +26 -0
  75. package/dest/kernel/padded_side_effects.d.ts.map +1 -0
  76. package/dest/kernel/padded_side_effects.js +51 -0
  77. package/dest/kernel/private_kernel_data.d.ts +6 -25
  78. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  79. package/dest/kernel/private_kernel_data.js +8 -19
  80. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +7 -4
  81. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  82. package/dest/kernel/private_kernel_reset_circuit_private_inputs.js +10 -6
  83. package/dest/kernel/private_kernel_reset_dimensions.d.ts +10 -10
  84. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  85. package/dest/kernel/private_kernel_reset_dimensions.js +29 -29
  86. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
  87. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  88. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +8 -3
  89. package/dest/kernel/private_to_avm_accumulated_data.d.ts +1 -0
  90. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  91. package/dest/kernel/private_to_avm_accumulated_data.js +4 -0
  92. package/dest/kernel/public_call_request.d.ts +54 -0
  93. package/dest/kernel/public_call_request.d.ts.map +1 -1
  94. package/dest/kernel/public_call_request.js +58 -0
  95. package/dest/logs/contract_class_log.d.ts +0 -4
  96. package/dest/logs/contract_class_log.d.ts.map +1 -1
  97. package/dest/logs/contract_class_log.js +0 -33
  98. package/dest/logs/log_with_tx_data.d.ts +13 -3
  99. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  100. package/dest/logs/log_with_tx_data.js +26 -14
  101. package/dest/logs/private_log.d.ts +1 -0
  102. package/dest/logs/private_log.d.ts.map +1 -1
  103. package/dest/logs/private_log.js +3 -0
  104. package/dest/logs/public_log.d.ts +1 -0
  105. package/dest/logs/public_log.d.ts.map +1 -1
  106. package/dest/logs/public_log.js +3 -0
  107. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  108. package/dest/logs/tx_scoped_l2_log.js +1 -0
  109. package/dest/messaging/index.d.ts +1 -0
  110. package/dest/messaging/index.d.ts.map +1 -1
  111. package/dest/messaging/index.js +1 -0
  112. package/dest/messaging/l2_to_l1_membership.d.ts +11 -0
  113. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -0
  114. package/dest/messaging/l2_to_l1_membership.js +70 -0
  115. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  116. package/dest/rollup/avm_proof_data.d.ts +7 -5
  117. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  118. package/dest/rollup/avm_proof_data.js +12 -4
  119. package/dest/rollup/base_rollup_hints.d.ts +4 -4
  120. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  121. package/dest/rollup/base_rollup_hints.js +8 -8
  122. package/dest/rollup/previous_rollup_block_data.d.ts +6 -15
  123. package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
  124. package/dest/rollup/previous_rollup_block_data.js +8 -13
  125. package/dest/rollup/previous_rollup_data.d.ts +6 -15
  126. package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
  127. package/dest/rollup/previous_rollup_data.js +8 -13
  128. package/dest/rollup/private_tube_data.d.ts +3 -3
  129. package/dest/rollup/private_tube_data.d.ts.map +1 -1
  130. package/dest/rollup/private_tube_data.js +3 -3
  131. package/dest/rollup/public_tube_data.d.ts +3 -3
  132. package/dest/rollup/public_tube_data.d.ts.map +1 -1
  133. package/dest/rollup/public_tube_data.js +3 -3
  134. package/dest/rollup/root_rollup.d.ts +9 -10
  135. package/dest/rollup/root_rollup.d.ts.map +1 -1
  136. package/dest/rollup/root_rollup.js +9 -20
  137. package/dest/tests/factories.d.ts +2 -1
  138. package/dest/tests/factories.d.ts.map +1 -1
  139. package/dest/tests/factories.js +53 -28
  140. package/dest/tests/mocks.d.ts.map +1 -1
  141. package/dest/tests/mocks.js +4 -3
  142. package/dest/tx/processed_tx.d.ts.map +1 -1
  143. package/dest/tx/processed_tx.js +2 -5
  144. package/dest/tx/tx.d.ts +10 -25
  145. package/dest/tx/tx.d.ts.map +1 -1
  146. package/dest/tx/tx.js +25 -50
  147. package/dest/tx/tx_effect.d.ts +1 -1
  148. package/dest/tx/tx_effect.d.ts.map +1 -1
  149. package/dest/tx/tx_effect.js +2 -2
  150. package/dest/tx/tx_hash.d.ts +1 -0
  151. package/dest/tx/tx_hash.d.ts.map +1 -1
  152. package/dest/tx/tx_hash.js +3 -0
  153. package/dest/validators/types.d.ts +4 -0
  154. package/dest/validators/types.d.ts.map +1 -1
  155. package/dest/vks/index.d.ts +1 -1
  156. package/dest/vks/index.d.ts.map +1 -1
  157. package/dest/vks/index.js +1 -1
  158. package/dest/vks/{vk_witness_data.d.ts → vk_data.d.ts} +8 -8
  159. package/dest/vks/vk_data.d.ts.map +1 -0
  160. package/dest/vks/{vk_witness_data.js → vk_data.js} +10 -10
  161. package/package.json +7 -7
  162. package/src/abi/abi.ts +37 -0
  163. package/src/avm/avm.ts +25 -4
  164. package/src/avm/avm_accumulated_data.ts +93 -0
  165. package/src/avm/avm_circuit_public_inputs.ts +22 -2
  166. package/src/avm/gas.ts +26 -0
  167. package/src/avm/index.ts +1 -0
  168. package/src/block/body.ts +7 -2
  169. package/src/block/index.ts +1 -0
  170. package/src/block/l2_block.ts +8 -3
  171. package/src/block/l2_block_source.ts +9 -3
  172. package/src/block/proposal/committee_attestation.ts +70 -0
  173. package/src/block/proposal/index.ts +1 -0
  174. package/src/block/published_l2_block.ts +38 -24
  175. package/src/block/test/l2_tips_store_test_suite.ts +1 -1
  176. package/src/interfaces/archiver.ts +2 -2
  177. package/src/interfaces/aztec-node.ts +8 -16
  178. package/src/interfaces/block-builder.ts +49 -2
  179. package/src/interfaces/epoch-prover.ts +2 -2
  180. package/src/interfaces/merkle_tree_operations.ts +20 -0
  181. package/src/interfaces/p2p.ts +9 -4
  182. package/src/interfaces/proving-job.ts +3 -3
  183. package/src/interfaces/server_circuit_prover.ts +3 -2
  184. package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +3 -3
  185. package/src/kernel/hints/key_validation_hint.ts +4 -6
  186. package/src/kernel/hints/private_kernel_reset_hints.ts +34 -43
  187. package/src/kernel/hints/read_request_hints.ts +27 -15
  188. package/src/kernel/index.ts +1 -0
  189. package/src/kernel/padded_side_effects.ts +73 -0
  190. package/src/kernel/private_kernel_data.ts +7 -29
  191. package/src/kernel/private_kernel_reset_circuit_private_inputs.ts +16 -13
  192. package/src/kernel/private_kernel_reset_dimensions.ts +27 -27
  193. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +10 -2
  194. package/src/kernel/private_to_avm_accumulated_data.ts +9 -0
  195. package/src/kernel/public_call_request.ts +66 -0
  196. package/src/logs/contract_class_log.ts +0 -36
  197. package/src/logs/log_with_tx_data.ts +26 -12
  198. package/src/logs/private_log.ts +4 -0
  199. package/src/logs/public_log.ts +4 -0
  200. package/src/logs/tx_scoped_l2_log.ts +1 -0
  201. package/src/messaging/index.ts +1 -0
  202. package/src/messaging/l2_to_l1_membership.ts +113 -0
  203. package/src/p2p/consensus_payload.ts +3 -1
  204. package/src/rollup/avm_proof_data.ts +14 -7
  205. package/src/rollup/base_rollup_hints.ts +4 -4
  206. package/src/rollup/previous_rollup_block_data.ts +6 -12
  207. package/src/rollup/previous_rollup_data.ts +6 -12
  208. package/src/rollup/private_tube_data.ts +4 -4
  209. package/src/rollup/public_tube_data.ts +4 -4
  210. package/src/rollup/root_rollup.ts +6 -19
  211. package/src/tests/factories.ts +80 -43
  212. package/src/tests/mocks.ts +6 -3
  213. package/src/tx/processed_tx.ts +4 -5
  214. package/src/tx/tx.ts +28 -54
  215. package/src/tx/tx_effect.ts +23 -5
  216. package/src/tx/tx_hash.ts +4 -0
  217. package/src/validators/types.ts +2 -0
  218. package/src/vks/index.ts +1 -1
  219. package/src/vks/{vk_witness_data.ts → vk_data.ts} +6 -6
  220. package/dest/vks/vk_witness_data.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { makeBlockBlobPublicInputs, makeSpongeBlob } from '@aztec/blob-lib/testing';
2
2
  import {
3
3
  ARCHIVE_HEIGHT,
4
- AVM_PROOF_LENGTH_IN_FIELDS,
4
+ AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
5
5
  AZTEC_MAX_EPOCH_DURATION,
6
6
  BLOBS_PER_BLOCK,
7
7
  CONTRACT_CLASS_LOG_SIZE_IN_FIELDS,
@@ -55,6 +55,7 @@ import { ContractStorageRead } from '../avm/contract_storage_read.js';
55
55
  import { ContractStorageUpdateRequest } from '../avm/contract_storage_update_request.js';
56
56
  import {
57
57
  AvmAccumulatedData,
58
+ AvmAccumulatedDataArrayLengths,
58
59
  AvmAppendLeavesHint,
59
60
  AvmBytecodeCommitmentHint,
60
61
  AvmCircuitInputs,
@@ -75,6 +76,7 @@ import {
75
76
  AvmSequentialInsertHintPublicDataTree,
76
77
  AvmTxHint,
77
78
  RevertCode,
79
+ clampGasSettingsForAVM,
78
80
  } from '../avm/index.js';
79
81
  import { PublicDataHint } from '../avm/public_data_hint.js';
80
82
  import { PublicDataRead } from '../avm/public_data_read.js';
@@ -115,7 +117,11 @@ import { PrivateCallRequest } from '../kernel/private_call_request.js';
115
117
  import { PrivateCircuitPublicInputs } from '../kernel/private_circuit_public_inputs.js';
116
118
  import { PrivateLogData } from '../kernel/private_log_data.js';
117
119
  import { PrivateToRollupKernelCircuitPublicInputs } from '../kernel/private_to_rollup_kernel_circuit_public_inputs.js';
118
- import { CountedPublicCallRequest, PublicCallRequest } from '../kernel/public_call_request.js';
120
+ import {
121
+ CountedPublicCallRequest,
122
+ PublicCallRequest,
123
+ PublicCallRequestArrayLengths,
124
+ } from '../kernel/public_call_request.js';
119
125
  import { PublicKeys, computeAddress } from '../keys/index.js';
120
126
  import { ContractClassLogFields } from '../logs/index.js';
121
127
  import { PrivateLog } from '../logs/private_log.js';
@@ -168,8 +174,8 @@ import { TxConstantData } from '../tx/tx_constant_data.js';
168
174
  import { TxContext } from '../tx/tx_context.js';
169
175
  import { TxRequest } from '../tx/tx_request.js';
170
176
  import { RollupTypes, Vector } from '../types/index.js';
177
+ import { VkData } from '../vks/index.js';
171
178
  import { VerificationKey, VerificationKeyAsFields, VerificationKeyData } from '../vks/verification_key.js';
172
- import { VkWitnessData } from '../vks/vk_witness_data.js';
173
179
  import { mockTx } from './mocks.js';
174
180
 
175
181
  /**
@@ -368,6 +374,10 @@ function makeAvmAccumulatedData(seed = 1) {
368
374
  );
369
375
  }
370
376
 
377
+ function makeAvmAccumulatedDataArrayLengths(seed = 1) {
378
+ return new AvmAccumulatedDataArrayLengths(seed, seed + 1, seed + 2, seed + 3, seed + 4);
379
+ }
380
+
371
381
  export function makeGas(seed = 1) {
372
382
  return new Gas(seed, seed + 1);
373
383
  }
@@ -453,6 +463,7 @@ function makeAvmCircuitPublicInputs(seed = 1) {
453
463
  makeGas(seed + 0x20),
454
464
  makeGasSettings(),
455
465
  makeAztecAddress(seed + 0x40),
466
+ makePublicCallRequestArrayLengths(seed + 0x40),
456
467
  makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x100),
457
468
  makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x200),
458
469
  makePublicCallRequest(seed + 0x300),
@@ -462,6 +473,7 @@ function makeAvmCircuitPublicInputs(seed = 1) {
462
473
  makePrivateToAvmAccumulatedData(seed + 0x600),
463
474
  makeTreeSnapshots(seed + 0x700),
464
475
  makeGas(seed + 0x750),
476
+ makeAvmAccumulatedDataArrayLengths(seed + 0x800),
465
477
  makeAvmAccumulatedData(seed + 0x800),
466
478
  fr(seed + 0x900),
467
479
  false,
@@ -533,6 +545,10 @@ export function makePublicCallRequest(seed = 1) {
533
545
  return new PublicCallRequest(makeAztecAddress(seed), makeAztecAddress(seed + 1), false, fr(seed + 0x3));
534
546
  }
535
547
 
548
+ export function makePublicCallRequestArrayLengths(seed = 1) {
549
+ return new PublicCallRequestArrayLengths(seed, seed + 1, seed % 2 === 0);
550
+ }
551
+
536
552
  function makeCountedPublicCallRequest(seed = 1) {
537
553
  return new CountedPublicCallRequest(makePublicCallRequest(seed), seed + 0x100);
538
554
  }
@@ -742,8 +758,7 @@ export function makePreviousRollupData(
742
758
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
743
759
  seed + 0x50,
744
760
  ),
745
- VerificationKeyAsFields.makeFakeHonk(),
746
- makeMembershipWitness(VK_TREE_HEIGHT, seed + 0x120),
761
+ makeVkData(seed + 0x100),
747
762
  );
748
763
  }
749
764
 
@@ -763,8 +778,7 @@ export function makePreviousRollupBlockData(
763
778
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
764
779
  seed + 0x50,
765
780
  ),
766
- VerificationKeyAsFields.makeFakeHonk(),
767
- makeMembershipWitness(VK_TREE_HEIGHT, seed + 0x120),
781
+ makeVkData(seed + 0x100),
768
782
  );
769
783
  }
770
784
 
@@ -881,13 +895,10 @@ export function makeRootParityInputs(seed = 0): RootParityInputs {
881
895
  */
882
896
  export function makeRootRollupPublicInputs(seed = 0): RootRollupPublicInputs {
883
897
  return new RootRollupPublicInputs(
884
- makeAppendOnlyTreeSnapshot(seed + 0x100),
885
- makeAppendOnlyTreeSnapshot(seed + 0x200),
886
- fr(seed + 0x300),
887
- fr(seed + 0x400),
888
- fr(seed + 0x500),
889
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x650),
890
- makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x600),
898
+ fr(seed + 0x100),
899
+ fr(seed + 0x200),
900
+ makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x300),
901
+ makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x500),
891
902
  fr(seed + 0x700),
892
903
  fr(seed + 0x701),
893
904
  fr(seed + 0x702),
@@ -1070,15 +1081,15 @@ export function makePrivateBaseStateDiffHints(seed = 1): PrivateBaseStateDiffHin
1070
1081
  );
1071
1082
  }
1072
1083
 
1073
- function makeVkWitnessData(seed = 1) {
1074
- return new VkWitnessData(VerificationKeyData.makeFakeHonk(), seed, makeTuple(VK_TREE_HEIGHT, fr, seed + 0x100));
1084
+ function makeVkData(seed = 1) {
1085
+ return new VkData(VerificationKeyData.makeFakeHonk(), seed, makeTuple(VK_TREE_HEIGHT, fr, seed + 0x100));
1075
1086
  }
1076
1087
 
1077
1088
  function makePrivateTubeData(seed = 1, kernelPublicInputs?: PrivateToRollupKernelCircuitPublicInputs) {
1078
1089
  return new PrivateTubeData(
1079
1090
  kernelPublicInputs ?? makePrivateToRollupKernelCircuitPublicInputs(seed, true),
1080
1091
  makeRecursiveProof<typeof TUBE_PROOF_LENGTH>(TUBE_PROOF_LENGTH, seed + 0x100),
1081
- makeVkWitnessData(seed + 0x200),
1092
+ makeVkData(seed + 0x200),
1082
1093
  );
1083
1094
  }
1084
1095
 
@@ -1095,11 +1106,7 @@ function makePrivateBaseRollupHints(seed = 1) {
1095
1106
 
1096
1107
  const archiveRootMembershipWitness = makeMembershipWitness(ARCHIVE_HEIGHT, seed + 0x9000);
1097
1108
 
1098
- const contractClassLogsPreimages = makeTuple(
1099
- MAX_CONTRACT_CLASS_LOGS_PER_TX,
1100
- makeContractClassLogFields,
1101
- seed + 0x800,
1102
- );
1109
+ const contractClassLogsFields = makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeContractClassLogFields, seed + 0x800);
1103
1110
 
1104
1111
  const constants = makeConstantRollupData(0x100);
1105
1112
 
@@ -1111,7 +1118,7 @@ function makePrivateBaseRollupHints(seed = 1) {
1111
1118
  stateDiffHints,
1112
1119
  feePayerFeeJuiceBalanceReadHint,
1113
1120
  archiveRootMembershipWitness,
1114
- contractClassLogsPreimages,
1121
+ contractClassLogsFields,
1115
1122
  constants,
1116
1123
  });
1117
1124
  }
@@ -1121,18 +1128,14 @@ function makePublicBaseRollupHints(seed = 1) {
1121
1128
 
1122
1129
  const archiveRootMembershipWitness = makeMembershipWitness(ARCHIVE_HEIGHT, seed + 0x9000);
1123
1130
 
1124
- const contractClassLogsPreimages = makeTuple(
1125
- MAX_CONTRACT_CLASS_LOGS_PER_TX,
1126
- makeContractClassLogFields,
1127
- seed + 0x800,
1128
- );
1131
+ const contractClassLogsFields = makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeContractClassLogFields, seed + 0x800);
1129
1132
 
1130
1133
  const constants = makeConstantRollupData(0x100);
1131
1134
 
1132
1135
  return PublicBaseRollupHints.from({
1133
1136
  startSpongeBlob,
1134
1137
  archiveRootMembershipWitness,
1135
- contractClassLogsPreimages,
1138
+ contractClassLogsFields,
1136
1139
  constants,
1137
1140
  });
1138
1141
  }
@@ -1151,15 +1154,15 @@ function makePublicTubeData(seed = 1) {
1151
1154
  return new PublicTubeData(
1152
1155
  makePrivateToPublicKernelCircuitPublicInputs(seed),
1153
1156
  makeRecursiveProof<typeof TUBE_PROOF_LENGTH>(TUBE_PROOF_LENGTH, seed + 0x100),
1154
- makeVkWitnessData(seed + 0x200),
1157
+ makeVkData(seed + 0x200),
1155
1158
  );
1156
1159
  }
1157
1160
 
1158
1161
  function makeAvmProofData(seed = 1) {
1159
1162
  return new AvmProofData(
1160
1163
  makeAvmCircuitPublicInputs(seed),
1161
- makeRecursiveProof<typeof AVM_PROOF_LENGTH_IN_FIELDS>(AVM_PROOF_LENGTH_IN_FIELDS, seed + 0x100),
1162
- makeVkWitnessData(seed + 0x200),
1164
+ makeRecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, seed + 0x100),
1165
+ makeVkData(seed + 0x200),
1163
1166
  );
1164
1167
  }
1165
1168
 
@@ -1486,17 +1489,21 @@ export function makeAvmTxHint(seed = 0): AvmTxHint {
1486
1489
  return new AvmTxHint(
1487
1490
  `txhash-${seed}`,
1488
1491
  makeGlobalVariables(seed),
1492
+ makeGasSettings(),
1489
1493
  {
1490
1494
  noteHashes: makeArray((seed % 20) + 4, i => new Fr(i), seed + 0x1000),
1491
1495
  nullifiers: makeArray((seed % 20) + 4, i => new Fr(i), seed + 0x2000),
1496
+ l2ToL1Messages: makeArray((seed % 20) + 4, i => makeScopedL2ToL1Message(i), seed + 0x3000),
1492
1497
  },
1493
1498
  {
1494
1499
  noteHashes: makeArray((seed % 20) + 4, i => new Fr(i), seed + 0x3000),
1495
1500
  nullifiers: makeArray((seed % 20) + 4, i => new Fr(i), seed + 0x4000),
1501
+ l2ToL1Messages: makeArray((seed % 20) + 4, i => makeScopedL2ToL1Message(i), seed + 0x5000),
1496
1502
  },
1497
1503
  makeArray((seed % 20) + 4, i => makeAvmEnqueuedCallHint(i), seed + 0x5000), // setupEnqueuedCalls
1498
1504
  makeArray((seed % 20) + 4, i => makeAvmEnqueuedCallHint(i), seed + 0x6000), // appLogicEnqueuedCalls
1499
1505
  makeAvmEnqueuedCallHint(seed + 0x7000), // teardownEnqueuedCall
1506
+ makeGas(seed + 0x8000), // gasUsedByPrivate
1500
1507
  );
1501
1508
  }
1502
1509
 
@@ -1647,27 +1654,55 @@ export async function makeBloatedProcessedTx({
1647
1654
 
1648
1655
  if (privateOnly) {
1649
1656
  const data = makePrivateToRollupAccumulatedData(seed + 0x1000);
1657
+ clearContractClassLogs(data);
1650
1658
 
1651
1659
  const transactionFee = tx.data.gasUsed.computeFee(globalVariables.gasFees);
1652
1660
  feePaymentPublicDataWrite ??= new PublicDataWrite(Fr.random(), Fr.random());
1653
1661
 
1654
- clearLogs(data);
1655
-
1656
1662
  tx.data.forRollup!.end = data;
1657
1663
 
1658
1664
  return makeProcessedTxFromPrivateOnlyTx(tx, transactionFee, feePaymentPublicDataWrite, globalVariables);
1659
1665
  } else {
1660
- const nonRevertibleData = tx.data.forPublic!.nonRevertibleAccumulatedData;
1661
- const revertibleData = makePrivateToPublicAccumulatedData(seed + 0x1000);
1666
+ const dataFromPrivate = tx.data.forPublic!;
1662
1667
 
1663
- revertibleData.nullifiers[MAX_NULLIFIERS_PER_TX - 1] = Fr.ZERO; // Leave one space for the tx hash nullifier in nonRevertibleAccumulatedData.
1668
+ const nonRevertibleData = dataFromPrivate.nonRevertibleAccumulatedData;
1664
1669
 
1665
- clearLogs(revertibleData);
1666
-
1667
- tx.data.forPublic!.revertibleAccumulatedData = revertibleData;
1670
+ // Create revertible data.
1671
+ const revertibleData = makePrivateToPublicAccumulatedData(seed + 0x1000);
1672
+ clearContractClassLogs(revertibleData);
1673
+ revertibleData.nullifiers[MAX_NULLIFIERS_PER_TX - 1] = Fr.ZERO; // Leave one space for the tx hash nullifier in nonRevertibleAccumulatedData.
1674
+ dataFromPrivate.revertibleAccumulatedData = revertibleData;
1668
1675
 
1676
+ // Create avm output.
1669
1677
  const avmOutput = AvmCircuitPublicInputs.empty();
1678
+ // Assign data from private.
1670
1679
  avmOutput.globalVariables = globalVariables;
1680
+ avmOutput.startGasUsed = tx.data.gasUsed;
1681
+ avmOutput.gasSettings = gasSettings;
1682
+ avmOutput.feePayer = feePayer;
1683
+ avmOutput.publicCallRequestArrayLengths = new PublicCallRequestArrayLengths(
1684
+ tx.data.numberOfNonRevertiblePublicCallRequests(),
1685
+ tx.data.numberOfRevertiblePublicCallRequests(),
1686
+ tx.data.hasTeardownPublicCallRequest(),
1687
+ );
1688
+ avmOutput.publicSetupCallRequests = dataFromPrivate.nonRevertibleAccumulatedData.publicCallRequests;
1689
+ avmOutput.publicAppLogicCallRequests = dataFromPrivate.revertibleAccumulatedData.publicCallRequests;
1690
+ avmOutput.publicTeardownCallRequest = dataFromPrivate.publicTeardownCallRequest;
1691
+ avmOutput.previousNonRevertibleAccumulatedData = new PrivateToAvmAccumulatedData(
1692
+ dataFromPrivate.nonRevertibleAccumulatedData.noteHashes,
1693
+ dataFromPrivate.nonRevertibleAccumulatedData.nullifiers,
1694
+ dataFromPrivate.nonRevertibleAccumulatedData.l2ToL1Msgs,
1695
+ );
1696
+ avmOutput.previousNonRevertibleAccumulatedDataArrayLengths =
1697
+ avmOutput.previousNonRevertibleAccumulatedData.getArrayLengths();
1698
+ avmOutput.previousRevertibleAccumulatedData = new PrivateToAvmAccumulatedData(
1699
+ dataFromPrivate.revertibleAccumulatedData.noteHashes,
1700
+ dataFromPrivate.revertibleAccumulatedData.nullifiers,
1701
+ dataFromPrivate.revertibleAccumulatedData.l2ToL1Msgs,
1702
+ );
1703
+ avmOutput.previousRevertibleAccumulatedDataArrayLengths =
1704
+ avmOutput.previousRevertibleAccumulatedData.getArrayLengths();
1705
+ // Assign final data emitted from avm.
1671
1706
  avmOutput.accumulatedData.noteHashes = revertibleData.noteHashes;
1672
1707
  avmOutput.accumulatedData.nullifiers = mergeAccumulatedData(
1673
1708
  nonRevertibleData.nullifiers,
@@ -1680,8 +1715,10 @@ export async function makeBloatedProcessedTx({
1680
1715
  i => new PublicDataWrite(new Fr(i), new Fr(i + 10)),
1681
1716
  seed + 0x2000,
1682
1717
  );
1718
+ avmOutput.gasSettings = clampGasSettingsForAVM(gasSettings, tx.data.gasUsed);
1683
1719
 
1684
1720
  const avmCircuitInputs = await makeAvmCircuitInputs(seed + 0x3000, { publicInputs: avmOutput });
1721
+
1685
1722
  const gasUsed = {
1686
1723
  totalGas: Gas.empty(),
1687
1724
  teardownGas: Gas.empty(),
@@ -1702,8 +1739,8 @@ export async function makeBloatedProcessedTx({
1702
1739
  }
1703
1740
  }
1704
1741
 
1705
- // Remove all logs as it's ugly to mock them at the moment and we are going to change it to have the preimages be part of the public inputs soon.
1706
- function clearLogs(data: { publicLogs?: PublicLog[]; contractClassLogsHashes: ScopedLogHash[] }) {
1707
- data.publicLogs?.forEach((_, i) => (data.publicLogs![i] = PublicLog.empty()));
1742
+ // Remove all contract class log hashes from the data as they are not required for the current tests.
1743
+ // If they are needed one day, change this to create the random fields first and update the data with real hashes of those fields.
1744
+ function clearContractClassLogs(data: { contractClassLogsHashes: ScopedLogHash[] }) {
1708
1745
  data.contractClassLogsHashes.forEach((_, i) => (data.contractClassLogsHashes[i] = ScopedLogHash.empty()));
1709
1746
  }
@@ -6,6 +6,7 @@ import { Fr } from '@aztec/foundation/fields';
6
6
 
7
7
  import type { ContractArtifact } from '../abi/abi.js';
8
8
  import { AztecAddress } from '../aztec-address/index.js';
9
+ import { CommitteeAttestation } from '../block/index.js';
9
10
  import { L2Block } from '../block/l2_block.js';
10
11
  import type { PublishedL2Block } from '../block/published_l2_block.js';
11
12
  import { computeContractAddressFromInstance } from '../contract/contract_address.js';
@@ -299,7 +300,7 @@ export async function randomPublishedL2Block(
299
300
  };
300
301
 
301
302
  const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
302
- const attestations = await Promise.all(
303
+ const atts = await Promise.all(
303
304
  signers.map(signer =>
304
305
  makeBlockAttestation({
305
306
  signer,
@@ -310,6 +311,8 @@ export async function randomPublishedL2Block(
310
311
  }),
311
312
  ),
312
313
  );
313
- const signatures = attestations.map(attestation => attestation.signature);
314
- return { block, l1, signatures };
314
+ const attestations = atts.map(
315
+ (attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
316
+ );
317
+ return { block, l1, attestations };
315
318
  }
@@ -99,7 +99,7 @@ export async function makeProcessedTxFromPrivateOnlyTx(
99
99
  [feePaymentPublicDataWrite],
100
100
  data.end.privateLogs.filter(l => !l.isEmpty()),
101
101
  [],
102
- await tx.filterContractClassLogs(tx.data.getNonEmptyContractClassLogsHashes(), true),
102
+ tx.getContractClassLogs(),
103
103
  );
104
104
 
105
105
  const gasUsed = {
@@ -147,10 +147,9 @@ export async function makeProcessedTxFromTxWithPublicCalls(
147
147
  ...(revertCode.isOK() ? tx.data.forPublic!.revertibleAccumulatedData.privateLogs : []),
148
148
  ].filter(l => !l.isEmpty());
149
149
 
150
- const contractClassLogs = [
151
- ...(await tx.getSplitContractClassLogs(false, true)),
152
- ...(revertCode.isOK() ? await tx.getSplitContractClassLogs(true, true) : []),
153
- ].filter(l => !l.isEmpty());
150
+ const contractClassLogs = revertCode.isOK()
151
+ ? tx.getContractClassLogs()
152
+ : tx.getSplitContractClassLogs(false /* revertible */);
154
153
 
155
154
  const txEffect = new TxEffect(
156
155
  revertCode,
package/src/tx/tx.ts CHANGED
@@ -11,7 +11,6 @@ import type { GasSettings } from '../gas/gas_settings.js';
11
11
  import type { GetPublicLogsResponse } from '../interfaces/get_logs_response.js';
12
12
  import type { L2LogsSource } from '../interfaces/l2_logs_source.js';
13
13
  import type { PublicCallRequest } from '../kernel/index.js';
14
- import type { ScopedLogHash } from '../kernel/log_hash.js';
15
14
  import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
16
15
  import { ContractClassLog, ContractClassLogFields } from '../logs/contract_class_log.js';
17
16
  import { Gossipable } from '../p2p/gossipable.js';
@@ -42,9 +41,11 @@ export class Tx extends Gossipable {
42
41
  */
43
42
  public readonly clientIvcProof: ClientIvcProof,
44
43
  /**
45
- * Contract class logs generated by the tx.
44
+ * Contract class log fields emitted from the tx.
45
+ * Their order should match the order of the log hashes returned from `this.data.getNonEmptyContractClassLogsHashes`.
46
+ * It's checked in data_validator.ts
46
47
  */
47
- public contractClassLogs: ContractClassLogFields[],
48
+ public contractClassLogFields: ContractClassLogFields[],
48
49
  /**
49
50
  * An array of calldata for the enqueued public function calls and the teardown function call.
50
51
  */
@@ -120,7 +121,7 @@ export class Tx extends Gossipable {
120
121
  return serializeToBuffer([
121
122
  this.data,
122
123
  this.clientIvcProof,
123
- serializeArrayOfBufferableToVector(this.contractClassLogs, 1),
124
+ serializeArrayOfBufferableToVector(this.contractClassLogFields, 1),
124
125
  serializeArrayOfBufferableToVector(this.publicFunctionCalldata, 1),
125
126
  ]);
126
127
  }
@@ -130,14 +131,14 @@ export class Tx extends Gossipable {
130
131
  .object({
131
132
  data: PrivateKernelTailCircuitPublicInputs.schema,
132
133
  clientIvcProof: ClientIvcProof.schema,
133
- contractClassLogs: z.array(ContractClassLogFields.schema),
134
+ contractClassLogFields: z.array(ContractClassLogFields.schema),
134
135
  publicFunctionCalldata: z.array(HashedValues.schema),
135
136
  })
136
137
  .transform(Tx.from);
137
138
  }
138
139
 
139
140
  static from(fields: FieldsOf<Tx>) {
140
- return new Tx(fields.data, fields.clientIvcProof, fields.contractClassLogs, fields.publicFunctionCalldata);
141
+ return new Tx(fields.data, fields.clientIvcProof, fields.contractClassLogFields, fields.publicFunctionCalldata);
141
142
  }
142
143
 
143
144
  /**
@@ -149,43 +150,32 @@ export class Tx extends Gossipable {
149
150
  return logsSource.getPublicLogs({ txHash: await this.getTxHash() });
150
151
  }
151
152
 
153
+ getContractClassLogs(): ContractClassLog[] {
154
+ const logHashes = this.data.getNonEmptyContractClassLogsHashes();
155
+ return logHashes.map((logHash, i) =>
156
+ ContractClassLog.from({
157
+ contractAddress: logHash.contractAddress,
158
+ fields: this.contractClassLogFields[i],
159
+ emittedLength: logHash.logHash.length,
160
+ }),
161
+ );
162
+ }
163
+
152
164
  /**
153
165
  * Gets either revertible or non revertible contract class logs emitted by this tx.
154
166
  * @param revertible - true for revertible only logs, false for non reverible only logs.
155
167
  * @returns The requested logs.
156
168
  */
157
- async getSplitContractClassLogs(revertible: boolean, silo: boolean = false): Promise<ContractClassLog[]> {
158
- // Should only be called on txs with public calls
169
+ getSplitContractClassLogs(revertible: boolean): ContractClassLog[] {
159
170
  if (!this.data.forPublic) {
160
- return [];
171
+ throw new Error('`getSplitContractClassLogs` should only be called on txs with public calls');
161
172
  }
162
- const contractClassLogsHashes = revertible
163
- ? this.data.forPublic.revertibleAccumulatedData.contractClassLogsHashes.filter(h => !h.isEmpty())
164
- : this.data.forPublic.nonRevertibleAccumulatedData.contractClassLogsHashes.filter(h => !h.isEmpty());
165
- return await this.filterContractClassLogs(contractClassLogsHashes, silo);
166
- }
167
173
 
168
- /**
169
- * Filters contract class logs emitted by this tx.
170
- * @param logHashes - logs to keep represented by their hashes.
171
- * @param silo - whether to silo the logs before returning them.
172
- * @returns The requested logs.
173
- */
174
- async filterContractClassLogs(logHashes: ScopedLogHash[], silo: boolean = false): Promise<ContractClassLog[]> {
175
- const contractClassLogs = [];
176
- for (const fields of this.contractClassLogs) {
177
- const hashedLog = await fields.hash();
178
- const logHash = logHashes.find(hash => hash.value.equals(hashedLog));
179
- if (logHash) {
180
- const log = ContractClassLog.from({
181
- contractAddress: logHash.contractAddress,
182
- fields,
183
- emittedLength: logHash.logHash.length,
184
- });
185
- contractClassLogs.push(silo ? await log.silo() : log);
186
- }
187
- }
188
- return contractClassLogs;
174
+ const contractClassLogs = this.getContractClassLogs();
175
+ const numNonRevertible = this.data.forPublic.nonRevertibleAccumulatedData.contractClassLogsHashes.filter(
176
+ h => !h.isEmpty(),
177
+ ).length;
178
+ return revertible ? contractClassLogs.slice(numNonRevertible) : contractClassLogs.slice(0, numNonRevertible);
189
179
  }
190
180
 
191
181
  /**
@@ -246,7 +236,7 @@ export class Tx extends Gossipable {
246
236
  return (
247
237
  this.data.getSize() +
248
238
  this.clientIvcProof.clientIvcProofBuffer.length +
249
- arraySerializedSizeOfNonEmpty(this.contractClassLogs) +
239
+ arraySerializedSizeOfNonEmpty(this.contractClassLogFields) +
250
240
  this.publicFunctionCalldata.reduce((accum, cd) => accum + cd.getSize(), 0)
251
241
  );
252
242
  }
@@ -290,9 +280,9 @@ export class Tx extends Gossipable {
290
280
  static clone(tx: Tx): Tx {
291
281
  const publicInputs = PrivateKernelTailCircuitPublicInputs.fromBuffer(tx.data.toBuffer());
292
282
  const clientIvcProof = ClientIvcProof.fromBuffer(tx.clientIvcProof.toBuffer());
293
- const contractClassLogs = tx.contractClassLogs.map(p => p.clone());
283
+ const contractClassLogFields = tx.contractClassLogFields.map(p => p.clone());
294
284
  const publicFunctionCalldata = tx.publicFunctionCalldata.map(cd => HashedValues.fromBuffer(cd.toBuffer()));
295
- const clonedTx = new Tx(publicInputs, clientIvcProof, contractClassLogs, publicFunctionCalldata);
285
+ const clonedTx = new Tx(publicInputs, clientIvcProof, contractClassLogFields, publicFunctionCalldata);
296
286
  if (tx.txHash) {
297
287
  clonedTx.setTxHash(TxHash.fromBuffer(tx.txHash.toBuffer()));
298
288
  }
@@ -314,22 +304,6 @@ export class Tx extends Gossipable {
314
304
  );
315
305
  }
316
306
 
317
- /**
318
- * Filters out logs from functions that are not present in the provided kernel output.
319
- *
320
- * The purpose of this is to remove logs that got dropped due to a revert,
321
- * in which case, we only have the kernel's hashes to go on, as opposed to
322
- * this grouping by function maintained in this class.
323
- *
324
- * The logic therefore is to drop all FunctionLogs if any constituent hash
325
- * does not appear in the provided hashes: it is impossible for part of a
326
- * function to revert.
327
- */
328
- // TODO: don't modify the tx object directly. The preimages should match the log hashes. When did the log hashes change?
329
- public async filterRevertedLogs() {
330
- this.contractClassLogs = (await this.getSplitContractClassLogs(false)).map(log => log.fields);
331
- }
332
-
333
307
  #combinePublicCallRequestWithCallData(request: PublicCallRequest) {
334
308
  const calldataMap = this.getCalldataMap();
335
309
  // Assume empty calldata if nothing is given for the hash.
@@ -232,15 +232,33 @@ export class TxEffect {
232
232
  return thisLayer[0];
233
233
  }
234
234
 
235
- static async random(numPublicCallsPerTx = 3, numPublicLogsPerCall = 1): Promise<TxEffect> {
235
+ static async random(
236
+ numPublicCallsPerTx = 3,
237
+ numPublicLogsPerCall = 1,
238
+ maxEffects: number | undefined = undefined,
239
+ ): Promise<TxEffect> {
236
240
  return new TxEffect(
237
241
  RevertCode.random(),
238
242
  TxHash.random(),
239
243
  new Fr(Math.floor(Math.random() * 100_000)),
240
- makeTuple(MAX_NOTE_HASHES_PER_TX, Fr.random),
241
- makeTuple(MAX_NULLIFIERS_PER_TX, Fr.random),
242
- makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, Fr.random),
243
- makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataWrite.random),
244
+ makeTuple(
245
+ maxEffects === undefined ? MAX_NOTE_HASHES_PER_TX : Math.min(maxEffects, MAX_NOTE_HASHES_PER_TX),
246
+ Fr.random,
247
+ ),
248
+ makeTuple(
249
+ maxEffects === undefined ? MAX_NULLIFIERS_PER_TX : Math.min(maxEffects, MAX_NULLIFIERS_PER_TX),
250
+ Fr.random,
251
+ ),
252
+ makeTuple(
253
+ maxEffects === undefined ? MAX_L2_TO_L1_MSGS_PER_TX : Math.min(maxEffects, MAX_L2_TO_L1_MSGS_PER_TX),
254
+ Fr.random,
255
+ ),
256
+ makeTuple(
257
+ maxEffects === undefined
258
+ ? MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX
259
+ : Math.min(maxEffects, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX),
260
+ PublicDataWrite.random,
261
+ ),
244
262
  makeTuple(MAX_PRIVATE_LOGS_PER_TX, () => PrivateLog.random()),
245
263
  await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async () => await PublicLog.random()),
246
264
  await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random),
package/src/tx/tx_hash.ts CHANGED
@@ -29,6 +29,10 @@ export class TxHash {
29
29
  return new TxHash(new Fr(value));
30
30
  }
31
31
 
32
+ static fromField(value: Fr) {
33
+ return new TxHash(value);
34
+ }
35
+
32
36
  public toBuffer() {
33
37
  return this.hash.toBuffer();
34
38
  }
@@ -35,3 +35,5 @@ export type ValidatorsStats = {
35
35
  initialSlot?: bigint;
36
36
  slotWindow: number;
37
37
  };
38
+
39
+ export type ValidatorsEpochPerformance = Record<`0x${string}`, { missed: number; total: number }>;
package/src/vks/index.ts 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';
@@ -7,26 +7,26 @@ import { bufferToHex } from '@aztec/foundation/string';
7
7
  import type { UInt32 } from '../types/shared.js';
8
8
  import { VerificationKeyData } from './verification_key.js';
9
9
 
10
- export class VkWitnessData {
10
+ export class VkData {
11
11
  constructor(
12
12
  public vk: VerificationKeyData,
13
13
  /**
14
14
  * Index of the vk in the vk tree.
15
15
  */
16
- public vkIndex: UInt32,
16
+ public leafIndex: UInt32,
17
17
  /**
18
18
  * Sibling path of the vk in the vk tree.
19
19
  */
20
- public vkPath: Tuple<Fr, typeof VK_TREE_HEIGHT>,
20
+ public siblingPath: Tuple<Fr, typeof VK_TREE_HEIGHT>,
21
21
  ) {}
22
22
 
23
23
  static empty() {
24
- return new VkWitnessData(VerificationKeyData.empty(), 0, makeTuple(VK_TREE_HEIGHT, Fr.zero));
24
+ return new VkData(VerificationKeyData.empty(), 0, makeTuple(VK_TREE_HEIGHT, Fr.zero));
25
25
  }
26
26
 
27
27
  static fromBuffer(buffer: Buffer | BufferReader) {
28
28
  const reader = BufferReader.asReader(buffer);
29
- return new VkWitnessData(
29
+ return new VkData(
30
30
  reader.readObject(VerificationKeyData),
31
31
  reader.readNumber(),
32
32
  reader.readArray(VK_TREE_HEIGHT, Fr),
@@ -34,7 +34,7 @@ export class VkWitnessData {
34
34
  }
35
35
 
36
36
  toBuffer() {
37
- return serializeToBuffer(this.vk, this.vkIndex, this.vkPath);
37
+ return serializeToBuffer(this.vk, this.leafIndex, this.siblingPath);
38
38
  }
39
39
 
40
40
  toString() {
@@ -1 +0,0 @@
1
- {"version":3,"file":"vk_witness_data.d.ts","sourceRoot":"","sources":["../../src/vks/vk_witness_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,aAAa;IAEf,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,OAAO,EAAE,MAAM;IACtB;;OAEG;IACI,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;gBARxC,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,OAAO,EAAE,MAAM;IACtB;;OAEG;IACI,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;IAGjD,MAAM,CAAC,KAAK;IAIZ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAS/C,QAAQ;IAIR,QAAQ;CAGT"}