@aztec/stdlib 0.0.1-commit.6c91f13 → 0.0.1-commit.7d4e6cd
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/contract_artifact.d.ts +2 -2
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +1 -1
- package/dest/abi/selector.js +3 -1
- package/dest/avm/avm_accumulated_data.js +5 -2
- package/dest/avm/avm_circuit_public_inputs.js +3 -1
- package/dest/avm/public_data_update_request.js +3 -1
- package/dest/avm/public_inner_call_request.js +3 -1
- package/dest/avm/revert_code.js +3 -1
- package/dest/aztec-address/index.js +4 -2
- package/dest/block/attestation_info.d.ts +5 -5
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +4 -4
- package/dest/block/body.js +3 -1
- package/dest/block/l2_block.d.ts +6 -3
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +6 -4
- package/dest/block/l2_block_code_to_purge.d.ts +2 -3
- package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
- package/dest/block/l2_block_code_to_purge.js +2 -8
- package/dest/block/l2_block_header.d.ts +8 -12
- package/dest/block/l2_block_header.d.ts.map +1 -1
- package/dest/block/l2_block_header.js +25 -18
- package/dest/block/l2_block_new.d.ts +1 -2
- package/dest/block/l2_block_new.d.ts.map +1 -1
- package/dest/block/l2_block_new.js +4 -1
- package/dest/block/l2_block_source.d.ts +245 -41
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +23 -5
- package/dest/block/l2_block_stream/index.d.ts +2 -1
- package/dest/block/l2_block_stream/index.d.ts.map +1 -1
- package/dest/block/l2_block_stream/index.js +1 -0
- package/dest/block/l2_block_stream/interfaces.d.ts +12 -5
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +4 -2
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +102 -30
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
- package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +483 -38
- package/dest/block/validate_block_result.d.ts +24 -24
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +13 -13
- package/dest/checkpoint/checkpoint.d.ts +1 -1
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +1 -0
- package/dest/checkpoint/checkpoint_info.d.ts +32 -3
- package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_info.js +34 -1
- package/dest/checkpoint/index.d.ts +2 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +1 -0
- package/dest/database-version/version_manager.js +3 -1
- package/dest/gas/gas.js +3 -1
- package/dest/gas/gas_fees.js +3 -1
- package/dest/interfaces/api_limit.d.ts +2 -1
- package/dest/interfaces/api_limit.d.ts.map +1 -1
- package/dest/interfaces/api_limit.js +1 -0
- package/dest/interfaces/archiver.d.ts +6 -6
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +6 -4
- package/dest/interfaces/aztec-node-admin.d.ts +12 -6
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +2 -2
- package/dest/interfaces/aztec-node.d.ts +11 -10
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +10 -5
- package/dest/interfaces/configs.d.ts +6 -1
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +2 -1
- package/dest/interfaces/p2p.d.ts +7 -9
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +3 -4
- package/dest/interfaces/proving-job.d.ts +170 -170
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +1 -7
- package/dest/interfaces/server_circuit_prover.d.ts +4 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +41 -7
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +3 -1
- package/dest/kernel/claimed_length_array.js +3 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
- 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 +5 -6
- package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
- package/dest/kernel/log_hash.js +3 -1
- package/dest/kernel/private_log_data.js +5 -2
- package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
- package/dest/kernel/private_to_public_accumulated_data.js +3 -1
- package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
- package/dest/kernel/private_validation_requests.js +3 -1
- package/dest/kernel/public_call_request.js +5 -2
- package/dest/logs/contract_class_log.js +3 -1
- package/dest/logs/private_log.js +3 -1
- package/dest/logs/public_log.js +3 -1
- package/dest/messaging/in_hash.d.ts +4 -2
- package/dest/messaging/in_hash.d.ts.map +1 -1
- package/dest/messaging/in_hash.js +3 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +158 -42
- package/dest/messaging/out_hash.d.ts +2 -1
- package/dest/messaging/out_hash.d.ts.map +1 -1
- package/dest/messaging/out_hash.js +13 -4
- package/dest/p2p/attestation_utils.d.ts +3 -3
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +1 -1
- package/dest/p2p/block_proposal.d.ts +85 -21
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +120 -37
- package/dest/p2p/checkpoint_attestation.d.ts +77 -0
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
- package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
- package/dest/p2p/checkpoint_proposal.d.ts +154 -0
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
- package/dest/p2p/checkpoint_proposal.js +217 -0
- package/dest/p2p/consensus_payload.d.ts +6 -7
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +3 -2
- package/dest/p2p/gossipable.d.ts +4 -3
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +16 -5
- package/dest/p2p/index.d.ts +4 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +3 -1
- package/dest/p2p/signature_utils.d.ts +5 -3
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +3 -1
- package/dest/p2p/signed_txs.d.ts +40 -0
- package/dest/p2p/signed_txs.d.ts.map +1 -0
- package/dest/p2p/signed_txs.js +70 -0
- package/dest/p2p/topic_type.d.ts +3 -2
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +8 -2
- package/dest/rollup/block_rollup_public_inputs.d.ts +4 -9
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +6 -10
- package/dest/rollup/checkpoint_constant_data.js +3 -1
- package/dest/rollup/checkpoint_header.d.ts +15 -12
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +33 -19
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +6 -2
- package/dest/rollup/root_rollup_public_inputs.d.ts +8 -3
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +6 -3
- package/dest/tests/factories.d.ts +15 -7
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +57 -13
- package/dest/tests/mocks.d.ts +59 -10
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +89 -41
- package/dest/trees/append_only_tree_snapshot.js +3 -1
- package/dest/tx/block_header.js +3 -1
- package/dest/tx/call_context.js +3 -1
- package/dest/tx/global_variable_builder.d.ts +2 -2
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/global_variables.js +3 -1
- package/dest/tx/index.d.ts +1 -2
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +0 -1
- package/dest/tx/private_execution_result.d.ts +1 -5
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +3 -20
- package/dest/tx/public_call_request_with_calldata.js +3 -1
- package/dest/tx/state_reference.js +3 -1
- package/dest/tx/tree_snapshots.js +3 -1
- package/dest/tx/tx.d.ts +1 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +3 -1
- package/dest/tx/tx_effect.js +3 -1
- package/dest/tx/tx_execution_request.d.ts +1 -1
- package/dest/tx/tx_execution_request.d.ts.map +1 -1
- package/dest/tx/tx_execution_request.js +6 -2
- package/package.json +8 -8
- package/src/abi/contract_artifact.ts +10 -10
- package/src/block/attestation_info.ts +9 -6
- package/src/block/l2_block.ts +6 -5
- package/src/block/l2_block_code_to_purge.ts +3 -11
- package/src/block/l2_block_header.ts +26 -17
- package/src/block/l2_block_new.ts +5 -1
- package/src/block/l2_block_source.ts +66 -16
- package/src/block/l2_block_stream/index.ts +1 -0
- package/src/block/l2_block_stream/interfaces.ts +12 -4
- package/src/block/l2_block_stream/l2_block_stream.ts +121 -38
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
- package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
- package/src/block/test/l2_tips_store_test_suite.ts +485 -36
- package/src/block/validate_block_result.ts +35 -31
- package/src/checkpoint/checkpoint.ts +1 -0
- package/src/checkpoint/checkpoint_info.ts +45 -2
- package/src/checkpoint/index.ts +1 -0
- package/src/interfaces/api_limit.ts +1 -0
- package/src/interfaces/archiver.ts +14 -6
- package/src/interfaces/aztec-node-admin.ts +5 -2
- package/src/interfaces/aztec-node.ts +43 -13
- package/src/interfaces/configs.ts +5 -0
- package/src/interfaces/p2p.ts +8 -12
- package/src/interfaces/proving-job.ts +2 -11
- package/src/interfaces/server_circuit_prover.ts +3 -2
- package/src/interfaces/validator.ts +57 -7
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +5 -8
- package/src/messaging/in_hash.ts +3 -1
- package/src/messaging/l2_to_l1_membership.ts +176 -52
- package/src/messaging/out_hash.ts +17 -7
- package/src/p2p/attestation_utils.ts +3 -3
- package/src/p2p/block_proposal.ts +185 -41
- package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +31 -25
- package/src/p2p/checkpoint_proposal.ts +337 -0
- package/src/p2p/consensus_payload.ts +5 -2
- package/src/p2p/gossipable.ts +14 -4
- package/src/p2p/index.ts +3 -1
- package/src/p2p/signature_utils.ts +3 -1
- package/src/p2p/signed_txs.ts +83 -0
- package/src/p2p/topic_type.ts +3 -2
- package/src/rollup/block_rollup_public_inputs.ts +3 -9
- package/src/rollup/checkpoint_header.ts +43 -20
- package/src/rollup/checkpoint_rollup_public_inputs.ts +6 -0
- package/src/rollup/root_rollup_public_inputs.ts +6 -0
- package/src/tests/factories.ts +53 -17
- package/src/tests/mocks.ts +166 -64
- package/src/tx/global_variable_builder.ts +1 -1
- package/src/tx/index.ts +0 -1
- package/src/tx/private_execution_result.ts +0 -15
- package/src/tx/tx.ts +2 -0
- package/src/tx/tx_execution_request.ts +2 -0
- package/dest/p2p/block_attestation.d.ts +0 -80
- package/dest/p2p/block_attestation.d.ts.map +0 -1
- package/dest/tx/content_commitment.d.ts +0 -49
- package/dest/tx/content_commitment.d.ts.map +0 -1
- package/dest/tx/content_commitment.js +0 -90
- package/src/tx/content_commitment.ts +0 -113
package/src/tests/mocks.ts
CHANGED
|
@@ -6,16 +6,18 @@ import {
|
|
|
6
6
|
MAX_NULLIFIERS_PER_TX,
|
|
7
7
|
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
8
8
|
} from '@aztec/constants';
|
|
9
|
-
import { makeTuple } from '@aztec/foundation/array';
|
|
9
|
+
import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
|
|
10
10
|
import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
11
11
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
12
12
|
import { padArrayEnd, times } from '@aztec/foundation/collection';
|
|
13
13
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
14
14
|
import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
15
15
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
16
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
16
17
|
|
|
17
18
|
import type { ContractArtifact } from '../abi/abi.js';
|
|
18
19
|
import { PublicTxEffect } from '../avm/avm.js';
|
|
20
|
+
import type { AvmAccumulatedData } from '../avm/avm_accumulated_data.js';
|
|
19
21
|
import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
20
22
|
import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
21
23
|
import { RevertCode } from '../avm/revert_code.js';
|
|
@@ -45,12 +47,14 @@ import { PrivateToAvmAccumulatedData } from '../kernel/private_to_avm_accumulate
|
|
|
45
47
|
import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
|
|
46
48
|
import { PublicCallRequestArrayLengths } from '../kernel/public_call_request.js';
|
|
47
49
|
import { computeInHashFromL1ToL2Messages } from '../messaging/in_hash.js';
|
|
48
|
-
import { BlockAttestation } from '../p2p/block_attestation.js';
|
|
49
50
|
import { BlockProposal } from '../p2p/block_proposal.js';
|
|
51
|
+
import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
|
|
52
|
+
import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
|
|
50
53
|
import { ConsensusPayload } from '../p2p/consensus_payload.js';
|
|
51
54
|
import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
|
|
52
55
|
import { ChonkProof } from '../proofs/chonk_proof.js';
|
|
53
56
|
import { ProvingRequestType } from '../proofs/proving_request_type.js';
|
|
57
|
+
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
54
58
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
55
59
|
import {
|
|
56
60
|
BlockHeader,
|
|
@@ -202,6 +206,7 @@ export async function mockProcessedTx({
|
|
|
202
206
|
// The default gasUsed is the tx overhead.
|
|
203
207
|
gasUsed = Gas.from({ daGas: FIXED_DA_GAS, l2Gas: FIXED_L2_GAS }),
|
|
204
208
|
privateOnly = false,
|
|
209
|
+
avmAccumulatedData,
|
|
205
210
|
...mockTxOpts
|
|
206
211
|
}: {
|
|
207
212
|
seed?: number;
|
|
@@ -213,6 +218,7 @@ export async function mockProcessedTx({
|
|
|
213
218
|
protocolContracts?: ProtocolContracts;
|
|
214
219
|
feePaymentPublicDataWrite?: PublicDataWrite;
|
|
215
220
|
privateOnly?: boolean;
|
|
221
|
+
avmAccumulatedData?: Partial<FieldsOf<AvmAccumulatedData>>;
|
|
216
222
|
} & Parameters<typeof mockTx>[1] = {}) {
|
|
217
223
|
seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
|
|
218
224
|
anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
|
|
@@ -292,19 +298,22 @@ export async function mockProcessedTx({
|
|
|
292
298
|
avmOutput.previousRevertibleAccumulatedDataArrayLengths =
|
|
293
299
|
avmOutput.previousRevertibleAccumulatedData.getArrayLengths();
|
|
294
300
|
// Assign final data emitted from avm.
|
|
295
|
-
avmOutput.accumulatedData.noteHashes = revertibleData.noteHashes;
|
|
296
|
-
avmOutput.accumulatedData.nullifiers =
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
301
|
+
avmOutput.accumulatedData.noteHashes = avmAccumulatedData?.noteHashes ?? revertibleData.noteHashes;
|
|
302
|
+
avmOutput.accumulatedData.nullifiers =
|
|
303
|
+
avmAccumulatedData?.nullifiers ??
|
|
304
|
+
padArrayEnd(
|
|
305
|
+
nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter(n => !n.isEmpty()),
|
|
306
|
+
Fr.ZERO,
|
|
307
|
+
MAX_NULLIFIERS_PER_TX,
|
|
308
|
+
);
|
|
309
|
+
avmOutput.accumulatedData.l2ToL1Msgs = avmAccumulatedData?.l2ToL1Msgs ?? revertibleData.l2ToL1Msgs;
|
|
310
|
+
avmOutput.accumulatedData.publicDataWrites =
|
|
311
|
+
avmAccumulatedData?.publicDataWrites ??
|
|
312
|
+
makeTuple(
|
|
313
|
+
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
314
|
+
i => (i === 0 ? feePaymentPublicDataWrite : new PublicDataWrite(new Fr(i), new Fr(i + 10))),
|
|
315
|
+
seed + 0x2000,
|
|
316
|
+
);
|
|
308
317
|
avmOutput.accumulatedDataArrayLengths = avmOutput.accumulatedData.getArrayLengths();
|
|
309
318
|
avmOutput.gasSettings = gasSettings;
|
|
310
319
|
// Note: The fee is computed from the tx's gas used, which only includes the gas used in private. But this shouldn't
|
|
@@ -353,7 +362,6 @@ const emptyPrivateCallExecutionResult = () =>
|
|
|
353
362
|
Buffer.from(''),
|
|
354
363
|
new Map(),
|
|
355
364
|
PrivateCircuitPublicInputs.empty(),
|
|
356
|
-
new Map(),
|
|
357
365
|
[],
|
|
358
366
|
new Map(),
|
|
359
367
|
[],
|
|
@@ -487,6 +495,30 @@ export interface MakeConsensusPayloadOptions {
|
|
|
487
495
|
txs?: Tx[];
|
|
488
496
|
}
|
|
489
497
|
|
|
498
|
+
export interface MakeBlockProposalOptions {
|
|
499
|
+
signer?: Secp256k1Signer;
|
|
500
|
+
blockHeader?: L2BlockHeader;
|
|
501
|
+
indexWithinCheckpoint?: number;
|
|
502
|
+
inHash?: Fr;
|
|
503
|
+
archiveRoot?: Fr;
|
|
504
|
+
txHashes?: TxHash[];
|
|
505
|
+
txs?: Tx[];
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
export interface MakeCheckpointProposalOptions {
|
|
509
|
+
signer?: Secp256k1Signer;
|
|
510
|
+
checkpointHeader?: CheckpointHeader;
|
|
511
|
+
archiveRoot?: Fr;
|
|
512
|
+
/** Options for the lastBlock - if undefined, no lastBlock is included */
|
|
513
|
+
lastBlock?: {
|
|
514
|
+
blockHeader?: L2BlockHeader;
|
|
515
|
+
indexWithinCheckpoint?: number;
|
|
516
|
+
txHashes?: TxHash[];
|
|
517
|
+
txs?: Tx[];
|
|
518
|
+
};
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
490
522
|
const makeAndSignConsensusPayload = (
|
|
491
523
|
domainSeparator: SignatureDomainSeparator,
|
|
492
524
|
options?: MakeConsensusPayloadOptions,
|
|
@@ -516,73 +548,137 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
|
|
|
516
548
|
return signer.sign(hash);
|
|
517
549
|
};
|
|
518
550
|
|
|
519
|
-
export const makeBlockProposal = (options?:
|
|
520
|
-
const
|
|
551
|
+
export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<BlockProposal> => {
|
|
552
|
+
const l2BlockHeader = options?.blockHeader ?? makeL2BlockHeader(1);
|
|
553
|
+
const blockHeader = l2BlockHeader.toBlockHeader();
|
|
554
|
+
const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? 0;
|
|
555
|
+
const inHash = options?.inHash ?? Fr.random();
|
|
556
|
+
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
521
557
|
const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
|
|
522
|
-
|
|
558
|
+
const txs = options?.txs;
|
|
559
|
+
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
560
|
+
|
|
561
|
+
return BlockProposal.createProposalFromSigner(
|
|
562
|
+
blockHeader,
|
|
563
|
+
indexWithinCheckpoint,
|
|
564
|
+
inHash,
|
|
565
|
+
archiveRoot,
|
|
566
|
+
txHashes,
|
|
567
|
+
txs,
|
|
568
|
+
payload => Promise.resolve(signer.signMessage(payload)),
|
|
569
|
+
);
|
|
523
570
|
};
|
|
524
571
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
const
|
|
528
|
-
const
|
|
572
|
+
export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
|
|
573
|
+
const l2BlockHeader = options?.lastBlock?.blockHeader ?? makeL2BlockHeader(1);
|
|
574
|
+
const checkpointHeader = options?.checkpointHeader ?? l2BlockHeader.toCheckpointHeader();
|
|
575
|
+
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
576
|
+
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
577
|
+
|
|
578
|
+
// Build lastBlock info if provided
|
|
579
|
+
const lastBlockInfo = options?.lastBlock
|
|
580
|
+
? {
|
|
581
|
+
blockHeader: l2BlockHeader.toBlockHeader(),
|
|
582
|
+
indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? 4, // Last block in a 5-block checkpoint
|
|
583
|
+
txHashes: options.lastBlock.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
|
|
584
|
+
txs: options.lastBlock.txs,
|
|
585
|
+
}
|
|
586
|
+
: undefined;
|
|
587
|
+
|
|
588
|
+
return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, payload =>
|
|
589
|
+
Promise.resolve(signer.signMessage(payload)),
|
|
590
|
+
);
|
|
591
|
+
};
|
|
529
592
|
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
593
|
+
/**
|
|
594
|
+
* Options for creating a checkpoint attestation
|
|
595
|
+
*/
|
|
596
|
+
export type MakeCheckpointAttestationOptions = {
|
|
597
|
+
header?: CheckpointHeader;
|
|
598
|
+
archive?: Fr;
|
|
599
|
+
attesterSigner?: Secp256k1Signer;
|
|
600
|
+
proposerSigner?: Secp256k1Signer;
|
|
601
|
+
signer?: Secp256k1Signer;
|
|
602
|
+
};
|
|
603
|
+
|
|
604
|
+
/**
|
|
605
|
+
* Create a checkpoint attestation for testing
|
|
606
|
+
*/
|
|
607
|
+
export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOptions = {}): CheckpointAttestation => {
|
|
608
|
+
const header = options.header ?? makeL2BlockHeader(1).toCheckpointHeader();
|
|
609
|
+
const archive = options.archive ?? Fr.random();
|
|
610
|
+
const { signer, attesterSigner = signer, proposerSigner = signer } = options;
|
|
611
|
+
|
|
612
|
+
const payload = new ConsensusPayload(header, archive);
|
|
613
|
+
|
|
614
|
+
// Sign as attester
|
|
615
|
+
const attestationHash = getHashedSignaturePayloadEthSignedMessage(
|
|
616
|
+
payload,
|
|
617
|
+
SignatureDomainSeparator.checkpointAttestation,
|
|
618
|
+
);
|
|
619
|
+
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
620
|
+
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
621
|
+
|
|
622
|
+
// Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
|
|
623
|
+
// This is different from ConsensusPayload's format (ABI encoding)
|
|
624
|
+
const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
|
|
625
|
+
const tempProposal = new CheckpointProposal(header, archive, Signature.empty());
|
|
626
|
+
const proposalHash = getHashedSignaturePayloadEthSignedMessage(
|
|
627
|
+
tempProposal,
|
|
628
|
+
SignatureDomainSeparator.checkpointProposal,
|
|
629
|
+
);
|
|
630
|
+
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
534
631
|
|
|
535
|
-
return
|
|
632
|
+
return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
|
|
536
633
|
};
|
|
537
634
|
|
|
538
|
-
|
|
539
|
-
|
|
635
|
+
/**
|
|
636
|
+
* Create a checkpoint attestation from a checkpoint proposal
|
|
637
|
+
*/
|
|
638
|
+
export const makeCheckpointAttestationFromProposal = (
|
|
639
|
+
proposal: CheckpointProposal,
|
|
540
640
|
attesterSigner?: Secp256k1Signer,
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
const header = checkpoint.header;
|
|
544
|
-
const archive = checkpoint.archive.root;
|
|
641
|
+
): CheckpointAttestation => {
|
|
642
|
+
const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive);
|
|
545
643
|
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
644
|
+
// Sign as attester
|
|
645
|
+
const attestationHash = getHashedSignaturePayloadEthSignedMessage(
|
|
646
|
+
payload,
|
|
647
|
+
SignatureDomainSeparator.checkpointAttestation,
|
|
648
|
+
);
|
|
649
|
+
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
650
|
+
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
550
651
|
|
|
551
|
-
|
|
652
|
+
// Use the proposal's signature as the proposer signature
|
|
653
|
+
return new CheckpointAttestation(payload, attestationSignature, proposal.signature);
|
|
552
654
|
};
|
|
553
655
|
|
|
554
|
-
|
|
555
|
-
|
|
656
|
+
/**
|
|
657
|
+
* Create a checkpoint attestation from a checkpoint
|
|
658
|
+
*/
|
|
659
|
+
export const makeCheckpointAttestationFromCheckpoint = (
|
|
660
|
+
checkpoint: Checkpoint,
|
|
556
661
|
attesterSigner?: Secp256k1Signer,
|
|
557
662
|
proposerSigner?: Secp256k1Signer,
|
|
558
|
-
):
|
|
559
|
-
const header =
|
|
560
|
-
const archive =
|
|
561
|
-
|
|
562
|
-
const payload = ConsensusPayload.fromFields({
|
|
563
|
-
header: header.toCheckpointHeader(),
|
|
564
|
-
archive,
|
|
565
|
-
});
|
|
663
|
+
): CheckpointAttestation => {
|
|
664
|
+
const header = checkpoint.header;
|
|
665
|
+
const archive = checkpoint.archive.root;
|
|
566
666
|
|
|
567
|
-
return
|
|
667
|
+
return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
|
|
568
668
|
};
|
|
569
669
|
|
|
570
|
-
|
|
571
|
-
|
|
670
|
+
/**
|
|
671
|
+
* Create a checkpoint attestation from an L2Block
|
|
672
|
+
*/
|
|
673
|
+
export const makeCheckpointAttestationFromBlock = (
|
|
674
|
+
block: L2Block,
|
|
572
675
|
attesterSigner?: Secp256k1Signer,
|
|
573
676
|
proposerSigner?: Secp256k1Signer,
|
|
574
|
-
):
|
|
575
|
-
|
|
576
|
-
const
|
|
577
|
-
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
578
|
-
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
579
|
-
|
|
580
|
-
// Sign as proposer
|
|
581
|
-
const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
|
|
582
|
-
const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
|
|
583
|
-
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
677
|
+
): CheckpointAttestation => {
|
|
678
|
+
const header = block.header.toCheckpointHeader();
|
|
679
|
+
const archive = block.archive.root;
|
|
584
680
|
|
|
585
|
-
return
|
|
681
|
+
return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
|
|
586
682
|
};
|
|
587
683
|
|
|
588
684
|
export async function randomPublishedL2Block(
|
|
@@ -597,7 +693,13 @@ export async function randomPublishedL2Block(
|
|
|
597
693
|
});
|
|
598
694
|
|
|
599
695
|
const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
|
|
600
|
-
const atts =
|
|
696
|
+
const atts = signers.map(signer =>
|
|
697
|
+
makeCheckpointAttestation({
|
|
698
|
+
signer,
|
|
699
|
+
archive: block.archive.root,
|
|
700
|
+
header: block.header.toCheckpointHeader(),
|
|
701
|
+
}),
|
|
702
|
+
);
|
|
601
703
|
const attestations = atts.map(
|
|
602
704
|
(attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
|
|
603
705
|
);
|
|
@@ -10,7 +10,7 @@ import type { CheckpointGlobalVariables, GlobalVariables } from './global_variab
|
|
|
10
10
|
* Interface for building global variables for Aztec blocks.
|
|
11
11
|
*/
|
|
12
12
|
export interface GlobalVariableBuilder {
|
|
13
|
-
|
|
13
|
+
getCurrentMinFees(): Promise<GasFees>;
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Builds global variables for a given block.
|
package/src/tx/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './block_header.js';
|
|
2
2
|
export * from './call_context.js';
|
|
3
3
|
export * from './global_variables.js';
|
|
4
|
-
export * from './content_commitment.js';
|
|
5
4
|
export * from './state_reference.js';
|
|
6
5
|
export * from './partial_state_reference.js';
|
|
7
6
|
export * from './function_data.js';
|
|
@@ -129,8 +129,6 @@ export class PrivateCallExecutionResult {
|
|
|
129
129
|
// Needed for the verifier (kernel)
|
|
130
130
|
/** The call stack item. */
|
|
131
131
|
public publicInputs: PrivateCircuitPublicInputs,
|
|
132
|
-
/** Mapping of note hash to its index in the note hash tree. Used for building hints for note hash read requests. */
|
|
133
|
-
public noteHashLeafIndexMap: Map<bigint, bigint>,
|
|
134
132
|
/** The notes created in the executed function. */
|
|
135
133
|
public newNotes: NoteAndSlot[],
|
|
136
134
|
/** Mapping of note hash counter to the counter of its nullifier. */
|
|
@@ -159,7 +157,6 @@ export class PrivateCallExecutionResult {
|
|
|
159
157
|
vk: schemas.Buffer,
|
|
160
158
|
partialWitness: mapSchema(z.coerce.number(), z.string()),
|
|
161
159
|
publicInputs: PrivateCircuitPublicInputs.schema,
|
|
162
|
-
noteHashLeafIndexMap: mapSchema(schemas.BigInt, schemas.BigInt),
|
|
163
160
|
newNotes: z.array(NoteAndSlot.schema),
|
|
164
161
|
noteHashNullifierCounterMap: mapSchema(z.coerce.number(), z.number()),
|
|
165
162
|
returnValues: z.array(schemas.Fr),
|
|
@@ -177,7 +174,6 @@ export class PrivateCallExecutionResult {
|
|
|
177
174
|
fields.vk,
|
|
178
175
|
fields.partialWitness,
|
|
179
176
|
fields.publicInputs,
|
|
180
|
-
fields.noteHashLeafIndexMap,
|
|
181
177
|
fields.newNotes,
|
|
182
178
|
fields.noteHashNullifierCounterMap,
|
|
183
179
|
fields.returnValues,
|
|
@@ -194,7 +190,6 @@ export class PrivateCallExecutionResult {
|
|
|
194
190
|
randomBytes(4),
|
|
195
191
|
new Map([[1, 'one']]),
|
|
196
192
|
PrivateCircuitPublicInputs.empty(),
|
|
197
|
-
new Map([[1n, 1n]]),
|
|
198
193
|
[NoteAndSlot.random()],
|
|
199
194
|
new Map([[0, 0]]),
|
|
200
195
|
[Fr.random()],
|
|
@@ -210,16 +205,6 @@ export class PrivateCallExecutionResult {
|
|
|
210
205
|
}
|
|
211
206
|
}
|
|
212
207
|
|
|
213
|
-
export function collectNoteHashLeafIndexMap(execResult: PrivateExecutionResult) {
|
|
214
|
-
const accum: Map<bigint, bigint> = new Map();
|
|
215
|
-
const collectNoteHashLeafIndexMapRecursive = (callResult: PrivateCallExecutionResult, accum: Map<bigint, bigint>) => {
|
|
216
|
-
callResult.noteHashLeafIndexMap.forEach((value, key) => accum.set(key, value));
|
|
217
|
-
callResult.nestedExecutionResults.forEach(nested => collectNoteHashLeafIndexMapRecursive(nested, accum));
|
|
218
|
-
};
|
|
219
|
-
collectNoteHashLeafIndexMapRecursive(execResult.entrypoint, accum);
|
|
220
|
-
return accum;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
208
|
export function collectNoteHashNullifierCounterMap(execResult: PrivateExecutionResult) {
|
|
224
209
|
const accum: Map<number, number> = new Map();
|
|
225
210
|
const collectNoteHashNullifierCounterMapRecursive = (
|
package/src/tx/tx.ts
CHANGED
|
@@ -24,6 +24,7 @@ import { TxHash } from './tx_hash.js';
|
|
|
24
24
|
/**
|
|
25
25
|
* The interface of an L2 transaction.
|
|
26
26
|
*/
|
|
27
|
+
// docs:start:tx_class
|
|
27
28
|
export class Tx extends Gossipable {
|
|
28
29
|
static override p2pTopic = TopicType.tx;
|
|
29
30
|
|
|
@@ -60,6 +61,7 @@ export class Tx extends Gossipable {
|
|
|
60
61
|
) {
|
|
61
62
|
super();
|
|
62
63
|
}
|
|
64
|
+
// docs:end:tx_class
|
|
63
65
|
|
|
64
66
|
// Gossipable method
|
|
65
67
|
override generateP2PMessageIdentifier(): Promise<Buffer32> {
|
|
@@ -20,6 +20,7 @@ import { TxRequest } from './tx_request.js';
|
|
|
20
20
|
/**
|
|
21
21
|
* Request to execute a transaction. Similar to TxRequest, but has the full args.
|
|
22
22
|
*/
|
|
23
|
+
// docs:start:tx_execution_request_class
|
|
23
24
|
export class TxExecutionRequest {
|
|
24
25
|
constructor(
|
|
25
26
|
/**
|
|
@@ -60,6 +61,7 @@ export class TxExecutionRequest {
|
|
|
60
61
|
*/
|
|
61
62
|
public salt = Fr.random(),
|
|
62
63
|
) {}
|
|
64
|
+
// docs:end:tx_execution_request_class
|
|
63
65
|
|
|
64
66
|
static get schema(): ZodFor<TxExecutionRequest> {
|
|
65
67
|
return z
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
3
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
-
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
|
-
import { Signature } from '@aztec/foundation/eth-signature';
|
|
6
|
-
import { BufferReader } from '@aztec/foundation/serialize';
|
|
7
|
-
import type { ZodFor } from '../schemas/index.js';
|
|
8
|
-
import { ConsensusPayload } from './consensus_payload.js';
|
|
9
|
-
import { Gossipable } from './gossipable.js';
|
|
10
|
-
import { TopicType } from './topic_type.js';
|
|
11
|
-
export declare class BlockAttestationHash extends Buffer32 {
|
|
12
|
-
constructor(hash: Buffer);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* BlockAttestation
|
|
16
|
-
*
|
|
17
|
-
* A validator that has attested to seeing the contents of a block
|
|
18
|
-
* will produce a block attestation over the header of the block
|
|
19
|
-
*/
|
|
20
|
-
export declare class BlockAttestation extends Gossipable {
|
|
21
|
-
readonly payload: ConsensusPayload;
|
|
22
|
-
readonly signature: Signature;
|
|
23
|
-
readonly proposerSignature: Signature;
|
|
24
|
-
static p2pTopic: TopicType;
|
|
25
|
-
private sender;
|
|
26
|
-
private proposer;
|
|
27
|
-
constructor(
|
|
28
|
-
/** The payload of the message, and what the signature is over */
|
|
29
|
-
payload: ConsensusPayload,
|
|
30
|
-
/** The signature of the block attester */
|
|
31
|
-
signature: Signature,
|
|
32
|
-
/** The signature from the block proposer */
|
|
33
|
-
proposerSignature: Signature);
|
|
34
|
-
static get schema(): ZodFor<BlockAttestation>;
|
|
35
|
-
generateP2PMessageIdentifier(): Promise<Buffer32>;
|
|
36
|
-
get archive(): Fr;
|
|
37
|
-
get slotNumber(): SlotNumber;
|
|
38
|
-
/**
|
|
39
|
-
* Lazily evaluate and cache the signer of the attestation
|
|
40
|
-
* @returns The signer of the attestation, or undefined if signature recovery fails
|
|
41
|
-
*/
|
|
42
|
-
getSender(): EthAddress | undefined;
|
|
43
|
-
/**
|
|
44
|
-
* Lazily evaluate and cache the proposer of the block
|
|
45
|
-
* @returns The proposer of the block
|
|
46
|
-
*/
|
|
47
|
-
getProposer(): EthAddress | undefined;
|
|
48
|
-
getPayload(): Buffer;
|
|
49
|
-
toBuffer(): Buffer;
|
|
50
|
-
static fromBuffer(buf: Buffer | BufferReader): BlockAttestation;
|
|
51
|
-
static empty(): BlockAttestation;
|
|
52
|
-
static random(): BlockAttestation;
|
|
53
|
-
getSize(): number;
|
|
54
|
-
toInspect(): {
|
|
55
|
-
payload: {
|
|
56
|
-
header: {
|
|
57
|
-
lastArchive: `0x${string}`;
|
|
58
|
-
blockHeadersHash: `0x${string}`;
|
|
59
|
-
contentCommitment: {
|
|
60
|
-
blobsHash: `0x${string}`;
|
|
61
|
-
inHash: `0x${string}`;
|
|
62
|
-
outHash: `0x${string}`;
|
|
63
|
-
};
|
|
64
|
-
slotNumber: SlotNumber;
|
|
65
|
-
timestamp: bigint;
|
|
66
|
-
coinbase: `0x${string}`;
|
|
67
|
-
feeRecipient: `0x${string}`;
|
|
68
|
-
gasFees: {
|
|
69
|
-
feePerDaGas: bigint;
|
|
70
|
-
feePerL2Gas: bigint;
|
|
71
|
-
};
|
|
72
|
-
totalManaUsed: bigint;
|
|
73
|
-
};
|
|
74
|
-
archive: `0x${string}`;
|
|
75
|
-
};
|
|
76
|
-
signature: `0x${string}`;
|
|
77
|
-
proposerSignature: `0x${string}`;
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfYXR0ZXN0YXRpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvYmxvY2tfYXR0ZXN0YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFJOUUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxxQkFBYSxvQkFBcUIsU0FBUSxRQUFRO0lBQ2hELFlBQVksSUFBSSxFQUFFLE1BQU0sRUFFdkI7Q0FDRjtBQUVEOzs7OztHQUtHO0FBQ0gscUJBQWEsZ0JBQWlCLFNBQVEsVUFBVTthQVE1QixPQUFPLEVBQUUsZ0JBQWdCO2FBR3pCLFNBQVMsRUFBRSxTQUFTO2FBR3BCLGlCQUFpQixFQUFFLFNBQVM7SUFiOUMsT0FBZ0IsUUFBUSxZQUErQjtJQUV2RCxPQUFPLENBQUMsTUFBTSxDQUF5QjtJQUN2QyxPQUFPLENBQUMsUUFBUSxDQUF5QjtJQUV6QztJQUNFLGlFQUFpRTtJQUNqRCxPQUFPLEVBQUUsZ0JBQWdCO0lBRXpDLDBDQUEwQztJQUMxQixTQUFTLEVBQUUsU0FBUztJQUVwQyw0Q0FBNEM7SUFDNUIsaUJBQWlCLEVBQUUsU0FBUyxFQUc3QztJQUVELE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBUTVDO0lBRVEsNEJBQTRCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUV6RDtJQUVELElBQUksT0FBTyxJQUFJLEVBQUUsQ0FFaEI7SUFFRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBRTNCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsR0FBRyxTQUFTLENBU2xDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxJQUFJLFVBQVUsR0FBRyxTQUFTLENBU3BDO0lBRUQsVUFBVSxJQUFJLE1BQU0sQ0FFbkI7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsZ0JBQWdCLENBTzlEO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FFL0I7SUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLGdCQUFnQixDQUVoQztJQUVELE9BQU8sSUFBSSxNQUFNLENBRWhCO0lBRUQsU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BTVI7Q0FDRiJ9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block_attestation.d.ts","sourceRoot":"","sources":["../../src/p2p/block_attestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAI9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,YAAY,IAAI,EAAE,MAAM,EAEvB;CACF;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;aAQ5B,OAAO,EAAE,gBAAgB;aAGzB,SAAS,EAAE,SAAS;aAGpB,iBAAiB,EAAE,SAAS;IAb9C,OAAgB,QAAQ,YAA+B;IAEvD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,QAAQ,CAAyB;IAEzC;IACE,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;IAC1B,SAAS,EAAE,SAAS;IAEpC,4CAA4C;IAC5B,iBAAiB,EAAE,SAAS,EAG7C;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAQ5C;IAEQ,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAEzD;IAED,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,GAAG,SAAS,CASlC;IAED;;;OAGG;IACH,WAAW,IAAI,UAAU,GAAG,SAAS,CASpC;IAED,UAAU,IAAI,MAAM,CAEnB;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAO9D;IAED,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAE/B;IAED,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAEhC;IAED,OAAO,IAAI,MAAM,CAEhB;IAED,SAAS;;;;;;;;;;;;;;;;;;;;;;;;MAMR;CACF"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { ViemContentCommitment } from '@aztec/ethereum/contracts';
|
|
2
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
-
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
4
|
-
import type { FieldsOf } from '@aztec/foundation/types';
|
|
5
|
-
import { z } from 'zod';
|
|
6
|
-
export declare class ContentCommitment {
|
|
7
|
-
blobsHash: Fr;
|
|
8
|
-
inHash: Fr;
|
|
9
|
-
outHash: Fr;
|
|
10
|
-
constructor(blobsHash: Fr, inHash: Fr, outHash: Fr);
|
|
11
|
-
static get schema(): z.ZodEffects<z.ZodObject<{
|
|
12
|
-
blobsHash: z.ZodType<Fr, any, string>;
|
|
13
|
-
inHash: z.ZodType<Fr, any, string>;
|
|
14
|
-
outHash: z.ZodType<Fr, any, string>;
|
|
15
|
-
}, "strip", z.ZodTypeAny, {
|
|
16
|
-
blobsHash: Fr;
|
|
17
|
-
inHash: Fr;
|
|
18
|
-
outHash: Fr;
|
|
19
|
-
}, {
|
|
20
|
-
blobsHash: string;
|
|
21
|
-
inHash: string;
|
|
22
|
-
outHash: string;
|
|
23
|
-
}>, ContentCommitment, {
|
|
24
|
-
blobsHash: string;
|
|
25
|
-
inHash: string;
|
|
26
|
-
outHash: string;
|
|
27
|
-
}>;
|
|
28
|
-
static getFields(fields: FieldsOf<ContentCommitment>): readonly [Fr, Fr, Fr];
|
|
29
|
-
static from(fields: FieldsOf<ContentCommitment>): ContentCommitment;
|
|
30
|
-
getSize(): number;
|
|
31
|
-
toBuffer(): Buffer<ArrayBufferLike>;
|
|
32
|
-
static fromBuffer(buffer: Buffer | BufferReader): ContentCommitment;
|
|
33
|
-
toInspect(): {
|
|
34
|
-
blobsHash: `0x${string}`;
|
|
35
|
-
inHash: `0x${string}`;
|
|
36
|
-
outHash: `0x${string}`;
|
|
37
|
-
};
|
|
38
|
-
toViem(): ViemContentCommitment;
|
|
39
|
-
static fromViem(contentCommitment: ViemContentCommitment): ContentCommitment;
|
|
40
|
-
toFields(): Fr[];
|
|
41
|
-
static fromFields(fields: Fr[] | FieldReader): ContentCommitment;
|
|
42
|
-
static random(overrides?: Partial<FieldsOf<ContentCommitment>>): ContentCommitment;
|
|
43
|
-
static empty(): ContentCommitment;
|
|
44
|
-
isEmpty(): boolean;
|
|
45
|
-
toString(): string;
|
|
46
|
-
static fromString(str: string): ContentCommitment;
|
|
47
|
-
equals(other: this): boolean;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudF9jb21taXRtZW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvY29udGVudF9jb21taXRtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUF3QyxNQUFNLDZCQUE2QixDQUFDO0FBRTlHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIscUJBQWEsaUJBQWlCO0lBRW5CLFNBQVMsRUFBRSxFQUFFO0lBQ2IsTUFBTSxFQUFFLEVBQUU7SUFDVixPQUFPLEVBQUUsRUFBRTtJQUhwQixZQUNTLFNBQVMsRUFBRSxFQUFFLEVBQ2IsTUFBTSxFQUFFLEVBQUUsRUFDVixPQUFPLEVBQUUsRUFBRSxFQUNoQjtJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7O09BUWhCO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHlCQUVuRDtJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFFOUM7SUFFRCxPQUFPLFdBRU47SUFFRCxRQUFRLDRCQUVQO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxpQkFBaUIsQ0FJbEU7SUFFRCxTQUFTOzs7O01BTVI7SUFFRCxNQUFNLElBQUkscUJBQXFCLENBTTlCO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIscUJBTXZEO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUFHLGlCQUFpQixDQUcvRDtJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBTSxHQUFHLGlCQUFpQixDQU9yRjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksaUJBQWlCLENBRWhDO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FFakI7SUFFTSxRQUFRLElBQUksTUFBTSxDQUV4QjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxpQkFBaUIsQ0FHaEQ7SUFFTSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksR0FBRyxPQUFPLENBSWxDO0NBQ0YifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"content_commitment.d.ts","sourceRoot":"","sources":["../../src/tx/content_commitment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qBAAa,iBAAiB;IAEnB,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IAHpB,YACS,SAAS,EAAE,EAAE,EACb,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,EAAE,EAChB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,yBAEnD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,qBAE9C;IAED,OAAO,WAEN;IAED,QAAQ,4BAEP;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,iBAAiB,CAIlE;IAED,SAAS;;;;MAMR;IAED,MAAM,IAAI,qBAAqB,CAM9B;IAED,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,qBAAqB,qBAMvD;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,iBAAiB,CAG/D;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAM,GAAG,iBAAiB,CAOrF;IAED,MAAM,CAAC,KAAK,IAAI,iBAAiB,CAEhC;IAED,OAAO,IAAI,OAAO,CAEjB;IAEM,QAAQ,IAAI,MAAM,CAExB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAGhD;IAEM,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAIlC;CACF"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
-
import { schemas } from '@aztec/foundation/schemas';
|
|
3
|
-
import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
4
|
-
import { bufferToHex } from '@aztec/foundation/string';
|
|
5
|
-
import { z } from 'zod';
|
|
6
|
-
export class ContentCommitment {
|
|
7
|
-
blobsHash;
|
|
8
|
-
inHash;
|
|
9
|
-
outHash;
|
|
10
|
-
constructor(blobsHash, inHash, outHash){
|
|
11
|
-
this.blobsHash = blobsHash;
|
|
12
|
-
this.inHash = inHash;
|
|
13
|
-
this.outHash = outHash;
|
|
14
|
-
}
|
|
15
|
-
static get schema() {
|
|
16
|
-
return z.object({
|
|
17
|
-
blobsHash: schemas.Fr,
|
|
18
|
-
inHash: schemas.Fr,
|
|
19
|
-
outHash: schemas.Fr
|
|
20
|
-
}).transform(({ blobsHash, inHash, outHash })=>new ContentCommitment(blobsHash, inHash, outHash));
|
|
21
|
-
}
|
|
22
|
-
static getFields(fields) {
|
|
23
|
-
return [
|
|
24
|
-
fields.blobsHash,
|
|
25
|
-
fields.inHash,
|
|
26
|
-
fields.outHash
|
|
27
|
-
];
|
|
28
|
-
}
|
|
29
|
-
static from(fields) {
|
|
30
|
-
return new ContentCommitment(...ContentCommitment.getFields(fields));
|
|
31
|
-
}
|
|
32
|
-
getSize() {
|
|
33
|
-
return this.toBuffer().length;
|
|
34
|
-
}
|
|
35
|
-
toBuffer() {
|
|
36
|
-
return serializeToBuffer(...ContentCommitment.getFields(this));
|
|
37
|
-
}
|
|
38
|
-
static fromBuffer(buffer) {
|
|
39
|
-
const reader = BufferReader.asReader(buffer);
|
|
40
|
-
return new ContentCommitment(reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr));
|
|
41
|
-
}
|
|
42
|
-
toInspect() {
|
|
43
|
-
return {
|
|
44
|
-
blobsHash: this.blobsHash.toString(),
|
|
45
|
-
inHash: this.inHash.toString(),
|
|
46
|
-
outHash: this.outHash.toString()
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
toViem() {
|
|
50
|
-
return {
|
|
51
|
-
blobsHash: this.blobsHash.toString(),
|
|
52
|
-
inHash: this.inHash.toString(),
|
|
53
|
-
outHash: this.outHash.toString()
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
static fromViem(contentCommitment) {
|
|
57
|
-
return new ContentCommitment(Fr.fromString(contentCommitment.blobsHash), Fr.fromString(contentCommitment.inHash), Fr.fromString(contentCommitment.outHash));
|
|
58
|
-
}
|
|
59
|
-
toFields() {
|
|
60
|
-
return serializeToFields(...ContentCommitment.getFields(this));
|
|
61
|
-
}
|
|
62
|
-
static fromFields(fields) {
|
|
63
|
-
const reader = FieldReader.asReader(fields);
|
|
64
|
-
return new ContentCommitment(reader.readField(), reader.readField(), reader.readField());
|
|
65
|
-
}
|
|
66
|
-
static random(overrides = {}) {
|
|
67
|
-
return ContentCommitment.from({
|
|
68
|
-
blobsHash: Fr.random(),
|
|
69
|
-
inHash: Fr.random(),
|
|
70
|
-
outHash: Fr.random(),
|
|
71
|
-
...overrides
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
static empty() {
|
|
75
|
-
return new ContentCommitment(Fr.zero(), Fr.zero(), Fr.zero());
|
|
76
|
-
}
|
|
77
|
-
isEmpty() {
|
|
78
|
-
return this.blobsHash.isZero() && this.inHash.isZero() && this.outHash.isZero();
|
|
79
|
-
}
|
|
80
|
-
toString() {
|
|
81
|
-
return bufferToHex(this.toBuffer());
|
|
82
|
-
}
|
|
83
|
-
static fromString(str) {
|
|
84
|
-
const buffer = Buffer.from(str.replace(/^0x/i, ''), 'hex');
|
|
85
|
-
return ContentCommitment.fromBuffer(buffer);
|
|
86
|
-
}
|
|
87
|
-
equals(other) {
|
|
88
|
-
return this.blobsHash.equals(other.blobsHash) && this.inHash.equals(other.inHash) && this.outHash.equals(other.outHash);
|
|
89
|
-
}
|
|
90
|
-
}
|