@aztec/stdlib 3.0.0-nightly.20250925 → 3.0.0-nightly.20250927

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 (118) hide show
  1. package/dest/abi/event_metadata_definition.d.ts +8 -0
  2. package/dest/abi/event_metadata_definition.d.ts.map +1 -0
  3. package/dest/abi/event_metadata_definition.js +1 -0
  4. package/dest/abi/index.d.ts +1 -0
  5. package/dest/abi/index.d.ts.map +1 -1
  6. package/dest/abi/index.js +1 -0
  7. package/dest/avm/avm_accumulated_data.d.ts +1 -0
  8. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  9. package/dest/avm/avm_accumulated_data.js +4 -0
  10. package/dest/avm/index.d.ts +0 -1
  11. package/dest/avm/index.d.ts.map +1 -1
  12. package/dest/avm/index.js +0 -1
  13. package/dest/block/body.d.ts.map +1 -1
  14. package/dest/block/body.js +0 -5
  15. package/dest/contract/contract_class_metadata.d.ts +8 -0
  16. package/dest/contract/contract_class_metadata.d.ts.map +1 -0
  17. package/dest/contract/contract_class_metadata.js +1 -0
  18. package/dest/contract/contract_metadata.d.ts +7 -0
  19. package/dest/contract/contract_metadata.d.ts.map +1 -0
  20. package/dest/contract/contract_metadata.js +1 -0
  21. package/dest/contract/index.d.ts +2 -0
  22. package/dest/contract/index.d.ts.map +1 -1
  23. package/dest/contract/index.js +2 -0
  24. package/dest/file-store/factory.d.ts.map +1 -1
  25. package/dest/file-store/factory.js +18 -0
  26. package/dest/file-store/s3.d.ts +25 -0
  27. package/dest/file-store/s3.d.ts.map +1 -0
  28. package/dest/file-store/s3.js +187 -0
  29. package/dest/interfaces/aztec-node-admin.d.ts +6 -0
  30. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  31. package/dest/interfaces/client.d.ts +0 -1
  32. package/dest/interfaces/client.d.ts.map +1 -1
  33. package/dest/interfaces/client.js +0 -1
  34. package/dest/interfaces/proving-job.d.ts +5 -5
  35. package/dest/interfaces/proving-job.d.ts.map +1 -1
  36. package/dest/interfaces/proving-job.js +3 -3
  37. package/dest/interfaces/server_circuit_prover.d.ts +2 -2
  38. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  39. package/dest/interfaces/slasher.d.ts +4 -0
  40. package/dest/interfaces/slasher.d.ts.map +1 -1
  41. package/dest/interfaces/slasher.js +1 -0
  42. package/dest/interfaces/validator.d.ts +6 -1
  43. package/dest/interfaces/validator.d.ts.map +1 -1
  44. package/dest/interfaces/validator.js +2 -1
  45. package/dest/logs/contract_class_log.d.ts +1 -1
  46. package/dest/logs/contract_class_log.d.ts.map +1 -1
  47. package/dest/logs/contract_class_log.js +1 -3
  48. package/dest/rollup/avm_proof_data.d.ts +2 -12
  49. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  50. package/dest/rollup/avm_proof_data.js +0 -24
  51. package/dest/rollup/base_rollup_hints.d.ts +16 -25
  52. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  53. package/dest/rollup/base_rollup_hints.js +26 -32
  54. package/dest/rollup/block_root_rollup_private_inputs.d.ts +13 -13
  55. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  56. package/dest/rollup/block_root_rollup_private_inputs.js +20 -20
  57. package/dest/rollup/index.d.ts +2 -1
  58. package/dest/rollup/index.d.ts.map +1 -1
  59. package/dest/rollup/index.js +2 -1
  60. package/dest/rollup/public_tube_private_inputs.d.ts +4 -2
  61. package/dest/rollup/public_tube_private_inputs.d.ts.map +1 -1
  62. package/dest/rollup/public_tube_private_inputs.js +7 -3
  63. package/dest/rollup/public_tube_public_inputs.d.ts +20 -0
  64. package/dest/rollup/public_tube_public_inputs.d.ts.map +1 -0
  65. package/dest/rollup/public_tube_public_inputs.js +41 -0
  66. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +5 -5
  67. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  68. package/dest/rollup/public_tx_base_rollup_private_inputs.js +3 -3
  69. package/dest/rollup/{state_diff_hints.d.ts → tree_snapshot_diff_hints.d.ts} +22 -38
  70. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -0
  71. package/dest/rollup/tree_snapshot_diff_hints.js +75 -0
  72. package/dest/rollup/tx_rollup_public_inputs.d.ts +4 -4
  73. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  74. package/dest/rollup/tx_rollup_public_inputs.js +7 -7
  75. package/dest/tests/factories.d.ts +6 -4
  76. package/dest/tests/factories.d.ts.map +1 -1
  77. package/dest/tests/factories.js +26 -28
  78. package/dest/tx/tx_effect.d.ts +3 -33
  79. package/dest/tx/tx_effect.d.ts.map +1 -1
  80. package/dest/tx/tx_effect.js +58 -191
  81. package/package.json +9 -8
  82. package/src/abi/event_metadata_definition.ts +8 -0
  83. package/src/abi/index.ts +1 -0
  84. package/src/avm/avm_accumulated_data.ts +10 -0
  85. package/src/avm/index.ts +0 -1
  86. package/src/block/body.ts +1 -7
  87. package/src/contract/contract_class_metadata.ts +8 -0
  88. package/src/contract/contract_metadata.ts +7 -0
  89. package/src/contract/index.ts +2 -0
  90. package/src/file-store/factory.ts +15 -0
  91. package/src/file-store/s3.ts +186 -0
  92. package/src/interfaces/client.ts +0 -1
  93. package/src/interfaces/proving-job.ts +4 -4
  94. package/src/interfaces/server_circuit_prover.ts +2 -7
  95. package/src/interfaces/slasher.ts +2 -0
  96. package/src/interfaces/validator.ts +5 -1
  97. package/src/logs/contract_class_log.ts +2 -3
  98. package/src/rollup/avm_proof_data.ts +2 -31
  99. package/src/rollup/base_rollup_hints.ts +20 -28
  100. package/src/rollup/block_root_rollup_private_inputs.ts +14 -14
  101. package/src/rollup/index.ts +2 -1
  102. package/src/rollup/public_tube_private_inputs.ts +10 -3
  103. package/src/rollup/public_tube_public_inputs.ts +52 -0
  104. package/src/rollup/public_tx_base_rollup_private_inputs.ts +6 -5
  105. package/src/rollup/{state_diff_hints.ts → tree_snapshot_diff_hints.ts} +26 -41
  106. package/src/rollup/tx_rollup_public_inputs.ts +4 -4
  107. package/src/tests/factories.ts +31 -43
  108. package/src/tx/tx_effect.ts +59 -204
  109. package/dest/avm/public_data_hint.d.ts +0 -16
  110. package/dest/avm/public_data_hint.d.ts.map +0 -1
  111. package/dest/avm/public_data_hint.js +0 -27
  112. package/dest/interfaces/pxe.d.ts +0 -235
  113. package/dest/interfaces/pxe.d.ts.map +0 -1
  114. package/dest/interfaces/pxe.js +0 -13
  115. package/dest/rollup/state_diff_hints.d.ts.map +0 -1
  116. package/dest/rollup/state_diff_hints.js +0 -85
  117. package/src/avm/public_data_hint.ts +0 -38
  118. package/src/interfaces/pxe.ts +0 -284
