@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.
- package/dest/abi/event_metadata_definition.d.ts +8 -0
- package/dest/abi/event_metadata_definition.d.ts.map +1 -0
- package/dest/abi/event_metadata_definition.js +1 -0
- package/dest/abi/index.d.ts +1 -0
- package/dest/abi/index.d.ts.map +1 -1
- package/dest/abi/index.js +1 -0
- package/dest/avm/avm_accumulated_data.d.ts +1 -0
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +4 -0
- package/dest/avm/index.d.ts +0 -1
- package/dest/avm/index.d.ts.map +1 -1
- package/dest/avm/index.js +0 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +0 -5
- package/dest/contract/contract_class_metadata.d.ts +8 -0
- package/dest/contract/contract_class_metadata.d.ts.map +1 -0
- package/dest/contract/contract_class_metadata.js +1 -0
- package/dest/contract/contract_metadata.d.ts +7 -0
- package/dest/contract/contract_metadata.d.ts.map +1 -0
- package/dest/contract/contract_metadata.js +1 -0
- package/dest/contract/index.d.ts +2 -0
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +2 -0
- package/dest/file-store/factory.d.ts.map +1 -1
- package/dest/file-store/factory.js +18 -0
- package/dest/file-store/s3.d.ts +25 -0
- package/dest/file-store/s3.d.ts.map +1 -0
- package/dest/file-store/s3.js +187 -0
- package/dest/interfaces/aztec-node-admin.d.ts +6 -0
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/client.d.ts +0 -1
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +0 -1
- package/dest/interfaces/proving-job.d.ts +5 -5
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +3 -3
- package/dest/interfaces/server_circuit_prover.d.ts +2 -2
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/slasher.d.ts +4 -0
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +1 -0
- package/dest/interfaces/validator.d.ts +6 -1
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +2 -1
- package/dest/logs/contract_class_log.d.ts +1 -1
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +1 -3
- package/dest/rollup/avm_proof_data.d.ts +2 -12
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.js +0 -24
- package/dest/rollup/base_rollup_hints.d.ts +16 -25
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.js +26 -32
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +13 -13
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_root_rollup_private_inputs.js +20 -20
- package/dest/rollup/index.d.ts +2 -1
- package/dest/rollup/index.d.ts.map +1 -1
- package/dest/rollup/index.js +2 -1
- package/dest/rollup/public_tube_private_inputs.d.ts +4 -2
- package/dest/rollup/public_tube_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_tube_private_inputs.js +7 -3
- package/dest/rollup/public_tube_public_inputs.d.ts +20 -0
- package/dest/rollup/public_tube_public_inputs.d.ts.map +1 -0
- package/dest/rollup/public_tube_public_inputs.js +41 -0
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +5 -5
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_tx_base_rollup_private_inputs.js +3 -3
- package/dest/rollup/{state_diff_hints.d.ts → tree_snapshot_diff_hints.d.ts} +22 -38
- package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -0
- package/dest/rollup/tree_snapshot_diff_hints.js +75 -0
- package/dest/rollup/tx_rollup_public_inputs.d.ts +4 -4
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.js +7 -7
- package/dest/tests/factories.d.ts +6 -4
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +26 -28
- package/dest/tx/tx_effect.d.ts +3 -33
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +58 -191
- package/package.json +9 -8
- package/src/abi/event_metadata_definition.ts +8 -0
- package/src/abi/index.ts +1 -0
- package/src/avm/avm_accumulated_data.ts +10 -0
- package/src/avm/index.ts +0 -1
- package/src/block/body.ts +1 -7
- package/src/contract/contract_class_metadata.ts +8 -0
- package/src/contract/contract_metadata.ts +7 -0
- package/src/contract/index.ts +2 -0
- package/src/file-store/factory.ts +15 -0
- package/src/file-store/s3.ts +186 -0
- package/src/interfaces/client.ts +0 -1
- package/src/interfaces/proving-job.ts +4 -4
- package/src/interfaces/server_circuit_prover.ts +2 -7
- package/src/interfaces/slasher.ts +2 -0
- package/src/interfaces/validator.ts +5 -1
- package/src/logs/contract_class_log.ts +2 -3
- package/src/rollup/avm_proof_data.ts +2 -31
- package/src/rollup/base_rollup_hints.ts +20 -28
- package/src/rollup/block_root_rollup_private_inputs.ts +14 -14
- package/src/rollup/index.ts +2 -1
- package/src/rollup/public_tube_private_inputs.ts +10 -3
- package/src/rollup/public_tube_public_inputs.ts +52 -0
- package/src/rollup/public_tx_base_rollup_private_inputs.ts +6 -5
- package/src/rollup/{state_diff_hints.ts → tree_snapshot_diff_hints.ts} +26 -41
- package/src/rollup/tx_rollup_public_inputs.ts +4 -4
- package/src/tests/factories.ts +31 -43
- package/src/tx/tx_effect.ts +59 -204
- package/dest/avm/public_data_hint.d.ts +0 -16
- package/dest/avm/public_data_hint.d.ts.map +0 -1
- package/dest/avm/public_data_hint.js +0 -27
- package/dest/interfaces/pxe.d.ts +0 -235
- package/dest/interfaces/pxe.d.ts.map +0 -1
- package/dest/interfaces/pxe.js +0 -13
- package/dest/rollup/state_diff_hints.d.ts.map +0 -1
- package/dest/rollup/state_diff_hints.js +0 -85
- package/src/avm/public_data_hint.ts +0 -38
- 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
|
-
|
|
14
|
-
|
|
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
|
-
*/
|
|
26
|
+
*/ startTreeSnapshots, /**
|
|
27
27
|
* Partial state reference at the end of the rollup circuit.
|
|
28
|
-
*/
|
|
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.
|
|
43
|
-
this.
|
|
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.
|
|
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 {
|
|
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
|
|
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
|
|
292
|
+
* @returns A TreeSnapshotDiffHints object.
|
|
291
293
|
*/
|
|
292
|
-
export declare function
|
|
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":"AA0CA,OAAO,EAAE,KAAK,QAAQ,EAAgC,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAsC,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAGL,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAEhB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,mCAAmC,EACnC,oCAAoC,EACpC,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,8BAA8B,EAC9B,uBAAuB,EACvB,oCAAoC,EACpC,qCAAqC,EACrC,SAAS,EAEV,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/tests/factories.ts"],"names":[],"mappings":"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"}
|
package/dest/tests/factories.js
CHANGED
|
@@ -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,
|
|
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 {
|
|
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,
|
|
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
|
|
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
|
|
584
|
-
*/ export function
|
|
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
|
|
590
|
-
const
|
|
591
|
-
const
|
|
592
|
-
|
|
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
|
|
609
|
-
const
|
|
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
|
|
612
|
+
const feePayerBalanceLeafPreimage = PublicDataTreeLeafPreimage.empty();
|
|
613
613
|
return PrivateBaseRollupHints.from({
|
|
614
614
|
start,
|
|
615
615
|
startSpongeBlob,
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
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
|
-
|
|
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,
|
|
643
|
-
const avmProofData =
|
|
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
|
package/dest/tx/tx_effect.d.ts
CHANGED
|
@@ -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
|
|
118
|
-
*
|
|
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
|
|
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":"
|
|
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"}
|
package/dest/tx/tx_effect.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
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
|
|
156
|
-
*
|
|
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
|
|
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
|
-
|
|
228
|
-
flattened.push(
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
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
|
|
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
|
-
|
|
186
|
+
throw new Error('Cannot process empty blob fields.');
|
|
284
187
|
}
|
|
285
|
-
const
|
|
286
|
-
if (!
|
|
287
|
-
throw new Error('Invalid fields given to TxEffect.fromBlobFields():
|
|
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
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
const
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
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);
|