@aztec/stdlib 3.0.0-nightly.20250916 → 3.0.0-nightly.20250918
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/avm/avm.d.ts +78 -1
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +20 -2
- package/dest/avm/avm_circuit_public_inputs.d.ts +6 -1
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.js +11 -6
- package/dest/avm/avm_proving_request.d.ts +41 -0
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/block/body.d.ts +4 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +16 -5
- package/dest/block/index.d.ts +1 -0
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -0
- package/dest/block/l2_block.d.ts +8 -5
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +14 -7
- package/dest/block/l2_block_code_to_purge.d.ts +3 -14
- package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
- package/dest/block/l2_block_code_to_purge.js +23 -13
- package/dest/block/l2_block_header.d.ts +100 -0
- package/dest/block/l2_block_header.d.ts.map +1 -0
- package/dest/block/l2_block_header.js +146 -0
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +1 -1
- package/dest/block/published_l2_block.d.ts +2 -2
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +1 -3
- package/dest/interfaces/aztec-node.d.ts +5 -2
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +1 -0
- package/dest/interfaces/block-builder.d.ts +1 -2
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/epoch-prover.d.ts +25 -8
- package/dest/interfaces/epoch-prover.d.ts.map +1 -1
- package/dest/interfaces/proving-job.d.ts +204 -61
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +101 -39
- package/dest/interfaces/pxe.d.ts +8 -1
- package/dest/interfaces/pxe.d.ts.map +1 -1
- package/dest/interfaces/pxe.js +1 -0
- package/dest/interfaces/server_circuit_prover.d.ts +19 -16
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +3 -2
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +4 -4
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_context_inputs.d.ts +2 -2
- package/dest/kernel/private_context_inputs.d.ts.map +1 -1
- package/dest/kernel/private_context_inputs.js +4 -4
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +1 -1
- package/dest/messaging/inbox_leaf.d.ts +2 -0
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/inbox_leaf.js +3 -0
- package/dest/p2p/consensus_payload.d.ts +7 -6
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +7 -6
- package/dest/parity/root_parity_input.d.ts +1 -1
- package/dest/proofs/proof_data.d.ts +1 -1
- package/dest/proofs/proof_data.d.ts.map +1 -1
- package/dest/proofs/proof_data.js +2 -2
- package/dest/proofs/proving_request_type.d.ts +13 -8
- package/dest/proofs/proving_request_type.d.ts.map +1 -1
- package/dest/proofs/proving_request_type.js +13 -8
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +1 -1
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/base_or_merge_rollup_public_inputs.js +1 -1
- package/dest/rollup/base_rollup_hints.d.ts +12 -3
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.js +11 -5
- package/dest/rollup/block_constant_data.d.ts +20 -6
- package/dest/rollup/block_constant_data.d.ts.map +1 -1
- package/dest/rollup/block_constant_data.js +15 -7
- package/dest/rollup/block_merge_rollup.d.ts +10 -9
- package/dest/rollup/block_merge_rollup.d.ts.map +1 -1
- package/dest/rollup/block_merge_rollup.js +14 -13
- package/dest/rollup/block_rollup_public_inputs.d.ts +124 -0
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/block_rollup_public_inputs.js +85 -0
- package/dest/rollup/block_root_rollup.d.ts +148 -184
- package/dest/rollup/block_root_rollup.d.ts.map +1 -1
- package/dest/rollup/block_root_rollup.js +211 -260
- package/dest/rollup/checkpoint_constant_data.d.ts +54 -0
- package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
- package/dest/rollup/checkpoint_constant_data.js +55 -0
- package/dest/{tx/proposed_block_header.d.ts → rollup/checkpoint_header.d.ts} +11 -12
- package/dest/rollup/checkpoint_header.d.ts.map +1 -0
- package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +9 -9
- package/dest/rollup/checkpoint_merge_rollup.d.ts +30 -0
- package/dest/rollup/checkpoint_merge_rollup.d.ts.map +1 -0
- package/dest/rollup/checkpoint_merge_rollup.js +37 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +105 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.js +105 -0
- package/dest/rollup/checkpoint_root_rollup.d.ts +117 -0
- package/dest/rollup/checkpoint_root_rollup.d.ts.map +1 -0
- package/dest/rollup/checkpoint_root_rollup.js +178 -0
- package/dest/rollup/epoch_constant_data.d.ts +19 -2
- package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
- package/dest/rollup/epoch_constant_data.js +20 -7
- package/dest/rollup/index.d.ts +8 -5
- package/dest/rollup/index.d.ts.map +1 -1
- package/dest/rollup/index.js +8 -5
- package/dest/rollup/rollup_proof_data.d.ts +10 -0
- package/dest/rollup/rollup_proof_data.d.ts.map +1 -0
- package/dest/rollup/rollup_proof_data.js +1 -0
- package/dest/rollup/root_rollup.d.ts +26 -23
- package/dest/rollup/root_rollup.d.ts.map +1 -1
- package/dest/rollup/root_rollup.js +28 -39
- package/dest/stats/stats.d.ts +1 -1
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +17 -41
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +76 -80
- package/dest/tests/mocks.d.ts +3 -2
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +3 -3
- package/dest/tx/block_header.d.ts +12 -13
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +16 -21
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +0 -1
- package/dest/tx/index.d.ts +0 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.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 +3 -3
- package/dest/tx/tx_constant_data.d.ts +4 -4
- package/dest/tx/tx_constant_data.d.ts.map +1 -1
- package/dest/tx/tx_constant_data.js +6 -6
- package/dest/tx/tx_effect.d.ts +0 -3
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +2 -7
- package/dest/zkpassport/index.d.ts +3 -3
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +7 -7
- package/package.json +8 -8
- package/src/avm/avm.ts +22 -0
- package/src/avm/avm_circuit_public_inputs.ts +10 -0
- package/src/block/body.ts +23 -6
- package/src/block/index.ts +1 -0
- package/src/block/l2_block.ts +18 -8
- package/src/block/l2_block_code_to_purge.ts +30 -31
- package/src/block/l2_block_header.ts +232 -0
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
- package/src/block/test/l2_tips_store_test_suite.ts +1 -2
- package/src/interfaces/aztec-node.ts +8 -2
- package/src/interfaces/block-builder.ts +1 -6
- package/src/interfaces/epoch-prover.ts +34 -10
- package/src/interfaces/proving-job.ts +166 -51
- package/src/interfaces/pxe.ts +10 -1
- package/src/interfaces/server_circuit_prover.ts +65 -29
- package/src/interfaces/validator.ts +3 -2
- package/src/kernel/private_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_context_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +1 -1
- package/src/messaging/inbox_leaf.ts +5 -0
- package/src/p2p/consensus_payload.ts +8 -7
- package/src/proofs/proof_data.ts +1 -6
- package/src/proofs/proving_request_type.ts +8 -3
- package/src/rollup/base_or_merge_rollup_public_inputs.ts +1 -1
- package/src/rollup/base_rollup_hints.ts +9 -1
- package/src/rollup/block_constant_data.ts +13 -3
- package/src/rollup/block_merge_rollup.ts +13 -11
- package/src/rollup/block_rollup_public_inputs.ts +123 -0
- package/src/rollup/block_root_rollup.ts +209 -264
- package/src/rollup/checkpoint_constant_data.ts +84 -0
- package/src/{tx/proposed_block_header.ts → rollup/checkpoint_header.ts} +16 -17
- package/src/rollup/checkpoint_merge_rollup.ts +50 -0
- package/src/rollup/{block_root_or_block_merge_public_inputs.ts → checkpoint_rollup_public_inputs.ts} +26 -52
- package/src/rollup/checkpoint_root_rollup.ts +216 -0
- package/src/rollup/epoch_constant_data.ts +32 -8
- package/src/rollup/index.ts +8 -5
- package/src/rollup/rollup_proof_data.ts +12 -0
- package/src/rollup/root_rollup.ts +30 -41
- package/src/stats/stats.ts +8 -3
- package/src/tests/factories.ts +139 -135
- package/src/tests/mocks.ts +6 -13
- package/src/tx/block_header.ts +17 -32
- package/src/tx/global_variables.ts +0 -1
- package/src/tx/index.ts +0 -1
- package/src/tx/private_execution_result.ts +3 -3
- package/src/tx/tx_constant_data.ts +4 -4
- package/src/tx/tx_effect.ts +2 -7
- package/src/zkpassport/index.ts +6 -6
- package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -134
- package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
- package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -125
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -51
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/empty_block_root_rollup_inputs.js +0 -65
- 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/dest/rollup/previous_rollup_block_data.d.ts +0 -47
- package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
- package/dest/rollup/previous_rollup_block_data.js +0 -37
- package/dest/tx/proposed_block_header.d.ts.map +0 -1
- package/src/rollup/empty_block_root_rollup_inputs.ts +0 -80
- package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
- package/src/rollup/previous_rollup_block_data.ts +0 -48
|
@@ -412,6 +412,19 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
412
412
|
feePayer?: any;
|
|
413
413
|
teardownEnqueuedCall?: any;
|
|
414
414
|
}>;
|
|
415
|
+
protocolContractDerivedAddresses: z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
416
|
+
canonicalAddress: import("@aztec/foundation/schemas").ZodFor<import("../aztec-address/index.js").AztecAddress>;
|
|
417
|
+
derivedAddress: import("@aztec/foundation/schemas").ZodFor<import("../aztec-address/index.js").AztecAddress>;
|
|
418
|
+
}, "strip", z.ZodTypeAny, {
|
|
419
|
+
canonicalAddress: import("../aztec-address/index.js").AztecAddress;
|
|
420
|
+
derivedAddress: import("../aztec-address/index.js").AztecAddress;
|
|
421
|
+
}, {
|
|
422
|
+
canonicalAddress?: any;
|
|
423
|
+
derivedAddress?: any;
|
|
424
|
+
}>, import("./avm.js").AvmProtocolContractAddressHint, {
|
|
425
|
+
canonicalAddress?: any;
|
|
426
|
+
derivedAddress?: any;
|
|
427
|
+
}>, "many">;
|
|
415
428
|
contractInstances: z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
416
429
|
address: import("@aztec/foundation/schemas").ZodFor<import("../aztec-address/index.js").AztecAddress>;
|
|
417
430
|
salt: z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>;
|
|
@@ -2094,6 +2107,7 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
2094
2107
|
}, "strip", z.ZodTypeAny, {
|
|
2095
2108
|
globalVariables: import("../tx/global_variables.js").GlobalVariables;
|
|
2096
2109
|
tx: import("./avm.js").AvmTxHint;
|
|
2110
|
+
protocolContractDerivedAddresses: import("./avm.js").AvmProtocolContractAddressHint[];
|
|
2097
2111
|
contractInstances: import("./avm.js").AvmContractInstanceHint[];
|
|
2098
2112
|
contractClasses: import("./avm.js").AvmContractClassHint[];
|
|
2099
2113
|
bytecodeCommitments: import("./avm.js").AvmBytecodeCommitmentHint[];
|
|
@@ -2224,6 +2238,10 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
2224
2238
|
feePayer?: any;
|
|
2225
2239
|
teardownEnqueuedCall?: any;
|
|
2226
2240
|
};
|
|
2241
|
+
protocolContractDerivedAddresses: {
|
|
2242
|
+
canonicalAddress?: any;
|
|
2243
|
+
derivedAddress?: any;
|
|
2244
|
+
}[];
|
|
2227
2245
|
contractInstances: {
|
|
2228
2246
|
salt: string;
|
|
2229
2247
|
publicKeys: {
|
|
@@ -2577,6 +2595,10 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
2577
2595
|
feePayer?: any;
|
|
2578
2596
|
teardownEnqueuedCall?: any;
|
|
2579
2597
|
};
|
|
2598
|
+
protocolContractDerivedAddresses: {
|
|
2599
|
+
canonicalAddress?: any;
|
|
2600
|
+
derivedAddress?: any;
|
|
2601
|
+
}[];
|
|
2580
2602
|
contractInstances: {
|
|
2581
2603
|
salt: string;
|
|
2582
2604
|
publicKeys: {
|
|
@@ -2918,6 +2940,7 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
2918
2940
|
coinbase?: any;
|
|
2919
2941
|
feeRecipient?: any;
|
|
2920
2942
|
}>;
|
|
2943
|
+
protocolContractTreeRoot: z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>;
|
|
2921
2944
|
startTreeSnapshots: z.ZodEffects<z.ZodObject<{
|
|
2922
2945
|
l1ToL2MessageTree: z.ZodEffects<z.ZodObject<{
|
|
2923
2946
|
root: z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>;
|
|
@@ -3584,6 +3607,7 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
3584
3607
|
}, "strip", z.ZodTypeAny, {
|
|
3585
3608
|
globalVariables: import("../tx/global_variables.js").GlobalVariables;
|
|
3586
3609
|
gasSettings: import("../gas/gas_settings.js").GasSettings;
|
|
3610
|
+
protocolContractTreeRoot: import("@aztec/foundation/schemas").Fr;
|
|
3587
3611
|
publicTeardownCallRequest: import("../kernel/public_call_request.js").PublicCallRequest;
|
|
3588
3612
|
transactionFee: import("@aztec/foundation/schemas").Fr;
|
|
3589
3613
|
feePayer: import("../aztec-address/index.js").AztecAddress;
|
|
@@ -3634,6 +3658,7 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
3634
3658
|
feePerL2Gas: string | number | bigint;
|
|
3635
3659
|
};
|
|
3636
3660
|
};
|
|
3661
|
+
protocolContractTreeRoot: string;
|
|
3637
3662
|
publicTeardownCallRequest: {
|
|
3638
3663
|
isStaticCall: boolean;
|
|
3639
3664
|
calldataHash: string;
|
|
@@ -3795,6 +3820,7 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
3795
3820
|
feePerL2Gas: string | number | bigint;
|
|
3796
3821
|
};
|
|
3797
3822
|
};
|
|
3823
|
+
protocolContractTreeRoot: string;
|
|
3798
3824
|
publicTeardownCallRequest: {
|
|
3799
3825
|
isStaticCall: boolean;
|
|
3800
3826
|
calldataHash: string;
|
|
@@ -3961,6 +3987,7 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
3961
3987
|
feePerL2Gas: string | number | bigint;
|
|
3962
3988
|
};
|
|
3963
3989
|
};
|
|
3990
|
+
protocolContractTreeRoot: string;
|
|
3964
3991
|
publicTeardownCallRequest: {
|
|
3965
3992
|
isStaticCall: boolean;
|
|
3966
3993
|
calldataHash: string;
|
|
@@ -4160,6 +4187,10 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
4160
4187
|
feePayer?: any;
|
|
4161
4188
|
teardownEnqueuedCall?: any;
|
|
4162
4189
|
};
|
|
4190
|
+
protocolContractDerivedAddresses: {
|
|
4191
|
+
canonicalAddress?: any;
|
|
4192
|
+
derivedAddress?: any;
|
|
4193
|
+
}[];
|
|
4163
4194
|
contractInstances: {
|
|
4164
4195
|
salt: string;
|
|
4165
4196
|
publicKeys: {
|
|
@@ -4478,6 +4509,7 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
4478
4509
|
feePerL2Gas: string | number | bigint;
|
|
4479
4510
|
};
|
|
4480
4511
|
};
|
|
4512
|
+
protocolContractTreeRoot: string;
|
|
4481
4513
|
publicTeardownCallRequest: {
|
|
4482
4514
|
isStaticCall: boolean;
|
|
4483
4515
|
calldataHash: string;
|
|
@@ -4677,6 +4709,10 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
4677
4709
|
feePayer?: any;
|
|
4678
4710
|
teardownEnqueuedCall?: any;
|
|
4679
4711
|
};
|
|
4712
|
+
protocolContractDerivedAddresses: {
|
|
4713
|
+
canonicalAddress?: any;
|
|
4714
|
+
derivedAddress?: any;
|
|
4715
|
+
}[];
|
|
4680
4716
|
contractInstances: {
|
|
4681
4717
|
salt: string;
|
|
4682
4718
|
publicKeys: {
|
|
@@ -5001,6 +5037,7 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
5001
5037
|
feePerL2Gas: string | number | bigint;
|
|
5002
5038
|
};
|
|
5003
5039
|
};
|
|
5040
|
+
protocolContractTreeRoot: string;
|
|
5004
5041
|
publicTeardownCallRequest: {
|
|
5005
5042
|
isStaticCall: boolean;
|
|
5006
5043
|
calldataHash: string;
|
|
@@ -5200,6 +5237,10 @@ export declare const AvmProvingRequestSchema: z.ZodObject<{
|
|
|
5200
5237
|
feePayer?: any;
|
|
5201
5238
|
teardownEnqueuedCall?: any;
|
|
5202
5239
|
};
|
|
5240
|
+
protocolContractDerivedAddresses: {
|
|
5241
|
+
canonicalAddress?: any;
|
|
5242
|
+
derivedAddress?: any;
|
|
5243
|
+
}[];
|
|
5203
5244
|
contractInstances: {
|
|
5204
5245
|
salt: string;
|
|
5205
5246
|
publicKeys: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_proving_request.d.ts","sourceRoot":"","sources":["../../src/avm/avm_proving_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"avm_proving_request.d.ts","sourceRoot":"","sources":["../../src/avm/avm_proving_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGlC,CAAC"}
|
package/dest/block/body.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { createBlockEndMarker } from '@aztec/blob-lib/encoding';
|
|
2
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
3
4
|
import { inspect } from 'util';
|
|
4
5
|
import type { ZodFor } from '../schemas/index.js';
|
|
5
6
|
import { TxEffect } from '../tx/tx_effect.js';
|
|
7
|
+
export { createBlockEndMarker };
|
|
8
|
+
export declare function getBlockBlobFields(txEffects: TxEffect[]): Fr[];
|
|
6
9
|
export declare class Body {
|
|
7
10
|
txEffects: TxEffect[];
|
|
8
11
|
constructor(txEffects: TxEffect[]);
|
package/dest/block/body.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../src/block/body.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../src/block/body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAiD,MAAM,0BAA0B,CAAC;AAG/G,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAkC,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAIvD;AAED,qBAAa,IAAI;IACI,SAAS,EAAE,QAAQ,EAAE;gBAArB,SAAS,EAAE,QAAQ,EAAE;IAQxC,MAAM,CAAC,KAAK,EAAE,IAAI;IAMlB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAMhC;IAED;;;OAGG;IACH,QAAQ;IAIR;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAM5C;;OAEG;IACH,YAAY;IAcZ;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE;IAmBlC,CAAC,OAAO,CAAC,MAAM,CAAC;WAMH,MAAM,CACjB,WAAW,SAAI,EACf,mBAAmB,SAAI,EACvB,oBAAoB,SAAI,EACxB,UAAU,GAAE,MAAM,GAAG,SAAqB;IAS5C,MAAM,CAAC,KAAK;CAGb"}
|
package/dest/block/body.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
import { createBlockEndMarker, getNumTxsFromBlockEndMarker, isBlockEndMarker } from '@aztec/blob-lib/encoding';
|
|
1
2
|
import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB } from '@aztec/constants';
|
|
2
3
|
import { timesParallel } from '@aztec/foundation/collection';
|
|
3
4
|
import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
5
|
import { inspect } from 'util';
|
|
5
6
|
import { z } from 'zod';
|
|
6
7
|
import { TxEffect } from '../tx/tx_effect.js';
|
|
8
|
+
export { createBlockEndMarker };
|
|
9
|
+
export function getBlockBlobFields(txEffects) {
|
|
10
|
+
const blobFields = txEffects.flatMap((txEffect)=>txEffect.toBlobFields());
|
|
11
|
+
blobFields.push(createBlockEndMarker(txEffects.length));
|
|
12
|
+
return blobFields;
|
|
13
|
+
}
|
|
7
14
|
export class Body {
|
|
8
15
|
txEffects;
|
|
9
16
|
constructor(txEffects){
|
|
@@ -38,10 +45,7 @@ export class Body {
|
|
|
38
45
|
/**
|
|
39
46
|
* Returns a flat packed array of fields of all tx effects - used for blobs.
|
|
40
47
|
*/ toBlobFields() {
|
|
41
|
-
|
|
42
|
-
this.txEffects.forEach((effect)=>{
|
|
43
|
-
flattened = flattened.concat(effect.toBlobFields());
|
|
44
|
-
});
|
|
48
|
+
const flattened = getBlockBlobFields(this.txEffects);
|
|
45
49
|
if (flattened.length > BLOBS_PER_BLOCK * FIELDS_PER_BLOB) {
|
|
46
50
|
throw new Error(`Attempted to overfill block's blobs with ${flattened.length} elements. The maximum is ${BLOBS_PER_BLOCK * FIELDS_PER_BLOB}`);
|
|
47
51
|
}
|
|
@@ -51,10 +55,17 @@ export class Body {
|
|
|
51
55
|
* Decodes a block from blob fields.
|
|
52
56
|
*/ static fromBlobFields(fields) {
|
|
53
57
|
const txEffects = [];
|
|
54
|
-
const reader = new FieldReader(fields);
|
|
58
|
+
const reader = new FieldReader(fields.slice(0, -1));
|
|
55
59
|
while(!reader.isFinished()){
|
|
56
60
|
txEffects.push(TxEffect.fromBlobFields(reader));
|
|
57
61
|
}
|
|
62
|
+
if (!isBlockEndMarker(fields[fields.length - 1])) {
|
|
63
|
+
throw new Error('Block end marker not found');
|
|
64
|
+
}
|
|
65
|
+
const numTxs = getNumTxsFromBlockEndMarker(fields[fields.length - 1]);
|
|
66
|
+
if (numTxs !== txEffects.length) {
|
|
67
|
+
throw new Error(`Expected ${numTxs} txs, but got ${txEffects.length}`);
|
|
68
|
+
}
|
|
58
69
|
return new this(txEffects);
|
|
59
70
|
}
|
|
60
71
|
[inspect.custom]() {
|
package/dest/block/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC"}
|
package/dest/block/index.js
CHANGED
package/dest/block/l2_block.d.ts
CHANGED
|
@@ -2,8 +2,9 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
2
2
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
5
|
-
import { BlockHeader } from '../tx/block_header.js';
|
|
5
|
+
import type { BlockHeader } from '../tx/block_header.js';
|
|
6
6
|
import { Body } from './body.js';
|
|
7
|
+
import { L2BlockHeader } from './l2_block_header.js';
|
|
7
8
|
import type { L2BlockInfo } from './l2_block_info.js';
|
|
8
9
|
/**
|
|
9
10
|
* The data that makes up the rollup proof, with encoder decoder functions.
|
|
@@ -12,7 +13,7 @@ export declare class L2Block {
|
|
|
12
13
|
/** Snapshot of archive tree after the block is applied. */
|
|
13
14
|
archive: AppendOnlyTreeSnapshot;
|
|
14
15
|
/** L2 block header. */
|
|
15
|
-
header:
|
|
16
|
+
header: L2BlockHeader;
|
|
16
17
|
/** L2 block body. */
|
|
17
18
|
body: Body;
|
|
18
19
|
private blockHash;
|
|
@@ -20,7 +21,7 @@ export declare class L2Block {
|
|
|
20
21
|
/** Snapshot of archive tree after the block is applied. */
|
|
21
22
|
archive: AppendOnlyTreeSnapshot,
|
|
22
23
|
/** L2 block header. */
|
|
23
|
-
header:
|
|
24
|
+
header: L2BlockHeader,
|
|
24
25
|
/** L2 block body. */
|
|
25
26
|
body: Body, blockHash?: Fr | undefined);
|
|
26
27
|
static get schema(): z.ZodEffects<z.ZodObject<{
|
|
@@ -37,11 +38,11 @@ export declare class L2Block {
|
|
|
37
38
|
root: string;
|
|
38
39
|
nextAvailableLeafIndex: string | number | bigint;
|
|
39
40
|
}>;
|
|
40
|
-
header: import("@aztec/foundation/schemas").ZodFor<
|
|
41
|
+
header: import("@aztec/foundation/schemas").ZodFor<L2BlockHeader>;
|
|
41
42
|
body: import("@aztec/foundation/schemas").ZodFor<Body>;
|
|
42
43
|
}, "strip", z.ZodTypeAny, {
|
|
43
44
|
archive: AppendOnlyTreeSnapshot;
|
|
44
|
-
header:
|
|
45
|
+
header: L2BlockHeader;
|
|
45
46
|
body: Body;
|
|
46
47
|
}, {
|
|
47
48
|
archive: {
|
|
@@ -102,6 +103,8 @@ export declare class L2Block {
|
|
|
102
103
|
* @returns The block's hash.
|
|
103
104
|
*/
|
|
104
105
|
hash(): Promise<Fr>;
|
|
106
|
+
getCheckpointHeader(): import("../rollup/checkpoint_header.js").CheckpointHeader;
|
|
107
|
+
getBlockHeader(): BlockHeader;
|
|
105
108
|
/**
|
|
106
109
|
* Returns stats used for logging.
|
|
107
110
|
* @returns Stats on tx count, number, and log size and count.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l2_block.d.ts","sourceRoot":"","sources":["../../src/block/l2_block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"l2_block.d.ts","sourceRoot":"","sources":["../../src/block/l2_block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,qBAAa,OAAO;IAEhB,2DAA2D;IACpD,OAAO,EAAE,sBAAsB;IACtC,uBAAuB;IAChB,MAAM,EAAE,aAAa;IAC5B,qBAAqB;IACd,IAAI,EAAE,IAAI;IACjB,OAAO,CAAC,SAAS;;IANjB,2DAA2D;IACpD,OAAO,EAAE,sBAAsB;IACtC,uBAAuB;IAChB,MAAM,EAAE,aAAa;IAC5B,qBAAqB;IACd,IAAI,EAAE,IAAI,EACT,SAAS,GAAE,EAAE,GAAG,SAAqB;IAG/C,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAS5C;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;;;;;OAQG;WACU,MAAM,CACjB,UAAU,EAAE,MAAM,EAClB,WAAW,SAAI,EACf,mBAAmB,SAAI,EACvB,oBAAoB,SAAI,EACxB,MAAM,GAAE,EAAE,GAAG,SAAqB,EAClC,UAAU,GAAE,MAAM,GAAG,SAAqB,EAC1C,UAAU,GAAE,MAAM,GAAG,SAAqB,GACzC,OAAO,CAAC,OAAO,CAAC;IAUnB;;;OAGG;IACH,MAAM,CAAC,KAAK,IAAI,OAAO;IAIvB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;IAOzB,mBAAmB;IAKnB,cAAc,IAAI,WAAW;IAIpC;;;OAGG;IACH,QAAQ;;;;;;;;;IAuBR,WAAW,IAAI,WAAW;IAY1B,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB"}
|
package/dest/block/l2_block.js
CHANGED
|
@@ -2,9 +2,9 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
2
2
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
5
|
-
import { BlockHeader } from '../tx/block_header.js';
|
|
6
5
|
import { Body } from './body.js';
|
|
7
|
-
import { makeAppendOnlyTreeSnapshot,
|
|
6
|
+
import { makeAppendOnlyTreeSnapshot, makeL2BlockHeader } from './l2_block_code_to_purge.js';
|
|
7
|
+
import { L2BlockHeader } from './l2_block_header.js';
|
|
8
8
|
/**
|
|
9
9
|
* The data that makes up the rollup proof, with encoder decoder functions.
|
|
10
10
|
*/ export class L2Block {
|
|
@@ -21,7 +21,7 @@ import { makeAppendOnlyTreeSnapshot, makeHeader } from './l2_block_code_to_purge
|
|
|
21
21
|
static get schema() {
|
|
22
22
|
return z.object({
|
|
23
23
|
archive: AppendOnlyTreeSnapshot.schema,
|
|
24
|
-
header:
|
|
24
|
+
header: L2BlockHeader.schema,
|
|
25
25
|
body: Body.schema
|
|
26
26
|
}).transform(({ archive, header, body })=>new L2Block(archive, header, body));
|
|
27
27
|
}
|
|
@@ -30,7 +30,7 @@ import { makeAppendOnlyTreeSnapshot, makeHeader } from './l2_block_code_to_purge
|
|
|
30
30
|
* @returns A deserialized L2 block.
|
|
31
31
|
*/ static fromBuffer(buf) {
|
|
32
32
|
const reader = BufferReader.asReader(buf);
|
|
33
|
-
const header = reader.readObject(
|
|
33
|
+
const header = reader.readObject(L2BlockHeader);
|
|
34
34
|
const archive = reader.readObject(AppendOnlyTreeSnapshot);
|
|
35
35
|
const body = reader.readObject(Body);
|
|
36
36
|
return new L2Block(archive, header, body);
|
|
@@ -64,13 +64,13 @@ import { makeAppendOnlyTreeSnapshot, makeHeader } from './l2_block_code_to_purge
|
|
|
64
64
|
* @returns The L2 block.
|
|
65
65
|
*/ static async random(l2BlockNum, txsPerBlock = 4, numPublicCallsPerTx = 3, numPublicLogsPerCall = 1, inHash = undefined, slotNumber = undefined, maxEffects = undefined) {
|
|
66
66
|
const body = await Body.random(txsPerBlock, numPublicCallsPerTx, numPublicLogsPerCall, maxEffects);
|
|
67
|
-
return new L2Block(makeAppendOnlyTreeSnapshot(l2BlockNum + 1),
|
|
67
|
+
return new L2Block(makeAppendOnlyTreeSnapshot(l2BlockNum + 1), makeL2BlockHeader(0, l2BlockNum, slotNumber ?? l2BlockNum, {}, inHash), body);
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
70
|
* Creates an L2 block containing empty data.
|
|
71
71
|
* @returns The L2 block.
|
|
72
72
|
*/ static empty() {
|
|
73
|
-
return new L2Block(AppendOnlyTreeSnapshot.empty(),
|
|
73
|
+
return new L2Block(AppendOnlyTreeSnapshot.empty(), L2BlockHeader.empty(), Body.empty());
|
|
74
74
|
}
|
|
75
75
|
get number() {
|
|
76
76
|
return this.header.getBlockNumber();
|
|
@@ -86,10 +86,17 @@ import { makeAppendOnlyTreeSnapshot, makeHeader } from './l2_block_code_to_purge
|
|
|
86
86
|
* @returns The block's hash.
|
|
87
87
|
*/ async hash() {
|
|
88
88
|
if (this.blockHash === undefined) {
|
|
89
|
-
this.blockHash = await this.
|
|
89
|
+
this.blockHash = await this.getBlockHeader().hash();
|
|
90
90
|
}
|
|
91
91
|
return this.blockHash;
|
|
92
92
|
}
|
|
93
|
+
getCheckpointHeader() {
|
|
94
|
+
return this.header.toCheckpointHeader();
|
|
95
|
+
}
|
|
96
|
+
// Temporary helper to get the actual block header.
|
|
97
|
+
getBlockHeader() {
|
|
98
|
+
return this.header.toBlockHeader();
|
|
99
|
+
}
|
|
93
100
|
/**
|
|
94
101
|
* Returns stats used for logging.
|
|
95
102
|
* @returns Stats on tx count, number, and log size and count.
|
|
@@ -1,23 +1,12 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
2
3
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Makes header.
|
|
7
|
-
*/
|
|
8
|
-
export declare function makeHeader(seed?: number, blockNumber?: number, slotNumber?: number, inHash?: Fr): BlockHeader;
|
|
4
|
+
import { L2BlockHeader } from './l2_block_header.js';
|
|
5
|
+
export declare function makeL2BlockHeader(seed?: number, blockNumber?: number, slotNumber?: number, overrides?: Partial<FieldsOf<L2BlockHeader>>, inHash?: Fr): L2BlockHeader;
|
|
9
6
|
/**
|
|
10
7
|
* Makes arbitrary append only tree snapshot.
|
|
11
8
|
* @param seed - The seed to use for generating the append only tree snapshot.
|
|
12
9
|
* @returns An append only tree snapshot.
|
|
13
10
|
*/
|
|
14
11
|
export declare function makeAppendOnlyTreeSnapshot(seed?: number): AppendOnlyTreeSnapshot;
|
|
15
|
-
/**
|
|
16
|
-
* Makes global variables.
|
|
17
|
-
* @param seed - The seed to use for generating the global variables.
|
|
18
|
-
* @param blockNumber - The block number to use for generating the global variables.
|
|
19
|
-
* If blockNumber is undefined, it will be set to seed + 2.
|
|
20
|
-
* @returns Global variables.
|
|
21
|
-
*/
|
|
22
|
-
export declare function makeGlobalVariables(seed?: number, blockNumber?: number | undefined, slotNumber?: number | undefined): GlobalVariables;
|
|
23
12
|
//# sourceMappingURL=l2_block_code_to_purge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l2_block_code_to_purge.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_code_to_purge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"l2_block_code_to_purge.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_code_to_purge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAK/E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,wBAAgB,iBAAiB,CAC/B,IAAI,SAAI,EACR,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAM,EAChD,MAAM,CAAC,EAAE,EAAE,iBAcZ;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,SAAI,GAAG,sBAAsB,CAE3E"}
|
|
@@ -1,17 +1,23 @@
|
|
|
1
|
+
import { compact } from '@aztec/foundation/collection';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
4
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
4
5
|
import { GasFees } from '../gas/gas_fees.js';
|
|
5
6
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
6
|
-
import { BlockHeader } from '../tx/block_header.js';
|
|
7
7
|
import { ContentCommitment } from '../tx/content_commitment.js';
|
|
8
8
|
import { GlobalVariables } from '../tx/global_variables.js';
|
|
9
9
|
import { PartialStateReference } from '../tx/partial_state_reference.js';
|
|
10
10
|
import { StateReference } from '../tx/state_reference.js';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
import { L2BlockHeader } from './l2_block_header.js';
|
|
12
|
+
export function makeL2BlockHeader(seed = 0, blockNumber, slotNumber, overrides = {}, inHash) {
|
|
13
|
+
return new L2BlockHeader(makeAppendOnlyTreeSnapshot(seed + 0x100), overrides?.contentCommitment ?? makeContentCommitment(seed + 0x200, inHash), overrides?.state ?? makeStateReference(seed + 0x600), makeGlobalVariables(seed += 0x700, {
|
|
14
|
+
...blockNumber ? {
|
|
15
|
+
blockNumber
|
|
16
|
+
} : {},
|
|
17
|
+
...slotNumber ? {
|
|
18
|
+
slotNumber: new Fr(slotNumber)
|
|
19
|
+
} : {}
|
|
20
|
+
}), new Fr(seed + 0x800), new Fr(seed + 0x900), new Fr(seed + 0xa00));
|
|
15
21
|
}
|
|
16
22
|
/**
|
|
17
23
|
* Makes arbitrary append only tree snapshot.
|
|
@@ -39,12 +45,16 @@ import { StateReference } from '../tx/state_reference.js';
|
|
|
39
45
|
*/ function makePartialStateReference(seed = 0) {
|
|
40
46
|
return new PartialStateReference(makeAppendOnlyTreeSnapshot(seed), makeAppendOnlyTreeSnapshot(seed + 1), makeAppendOnlyTreeSnapshot(seed + 2));
|
|
41
47
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
function makeGlobalVariables(seed = 1, overrides = {}) {
|
|
49
|
+
return GlobalVariables.from({
|
|
50
|
+
chainId: new Fr(seed),
|
|
51
|
+
version: new Fr(seed + 1),
|
|
52
|
+
blockNumber: seed + 2,
|
|
53
|
+
slotNumber: new Fr(seed + 3),
|
|
54
|
+
timestamp: BigInt(seed + 4),
|
|
55
|
+
coinbase: EthAddress.fromField(new Fr(seed + 5)),
|
|
56
|
+
feeRecipient: AztecAddress.fromField(new Fr(seed + 6)),
|
|
57
|
+
gasFees: new GasFees(seed + 7, seed + 8),
|
|
58
|
+
...compact(overrides)
|
|
59
|
+
});
|
|
50
60
|
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { type ZodFor } from '@aztec/foundation/schemas';
|
|
3
|
+
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
4
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
5
|
+
import { inspect } from 'util';
|
|
6
|
+
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
7
|
+
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
8
|
+
import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from '../tx/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* TO BE DELETED
|
|
11
|
+
*
|
|
12
|
+
* A header of an L2 block combining the block header and the checkpoint header.
|
|
13
|
+
* This is a temporary workaround to avoid changing too many things before building in chunks is properly implemented.
|
|
14
|
+
* This works for now because we only have one block per checkpoint.
|
|
15
|
+
*
|
|
16
|
+
* @deprecated Use BlockHeader or CheckpointHeader instead.
|
|
17
|
+
*/
|
|
18
|
+
export declare class L2BlockHeader {
|
|
19
|
+
/** Snapshot of archive before the block is applied. */
|
|
20
|
+
lastArchive: AppendOnlyTreeSnapshot;
|
|
21
|
+
/** Hash of the body of an L2 block. */
|
|
22
|
+
contentCommitment: ContentCommitment;
|
|
23
|
+
/** State reference. */
|
|
24
|
+
state: StateReference;
|
|
25
|
+
/** Global variables of an L2 block. */
|
|
26
|
+
globalVariables: GlobalVariables;
|
|
27
|
+
/** Total fees in the block, computed by the root rollup circuit */
|
|
28
|
+
totalFees: Fr;
|
|
29
|
+
/** Total mana used in the block, computed by the root rollup circuit */
|
|
30
|
+
totalManaUsed: Fr;
|
|
31
|
+
/** Hash of the sponge blob of the block. */
|
|
32
|
+
spongeBlobHash: Fr;
|
|
33
|
+
constructor(
|
|
34
|
+
/** Snapshot of archive before the block is applied. */
|
|
35
|
+
lastArchive: AppendOnlyTreeSnapshot,
|
|
36
|
+
/** Hash of the body of an L2 block. */
|
|
37
|
+
contentCommitment: ContentCommitment,
|
|
38
|
+
/** State reference. */
|
|
39
|
+
state: StateReference,
|
|
40
|
+
/** Global variables of an L2 block. */
|
|
41
|
+
globalVariables: GlobalVariables,
|
|
42
|
+
/** Total fees in the block, computed by the root rollup circuit */
|
|
43
|
+
totalFees: Fr,
|
|
44
|
+
/** Total mana used in the block, computed by the root rollup circuit */
|
|
45
|
+
totalManaUsed: Fr,
|
|
46
|
+
/** Hash of the sponge blob of the block. */
|
|
47
|
+
spongeBlobHash: Fr);
|
|
48
|
+
static get schema(): ZodFor<L2BlockHeader>;
|
|
49
|
+
static getFields(fields: FieldsOf<L2BlockHeader>): readonly [AppendOnlyTreeSnapshot, ContentCommitment, StateReference, GlobalVariables, Fr, Fr, Fr];
|
|
50
|
+
static from(fields: FieldsOf<L2BlockHeader>): L2BlockHeader;
|
|
51
|
+
getSlot(): bigint;
|
|
52
|
+
getBlockNumber(): number;
|
|
53
|
+
getSize(): number;
|
|
54
|
+
toBuffer(): Buffer<ArrayBufferLike>;
|
|
55
|
+
toFields(): Fr[];
|
|
56
|
+
clone(): L2BlockHeader;
|
|
57
|
+
static fromBuffer(buffer: Buffer | BufferReader): L2BlockHeader;
|
|
58
|
+
static fromFields(fields: Fr[] | FieldReader): L2BlockHeader;
|
|
59
|
+
static empty(fields?: Partial<FieldsOf<L2BlockHeader>>): L2BlockHeader;
|
|
60
|
+
isEmpty(): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Serializes this instance into a string.
|
|
63
|
+
* @returns Encoded string.
|
|
64
|
+
*/
|
|
65
|
+
toString(): `0x${string}`;
|
|
66
|
+
static fromString(str: string): L2BlockHeader;
|
|
67
|
+
toCheckpointHeader(): CheckpointHeader;
|
|
68
|
+
toBlockHeader(): BlockHeader;
|
|
69
|
+
toInspect(): {
|
|
70
|
+
lastArchive: `0x${string}`;
|
|
71
|
+
contentCommitment: {
|
|
72
|
+
blobsHash: `0x${string}`;
|
|
73
|
+
inHash: `0x${string}`;
|
|
74
|
+
outHash: `0x${string}`;
|
|
75
|
+
};
|
|
76
|
+
state: {
|
|
77
|
+
l1ToL2MessageTree: `0x${string}`;
|
|
78
|
+
noteHashTree: `0x${string}`;
|
|
79
|
+
nullifierTree: `0x${string}`;
|
|
80
|
+
publicDataTree: `0x${string}`;
|
|
81
|
+
};
|
|
82
|
+
globalVariables: {
|
|
83
|
+
chainId: number;
|
|
84
|
+
version: number;
|
|
85
|
+
blockNumber: number;
|
|
86
|
+
slotNumber: number;
|
|
87
|
+
timestamp: bigint;
|
|
88
|
+
coinbase: `0x${string}`;
|
|
89
|
+
feeRecipient: `0x${string}`;
|
|
90
|
+
feePerDaGas: number;
|
|
91
|
+
feePerL2Gas: number;
|
|
92
|
+
};
|
|
93
|
+
totalFees: bigint;
|
|
94
|
+
totalManaUsed: bigint;
|
|
95
|
+
spongeBlobHash: `0x${string}`;
|
|
96
|
+
};
|
|
97
|
+
[inspect.custom](): string;
|
|
98
|
+
equals(other: this): boolean;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=l2_block_header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"l2_block_header.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEjG;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAEtB,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uCAAuC;IAChC,iBAAiB,EAAE,iBAAiB;IAC3C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;IACxB,4CAA4C;IACrC,cAAc,EAAE,EAAE;;IAbzB,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uCAAuC;IAChC,iBAAiB,EAAE,iBAAiB;IAC3C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;IACxB,4CAA4C;IACrC,cAAc,EAAE,EAAE;IAG3B,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,CAYzC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC;IAYhD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC;IAI3C,OAAO;IAIP,cAAc;IAId,OAAO;IAYP,QAAQ;IAIR,QAAQ,IAAI,EAAE,EAAE;IAIhB,KAAK;IAIL,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAc/C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAc5C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAM;IAa1D,OAAO,IAAI,OAAO;IAYlB;;;OAGG;IACI,QAAQ;IAIf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,kBAAkB;IAalB,aAAa;IAWb,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYT,CAAC,OAAO,CAAC,MAAM,CAAC;IAiBT,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAWpC"}
|