@aztec/stdlib 1.0.0-nightly.20250708 → 1.0.0-staging.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +6 -3
- package/dest/abi/index.d.ts +0 -1
- package/dest/abi/index.d.ts.map +1 -1
- package/dest/abi/index.js +0 -1
- package/dest/block/l2_block.d.ts +0 -7
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +0 -8
- package/dest/block/l2_block_stream/l2_block_stream.js +1 -1
- package/dest/block/proposal/committee_attestation.d.ts +3 -3
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
- package/dest/block/proposal/committee_attestation.js +2 -41
- package/dest/contract/contract_instance_update.d.ts +1 -2
- package/dest/contract/contract_instance_update.d.ts.map +1 -1
- package/dest/contract/contract_instance_update.js +6 -6
- package/dest/contract/interfaces/contract_data_source.d.ts +2 -5
- package/dest/contract/interfaces/contract_data_source.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance_update.d.ts +8 -9
- package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance_update.js +1 -1
- package/dest/gas/gas.d.ts +0 -1
- package/dest/gas/gas.d.ts.map +1 -1
- package/dest/gas/gas.js +0 -3
- package/dest/hash/hash.d.ts +1 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +3 -7
- package/dest/interfaces/archiver.js +1 -1
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +1 -3
- package/dest/interfaces/aztec-node.d.ts +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/configs.d.ts +0 -10
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +1 -3
- package/dest/interfaces/proving-job.d.ts +17 -38
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +0 -13
- package/dest/interfaces/pxe.d.ts +0 -2
- package/dest/interfaces/pxe.d.ts.map +1 -1
- package/dest/interfaces/server.d.ts +1 -3
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +1 -3
- package/dest/interfaces/server_circuit_prover.d.ts +0 -2
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/tx-collector.d.ts +15 -0
- package/dest/interfaces/tx-collector.d.ts.map +1 -0
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -6
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +20 -18
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +10 -7
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +32 -17
- package/dest/kernel/hints/build_transient_data_hints.d.ts +1 -2
- package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_transient_data_hints.js +8 -7
- package/dest/kernel/hints/index.d.ts +1 -0
- package/dest/kernel/hints/index.d.ts.map +1 -1
- package/dest/kernel/hints/index.js +1 -0
- package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/note_hash_read_request_hints.js +4 -4
- package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/nullifier_read_request_hints.js +4 -4
- package/dest/kernel/hints/read_request_hints.d.ts +17 -17
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/read_request_hints.js +28 -28
- package/dest/kernel/hints/rollup_validation_requests.d.ts +38 -0
- package/dest/kernel/hints/rollup_validation_requests.d.ts.map +1 -0
- package/dest/kernel/hints/rollup_validation_requests.js +57 -0
- package/dest/kernel/index.d.ts +0 -1
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +0 -1
- package/dest/kernel/private_accumulated_data.d.ts +15 -16
- package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_accumulated_data.js +3 -3
- package/dest/kernel/private_circuit_public_inputs.d.ts +27 -28
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +20 -38
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +0 -9
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -8
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -10
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +6 -9
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -11
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +18 -20
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +4 -4
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +10 -9
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +11 -11
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +12 -11
- package/dest/kernel/private_validation_requests.d.ts +20 -8
- package/dest/kernel/private_validation_requests.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.js +21 -9
- package/dest/kernel/utils/order_and_comparison.d.ts +3 -0
- package/dest/kernel/utils/order_and_comparison.d.ts.map +1 -1
- package/dest/kernel/utils/order_and_comparison.js +19 -0
- package/dest/messaging/l2_to_l1_message.d.ts +0 -2
- package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_message.js +0 -7
- package/dest/p2p/block_proposal.d.ts +1 -8
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +8 -21
- package/dest/p2p/consensus_payload.d.ts +11 -3
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +22 -13
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +3 -5
- package/dest/proofs/proving_request_type.d.ts +7 -8
- package/dest/proofs/proving_request_type.d.ts.map +1 -1
- package/dest/proofs/proving_request_type.js +7 -8
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +9 -0
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/base_or_merge_rollup_public_inputs.js +8 -3
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts +3 -2
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +1 -1
- package/dest/rollup/empty_block_root_rollup_inputs.js +6 -3
- package/dest/rollup/index.d.ts +0 -1
- package/dest/rollup/index.d.ts.map +1 -1
- package/dest/rollup/index.js +0 -1
- package/dest/shared_mutable/scheduled_delay_change.d.ts +5 -5
- package/dest/shared_mutable/scheduled_delay_change.d.ts.map +1 -1
- package/dest/shared_mutable/scheduled_delay_change.js +5 -5
- package/dest/shared_mutable/scheduled_value_change.d.ts +3 -4
- package/dest/shared_mutable/scheduled_value_change.d.ts.map +1 -1
- package/dest/shared_mutable/scheduled_value_change.js +7 -7
- package/dest/shared_mutable/shared_mutable_values.js +7 -7
- package/dest/stats/stats.d.ts +1 -1
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +2 -0
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +25 -23
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +12 -14
- package/dest/tx/index.d.ts +1 -0
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +1 -0
- package/dest/tx/max_block_number.d.ts +54 -0
- package/dest/tx/max_block_number.d.ts.map +1 -0
- package/dest/tx/max_block_number.js +64 -0
- package/dest/tx/offchain_effect.d.ts.map +1 -1
- package/dest/tx/offchain_effect.js +0 -1
- package/dest/tx/private_execution_result.d.ts +2 -2
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +11 -11
- package/dest/tx/simulated_tx.js +1 -1
- package/dest/tx/tx.d.ts +2 -7
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +0 -8
- package/dest/tx/validator/error_texts.d.ts +1 -1
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +1 -1
- package/dest/types/shared.d.ts +8 -0
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/types/shared.js +8 -0
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/vks/verification_key.d.ts +0 -1
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/verification_key.js +0 -5
- package/package.json +7 -7
- package/src/abi/decoder.ts +6 -3
- package/src/abi/index.ts +0 -1
- package/src/block/l2_block.ts +0 -16
- package/src/block/l2_block_stream/l2_block_stream.ts +1 -1
- package/src/block/proposal/committee_attestation.ts +3 -49
- package/src/contract/contract_instance_update.ts +6 -7
- package/src/contract/interfaces/contract_data_source.ts +2 -5
- package/src/contract/interfaces/contract_instance_update.ts +3 -4
- package/src/gas/gas.ts +0 -4
- package/src/hash/hash.ts +3 -7
- package/src/interfaces/archiver.ts +1 -1
- package/src/interfaces/aztec-node-admin.ts +1 -8
- package/src/interfaces/aztec-node.ts +1 -1
- package/src/interfaces/client.ts +0 -1
- package/src/interfaces/configs.ts +0 -6
- package/src/interfaces/proving-job.ts +0 -21
- package/src/interfaces/pxe.ts +0 -2
- package/src/interfaces/server.ts +1 -3
- package/src/interfaces/server_circuit_prover.ts +0 -9
- package/src/interfaces/tx-collector.ts +17 -0
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +30 -28
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +59 -28
- package/src/kernel/hints/build_transient_data_hints.ts +11 -9
- package/src/kernel/hints/index.ts +1 -0
- package/src/kernel/hints/note_hash_read_request_hints.ts +16 -4
- package/src/kernel/hints/nullifier_read_request_hints.ts +16 -4
- package/src/kernel/hints/read_request_hints.ts +22 -22
- package/src/kernel/hints/rollup_validation_requests.ts +73 -0
- package/src/kernel/index.ts +0 -1
- package/src/kernel/private_accumulated_data.ts +23 -23
- package/src/kernel/private_circuit_public_inputs.ts +70 -94
- package/src/kernel/private_kernel_circuit_public_inputs.ts +1 -9
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +4 -13
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +20 -20
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +7 -7
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +10 -16
- package/src/kernel/private_validation_requests.ts +50 -19
- package/src/kernel/utils/order_and_comparison.ts +25 -0
- package/src/messaging/l2_to_l1_message.ts +0 -9
- package/src/p2p/block_proposal.ts +5 -23
- package/src/p2p/consensus_payload.ts +29 -10
- package/src/p2p/topic_type.ts +1 -3
- package/src/proofs/proving_request_type.ts +0 -1
- package/src/rollup/base_or_merge_rollup_public_inputs.ts +8 -0
- package/src/rollup/empty_block_root_rollup_inputs.ts +7 -2
- package/src/rollup/index.ts +0 -1
- package/src/shared_mutable/scheduled_delay_change.ts +6 -6
- package/src/shared_mutable/scheduled_value_change.ts +5 -7
- package/src/shared_mutable/shared_mutable_values.ts +9 -9
- package/src/stats/stats.ts +0 -1
- package/src/tests/factories.ts +29 -34
- package/src/tests/mocks.ts +9 -7
- package/src/tx/index.ts +1 -0
- package/src/tx/max_block_number.ts +81 -0
- package/src/tx/offchain_effect.ts +0 -1
- package/src/tx/private_execution_result.ts +9 -11
- package/src/tx/simulated_tx.ts +2 -2
- package/src/tx/tx.ts +1 -14
- package/src/tx/validator/error_texts.ts +1 -1
- package/src/types/shared.ts +9 -0
- package/src/versioning/versioning.ts +3 -0
- package/src/vks/verification_key.ts +0 -6
- package/dest/abi/authorization_selector.d.ts +0 -52
- package/dest/abi/authorization_selector.d.ts.map +0 -1
- package/dest/abi/authorization_selector.js +0 -70
- package/dest/interfaces/tx_provider.d.ts +0 -24
- package/dest/interfaces/tx_provider.d.ts.map +0 -1
- package/dest/kernel/claimed_length_array.d.ts +0 -34
- package/dest/kernel/claimed_length_array.d.ts.map +0 -1
- package/dest/kernel/claimed_length_array.js +0 -58
- package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
- package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
- package/src/abi/authorization_selector.ts +0 -95
- package/src/interfaces/tx_provider.ts +0 -16
- package/src/kernel/claimed_length_array.ts +0 -104
- package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
- /package/dest/interfaces/{tx_provider.js → tx-collector.js} +0 -0
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import { MAX_KEY_VALIDATION_REQUESTS_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX } from '@aztec/constants';
|
|
2
|
-
import {
|
|
2
|
+
import { makeTuple } from '@aztec/foundation/array';
|
|
3
|
+
import { arraySerializedSizeOfNonEmpty } from '@aztec/foundation/collection';
|
|
4
|
+
import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
5
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
4
6
|
import { inspect } from 'util';
|
|
5
7
|
import { ScopedKeyValidationRequestAndGenerator } from '../kernel/hints/scoped_key_validation_request_and_generator.js';
|
|
6
|
-
import { ClaimedLengthArray, ClaimedLengthArrayFromBuffer } from './claimed_length_array.js';
|
|
7
8
|
import { ScopedReadRequest } from './hints/read_request.js';
|
|
9
|
+
import { RollupValidationRequests } from './hints/rollup_validation_requests.js';
|
|
8
10
|
import { OptionalNumber } from './utils/optional_number.js';
|
|
9
11
|
/**
|
|
10
12
|
* Validation requests accumulated during the execution of the transaction.
|
|
11
13
|
*/ export class PrivateValidationRequests {
|
|
14
|
+
forRollup;
|
|
12
15
|
noteHashReadRequests;
|
|
13
16
|
nullifierReadRequests;
|
|
14
17
|
scopedKeyValidationRequestsAndGenerators;
|
|
15
18
|
splitCounter;
|
|
16
19
|
constructor(/**
|
|
20
|
+
* Validation requests that cannot be fulfilled in the current context (private or public), and must be instead be
|
|
21
|
+
* forwarded to the rollup for it to take care of them.
|
|
22
|
+
*/ forRollup, /**
|
|
17
23
|
* All the read requests made in this transaction.
|
|
18
24
|
*/ noteHashReadRequests, /**
|
|
19
25
|
* All the nullifier read requests made in this transaction.
|
|
@@ -24,27 +30,32 @@ import { OptionalNumber } from './utils/optional_number.js';
|
|
|
24
30
|
* A revertible nullifier and a non-revertible note hash will not be squashed.
|
|
25
31
|
* It should be the "final" minRevertibleSideEffectCounter of a tx.
|
|
26
32
|
*/ splitCounter){
|
|
33
|
+
this.forRollup = forRollup;
|
|
27
34
|
this.noteHashReadRequests = noteHashReadRequests;
|
|
28
35
|
this.nullifierReadRequests = nullifierReadRequests;
|
|
29
36
|
this.scopedKeyValidationRequestsAndGenerators = scopedKeyValidationRequestsAndGenerators;
|
|
30
37
|
this.splitCounter = splitCounter;
|
|
31
38
|
}
|
|
32
39
|
getSize() {
|
|
33
|
-
return this.
|
|
40
|
+
return this.forRollup.getSize() + arraySerializedSizeOfNonEmpty(this.noteHashReadRequests) + arraySerializedSizeOfNonEmpty(this.nullifierReadRequests) + arraySerializedSizeOfNonEmpty(this.scopedKeyValidationRequestsAndGenerators) + this.splitCounter.getSize();
|
|
34
41
|
}
|
|
35
42
|
toBuffer() {
|
|
36
|
-
return serializeToBuffer(this.noteHashReadRequests, this.nullifierReadRequests, this.scopedKeyValidationRequestsAndGenerators, this.splitCounter);
|
|
43
|
+
return serializeToBuffer(this.forRollup, this.noteHashReadRequests, this.nullifierReadRequests, this.scopedKeyValidationRequestsAndGenerators, this.splitCounter);
|
|
37
44
|
}
|
|
38
45
|
toString() {
|
|
39
46
|
return bufferToHex(this.toBuffer());
|
|
40
47
|
}
|
|
48
|
+
static fromFields(fields) {
|
|
49
|
+
const reader = FieldReader.asReader(fields);
|
|
50
|
+
return new PrivateValidationRequests(reader.readObject(RollupValidationRequests), reader.readArray(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, ScopedReadRequest), reader.readArray(MAX_NULLIFIER_READ_REQUESTS_PER_TX, ScopedReadRequest), reader.readArray(MAX_KEY_VALIDATION_REQUESTS_PER_TX, ScopedKeyValidationRequestAndGenerator), reader.readObject(OptionalNumber));
|
|
51
|
+
}
|
|
41
52
|
/**
|
|
42
53
|
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
43
54
|
* @param buffer - Buffer or reader to read from.
|
|
44
55
|
* @returns Deserialized object.
|
|
45
56
|
*/ static fromBuffer(buffer) {
|
|
46
57
|
const reader = BufferReader.asReader(buffer);
|
|
47
|
-
return new PrivateValidationRequests(reader.readObject(
|
|
58
|
+
return new PrivateValidationRequests(reader.readObject(RollupValidationRequests), reader.readArray(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, ScopedReadRequest), reader.readArray(MAX_NULLIFIER_READ_REQUESTS_PER_TX, ScopedReadRequest), reader.readArray(MAX_KEY_VALIDATION_REQUESTS_PER_TX, ScopedKeyValidationRequestAndGenerator), reader.readObject(OptionalNumber));
|
|
48
59
|
}
|
|
49
60
|
/**
|
|
50
61
|
* Deserializes from a string, corresponding to a write in cpp.
|
|
@@ -54,13 +65,14 @@ import { OptionalNumber } from './utils/optional_number.js';
|
|
|
54
65
|
return PrivateValidationRequests.fromBuffer(hexToBuffer(str));
|
|
55
66
|
}
|
|
56
67
|
static empty() {
|
|
57
|
-
return new PrivateValidationRequests(
|
|
68
|
+
return new PrivateValidationRequests(RollupValidationRequests.empty(), makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, ScopedReadRequest.empty), makeTuple(MAX_NULLIFIER_READ_REQUESTS_PER_TX, ScopedReadRequest.empty), makeTuple(MAX_KEY_VALIDATION_REQUESTS_PER_TX, ScopedKeyValidationRequestAndGenerator.empty), OptionalNumber.empty());
|
|
58
69
|
}
|
|
59
70
|
[inspect.custom]() {
|
|
60
71
|
return `PrivateValidationRequests {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
72
|
+
forRollup: ${inspect(this.forRollup)},
|
|
73
|
+
noteHashReadRequests: [${this.noteHashReadRequests.filter((x)=>!x.isEmpty()).map((h)=>inspect(h)).join(', ')}],
|
|
74
|
+
nullifierReadRequests: [${this.nullifierReadRequests.filter((x)=>!x.isEmpty()).map((h)=>inspect(h)).join(', ')}],
|
|
75
|
+
scopedKeyValidationRequestsAndGenerators: [${this.scopedKeyValidationRequestsAndGenerators.filter((x)=>!x.isEmpty()).map((h)=>inspect(h)).join(', ')}],
|
|
64
76
|
splitCounter: ${this.splitCounter.getSize()}
|
|
65
77
|
`;
|
|
66
78
|
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
2
2
|
import type { IsEmpty, Ordered } from './interfaces.js';
|
|
3
3
|
export declare function countAccumulatedItems<T extends IsEmpty>(arr: T[]): number;
|
|
4
|
+
export declare function mergeAccumulatedData<T extends IsEmpty, N extends number>(arr0: Tuple<T, N>, arr1: Tuple<T, N>, length?: N): Tuple<T, N>;
|
|
4
5
|
export declare function sortByCounter<T extends Ordered & IsEmpty, N extends number>(arr: Tuple<T, N>, ascending?: boolean): Tuple<T, N>;
|
|
6
|
+
export declare function isEmptyArray<T extends IsEmpty>(arr: T[]): boolean;
|
|
7
|
+
export declare function getNonEmptyItems<T extends IsEmpty>(arr: T[]): T[];
|
|
5
8
|
//# sourceMappingURL=order_and_comparison.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order_and_comparison.d.ts","sourceRoot":"","sources":["../../../src/kernel/utils/order_and_comparison.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAKxD,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,UAUhE;AAuBD,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,MAAM,EACzE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAChB,SAAS,GAAE,OAAc,GACxB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAEb"}
|
|
1
|
+
{"version":3,"file":"order_and_comparison.d.ts","sourceRoot":"","sources":["../../../src/kernel/utils/order_and_comparison.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAKxD,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,UAUhE;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,MAAM,EACtE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,MAAM,GAAE,CAAoB,GAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAUb;AAuBD,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,MAAM,EACzE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAChB,SAAS,GAAE,OAAc,GACxB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAEb;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,OAAO,CAEjE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEjE"}
|
|
@@ -11,6 +11,19 @@ export function countAccumulatedItems(arr) {
|
|
|
11
11
|
return num;
|
|
12
12
|
}, 0);
|
|
13
13
|
}
|
|
14
|
+
// Merges two arrays of length N into an array of length N.
|
|
15
|
+
export function mergeAccumulatedData(arr0, arr1, length = arr0.length) {
|
|
16
|
+
const numNonEmptyItems0 = countAccumulatedItems(arr0);
|
|
17
|
+
const numNonEmptyItems1 = countAccumulatedItems(arr1);
|
|
18
|
+
if (numNonEmptyItems0 + numNonEmptyItems1 > length) {
|
|
19
|
+
throw new Error('Combined non-empty items exceeded the maximum allowed.');
|
|
20
|
+
}
|
|
21
|
+
const arr = [
|
|
22
|
+
...arr0
|
|
23
|
+
];
|
|
24
|
+
arr1.slice(0, numNonEmptyItems1).forEach((item, i)=>arr[i + numNonEmptyItems0] = item);
|
|
25
|
+
return arr;
|
|
26
|
+
}
|
|
14
27
|
// Sort items by a provided compare function. All empty items are padded to the right.
|
|
15
28
|
function genericSort(arr, compareFn, ascending = true) {
|
|
16
29
|
return [
|
|
@@ -31,3 +44,9 @@ function compareByCounter(a, b) {
|
|
|
31
44
|
export function sortByCounter(arr, ascending = true) {
|
|
32
45
|
return genericSort(arr, compareByCounter, ascending);
|
|
33
46
|
}
|
|
47
|
+
export function isEmptyArray(arr) {
|
|
48
|
+
return arr.every((item)=>item.isEmpty());
|
|
49
|
+
}
|
|
50
|
+
export function getNonEmptyItems(arr) {
|
|
51
|
+
return arr.filter((item)=>!item.isEmpty());
|
|
52
|
+
}
|
|
@@ -207,7 +207,5 @@ export declare class ScopedCountedL2ToL1Message {
|
|
|
207
207
|
isEmpty(): boolean;
|
|
208
208
|
static fromBuffer(buffer: Buffer | BufferReader): ScopedCountedL2ToL1Message;
|
|
209
209
|
toBuffer(): Buffer;
|
|
210
|
-
static fromFields(fields: Fr[] | FieldReader): ScopedCountedL2ToL1Message;
|
|
211
|
-
toFields(): Fr[];
|
|
212
210
|
}
|
|
213
211
|
//# sourceMappingURL=l2_to_l1_message.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l2_to_l1_message.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,aAAa;IAEf,SAAS,EAAE,UAAU;IACrB,OAAO,EAAE,EAAE;gBADX,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,EAAE;IAGpB,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,IAAI,aAAa;IAI7B;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAIrC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE;IAIhB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,aAAa;IAK5D;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa;IAK/D;;;OAGG;IACH,OAAO,IAAI,OAAO;IAIlB,KAAK,CAAC,eAAe,EAAE,YAAY,GAAG,mBAAmB;CAG1D;AAED,qBAAa,oBAAoB;IAEtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,MAAM;gBADf,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM;IAGxB,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,QAAQ,IAAI,EAAE,EAAE;CAGjB;AAED,qBAAa,mBAAmB;IAErB,OAAO,EAAE,aAAa;IACtB,eAAe,EAAE,YAAY;gBAD7B,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,YAAY;IAGtC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,QAAQ,IAAI,EAAE,EAAE;CAGjB;AAED,qBAAa,0BAA0B;IAE5B,KAAK,EAAE,oBAAoB;IAC3B,eAAe,EAAE,YAAY;gBAD7B,KAAK,EAAE,oBAAoB,EAC3B,eAAe,EAAE,YAAY;IAGtC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"l2_to_l1_message.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,aAAa;IAEf,SAAS,EAAE,UAAU;IACrB,OAAO,EAAE,EAAE;gBADX,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,EAAE;IAGpB,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,IAAI,aAAa;IAI7B;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAIrC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE;IAIhB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,aAAa;IAK5D;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa;IAK/D;;;OAGG;IACH,OAAO,IAAI,OAAO;IAIlB,KAAK,CAAC,eAAe,EAAE,YAAY,GAAG,mBAAmB;CAG1D;AAED,qBAAa,oBAAoB;IAEtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,MAAM;gBADf,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM;IAGxB,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,QAAQ,IAAI,EAAE,EAAE;CAGjB;AAED,qBAAa,mBAAmB;IAErB,OAAO,EAAE,aAAa;IACtB,eAAe,EAAE,YAAY;gBAD7B,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,YAAY;IAGtC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,QAAQ,IAAI,EAAE,EAAE;CAGjB;AAED,qBAAa,0BAA0B;IAE5B,KAAK,EAAE,oBAAoB;IAC3B,eAAe,EAAE,YAAY;gBAD7B,KAAK,EAAE,oBAAoB,EAC3B,eAAe,EAAE,YAAY;IAGtC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;CAGnB"}
|
|
@@ -165,11 +165,4 @@ export class ScopedCountedL2ToL1Message {
|
|
|
165
165
|
toBuffer() {
|
|
166
166
|
return serializeToBuffer(this.inner, this.contractAddress);
|
|
167
167
|
}
|
|
168
|
-
static fromFields(fields) {
|
|
169
|
-
const reader = FieldReader.asReader(fields);
|
|
170
|
-
return new ScopedCountedL2ToL1Message(reader.readObject(CountedL2ToL1Message), reader.readObject(AztecAddress));
|
|
171
|
-
}
|
|
172
|
-
toFields() {
|
|
173
|
-
return serializeToFields(this.inner, this.contractAddress);
|
|
174
|
-
}
|
|
175
168
|
}
|
|
@@ -3,8 +3,6 @@ import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
3
3
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
4
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
6
|
-
import type { BlockInfo } from '../block/l2_block.js';
|
|
7
|
-
import { TxHash } from '../tx/index.js';
|
|
8
6
|
import { Tx } from '../tx/tx.js';
|
|
9
7
|
import type { UInt32 } from '../types/index.js';
|
|
10
8
|
import { ConsensusPayload } from './consensus_payload.js';
|
|
@@ -29,8 +27,6 @@ export declare class BlockProposal extends Gossipable {
|
|
|
29
27
|
readonly payload: ConsensusPayload;
|
|
30
28
|
/** The signer of the BlockProposal over the header of the new block*/
|
|
31
29
|
readonly signature: Signature;
|
|
32
|
-
/** The sequence of transactions in the block */
|
|
33
|
-
readonly txHashes: TxHash[];
|
|
34
30
|
/** The transactions in the block */
|
|
35
31
|
readonly txs?: Tx[] | undefined;
|
|
36
32
|
static p2pTopic: TopicType;
|
|
@@ -42,15 +38,12 @@ export declare class BlockProposal extends Gossipable {
|
|
|
42
38
|
payload: ConsensusPayload,
|
|
43
39
|
/** The signer of the BlockProposal over the header of the new block*/
|
|
44
40
|
signature: Signature,
|
|
45
|
-
/** The sequence of transactions in the block */
|
|
46
|
-
txHashes: TxHash[],
|
|
47
41
|
/** The transactions in the block */
|
|
48
42
|
txs?: Tx[] | undefined);
|
|
49
43
|
generateP2PMessageIdentifier(): Promise<Buffer32>;
|
|
50
44
|
get archive(): Fr;
|
|
51
45
|
get slotNumber(): Fr;
|
|
52
|
-
|
|
53
|
-
static createProposalFromSigner(blockNumber: UInt32, payload: ConsensusPayload, txHashes: TxHash[], txs: Tx[] | undefined, payloadSigner: (payload: Buffer32) => Promise<Signature>): Promise<BlockProposal>;
|
|
46
|
+
static createProposalFromSigner(blockNumber: UInt32, payload: ConsensusPayload, txs: Tx[] | undefined, payloadSigner: (payload: Buffer32) => Promise<Signature>): Promise<BlockProposal>;
|
|
54
47
|
/**Get Sender
|
|
55
48
|
* Lazily evaluate the sender of the proposal; result is cached
|
|
56
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/block_proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,
|
|
1
|
+
{"version":3,"file":"block_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/block_proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,IAAI,EAAE,MAAM;CAGzB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAMzC,8BAA8B;aACd,WAAW,EAAE,MAAM;IAEnC,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;aACtD,SAAS,EAAE,SAAS;IAGpC,oCAAoC;aACpB,GAAG,CAAC,EAAE,EAAE,EAAE;IAhB5B,OAAgB,QAAQ,YAA4B;IAEpD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,8BAA8B;IACd,WAAW,EAAE,MAAM;IAEnC,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;IACtD,SAAS,EAAE,SAAS;IAGpC,oCAAoC;IACpB,GAAG,CAAC,EAAE,EAAE,EAAE,YAAA;IAKnB,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI1D,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,EAAE,CAEnB;WAEY,wBAAwB,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,gBAAgB,EAEzB,GAAG,EAAE,EAAE,EAAE,GAAG,SAAS,EACrB,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC;IAQ1D;;OAEG;IACH,SAAS;IAUT,UAAU;IAIV,QAAQ,IAAI,MAAM;IASlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa;IAe5D,OAAO,IAAI,MAAM;CAQlB"}
|
|
@@ -2,7 +2,6 @@ import { Buffer32 } from '@aztec/foundation/buffer';
|
|
|
2
2
|
import { keccak256, recoverAddress } from '@aztec/foundation/crypto';
|
|
3
3
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
4
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
|
-
import { TxHash } from '../tx/index.js';
|
|
6
5
|
import { Tx } from '../tx/tx.js';
|
|
7
6
|
import { ConsensusPayload } from './consensus_payload.js';
|
|
8
7
|
import { Gossipable } from './gossipable.js';
|
|
@@ -22,13 +21,12 @@ export class BlockProposalHash extends Buffer32 {
|
|
|
22
21
|
blockNumber;
|
|
23
22
|
payload;
|
|
24
23
|
signature;
|
|
25
|
-
txHashes;
|
|
26
24
|
txs;
|
|
27
25
|
static p2pTopic = TopicType.block_proposal;
|
|
28
26
|
sender;
|
|
29
|
-
constructor(/** The number of the block */ blockNumber, /** The payload of the message, and what the signature is over */ payload, /** The signer of the BlockProposal over the header of the new block*/ signature,
|
|
27
|
+
constructor(/** The number of the block */ blockNumber, /** The payload of the message, and what the signature is over */ payload, /** The signer of the BlockProposal over the header of the new block*/ signature, // Note(md): this is placed after the txs payload in order to be backwards compatible with previous versions
|
|
30
28
|
/** The transactions in the block */ txs){
|
|
31
|
-
super(), this.blockNumber = blockNumber, this.payload = payload, this.signature = signature, this.
|
|
29
|
+
super(), this.blockNumber = blockNumber, this.payload = payload, this.signature = signature, this.txs = txs;
|
|
32
30
|
}
|
|
33
31
|
generateP2PMessageIdentifier() {
|
|
34
32
|
return Promise.resolve(new BlockProposalHash(keccak256(this.signature.toBuffer())));
|
|
@@ -39,19 +37,11 @@ export class BlockProposalHash extends Buffer32 {
|
|
|
39
37
|
get slotNumber() {
|
|
40
38
|
return this.payload.header.slotNumber;
|
|
41
39
|
}
|
|
42
|
-
|
|
43
|
-
return {
|
|
44
|
-
blockNumber: this.blockNumber,
|
|
45
|
-
slotNumber: this.slotNumber.toNumber(),
|
|
46
|
-
archive: this.archive.toString(),
|
|
47
|
-
txCount: this.txHashes.length
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
static async createProposalFromSigner(blockNumber, payload, txHashes, // Note(md): Provided separately to tx hashes such that this function can be optional
|
|
40
|
+
static async createProposalFromSigner(blockNumber, payload, // Note(md): Provided separately to tx hashes such that this function can be optional
|
|
51
41
|
txs, payloadSigner) {
|
|
52
42
|
const hashed = getHashedSignaturePayload(payload, SignatureDomainSeparator.blockProposal);
|
|
53
43
|
const sig = await payloadSigner(hashed);
|
|
54
|
-
return new BlockProposal(blockNumber, payload, sig,
|
|
44
|
+
return new BlockProposal(blockNumber, payload, sig, txs);
|
|
55
45
|
}
|
|
56
46
|
/**Get Sender
|
|
57
47
|
* Lazily evaluate the sender of the proposal; result is cached
|
|
@@ -70,9 +60,7 @@ export class BlockProposalHash extends Buffer32 {
|
|
|
70
60
|
const buffer = [
|
|
71
61
|
this.blockNumber,
|
|
72
62
|
this.payload,
|
|
73
|
-
this.signature
|
|
74
|
-
this.txHashes.length,
|
|
75
|
-
this.txHashes
|
|
63
|
+
this.signature
|
|
76
64
|
];
|
|
77
65
|
if (this.txs) {
|
|
78
66
|
buffer.push(this.txs.length);
|
|
@@ -85,14 +73,13 @@ export class BlockProposalHash extends Buffer32 {
|
|
|
85
73
|
const blockNumber = reader.readNumber();
|
|
86
74
|
const payload = reader.readObject(ConsensusPayload);
|
|
87
75
|
const sig = reader.readObject(Signature);
|
|
88
|
-
const txHashes = reader.readArray(reader.readNumber(), TxHash);
|
|
89
76
|
if (!reader.isEmpty()) {
|
|
90
77
|
const txs = reader.readArray(reader.readNumber(), Tx);
|
|
91
|
-
return new BlockProposal(blockNumber, payload, sig,
|
|
78
|
+
return new BlockProposal(blockNumber, payload, sig, txs);
|
|
92
79
|
}
|
|
93
|
-
return new BlockProposal(blockNumber, payload, sig
|
|
80
|
+
return new BlockProposal(blockNumber, payload, sig);
|
|
94
81
|
}
|
|
95
82
|
getSize() {
|
|
96
|
-
return 4 /* blockNumber */ + this.payload.getSize() + this.signature.getSize() +
|
|
83
|
+
return 4 /* blockNumber */ + this.payload.getSize() + this.signature.getSize() + (this.txs ? this.txs.reduce((acc, tx)=>acc + tx.getSize(), 0) : 0);
|
|
97
84
|
}
|
|
98
85
|
}
|
|
@@ -3,7 +3,7 @@ import { BufferReader } from '@aztec/foundation/serialize';
|
|
|
3
3
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import type { L2Block } from '../block/l2_block.js';
|
|
6
|
-
import { ProposedBlockHeader, StateReference } from '../tx/index.js';
|
|
6
|
+
import { ProposedBlockHeader, StateReference, TxHash } from '../tx/index.js';
|
|
7
7
|
import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
|
|
8
8
|
export declare class ConsensusPayload implements Signable {
|
|
9
9
|
/** The proposed block header the attestation is made over */
|
|
@@ -12,6 +12,8 @@ export declare class ConsensusPayload implements Signable {
|
|
|
12
12
|
readonly archive: Fr;
|
|
13
13
|
/** The state reference after the block is added */
|
|
14
14
|
readonly stateReference: StateReference;
|
|
15
|
+
/** The sequence of transactions in the block */
|
|
16
|
+
readonly txHashes: TxHash[];
|
|
15
17
|
private size;
|
|
16
18
|
constructor(
|
|
17
19
|
/** The proposed block header the attestation is made over */
|
|
@@ -19,7 +21,9 @@ export declare class ConsensusPayload implements Signable {
|
|
|
19
21
|
/** The archive root after the block is added */
|
|
20
22
|
archive: Fr,
|
|
21
23
|
/** The state reference after the block is added */
|
|
22
|
-
stateReference: StateReference
|
|
24
|
+
stateReference: StateReference,
|
|
25
|
+
/** The sequence of transactions in the block */
|
|
26
|
+
txHashes: TxHash[]);
|
|
23
27
|
static get schema(): z.ZodEffects<z.ZodObject<{
|
|
24
28
|
header: import("@aztec/foundation/schemas").ZodFor<ProposedBlockHeader>;
|
|
25
29
|
archive: z.ZodType<Fr, any, string>;
|
|
@@ -150,10 +154,12 @@ export declare class ConsensusPayload implements Signable {
|
|
|
150
154
|
nextAvailableLeafIndex: string | number | bigint;
|
|
151
155
|
};
|
|
152
156
|
}>;
|
|
157
|
+
txHashes: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, TxHash, string>, "many">;
|
|
153
158
|
}, "strip", z.ZodTypeAny, {
|
|
154
159
|
archive: Fr;
|
|
155
160
|
header: ProposedBlockHeader;
|
|
156
161
|
stateReference: StateReference;
|
|
162
|
+
txHashes: TxHash[];
|
|
157
163
|
}, {
|
|
158
164
|
archive: string;
|
|
159
165
|
stateReference: {
|
|
@@ -176,6 +182,7 @@ export declare class ConsensusPayload implements Signable {
|
|
|
176
182
|
nextAvailableLeafIndex: string | number | bigint;
|
|
177
183
|
};
|
|
178
184
|
};
|
|
185
|
+
txHashes: string[];
|
|
179
186
|
header?: any;
|
|
180
187
|
}>, ConsensusPayload, {
|
|
181
188
|
archive: string;
|
|
@@ -199,9 +206,10 @@ export declare class ConsensusPayload implements Signable {
|
|
|
199
206
|
nextAvailableLeafIndex: string | number | bigint;
|
|
200
207
|
};
|
|
201
208
|
};
|
|
209
|
+
txHashes: string[];
|
|
202
210
|
header?: any;
|
|
203
211
|
}>;
|
|
204
|
-
static getFields(fields: FieldsOf<ConsensusPayload>): readonly [ProposedBlockHeader, Fr, StateReference];
|
|
212
|
+
static getFields(fields: FieldsOf<ConsensusPayload>): readonly [ProposedBlockHeader, Fr, StateReference, TxHash[]];
|
|
205
213
|
getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
|
|
206
214
|
toBuffer(): Buffer;
|
|
207
215
|
static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,qBAAa,gBAAiB,YAAW,QAAQ;IAI7C,6DAA6D;aAC7C,MAAM,EAAE,mBAAmB;IAC3C,gDAAgD;aAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;aACnC,cAAc,EAAE,cAAc;IAC9C,gDAAgD;aAChC,QAAQ,EAAE,MAAM,EAAE;IAVpC,OAAO,CAAC,IAAI,CAAqB;;IAG/B,6DAA6D;IAC7C,MAAM,EAAE,mBAAmB;IAC3C,gDAAgD;IAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;IACnC,cAAc,EAAE,cAAc;IAC9C,gDAAgD;IAChC,QAAQ,EAAE,MAAM,EAAE;IAGpC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAShB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAInD,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM;IAwBnE,QAAQ,IAAI,MAAM;IAYlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAU/D,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;IAIvE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IASlD,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC;;;OAGG;IACH,OAAO,IAAI,MAAM;IASjB,QAAQ;CAKT"}
|
|
@@ -4,29 +4,33 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
4
4
|
import { hexToBuffer } from '@aztec/foundation/string';
|
|
5
5
|
import { encodeAbiParameters, parseAbiParameters } from 'viem';
|
|
6
6
|
import { z } from 'zod';
|
|
7
|
-
import { ProposedBlockHeader, StateReference } from '../tx/index.js';
|
|
7
|
+
import { ProposedBlockHeader, StateReference, TxHash } from '../tx/index.js';
|
|
8
8
|
export class ConsensusPayload {
|
|
9
9
|
header;
|
|
10
10
|
archive;
|
|
11
11
|
stateReference;
|
|
12
|
+
txHashes;
|
|
12
13
|
size;
|
|
13
|
-
constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The state reference after the block is added */ stateReference){
|
|
14
|
+
constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The state reference after the block is added */ stateReference, /** The sequence of transactions in the block */ txHashes){
|
|
14
15
|
this.header = header;
|
|
15
16
|
this.archive = archive;
|
|
16
17
|
this.stateReference = stateReference;
|
|
18
|
+
this.txHashes = txHashes;
|
|
17
19
|
}
|
|
18
20
|
static get schema() {
|
|
19
21
|
return z.object({
|
|
20
22
|
header: ProposedBlockHeader.schema,
|
|
21
23
|
archive: schemas.Fr,
|
|
22
|
-
stateReference: StateReference.schema
|
|
23
|
-
|
|
24
|
+
stateReference: StateReference.schema,
|
|
25
|
+
txHashes: z.array(TxHash.schema)
|
|
26
|
+
}).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.stateReference, obj.txHashes));
|
|
24
27
|
}
|
|
25
28
|
static getFields(fields) {
|
|
26
29
|
return [
|
|
27
30
|
fields.header,
|
|
28
31
|
fields.archive,
|
|
29
|
-
fields.stateReference
|
|
32
|
+
fields.stateReference,
|
|
33
|
+
fields.txHashes
|
|
30
34
|
];
|
|
31
35
|
}
|
|
32
36
|
getPayloadToSign(domainSeparator) {
|
|
@@ -34,11 +38,13 @@ export class ConsensusPayload {
|
|
|
34
38
|
'(' + 'bytes32, ' + // archive
|
|
35
39
|
'((bytes32,uint32),((bytes32,uint32),(bytes32,uint32),(bytes32,uint32))), ' + // stateReference
|
|
36
40
|
'(int256), ' + // oracleInput
|
|
37
|
-
'bytes32' + // headerHash
|
|
41
|
+
'bytes32, ' + // headerHash
|
|
42
|
+
'bytes32[]' + // txHashes
|
|
38
43
|
')');
|
|
39
44
|
const archiveRoot = this.archive.toString();
|
|
40
45
|
const stateReference = this.stateReference.toAbi();
|
|
41
46
|
const headerHash = this.header.hash().toString();
|
|
47
|
+
const txArray = this.txHashes.map((tx)=>tx.toString());
|
|
42
48
|
const encodedData = encodeAbiParameters(abi, [
|
|
43
49
|
domainSeparator,
|
|
44
50
|
[
|
|
@@ -47,7 +53,8 @@ export class ConsensusPayload {
|
|
|
47
53
|
[
|
|
48
54
|
0n
|
|
49
55
|
],
|
|
50
|
-
headerHash
|
|
56
|
+
headerHash,
|
|
57
|
+
txArray
|
|
51
58
|
]
|
|
52
59
|
]);
|
|
53
60
|
return hexToBuffer(encodedData);
|
|
@@ -56,23 +63,25 @@ export class ConsensusPayload {
|
|
|
56
63
|
const buffer = serializeToBuffer([
|
|
57
64
|
this.header,
|
|
58
65
|
this.archive,
|
|
59
|
-
this.stateReference
|
|
66
|
+
this.stateReference,
|
|
67
|
+
this.txHashes.length,
|
|
68
|
+
this.txHashes
|
|
60
69
|
]);
|
|
61
70
|
this.size = buffer.length;
|
|
62
71
|
return buffer;
|
|
63
72
|
}
|
|
64
73
|
static fromBuffer(buf) {
|
|
65
74
|
const reader = BufferReader.asReader(buf);
|
|
66
|
-
return new ConsensusPayload(reader.readObject(ProposedBlockHeader), reader.readObject(Fr), reader.readObject(StateReference));
|
|
75
|
+
return new ConsensusPayload(reader.readObject(ProposedBlockHeader), reader.readObject(Fr), reader.readObject(StateReference), reader.readArray(reader.readNumber(), TxHash));
|
|
67
76
|
}
|
|
68
77
|
static fromFields(fields) {
|
|
69
|
-
return new ConsensusPayload(fields.header, fields.archive, fields.stateReference);
|
|
78
|
+
return new ConsensusPayload(fields.header, fields.archive, fields.stateReference, fields.txHashes);
|
|
70
79
|
}
|
|
71
80
|
static fromBlock(block) {
|
|
72
|
-
return new ConsensusPayload(block.header.toPropose(), block.archive.root, block.header.state);
|
|
81
|
+
return new ConsensusPayload(block.header.toPropose(), block.archive.root, block.header.state, block.body.txEffects.map((tx)=>tx.txHash));
|
|
73
82
|
}
|
|
74
83
|
static empty() {
|
|
75
|
-
return new ConsensusPayload(ProposedBlockHeader.empty(), Fr.ZERO, StateReference.empty());
|
|
84
|
+
return new ConsensusPayload(ProposedBlockHeader.empty(), Fr.ZERO, StateReference.empty(), []);
|
|
76
85
|
}
|
|
77
86
|
/**
|
|
78
87
|
* Get the size of the consensus payload in bytes.
|
|
@@ -86,6 +95,6 @@ export class ConsensusPayload {
|
|
|
86
95
|
return this.size;
|
|
87
96
|
}
|
|
88
97
|
toString() {
|
|
89
|
-
return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, stateReference: ${this.stateReference.l1ToL2MessageTree.root.toString()}`;
|
|
98
|
+
return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, stateReference: ${this.stateReference.l1ToL2MessageTree.root.toString()}, txHashes: ${this.txHashes.join(', ')}`;
|
|
90
99
|
}
|
|
91
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAE9E;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;CACxC;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAE9E;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;CACxC;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,aAAa,eAOlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,uBAO9D"}
|
package/dest/p2p/topic_type.js
CHANGED
|
@@ -23,12 +23,10 @@ export function getTopicTypeForClientType(clientType) {
|
|
|
23
23
|
"tx",
|
|
24
24
|
"block_proposal"
|
|
25
25
|
];
|
|
26
|
-
} else {
|
|
27
|
-
const _ = clientType;
|
|
28
|
-
return [
|
|
29
|
-
"tx"
|
|
30
|
-
];
|
|
31
26
|
}
|
|
27
|
+
return [
|
|
28
|
+
"tx"
|
|
29
|
+
];
|
|
32
30
|
}
|
|
33
31
|
/**
|
|
34
32
|
* Convert the topic string into a set of labels
|
|
@@ -4,14 +4,13 @@ export declare enum ProvingRequestType {
|
|
|
4
4
|
PUBLIC_BASE_ROLLUP = 2,
|
|
5
5
|
MERGE_ROLLUP = 3,
|
|
6
6
|
EMPTY_BLOCK_ROOT_ROLLUP = 4,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
ROOT_PARITY = 11,
|
|
7
|
+
BLOCK_ROOT_ROLLUP = 5,
|
|
8
|
+
SINGLE_TX_BLOCK_ROOT_ROLLUP = 6,
|
|
9
|
+
BLOCK_MERGE_ROLLUP = 7,
|
|
10
|
+
ROOT_ROLLUP = 8,
|
|
11
|
+
BASE_PARITY = 9,
|
|
12
|
+
ROOT_PARITY = 10,
|
|
14
13
|
/** Recursive Client IVC verification to connect private to public or rollup */
|
|
15
|
-
TUBE_PROOF =
|
|
14
|
+
TUBE_PROOF = 11
|
|
16
15
|
}
|
|
17
16
|
//# sourceMappingURL=proving_request_type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proving_request_type.d.ts","sourceRoot":"","sources":["../../src/proofs/proving_request_type.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB;IAC5B,SAAS,IAAA;IAET,mBAAmB,IAAA;IACnB,kBAAkB,IAAA;IAClB,YAAY,IAAA;IACZ,uBAAuB,IAAA;IACvB,
|
|
1
|
+
{"version":3,"file":"proving_request_type.d.ts","sourceRoot":"","sources":["../../src/proofs/proving_request_type.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB;IAC5B,SAAS,IAAA;IAET,mBAAmB,IAAA;IACnB,kBAAkB,IAAA;IAClB,YAAY,IAAA;IACZ,uBAAuB,IAAA;IACvB,iBAAiB,IAAA;IACjB,2BAA2B,IAAA;IAC3B,kBAAkB,IAAA;IAClB,WAAW,IAAA;IAEX,WAAW,IAAA;IACX,WAAW,KAAA;IACX,+EAA+E;IAC/E,UAAU,KAAA;CACX"}
|
|
@@ -4,13 +4,12 @@ export var ProvingRequestType = /*#__PURE__*/ function(ProvingRequestType) {
|
|
|
4
4
|
ProvingRequestType[ProvingRequestType["PUBLIC_BASE_ROLLUP"] = 2] = "PUBLIC_BASE_ROLLUP";
|
|
5
5
|
ProvingRequestType[ProvingRequestType["MERGE_ROLLUP"] = 3] = "MERGE_ROLLUP";
|
|
6
6
|
ProvingRequestType[ProvingRequestType["EMPTY_BLOCK_ROOT_ROLLUP"] = 4] = "EMPTY_BLOCK_ROOT_ROLLUP";
|
|
7
|
-
ProvingRequestType[ProvingRequestType["
|
|
8
|
-
ProvingRequestType[ProvingRequestType["
|
|
9
|
-
ProvingRequestType[ProvingRequestType["
|
|
10
|
-
ProvingRequestType[ProvingRequestType["
|
|
11
|
-
ProvingRequestType[ProvingRequestType["
|
|
12
|
-
ProvingRequestType[ProvingRequestType["
|
|
13
|
-
ProvingRequestType[ProvingRequestType["
|
|
14
|
-
/** Recursive Client IVC verification to connect private to public or rollup */ ProvingRequestType[ProvingRequestType["TUBE_PROOF"] = 12] = "TUBE_PROOF";
|
|
7
|
+
ProvingRequestType[ProvingRequestType["BLOCK_ROOT_ROLLUP"] = 5] = "BLOCK_ROOT_ROLLUP";
|
|
8
|
+
ProvingRequestType[ProvingRequestType["SINGLE_TX_BLOCK_ROOT_ROLLUP"] = 6] = "SINGLE_TX_BLOCK_ROOT_ROLLUP";
|
|
9
|
+
ProvingRequestType[ProvingRequestType["BLOCK_MERGE_ROLLUP"] = 7] = "BLOCK_MERGE_ROLLUP";
|
|
10
|
+
ProvingRequestType[ProvingRequestType["ROOT_ROLLUP"] = 8] = "ROOT_ROLLUP";
|
|
11
|
+
ProvingRequestType[ProvingRequestType["BASE_PARITY"] = 9] = "BASE_PARITY";
|
|
12
|
+
ProvingRequestType[ProvingRequestType["ROOT_PARITY"] = 10] = "ROOT_PARITY";
|
|
13
|
+
/** Recursive Client IVC verification to connect private to public or rollup */ ProvingRequestType[ProvingRequestType["TUBE_PROOF"] = 11] = "TUBE_PROOF";
|
|
15
14
|
return ProvingRequestType;
|
|
16
15
|
}({});
|
|
@@ -2,11 +2,16 @@ import { SpongeBlob } from '@aztec/blob-lib';
|
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
4
4
|
import { PartialStateReference } from '../tx/partial_state_reference.js';
|
|
5
|
+
import { RollupTypes } from '../types/shared.js';
|
|
5
6
|
import { BlockConstantData } from './block_constant_data.js';
|
|
6
7
|
/**
|
|
7
8
|
* Output of the base and merge rollup circuits.
|
|
8
9
|
*/
|
|
9
10
|
export declare class BaseOrMergeRollupPublicInputs {
|
|
11
|
+
/**
|
|
12
|
+
* Specifies from which type of rollup circuit these inputs are from.
|
|
13
|
+
*/
|
|
14
|
+
rollupType: RollupTypes;
|
|
10
15
|
/**
|
|
11
16
|
* Number of txs in this rollup.
|
|
12
17
|
*/
|
|
@@ -45,6 +50,10 @@ export declare class BaseOrMergeRollupPublicInputs {
|
|
|
45
50
|
*/
|
|
46
51
|
accumulatedManaUsed: Fr;
|
|
47
52
|
constructor(
|
|
53
|
+
/**
|
|
54
|
+
* Specifies from which type of rollup circuit these inputs are from.
|
|
55
|
+
*/
|
|
56
|
+
rollupType: RollupTypes,
|
|
48
57
|
/**
|
|
49
58
|
* Number of txs in this rollup.
|
|
50
59
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base_or_merge_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/base_or_merge_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,6BAA6B;IAEtC;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,KAAK,EAAE,qBAAqB;IACnC;;OAEG;IACI,GAAG,EAAE,qBAAqB;IACjC;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;;OAGG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE;;
|
|
1
|
+
{"version":3,"file":"base_or_merge_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/base_or_merge_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,6BAA6B;IAEtC;;OAEG;IACI,UAAU,EAAE,WAAW;IAC9B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,KAAK,EAAE,qBAAqB;IACnC;;OAEG;IACI,GAAG,EAAE,qBAAqB;IACjC;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;;OAGG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE;;IAxC9B;;OAEG;IACI,UAAU,EAAE,WAAW;IAC9B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,KAAK,EAAE,qBAAqB;IACnC;;OAEG;IACI,GAAG,EAAE,qBAAqB;IACjC;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;;OAGG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE;IAGhC,iCAAiC;IACjC,MAAM,CAAC,KAAK;IAeZ;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,6BAA6B;IAgB/E;;;OAGG;IACH,QAAQ;IAmBR;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,8DAA8D;IAC9D,MAAM;IAIN,6CAA6C;IAC7C,MAAM,KAAK,MAAM,sEAEhB;CACF"}
|
|
@@ -4,10 +4,12 @@ import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
|
4
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
5
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
6
6
|
import { PartialStateReference } from '../tx/partial_state_reference.js';
|
|
7
|
+
import { RollupTypes } from '../types/shared.js';
|
|
7
8
|
import { BlockConstantData } from './block_constant_data.js';
|
|
8
9
|
/**
|
|
9
10
|
* Output of the base and merge rollup circuits.
|
|
10
11
|
*/ export class BaseOrMergeRollupPublicInputs {
|
|
12
|
+
rollupType;
|
|
11
13
|
numTxs;
|
|
12
14
|
constants;
|
|
13
15
|
start;
|
|
@@ -18,6 +20,8 @@ import { BlockConstantData } from './block_constant_data.js';
|
|
|
18
20
|
accumulatedFees;
|
|
19
21
|
accumulatedManaUsed;
|
|
20
22
|
constructor(/**
|
|
23
|
+
* Specifies from which type of rollup circuit these inputs are from.
|
|
24
|
+
*/ rollupType, /**
|
|
21
25
|
* Number of txs in this rollup.
|
|
22
26
|
*/ numTxs, /**
|
|
23
27
|
* Data which is forwarded through the rollup circuits unchanged.
|
|
@@ -37,6 +41,7 @@ import { BlockConstantData } from './block_constant_data.js';
|
|
|
37
41
|
*/ accumulatedFees, /**
|
|
38
42
|
* The summed `mana_used` of the constituent transactions.
|
|
39
43
|
*/ accumulatedManaUsed){
|
|
44
|
+
this.rollupType = rollupType;
|
|
40
45
|
this.numTxs = numTxs;
|
|
41
46
|
this.constants = constants;
|
|
42
47
|
this.start = start;
|
|
@@ -48,7 +53,7 @@ import { BlockConstantData } from './block_constant_data.js';
|
|
|
48
53
|
this.accumulatedManaUsed = accumulatedManaUsed;
|
|
49
54
|
}
|
|
50
55
|
/** Returns an empty instance. */ static empty() {
|
|
51
|
-
return new BaseOrMergeRollupPublicInputs(0, BlockConstantData.empty(), PartialStateReference.empty(), PartialStateReference.empty(), SpongeBlob.empty(), SpongeBlob.empty(), Fr.zero(), Fr.zero(), Fr.zero());
|
|
56
|
+
return new BaseOrMergeRollupPublicInputs(RollupTypes.Base, 0, BlockConstantData.empty(), PartialStateReference.empty(), PartialStateReference.empty(), SpongeBlob.empty(), SpongeBlob.empty(), Fr.zero(), Fr.zero(), Fr.zero());
|
|
52
57
|
}
|
|
53
58
|
/**
|
|
54
59
|
* Deserializes from a buffer or reader.
|
|
@@ -57,13 +62,13 @@ import { BlockConstantData } from './block_constant_data.js';
|
|
|
57
62
|
* @returns The deserialized public inputs.
|
|
58
63
|
*/ static fromBuffer(buffer) {
|
|
59
64
|
const reader = BufferReader.asReader(buffer);
|
|
60
|
-
return new BaseOrMergeRollupPublicInputs(reader.readNumber(), reader.readObject(BlockConstantData), reader.readObject(PartialStateReference), reader.readObject(PartialStateReference), reader.readObject(SpongeBlob), reader.readObject(SpongeBlob), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
|
|
65
|
+
return new BaseOrMergeRollupPublicInputs(reader.readNumber(), reader.readNumber(), reader.readObject(BlockConstantData), reader.readObject(PartialStateReference), reader.readObject(PartialStateReference), reader.readObject(SpongeBlob), reader.readObject(SpongeBlob), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
|
|
61
66
|
}
|
|
62
67
|
/**
|
|
63
68
|
* Serialize this as a buffer.
|
|
64
69
|
* @returns The buffer.
|
|
65
70
|
*/ toBuffer() {
|
|
66
|
-
return serializeToBuffer(this.numTxs, this.constants, this.start, this.end, this.startSpongeBlob, this.endSpongeBlob, this.outHash, this.accumulatedFees, this.accumulatedManaUsed);
|
|
71
|
+
return serializeToBuffer(this.rollupType, this.numTxs, this.constants, this.start, this.end, this.startSpongeBlob, this.endSpongeBlob, this.outHash, this.accumulatedFees, this.accumulatedManaUsed);
|
|
67
72
|
}
|
|
68
73
|
/**
|
|
69
74
|
* Serialize this as a hex string.
|