@@ -10,8 +10,8 @@ import { BlockConstantData } from './block_constant_data.js';
10
10
  */ export class TxRollupPublicInputs {
11
11
  numTxs;
12
12
  constants;
13
- startPartialState;
14
- endPartialState;
13
+ startTreeSnapshots;
14
+ endTreeSnapshots;
15
15
  startSpongeBlob;
16
16
  endSpongeBlob;
17
17
  outHash;
@@ -23,9 +23,9 @@ import { BlockConstantData } from './block_constant_data.js';
23
23
  * Data which is forwarded through the rollup circuits unchanged.
24
24
  */ constants, /**
25
25
  * Partial state reference at the start of the rollup circuit.
26
- */ startPartialState, /**
26
+ */ startTreeSnapshots, /**
27
27
  * Partial state reference at the end of the rollup circuit.
28
- */ endPartialState, /**
28
+ */ endTreeSnapshots, /**
29
29
  * Sponge state to absorb blob inputs at the start of the rollup circuit.
30
30
  */ startSpongeBlob, /**
31
31
  * Sponge state to absorb blob inputs at the end of the rollup circuit.
@@ -39,8 +39,8 @@ import { BlockConstantData } from './block_constant_data.js';
39
39
  */ accumulatedManaUsed){
40
40
  this.numTxs = numTxs;
41
41
  this.constants = constants;
42
- this.startPartialState = startPartialState;
43
- this.endPartialState = endPartialState;
42
+ this.startTreeSnapshots = startTreeSnapshots;
43
+ this.endTreeSnapshots = endTreeSnapshots;
44
44
  this.startSpongeBlob = startSpongeBlob;
45
45
  this.endSpongeBlob = endSpongeBlob;
46
46
  this.outHash = outHash;
@@ -63,7 +63,7 @@ import { BlockConstantData } from './block_constant_data.js';
63
63
  * Serialize this as a buffer.
64
64
  * @returns The buffer.
65
65
  */ toBuffer() {
66
- return serializeToBuffer(this.numTxs, this.constants, this.startPartialState, this.endPartialState, this.startSpongeBlob, this.endSpongeBlob, this.outHash, this.accumulatedFees, this.accumulatedManaUsed);
66
+ return serializeToBuffer(this.numTxs, this.constants, this.startTreeSnapshots, this.endTreeSnapshots, this.startSpongeBlob, this.endSpongeBlob, this.outHash, this.accumulatedFees, this.accumulatedManaUsed);
67
67
  }
68
68
  /**
69
69
  * Serialize this as a hex string.
@@ -32,9 +32,10 @@ import { BlockRootFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs
32
32
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
33
33
  import { CheckpointRollupPublicInputs } from '../rollup/checkpoint_rollup_public_inputs.js';
34
34
  import { PrivateTxBaseRollupPrivateInputs } from '../rollup/private_tx_base_rollup_private_inputs.js';
35
+ import { PublicTubePublicInputs } from '../rollup/public_tube_public_inputs.js';
35
36
  import { PublicTxBaseRollupPrivateInputs } from '../rollup/public_tx_base_rollup_private_inputs.js';
36
37
  import { RootRollupPublicInputs } from '../rollup/root_rollup_public_inputs.js';
37
- import { PrivateBaseStateDiffHints } from '../rollup/state_diff_hints.js';
38
+ import { TreeSnapshotDiffHints } from '../rollup/tree_snapshot_diff_hints.js';
38
39
  import { TxMergeRollupPrivateInputs } from '../rollup/tx_merge_rollup_private_inputs.js';
39
40
  import { TxRollupPublicInputs } from '../rollup/tx_rollup_public_inputs.js';
40
41
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
@@ -111,6 +112,7 @@ export declare function makeCallContext(seed?: number, overrides?: Partial<Field
111
112
  */
112
113
  export declare function makePrivateKernelTailCircuitPublicInputs(seed?: number, isForPublic?: boolean): PrivateKernelTailCircuitPublicInputs;
113
114
  export declare function makePrivateToPublicKernelCircuitPublicInputs(seed?: number): PrivateToPublicKernelCircuitPublicInputs;
115
+ export declare function makePublicTubePublicInputs(seed?: number): PublicTubePublicInputs;
114
116
  /**
115
117
  * Creates arbitrary public kernel circuit public inputs.
116
118
  * @param seed - The seed to use for generating the kernel circuit public inputs.
@@ -285,11 +287,11 @@ export declare function makeNullifierLeafPreimage(seed?: number): NullifierLeafP
285
287
  */
286
288
  export declare function makePublicDataTreeLeafPreimage(seed?: number): PublicDataTreeLeafPreimage;
287
289
  /**
288
- * Creates an instance of PrivateBaseStateDiffHints with arbitrary values based on the provided seed.
290
+ * Creates an instance of TreeSnapshotDiffHints with arbitrary values based on the provided seed.
289
291
  * @param seed - The seed to use for generating the hints.
290
- * @returns A PrivateBaseStateDiffHints object.
292
+ * @returns A TreeSnapshotDiffHints object.
291
293
  */
292
- export declare function makePrivateBaseStateDiffHints(seed?: number): PrivateBaseStateDiffHints;
294
+ export declare function makeTreeSnapshotDiffHints(seed?: number): TreeSnapshotDiffHints;
293
295
  export declare function makeProofData<T extends Bufferable, PROOF_LENGTH extends number>(seed: number | undefined, makePublicInputs: (seed: number) => T, proofSize?: PROOF_LENGTH): ProofData<T, PROOF_LENGTH>;
294
296
  export declare function makePrivateTxBaseRollupPrivateInputs(seed?: number): PrivateTxBaseRollupPrivateInputs;
295
297
  export declare function makePublicTxBaseRollupPrivateInputs(seed?: number): PublicTxBaseRollupPrivateInputs;
@@ -1 +1 @@
1
- {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/tests/factories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/tests/factories.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { BlobAccumulatorPublicInputs, FinalBlobAccumulatorPublicInputs } from '@aztec/blob-lib';
2
2
  import { makeBatchedBlobAccumulator, makeSpongeBlob } from '@aztec/blob-lib/testing';
3
- import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AZTEC_MAX_EPOCH_DURATION, CIVC_PROOF_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, FIXED_DA_GAS, FIXED_L2_GAS, GeneratorIndex, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_ENQUEUED_CALLS_PER_CALL, MAX_ENQUEUED_CALLS_PER_TX, MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL, MAX_PRIVATE_LOGS_PER_TX, MAX_PROTOCOL_CONTRACTS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_BASE_PARITY_PER_ROOT_PARITY, NUM_MSGS_PER_BASE_PARITY, PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_DATA_TREE_HEIGHT, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
3
+ import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AZTEC_MAX_EPOCH_DURATION, CIVC_PROOF_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, FIXED_DA_GAS, FIXED_L2_GAS, GeneratorIndex, L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_ENQUEUED_CALLS_PER_CALL, MAX_ENQUEUED_CALLS_PER_TX, MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL, MAX_PRIVATE_LOGS_PER_TX, MAX_PROTOCOL_CONTRACTS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_BASE_PARITY_PER_ROOT_PARITY, NUM_MSGS_PER_BASE_PARITY, PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_DATA_TREE_HEIGHT, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
4
4
  import { makeHalfFullTuple, makeTuple } from '@aztec/foundation/array';
5
5
  import { compact, padArrayEnd } from '@aztec/foundation/collection';
6
6
  import { SchnorrSignature, poseidon2HashWithSeparator, sha256 } from '@aztec/foundation/crypto';
@@ -11,7 +11,6 @@ import { FunctionSelector } from '../abi/function_selector.js';
11
11
  import { ContractStorageRead } from '../avm/contract_storage_read.js';
12
12
  import { ContractStorageUpdateRequest } from '../avm/contract_storage_update_request.js';
13
13
  import { AvmAccumulatedData, AvmAccumulatedDataArrayLengths, AvmAppendLeavesHint, AvmBytecodeCommitmentHint, AvmCircuitInputs, AvmCircuitPublicInputs, AvmCommitCheckpointHint, AvmContractClassHint, AvmContractInstanceHint, AvmCreateCheckpointHint, AvmExecutionHints, AvmGetLeafPreimageHintNullifierTree, AvmGetLeafPreimageHintPublicDataTree, AvmGetLeafValueHint, AvmGetPreviousValueIndexHint, AvmGetSiblingPathHint, AvmProtocolContractAddressHint, AvmRevertCheckpointHint, AvmSequentialInsertHintNullifierTree, AvmSequentialInsertHintPublicDataTree, AvmTxHint, RevertCode } from '../avm/index.js';
14
- import { PublicDataHint } from '../avm/public_data_hint.js';
15
14
  import { PublicDataRead } from '../avm/public_data_read.js';
16
15
  import { PublicDataWrite } from '../avm/public_data_write.js';
17
16
  import { AztecAddress } from '../aztec-address/index.js';
@@ -43,7 +42,6 @@ import { ProofData } from '../proofs/index.js';
43
42
  import { Proof } from '../proofs/proof.js';
44
43
  import { ProvingRequestType } from '../proofs/proving_request_type.js';
45
44
  import { makeRecursiveProof } from '../proofs/recursive_proof.js';
46
- import { AvmProofData } from '../rollup/avm_proof_data.js';
47
45
  import { PrivateBaseRollupHints, PublicBaseRollupHints } from '../rollup/base_rollup_hints.js';
48
46
  import { BlockConstantData } from '../rollup/block_constant_data.js';
49
47
  import { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup_private_inputs.js';
@@ -54,9 +52,10 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
54
52
  import { CheckpointRollupPublicInputs, FeeRecipient } from '../rollup/checkpoint_rollup_public_inputs.js';
55
53
  import { EpochConstantData } from '../rollup/epoch_constant_data.js';
56
54
  import { PrivateTxBaseRollupPrivateInputs } from '../rollup/private_tx_base_rollup_private_inputs.js';
55
+ import { PublicTubePublicInputs } from '../rollup/public_tube_public_inputs.js';
57
56
  import { PublicTxBaseRollupPrivateInputs } from '../rollup/public_tx_base_rollup_private_inputs.js';
58
57
  import { RootRollupPublicInputs } from '../rollup/root_rollup_public_inputs.js';
59
- import { PrivateBaseStateDiffHints } from '../rollup/state_diff_hints.js';
58
+ import { TreeSnapshotDiffHints } from '../rollup/tree_snapshot_diff_hints.js';
60
59
  import { TxMergeRollupPrivateInputs } from '../rollup/tx_merge_rollup_private_inputs.js';
61
60
  import { TxRollupPublicInputs } from '../rollup/tx_rollup_public_inputs.js';
62
61
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
@@ -231,6 +230,9 @@ export function makeGas(seed = 1) {
231
230
  export function makePrivateToPublicKernelCircuitPublicInputs(seed = 1) {
232
231
  return new PrivateToPublicKernelCircuitPublicInputs(makeTxConstantData(seed), makePrivateToPublicAccumulatedData(seed + 0x200), makePrivateToPublicAccumulatedData(seed + 0x300), makePublicCallRequest(seed + 0x400), makeGas(seed + 0x500), makeAztecAddress(seed + 0x600), BigInt(seed + 0x700));
233
232
  }
233
+ export function makePublicTubePublicInputs(seed = 1) {
234
+ return new PublicTubePublicInputs(makePrivateToPublicKernelCircuitPublicInputs(seed), fr(seed + 0x1000));
235
+ }
234
236
  /**
235
237
  * Creates arbitrary public kernel circuit public inputs.
236
238
  * @param seed - The seed to use for generating the kernel circuit public inputs.
@@ -534,7 +536,7 @@ export function makeBlockRootFirstRollupPrivateInputs(seed = 0) {
534
536
  return new BlockRootFirstRollupPrivateInputs(makeProofData(seed, makeParityPublicInputs), [
535
537
  makeProofData(seed + 0x1000, makeTxRollupPublicInputs),
536
538
  makeProofData(seed + 0x2000, makeTxRollupPublicInputs)
537
- ], makeAppendOnlyTreeSnapshot(seed + 0x3000), makeSiblingPath(seed + 0x4000, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH), makeSiblingPath(seed + 0x5000, ARCHIVE_HEIGHT));
539
+ ], makeAppendOnlyTreeSnapshot(seed + 0x3000), makeSiblingPath(seed + 0x4000, L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH), makeSiblingPath(seed + 0x5000, ARCHIVE_HEIGHT));
538
540
  }
539
541
  export function makeBlockRootSingleTxRollupPrivateInputs(seed = 0) {
540
542
  return new BlockRootSingleTxRollupPrivateInputs(makeProofData(seed + 0x1000, makeTxRollupPublicInputs), makeSiblingPath(seed + 0x4000, ARCHIVE_HEIGHT));
@@ -578,20 +580,18 @@ export function makeBlockRootSingleTxRollupPrivateInputs(seed = 0) {
578
580
  return new PublicDataTreeLeafPreimage(makePublicDataTreeLeaf(seed), new Fr(seed + 2), BigInt(seed + 3));
579
581
  }
580
582
  /**
581
- * Creates an instance of PrivateBaseStateDiffHints with arbitrary values based on the provided seed.
583
+ * Creates an instance of TreeSnapshotDiffHints with arbitrary values based on the provided seed.
582
584
  * @param seed - The seed to use for generating the hints.
583
- * @returns A PrivateBaseStateDiffHints object.
584
- */ export function makePrivateBaseStateDiffHints(seed = 1) {
585
+ * @returns A TreeSnapshotDiffHints object.
586
+ */ export function makeTreeSnapshotDiffHints(seed = 1) {
585
587
  const nullifierPredecessorPreimages = makeTuple(MAX_NULLIFIERS_PER_TX, (x)=>makeNullifierLeafPreimage(x), seed + 0x1000);
586
588
  const nullifierPredecessorMembershipWitnesses = makeTuple(MAX_NULLIFIERS_PER_TX, (x)=>makeMembershipWitness(NULLIFIER_TREE_HEIGHT, x), seed + 0x2000);
587
589
  const sortedNullifiers = makeTuple(MAX_NULLIFIERS_PER_TX, fr, seed + 0x3000);
588
590
  const sortedNullifierIndexes = makeTuple(MAX_NULLIFIERS_PER_TX, (i)=>i, seed + 0x4000);
589
- const noteHashSubtreeSiblingPath = makeTuple(NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, fr, seed + 0x5000);
590
- const nullifierSubtreeSiblingPath = makeTuple(NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, fr, seed + 0x6000);
591
- const feeWriteLowLeafPreimage = makePublicDataTreeLeafPreimage(seed + 0x7000);
592
- const feeWriteLowLeafMembershipWitness = makeMembershipWitness(PUBLIC_DATA_TREE_HEIGHT, seed + 0x8000);
593
- const feeWriteSiblingPath = makeTuple(PUBLIC_DATA_TREE_HEIGHT, fr, seed + 0x9000);
594
- return new PrivateBaseStateDiffHints(nullifierPredecessorPreimages, nullifierPredecessorMembershipWitnesses, sortedNullifiers, sortedNullifierIndexes, noteHashSubtreeSiblingPath, nullifierSubtreeSiblingPath, feeWriteLowLeafPreimage, feeWriteLowLeafMembershipWitness, feeWriteSiblingPath);
591
+ const noteHashSubtreeRootSiblingPath = makeTuple(NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, fr, seed + 0x5000);
592
+ const nullifierSubtreeRootSiblingPath = makeTuple(NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, fr, seed + 0x6000);
593
+ const feePayerBalanceMembershipWitness = makeMembershipWitness(PUBLIC_DATA_TREE_HEIGHT, seed + 0x8000);
594
+ return new TreeSnapshotDiffHints(noteHashSubtreeRootSiblingPath, nullifierPredecessorPreimages, nullifierPredecessorMembershipWitnesses, sortedNullifiers, sortedNullifierIndexes, nullifierSubtreeRootSiblingPath, feePayerBalanceMembershipWitness);
595
595
  }
596
596
  function makeVkData(seed = 1) {
597
597
  return new VkData(VerificationKeyData.makeFakeHonk(), seed, makeTuple(VK_TREE_HEIGHT, fr, seed + 0x100));
@@ -605,17 +605,17 @@ function makeContractClassLogFields(seed = 1) {
605
605
  function makePrivateBaseRollupHints(seed = 1) {
606
606
  const start = makePartialStateReference(seed + 0x100);
607
607
  const startSpongeBlob = makeSpongeBlob(seed + 0x200);
608
- const stateDiffHints = makePrivateBaseStateDiffHints(seed + 0x600);
609
- const archiveRootMembershipWitness = makeMembershipWitness(ARCHIVE_HEIGHT, seed + 0x9000);
608
+ const treeSnapshotDiffHints = makeTreeSnapshotDiffHints(seed + 0x600);
609
+ const anchorBlockArchiveSiblingPath = makeSiblingPath(seed + 0x9000, ARCHIVE_HEIGHT);
610
610
  const contractClassLogsFields = makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeContractClassLogFields, seed + 0x800);
611
611
  const constants = makeBlockConstantData(0x100);
612
- const feePayerFeeJuiceBalanceReadHint = PublicDataHint.empty();
612
+ const feePayerBalanceLeafPreimage = PublicDataTreeLeafPreimage.empty();
613
613
  return PrivateBaseRollupHints.from({
614
614
  start,
615
615
  startSpongeBlob,
616
- stateDiffHints,
617
- feePayerFeeJuiceBalanceReadHint,
618
- archiveRootMembershipWitness,
616
+ treeSnapshotDiffHints,
617
+ feePayerBalanceLeafPreimage,
618
+ anchorBlockArchiveSiblingPath,
619
619
  contractClassLogsFields,
620
620
  constants
621
621
  });
@@ -624,9 +624,8 @@ function makePublicBaseRollupHints(seed = 1) {
624
624
  return PublicBaseRollupHints.from({
625
625
  startSpongeBlob: makeSpongeBlob(seed),
626
626
  lastArchive: makeAppendOnlyTreeSnapshot(seed + 0x1000),
627
- archiveRootMembershipWitness: makeMembershipWitness(ARCHIVE_HEIGHT, seed + 0x2000),
628
- contractClassLogsFields: makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeContractClassLogFields, seed + 0x3000),
629
- proverId: fr(seed + 0x4000)
627
+ anchorBlockArchiveSiblingPath: makeSiblingPath(seed + 0x2000, ARCHIVE_HEIGHT),
628
+ contractClassLogsFields: makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeContractClassLogFields, seed + 0x3000)
630
629
  });
631
630
  }
632
631
  export function makePrivateTxBaseRollupPrivateInputs(seed = 0) {
@@ -635,12 +634,9 @@ export function makePrivateTxBaseRollupPrivateInputs(seed = 0) {
635
634
  hints: makePrivateBaseRollupHints(seed + 0x100)
636
635
  });
637
636
  }
638
- function makeAvmProofData(seed = 1) {
639
- return new AvmProofData(makeAvmCircuitPublicInputs(seed), makeRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, seed + 0x100), makeVkData(seed + 0x200));
640
- }
641
637
  export function makePublicTxBaseRollupPrivateInputs(seed = 0) {
642
- const publicTubeProofData = makeProofData(seed, makePrivateToPublicKernelCircuitPublicInputs, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH);
643
- const avmProofData = makeAvmProofData(seed + 0x100);
638
+ const publicTubeProofData = makeProofData(seed, makePublicTubePublicInputs, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH);
639
+ const avmProofData = makeProofData(seed + 0x100, makeAvmCircuitPublicInputs, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED);
644
640
  const hints = makePublicBaseRollupHints(seed + 0x200);
645
641
  return PublicTxBaseRollupPrivateInputs.from({
646
642
  publicTubeProofData,
@@ -948,6 +944,7 @@ export function makeAvmProtocolContractDerivedAddressesHint(seed = 0) {
948
944
  // Create avm output.
949
945
  const avmOutput = AvmCircuitPublicInputs.empty();
950
946
  // Assign data from hints.
947
+ avmOutput.protocolContractTreeRoot = protocolContractTreeRoot;
951
948
  avmOutput.startTreeSnapshots.l1ToL2MessageTree = newL1ToL2Snapshot;
952
949
  avmOutput.endTreeSnapshots.l1ToL2MessageTree = newL1ToL2Snapshot;
953
950
  // Assign data from private.
@@ -968,6 +965,7 @@ export function makeAvmProtocolContractDerivedAddressesHint(seed = 0) {
968
965
  avmOutput.accumulatedData.nullifiers = padArrayEnd(nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter((n)=>!n.isEmpty()), Fr.ZERO, MAX_NULLIFIERS_PER_TX);
969
966
  avmOutput.accumulatedData.l2ToL1Msgs = revertibleData.l2ToL1Msgs;
970
967
  avmOutput.accumulatedData.publicDataWrites = makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, (i)=>new PublicDataWrite(new Fr(i), new Fr(i + 10)), seed + 0x2000);
968
+ avmOutput.accumulatedDataArrayLengths = avmOutput.accumulatedData.getArrayLengths();
971
969
  avmOutput.gasSettings = gasSettings;
972
970
  const avmCircuitInputs = await makeAvmCircuitInputs(seed + 0x3000, {
973
971
  publicInputs: avmOutput
@@ -110,45 +110,15 @@ export declare class TxEffect {
110
110
  txOutHash(): Buffer;
111
111
  static random(numPublicCallsPerTx?: number, numPublicLogsPerCall?: number, maxEffects?: number | undefined): Promise<TxEffect>;
112
112
  static empty(): TxEffect;
113
- isEmpty(): boolean;
114
113
  /** Returns a hex representation of the TxEffect object. */
115
114
  toString(): `0x${string}`;
116
115
  /**
117
- * Returns the prefix as used in a blob.
118
- * Used to prefix a 'block' of tx effects with its type and length.
119
- */
120
- private toPrefix;
121
- /**
122
- * Decodes the prefix as used in a blob to tx effect type and length.
123
- */
124
- static fromPrefix(prefix: Fr): {
125
- type: number;
126
- length: number;
127
- };
128
- /**
129
- * Encodes the first field of a tx effect as used in a blob:
130
- * TX_START_PREFIX | 0 | txlen[0] txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revert_code
131
- */
132
- private encodeFirstField;
133
- /**
134
- * Decodes the first field of a tx effect as used in a blob:
135
- * TX_START_PREFIX | 0 | txlen[0] txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revert_code
136
- * Assumes that isFirstField has been called already.
137
- */
138
- static decodeFirstField(field: Fr): {
139
- length: number;
140
- revertCode: number;
141
- };
142
- /**
143
- * Determines whether a field is the first field of a tx effect
144
- */
145
- static isFirstField(field: Fr): boolean;
146
- /**
147
- * Returns a flat packed array of prefixed fields of all tx effects, used for blobs.
116
+ * Returns a flat packed array of fields of all tx effects, to be appended to blobs.
117
+ * Must match the implementation in noir-protocol-circuits/crates/rollup-lib/src/tx_base/components/tx_blob_data.nr
148
118
  */
149
119
  toBlobFields(): Fr[];
150
120
  /**
151
- * Decodes a flat packed array of prefixed fields to TxEffect
121
+ * Decodes a flat packed array of fields to TxEffect.
152
122
  */
153
123
  static fromBlobFields(fields: Fr[] | FieldReader): TxEffect;
154
124
  static from(fields: FieldsOf<TxEffect>): TxEffect;
@@ -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":"AASA,OAAO,EAAE,KAAK,QAAQ,EAA6B,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,WAAW,EAGZ,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAkB,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,qBAAa,QAAQ;IAEjB;;OAEG;IACI,UAAU,EAAE,UAAU;IAC7B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,cAAc,EAAE,EAAE;IACzB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;;OAGG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,gBAAgB,EAAE,eAAe,EAAE;IAC1C;;OAEG;IACI,WAAW,EAAE,UAAU,EAAE;IAChC;;OAEG;IACI,UAAU,EAAE,SAAS,EAAE;IAC9B;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE;;IAxC5C;;OAEG;IACI,UAAU,EAAE,UAAU;IAC7B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,cAAc,EAAE,EAAE;IACzB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;;OAGG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,gBAAgB,EAAE,eAAe,EAAE;IAC1C;;OAEG;IACI,WAAW,EAAE,UAAU,EAAE;IAChC;;OAEG;IACI,UAAU,EAAE,SAAS,EAAE;IAC9B;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE;IAoD9C,QAAQ,IAAI,MAAM;IAelB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAsBhC,yEAAyE;IACzE,SAAS;IAIT;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ;IAiB1D;;;OAGG;IACH,SAAS,IAAI,MAAM;WASN,MAAM,CACjB,mBAAmB,SAAI,EACvB,oBAAoB,SAAI,EACxB,UAAU,GAAE,MAAM,GAAG,SAAqB,GACzC,OAAO,CAAC,QAAQ,CAAC;IA6BpB,MAAM,CAAC,KAAK,IAAI,QAAQ;IAIxB,2DAA2D;IAC3D,QAAQ;IAIR;;;OAGG;IACH,YAAY,IAAI,EAAE,EAAE;IAgCpB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IA0ChD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAetC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAepC;IAED,CAAC,OAAO,CAAC,MAAM,CAAC;IAsBhB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;CAG9B"}
@@ -1,7 +1,6 @@
1
- import { TX_EFFECT_PREFIX_BYTE_LENGTH, TX_START_PREFIX_BYTES_LENGTH } from '@aztec/blob-lib/encoding';
2
- import { CONTRACT_CLASS_LOGS_PREFIX, L2_L1_MSGS_PREFIX, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NOTES_PREFIX, NULLIFIERS_PREFIX, PRIVATE_LOGS_PREFIX, PUBLIC_DATA_UPDATE_REQUESTS_PREFIX, PUBLIC_LOGS_PREFIX, REVERT_CODE_PREFIX, TX_FEE_PREFIX, TX_START_PREFIX } from '@aztec/constants';
1
+ import { decodeTxStartMarker, encodeTxStartMarker, isValidTxStartMarker } from '@aztec/blob-lib/encoding';
2
+ import { MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX } from '@aztec/constants';
3
3
  import { makeTuple, makeTupleAsync } from '@aztec/foundation/array';
4
- import { toBufferBE } from '@aztec/foundation/bigint-buffer';
5
4
  import { Fr } from '@aztec/foundation/fields';
6
5
  import { schemas } from '@aztec/foundation/schemas';
7
6
  import { BufferReader, FieldReader, serializeArrayOfBufferableToVector, serializeToBuffer } from '@aztec/foundation/serialize';
@@ -145,211 +144,79 @@ export class TxEffect {
145
144
  static empty() {
146
145
  return new TxEffect(RevertCode.OK, TxHash.zero(), Fr.ZERO, [], [], [], [], [], [], []);
147
146
  }
148
- isEmpty() {
149
- return this.nullifiers.length === 0;
150
- }
151
147
  /** Returns a hex representation of the TxEffect object. */ toString() {
152
148
  return bufferToHex(this.toBuffer());
153
149
  }
154
150
  /**
155
- * Returns the prefix as used in a blob.
156
- * Used to prefix a 'block' of tx effects with its type and length.
157
- */ toPrefix(type, length) {
158
- const buf = Buffer.alloc(4);
159
- buf.writeUint8(type);
160
- buf.writeUInt16BE(length, 2);
161
- return new Fr(buf);
162
- }
163
- /**
164
- * Decodes the prefix as used in a blob to tx effect type and length.
165
- */ static fromPrefix(prefix) {
166
- const buf = prefix.toBuffer().subarray(-4);
167
- return {
168
- type: buf[0],
169
- length: new Fr(buf.subarray(-2)).toNumber()
170
- };
171
- }
172
- /**
173
- * Encodes the first field of a tx effect as used in a blob:
174
- * TX_START_PREFIX | 0 | txlen[0] txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revert_code
175
- */ encodeFirstField(length, revertCode) {
176
- const lengthBuf = Buffer.alloc(2);
177
- lengthBuf.writeUInt16BE(length, 0);
178
- return new Fr(Buffer.concat([
179
- toBufferBE(TX_START_PREFIX, TX_START_PREFIX_BYTES_LENGTH),
180
- Buffer.alloc(1),
181
- lengthBuf,
182
- Buffer.alloc(1),
183
- Buffer.from([
184
- REVERT_CODE_PREFIX
185
- ]),
186
- Buffer.alloc(1),
187
- revertCode.toBuffer()
188
- ]));
189
- }
190
- /**
191
- * Decodes the first field of a tx effect as used in a blob:
192
- * TX_START_PREFIX | 0 | txlen[0] txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revert_code
193
- * Assumes that isFirstField has been called already.
194
- */ static decodeFirstField(field) {
195
- const buf = field.toBuffer().subarray(-TX_EFFECT_PREFIX_BYTE_LENGTH);
196
- return {
197
- length: new Fr(buf.subarray(TX_START_PREFIX_BYTES_LENGTH + 1, TX_START_PREFIX_BYTES_LENGTH + 3)).toNumber(),
198
- revertCode: buf[buf.length - 1]
199
- };
200
- }
201
- /**
202
- * Determines whether a field is the first field of a tx effect
203
- */ static isFirstField(field) {
204
- const buf = field.toBuffer();
205
- if (!buf.subarray(0, field.size - TX_EFFECT_PREFIX_BYTE_LENGTH).equals(Buffer.alloc(field.size - TX_EFFECT_PREFIX_BYTE_LENGTH))) {
206
- return false;
207
- }
208
- const sliced = buf.subarray(-TX_EFFECT_PREFIX_BYTE_LENGTH);
209
- if (// Checking we start with the correct prefix...
210
- !new Fr(sliced.subarray(0, TX_START_PREFIX_BYTES_LENGTH)).equals(new Fr(TX_START_PREFIX)) || // ...and include the revert code prefix..
211
- sliced[sliced.length - 3] !== REVERT_CODE_PREFIX || // ...and the following revert code is valid.
212
- sliced[sliced.length - 1] > 4) {
213
- return false;
214
- }
215
- return true;
216
- }
217
- /**
218
- * Returns a flat packed array of prefixed fields of all tx effects, used for blobs.
151
+ * Returns a flat packed array of fields of all tx effects, to be appended to blobs.
152
+ * Must match the implementation in noir-protocol-circuits/crates/rollup-lib/src/tx_base/components/tx_blob_data.nr
219
153
  */ toBlobFields() {
220
- if (this.isEmpty()) {
221
- return [];
222
- }
223
154
  const flattened = [];
224
- // We reassign the first field when we know the length of all effects - see below
155
+ // We reassign the first field at the end when we know the length of all effects to create the tx start marker.
225
156
  flattened.push(Fr.ZERO);
226
157
  flattened.push(this.txHash.hash);
227
- // TODO: how long should tx fee be? For now, not using toPrefix()
228
- flattened.push(new Fr(Buffer.concat([
229
- Buffer.from([
230
- TX_FEE_PREFIX
231
- ]),
232
- Buffer.alloc(1),
233
- this.transactionFee.toBuffer().subarray(3)
234
- ])));
235
- if (this.noteHashes.length) {
236
- flattened.push(this.toPrefix(NOTES_PREFIX, this.noteHashes.length));
237
- flattened.push(...this.noteHashes);
238
- }
239
- if (this.nullifiers.length) {
240
- flattened.push(this.toPrefix(NULLIFIERS_PREFIX, this.nullifiers.length));
241
- flattened.push(...this.nullifiers);
242
- }
243
- if (this.l2ToL1Msgs.length) {
244
- flattened.push(this.toPrefix(L2_L1_MSGS_PREFIX, this.l2ToL1Msgs.length));
245
- flattened.push(...this.l2ToL1Msgs);
246
- }
247
- if (this.publicDataWrites.length) {
248
- flattened.push(this.toPrefix(PUBLIC_DATA_UPDATE_REQUESTS_PREFIX, this.publicDataWrites.length));
249
- flattened.push(...this.publicDataWrites.flatMap((w)=>w.toBlobFields()));
250
- }
251
- if (this.privateLogs.length) {
252
- flattened.push(this.toPrefix(PRIVATE_LOGS_PREFIX, this.privateLogs.length));
253
- flattened.push(...this.privateLogs.flatMap((l)=>l.toBlobFields()));
254
- }
255
- if (this.publicLogs.length) {
256
- const flattenedPublicLogs = FlatPublicLogs.fromLogs(this.publicLogs);
257
- flattened.push(this.toPrefix(PUBLIC_LOGS_PREFIX, flattenedPublicLogs.length));
258
- flattened.push(...flattenedPublicLogs.toBlobFields());
259
- }
260
- if (this.contractClassLogs.length) {
261
- flattened.push(this.toPrefix(CONTRACT_CLASS_LOGS_PREFIX, this.contractClassLogs.length));
262
- flattened.push(...this.contractClassLogs.flatMap((l)=>l.toBlobFields()));
263
- }
264
- // The first value appended to each list of fields representing a tx effect is:
265
- // TX_START_PREFIX | 0 | txlen[0] txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revert_code
266
- // Tx start and len are to aid decomposing/ identifying when we reach a new tx effect
267
- // The remaining bytes are used for revert code, since that only requires 3 bytes
268
- flattened[0] = this.encodeFirstField(flattened.length, this.revertCode);
158
+ flattened.push(this.transactionFee);
159
+ flattened.push(...this.noteHashes);
160
+ flattened.push(...this.nullifiers);
161
+ flattened.push(...this.l2ToL1Msgs);
162
+ flattened.push(...this.publicDataWrites.flatMap((w)=>w.toBlobFields()));
163
+ flattened.push(...this.privateLogs.flatMap((l)=>l.toBlobFields()));
164
+ const flattenedPublicLogs = FlatPublicLogs.fromLogs(this.publicLogs);
165
+ flattened.push(...flattenedPublicLogs.toBlobFields());
166
+ flattened.push(...this.contractClassLogs.flatMap((l)=>l.toBlobFields()));
167
+ flattened[0] = encodeTxStartMarker({
168
+ revertCode: this.revertCode.getCode(),
169
+ numBlobFields: flattened.length,
170
+ numNoteHashes: this.noteHashes.length,
171
+ numNullifiers: this.nullifiers.length,
172
+ numL2ToL1Msgs: this.l2ToL1Msgs.length,
173
+ numPublicDataWrites: this.publicDataWrites.length,
174
+ numPrivateLogs: this.privateLogs.length,
175
+ publicLogsLength: flattenedPublicLogs.length,
176
+ contractClassLogLength: this.contractClassLogs[0]?.emittedLength ?? 0
177
+ });
269
178
  return flattened;
270
179
  }
271
180
  /**
272
- * Decodes a flat packed array of prefixed fields to TxEffect
181
+ * Decodes a flat packed array of fields to TxEffect.
273
182
  */ static fromBlobFields(fields) {
274
- const ensureEmpty = (arr)=>{
275
- if (arr.length) {
276
- throw new Error('Invalid fields given to TxEffect.fromBlobFields(): Attempted to assign property twice.');
277
- }
278
- };
279
- const effect = this.empty();
280
183
  const reader = FieldReader.asReader(fields);
281
184
  const totalFields = reader.remainingFields();
282
185
  if (!totalFields) {
283
- return effect;
186
+ throw new Error('Cannot process empty blob fields.');
284
187
  }
285
- const firstField = reader.readField();
286
- if (!this.isFirstField(firstField)) {
287
- throw new Error('Invalid fields given to TxEffect.fromBlobFields(): First field invalid.');
188
+ const txStartMarker = decodeTxStartMarker(reader.readField());
189
+ if (!isValidTxStartMarker(txStartMarker)) {
190
+ throw new Error('Invalid fields given to TxEffect.fromBlobFields(): invalid TxStartMarker');
288
191
  }
289
- const { length: fieldsToProcess, revertCode } = this.decodeFirstField(firstField);
290
- effect.revertCode = RevertCode.fromField(new Fr(revertCode));
291
- effect.txHash = new TxHash(reader.readField());
292
- // TODO: how long should tx fee be? For now, not using fromPrefix()
293
- const prefixedFee = reader.readField();
294
- // NB: Fr.fromBuffer hangs here if you provide a buffer less than 32 in len
295
- // todo: try new Fr(prefixedFee.toBuffer().subarray(3))
296
- effect.transactionFee = Fr.fromBuffer(Buffer.concat([
297
- Buffer.alloc(3),
298
- prefixedFee.toBuffer().subarray(3)
299
- ]));
300
- let fieldsProcessed = totalFields - reader.remainingFields();
301
- while(fieldsProcessed < fieldsToProcess){
302
- const { type, length } = this.fromPrefix(reader.readField());
303
- switch(type){
304
- case NOTES_PREFIX:
305
- ensureEmpty(effect.noteHashes);
306
- effect.noteHashes = reader.readFieldArray(length);
307
- break;
308
- case NULLIFIERS_PREFIX:
309
- ensureEmpty(effect.nullifiers);
310
- effect.nullifiers = reader.readFieldArray(length);
311
- break;
312
- case L2_L1_MSGS_PREFIX:
313
- ensureEmpty(effect.l2ToL1Msgs);
314
- effect.l2ToL1Msgs = reader.readFieldArray(length);
315
- break;
316
- case PUBLIC_DATA_UPDATE_REQUESTS_PREFIX:
317
- {
318
- ensureEmpty(effect.publicDataWrites);
319
- effect.publicDataWrites = Array.from({
320
- length
321
- }, ()=>PublicDataWrite.fromBlobFields(reader));
322
- break;
323
- }
324
- case PRIVATE_LOGS_PREFIX:
325
- {
326
- ensureEmpty(effect.privateLogs);
327
- effect.privateLogs = Array.from({
328
- length
329
- }, ()=>PrivateLog.fromBlobFields(reader));
330
- break;
331
- }
332
- case PUBLIC_LOGS_PREFIX:
333
- {
334
- ensureEmpty(effect.publicLogs);
335
- effect.publicLogs = FlatPublicLogs.fromBlobFields(length, reader).toLogs();
336
- break;
337
- }
338
- case CONTRACT_CLASS_LOGS_PREFIX:
339
- {
340
- ensureEmpty(effect.contractClassLogs);
341
- effect.contractClassLogs = Array.from({
342
- length
343
- }, ()=>ContractClassLog.fromBlobFields(reader));
344
- break;
345
- }
346
- case REVERT_CODE_PREFIX:
347
- default:
348
- throw new Error(`Too many fields to decode given to TxEffect.fromBlobFields()`);
349
- }
350
- fieldsProcessed = totalFields - reader.remainingFields();
351
- }
352
- return effect;
192
+ const revertCode = RevertCode.fromField(new Fr(txStartMarker.revertCode));
193
+ const txHash = new TxHash(reader.readField());
194
+ const transactionFee = reader.readField();
195
+ const noteHashes = reader.readFieldArray(txStartMarker.numNoteHashes);
196
+ const nullifiers = reader.readFieldArray(txStartMarker.numNullifiers);
197
+ const l2ToL1Msgs = reader.readFieldArray(txStartMarker.numL2ToL1Msgs);
198
+ const publicDataWrites = Array.from({
199
+ length: txStartMarker.numPublicDataWrites
200
+ }, ()=>PublicDataWrite.fromBlobFields(reader));
201
+ const privateLogs = Array.from({
202
+ length: txStartMarker.numPrivateLogs
203
+ }, ()=>PrivateLog.fromBlobFields(reader));
204
+ const publicLogs = FlatPublicLogs.fromBlobFields(txStartMarker.publicLogsLength, reader).toLogs();
205
+ const contractClassLogs = txStartMarker.contractClassLogLength > 0 ? [
206
+ ContractClassLog.fromBlobFields(txStartMarker.contractClassLogLength, reader)
207
+ ] : [];
208
+ return TxEffect.from({
209
+ revertCode,
210
+ txHash,
211
+ transactionFee,
212
+ noteHashes,
213
+ nullifiers,
214
+ l2ToL1Msgs,
215
+ publicDataWrites,
216
+ privateLogs,
217
+ publicLogs,
218
+ contractClassLogs
219
+ });
353
220
  }
354
221
  static from(fields) {
355
222
  return new TxEffect(fields.revertCode, fields.txHash, fields.transactionFee, fields.noteHashes, fields.nullifiers, fields.l2ToL1Msgs, fields.publicDataWrites, fields.privateLogs, fields.publicLogs, fields.contractClassLogs);