@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
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
4
|
+
import { BufferReader } from '@aztec/foundation/serialize';
|
|
5
|
+
import { Tx } from '../tx/tx.js';
|
|
6
|
+
import { SignatureDomainSeparator } from './signature_utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* A signed collection of transactions.
|
|
9
|
+
* The signature is over the transaction objects themselves, providing
|
|
10
|
+
* data availability guarantees beyond just the transaction hashes.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SignedTxs {
|
|
13
|
+
readonly txs: Tx[];
|
|
14
|
+
readonly signature: Signature;
|
|
15
|
+
private sender;
|
|
16
|
+
constructor(
|
|
17
|
+
/** The transactions */
|
|
18
|
+
txs: Tx[],
|
|
19
|
+
/** The proposer's signature over the transactions */
|
|
20
|
+
signature: Signature);
|
|
21
|
+
/**
|
|
22
|
+
* Get the payload to sign for this signed txs.
|
|
23
|
+
*/
|
|
24
|
+
getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
|
|
25
|
+
/**
|
|
26
|
+
* Lazily evaluate the sender of the signed txs; result is cached
|
|
27
|
+
* @returns The sender address, or undefined if signature recovery fails
|
|
28
|
+
*/
|
|
29
|
+
getSender(): EthAddress | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Create SignedTxs from a signer function
|
|
32
|
+
*/
|
|
33
|
+
static createFromSigner(txs: Tx[], payloadSigner: (payload: Buffer32) => Promise<Signature>): Promise<SignedTxs>;
|
|
34
|
+
toBuffer(): Buffer;
|
|
35
|
+
static fromBuffer(buf: Buffer | BufferReader): SignedTxs;
|
|
36
|
+
getSize(): number;
|
|
37
|
+
static empty(): SignedTxs;
|
|
38
|
+
static random(): SignedTxs;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVkX3R4cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9zaWduZWRfdHhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFDTCx3QkFBd0IsRUFHekIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5Qjs7OztHQUlHO0FBQ0gscUJBQWEsU0FBUzthQUtGLEdBQUcsRUFBRSxFQUFFLEVBQUU7YUFFVCxTQUFTLEVBQUUsU0FBUztJQU50QyxPQUFPLENBQUMsTUFBTSxDQUF5QjtJQUV2QztJQUNFLHVCQUF1QjtJQUNQLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDekIscURBQXFEO0lBQ3JDLFNBQVMsRUFBRSxTQUFTLEVBQ2xDO0lBRUo7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLEdBQUcsTUFBTSxDQUVsRTtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQU1sQztJQUVEOztPQUVHO0lBQ0gsT0FBYSxnQkFBZ0IsQ0FDM0IsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUNULGFBQWEsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEtBQUssT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUN2RCxPQUFPLENBQUMsU0FBUyxDQUFDLENBS3BCO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFNBQVMsQ0FLdkQ7SUFFRCxPQUFPLElBQUksTUFBTSxDQUVoQjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxDQUV4QjtJQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUV6QjtDQUNGIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signed_txs.d.ts","sourceRoot":"","sources":["../../src/p2p/signed_txs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,wBAAwB,EAGzB,MAAM,sBAAsB,CAAC;AAE9B;;;;GAIG;AACH,qBAAa,SAAS;aAKF,GAAG,EAAE,EAAE,EAAE;aAET,SAAS,EAAE,SAAS;IANtC,OAAO,CAAC,MAAM,CAAyB;IAEvC;IACE,uBAAuB;IACP,GAAG,EAAE,EAAE,EAAE;IACzB,qDAAqD;IACrC,SAAS,EAAE,SAAS,EAClC;IAEJ;;OAEG;IACH,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM,CAElE;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,GAAG,SAAS,CAMlC;IAED;;OAEG;IACH,OAAa,gBAAgB,CAC3B,GAAG,EAAE,EAAE,EAAE,EACT,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,GACvD,OAAO,CAAC,SAAS,CAAC,CAKpB;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAKvD;IAED,OAAO,IAAI,MAAM,CAEhB;IAED,MAAM,CAAC,KAAK,IAAI,SAAS,CAExB;IAED,MAAM,CAAC,MAAM,IAAI,SAAS,CAEzB;CACF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
2
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
3
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
|
+
import { Tx } from '../tx/tx.js';
|
|
5
|
+
import { SignatureDomainSeparator, getHashedSignaturePayload, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
|
|
6
|
+
/**
|
|
7
|
+
* A signed collection of transactions.
|
|
8
|
+
* The signature is over the transaction objects themselves, providing
|
|
9
|
+
* data availability guarantees beyond just the transaction hashes.
|
|
10
|
+
*/ export class SignedTxs {
|
|
11
|
+
txs;
|
|
12
|
+
signature;
|
|
13
|
+
sender;
|
|
14
|
+
constructor(/** The transactions */ txs, /** The proposer's signature over the transactions */ signature){
|
|
15
|
+
this.txs = txs;
|
|
16
|
+
this.signature = signature;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get the payload to sign for this signed txs.
|
|
20
|
+
*/ getPayloadToSign(domainSeparator) {
|
|
21
|
+
return serializeToBuffer([
|
|
22
|
+
domainSeparator,
|
|
23
|
+
this.txs.length,
|
|
24
|
+
this.txs
|
|
25
|
+
]);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Lazily evaluate the sender of the signed txs; result is cached
|
|
29
|
+
* @returns The sender address, or undefined if signature recovery fails
|
|
30
|
+
*/ getSender() {
|
|
31
|
+
if (!this.sender) {
|
|
32
|
+
const hashed = getHashedSignaturePayloadEthSignedMessage(this, SignatureDomainSeparator.signedTxs);
|
|
33
|
+
this.sender = tryRecoverAddress(hashed, this.signature);
|
|
34
|
+
}
|
|
35
|
+
return this.sender;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Create SignedTxs from a signer function
|
|
39
|
+
*/ static async createFromSigner(txs, payloadSigner) {
|
|
40
|
+
const tempSignedTxs = new SignedTxs(txs, Signature.empty());
|
|
41
|
+
const hashed = getHashedSignaturePayload(tempSignedTxs, SignatureDomainSeparator.signedTxs);
|
|
42
|
+
const signature = await payloadSigner(hashed);
|
|
43
|
+
return new SignedTxs(txs, signature);
|
|
44
|
+
}
|
|
45
|
+
toBuffer() {
|
|
46
|
+
return serializeToBuffer([
|
|
47
|
+
this.txs.length,
|
|
48
|
+
this.txs,
|
|
49
|
+
this.signature
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
static fromBuffer(buf) {
|
|
53
|
+
const reader = BufferReader.asReader(buf);
|
|
54
|
+
const txs = reader.readArray(reader.readNumber(), Tx);
|
|
55
|
+
const signature = reader.readObject(Signature);
|
|
56
|
+
return new SignedTxs(txs, signature);
|
|
57
|
+
}
|
|
58
|
+
getSize() {
|
|
59
|
+
return 4 /* txs.length */ + this.txs.reduce((acc, tx)=>acc + tx.getSize(), 0) + this.signature.getSize();
|
|
60
|
+
}
|
|
61
|
+
static empty() {
|
|
62
|
+
return new SignedTxs([], Signature.empty());
|
|
63
|
+
}
|
|
64
|
+
static random() {
|
|
65
|
+
return new SignedTxs([
|
|
66
|
+
Tx.random(),
|
|
67
|
+
Tx.random()
|
|
68
|
+
], Signature.random());
|
|
69
|
+
}
|
|
70
|
+
}
|
package/dest/p2p/topic_type.d.ts
CHANGED
|
@@ -8,7 +8,8 @@ export declare function getTopicFromString(topicStr: string): TopicType | undefi
|
|
|
8
8
|
export declare enum TopicType {
|
|
9
9
|
tx = "tx",
|
|
10
10
|
block_proposal = "block_proposal",
|
|
11
|
-
|
|
11
|
+
checkpoint_proposal = "checkpoint_proposal",
|
|
12
|
+
checkpoint_attestation = "checkpoint_attestation"
|
|
12
13
|
}
|
|
13
14
|
export declare function getTopicTypeForClientType(clientType: P2PClientType): TopicType[];
|
|
14
15
|
export declare function getTopicsForClientAndConfig(clientType: P2PClientType, disableTransactions: boolean): TopicType[];
|
|
@@ -22,4 +23,4 @@ export declare function getTopicsForClientAndConfig(clientType: P2PClientType, d
|
|
|
22
23
|
* }
|
|
23
24
|
*/
|
|
24
25
|
export declare function metricsTopicStrToLabels(protocolVersion: string): Map<string, string>;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWNfdHlwZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC90b3BpY190eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRDs7R0FFRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBRTlFO0FBRUQsa0RBQWtEO0FBQ2xELHdCQUFnQixrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLFNBQVMsR0FBRyxTQUFTLENBVTFFO0FBRUQsb0JBQVksU0FBUztJQUNuQixFQUFFLE9BQU87SUFDVCxjQUFjLG1CQUFtQjtJQUNqQyxtQkFBbUIsd0JBQXdCO0lBQzNDLHNCQUFzQiwyQkFBMkI7Q0FDbEQ7QUFFRCx3QkFBZ0IseUJBQXlCLENBQUMsVUFBVSxFQUFFLGFBQWEsZUFTbEU7QUFFRCx3QkFBZ0IsMkJBQTJCLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLGVBTWxHO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsdUJBQXVCLENBQUMsZUFBZSxFQUFFLE1BQU0sdUJBTzlEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAE9E;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAU1E;AAED,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,
|
|
1
|
+
{"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAE9E;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAU1E;AAED,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;CAClD;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,aAAa,eASlE;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,OAAO,eAMlG;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,uBAO9D"}
|
package/dest/p2p/topic_type.js
CHANGED
|
@@ -18,12 +18,18 @@ import { P2PClientType } from './client_type.js';
|
|
|
18
18
|
export var TopicType = /*#__PURE__*/ function(TopicType) {
|
|
19
19
|
TopicType["tx"] = "tx";
|
|
20
20
|
TopicType["block_proposal"] = "block_proposal";
|
|
21
|
-
TopicType["
|
|
21
|
+
TopicType["checkpoint_proposal"] = "checkpoint_proposal";
|
|
22
|
+
TopicType["checkpoint_attestation"] = "checkpoint_attestation";
|
|
22
23
|
return TopicType;
|
|
23
24
|
}({});
|
|
24
25
|
export function getTopicTypeForClientType(clientType) {
|
|
25
26
|
if (clientType === P2PClientType.Full) {
|
|
26
|
-
return
|
|
27
|
+
return [
|
|
28
|
+
"tx",
|
|
29
|
+
"block_proposal",
|
|
30
|
+
"checkpoint_proposal",
|
|
31
|
+
"checkpoint_attestation"
|
|
32
|
+
];
|
|
27
33
|
} else if (clientType === P2PClientType.Prover) {
|
|
28
34
|
return [
|
|
29
35
|
"tx",
|
|
@@ -16,8 +16,7 @@ export declare class BlockRollupPublicInputs {
|
|
|
16
16
|
endState: StateReference;
|
|
17
17
|
startSpongeBlob: SpongeBlob;
|
|
18
18
|
endSpongeBlob: SpongeBlob;
|
|
19
|
-
|
|
20
|
-
endTimestamp: UInt64;
|
|
19
|
+
timestamp: UInt64;
|
|
21
20
|
blockHeadersHash: Fr;
|
|
22
21
|
inHash: Fr;
|
|
23
22
|
outHash: Fr;
|
|
@@ -53,13 +52,9 @@ export declare class BlockRollupPublicInputs {
|
|
|
53
52
|
*/
|
|
54
53
|
endSpongeBlob: SpongeBlob,
|
|
55
54
|
/**
|
|
56
|
-
* Timestamp of the
|
|
55
|
+
* Timestamp of the blocks in this block range.
|
|
57
56
|
*/
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Timestamp of the last block in this block range.
|
|
61
|
-
*/
|
|
62
|
-
endTimestamp: UInt64,
|
|
57
|
+
timestamp: UInt64,
|
|
63
58
|
/**
|
|
64
59
|
* Hash of the headers of all blocks in this block range. It will be combined with the `blockHeadersHash` from
|
|
65
60
|
* other blocks in the same checkpoint to form a wonky tree. The root of that tree becomes the final hash stored in
|
|
@@ -89,4 +84,4 @@ export declare class BlockRollupPublicInputs {
|
|
|
89
84
|
toJSON(): Buffer<ArrayBufferLike>;
|
|
90
85
|
static get schema(): import("zod").ZodType<BlockRollupPublicInputs, any, string>;
|
|
91
86
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcm9sbHVwX3B1YmxpY19pbnB1dHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xsdXAvYmxvY2tfcm9sbHVwX3B1YmxpY19pbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUF1QyxNQUFNLDZCQUE2QixDQUFDO0FBR2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RTs7R0FFRztBQUNILHFCQUFhLHVCQUF1QjtJQUt6QixTQUFTLEVBQUUsc0JBQXNCO0lBSWpDLGVBQWUsRUFBRSxzQkFBc0I7SUFJdkMsVUFBVSxFQUFFLHNCQUFzQjtJQUlsQyxVQUFVLEVBQUUsY0FBYztJQUkxQixRQUFRLEVBQUUsY0FBYztJQUl4QixlQUFlLEVBQUUsVUFBVTtJQUkzQixhQUFhLEVBQUUsVUFBVTtJQUl6QixTQUFTLEVBQUUsTUFBTTtJQU1qQixnQkFBZ0IsRUFBRSxFQUFFO0lBSXBCLE1BQU0sRUFBRSxFQUFFO0lBSVYsT0FBTyxFQUFFLEVBQUU7SUFJWCxlQUFlLEVBQUUsRUFBRTtJQUluQixtQkFBbUIsRUFBRSxFQUFFO0lBdERoQztJQUNFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLHNCQUFzQjtJQUN4Qzs7T0FFRztJQUNJLGVBQWUsRUFBRSxzQkFBc0I7SUFDOUM7O09BRUc7SUFDSSxVQUFVLEVBQUUsc0JBQXNCO0lBQ3pDOztPQUVHO0lBQ0ksVUFBVSxFQUFFLGNBQWM7SUFDakM7O09BRUc7SUFDSSxRQUFRLEVBQUUsY0FBYztJQUMvQjs7T0FFRztJQUNJLGVBQWUsRUFBRSxVQUFVO0lBQ2xDOztPQUVHO0lBQ0ksYUFBYSxFQUFFLFVBQVU7SUFDaEM7O09BRUc7SUFDSSxTQUFTLEVBQUUsTUFBTTtJQUN4Qjs7OztPQUlHO0lBQ0ksZ0JBQWdCLEVBQUUsRUFBRTtJQUMzQjs7T0FFRztJQUNJLE1BQU0sRUFBRSxFQUFFO0lBQ2pCOztPQUVHO0lBQ0ksT0FBTyxFQUFFLEVBQUU7SUFDbEI7O09BRUc7SUFDSSxlQUFlLEVBQUUsRUFBRTtJQUMxQjs7T0FFRztJQUNJLG1CQUFtQixFQUFFLEVBQUUsRUFDNUI7SUFFSixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLHVCQUF1QixDQWlCeEU7SUFFRCxRQUFRLDRCQWdCUDtJQUVELFFBQVEsa0JBRVA7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLDJCQUU1QjtJQUVELE1BQU0sNEJBRUw7SUFFRCxNQUFNLEtBQUssTUFBTSxnRUFFaEI7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/block_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAGhG,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,qBAAa,uBAAuB;IAKzB,SAAS,EAAE,sBAAsB;IAIjC,eAAe,EAAE,sBAAsB;IAIvC,UAAU,EAAE,sBAAsB;IAIlC,UAAU,EAAE,cAAc;IAI1B,QAAQ,EAAE,cAAc;IAIxB,eAAe,EAAE,UAAU;IAI3B,aAAa,EAAE,UAAU;IAIzB,
|
|
1
|
+
{"version":3,"file":"block_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/block_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAGhG,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,qBAAa,uBAAuB;IAKzB,SAAS,EAAE,sBAAsB;IAIjC,eAAe,EAAE,sBAAsB;IAIvC,UAAU,EAAE,sBAAsB;IAIlC,UAAU,EAAE,cAAc;IAI1B,QAAQ,EAAE,cAAc;IAIxB,eAAe,EAAE,UAAU;IAI3B,aAAa,EAAE,UAAU;IAIzB,SAAS,EAAE,MAAM;IAMjB,gBAAgB,EAAE,EAAE;IAIpB,MAAM,EAAE,EAAE;IAIV,OAAO,EAAE,EAAE;IAIX,eAAe,EAAE,EAAE;IAInB,mBAAmB,EAAE,EAAE;IAtDhC;IACE;;OAEG;IACI,SAAS,EAAE,sBAAsB;IACxC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,UAAU,EAAE,cAAc;IACjC;;OAEG;IACI,QAAQ,EAAE,cAAc;IAC/B;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;;;OAIG;IACI,gBAAgB,EAAE,EAAE;IAC3B;;OAEG;IACI,MAAM,EAAE,EAAE;IACjB;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE,EAC5B;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,uBAAuB,CAiBxE;IAED,QAAQ,4BAgBP;IAED,QAAQ,kBAEP;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,2BAE5B;IAED,MAAM,4BAEL;IAED,MAAM,KAAK,MAAM,gEAEhB;CACF"}
|
|
@@ -16,8 +16,7 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
|
|
|
16
16
|
endState;
|
|
17
17
|
startSpongeBlob;
|
|
18
18
|
endSpongeBlob;
|
|
19
|
-
|
|
20
|
-
endTimestamp;
|
|
19
|
+
timestamp;
|
|
21
20
|
blockHeadersHash;
|
|
22
21
|
inHash;
|
|
23
22
|
outHash;
|
|
@@ -38,10 +37,8 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
|
|
|
38
37
|
*/ startSpongeBlob, /**
|
|
39
38
|
* Sponge state to absorb blob inputs at the end of this block range.
|
|
40
39
|
*/ endSpongeBlob, /**
|
|
41
|
-
* Timestamp of the
|
|
42
|
-
*/
|
|
43
|
-
* Timestamp of the last block in this block range.
|
|
44
|
-
*/ endTimestamp, /**
|
|
40
|
+
* Timestamp of the blocks in this block range.
|
|
41
|
+
*/ timestamp, /**
|
|
45
42
|
* Hash of the headers of all blocks in this block range. It will be combined with the `blockHeadersHash` from
|
|
46
43
|
* other blocks in the same checkpoint to form a wonky tree. The root of that tree becomes the final hash stored in
|
|
47
44
|
* the checkpoint header, enabling validation of the blocks included in a checkpoint given their headers.
|
|
@@ -61,8 +58,7 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
|
|
|
61
58
|
this.endState = endState;
|
|
62
59
|
this.startSpongeBlob = startSpongeBlob;
|
|
63
60
|
this.endSpongeBlob = endSpongeBlob;
|
|
64
|
-
this.
|
|
65
|
-
this.endTimestamp = endTimestamp;
|
|
61
|
+
this.timestamp = timestamp;
|
|
66
62
|
this.blockHeadersHash = blockHeadersHash;
|
|
67
63
|
this.inHash = inHash;
|
|
68
64
|
this.outHash = outHash;
|
|
@@ -71,10 +67,10 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
|
|
|
71
67
|
}
|
|
72
68
|
static fromBuffer(buffer) {
|
|
73
69
|
const reader = BufferReader.asReader(buffer);
|
|
74
|
-
return new BlockRollupPublicInputs(reader.readObject(CheckpointConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(StateReference), reader.readObject(StateReference), reader.readObject(SpongeBlob), reader.readObject(SpongeBlob), reader.readUInt64(),
|
|
70
|
+
return new BlockRollupPublicInputs(reader.readObject(CheckpointConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(StateReference), reader.readObject(StateReference), reader.readObject(SpongeBlob), reader.readObject(SpongeBlob), reader.readUInt64(), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
|
|
75
71
|
}
|
|
76
72
|
toBuffer() {
|
|
77
|
-
return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.startState, this.endState, this.startSpongeBlob, this.endSpongeBlob, bigintToUInt64BE(this.
|
|
73
|
+
return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.startState, this.endState, this.startSpongeBlob, this.endSpongeBlob, bigintToUInt64BE(this.timestamp), this.blockHeadersHash, this.inHash, this.outHash, this.accumulatedFees, this.accumulatedManaUsed);
|
|
78
74
|
}
|
|
79
75
|
toString() {
|
|
80
76
|
return bufferToHex(this.toBuffer());
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _computedKey;
|
|
1
2
|
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -5,6 +6,7 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
5
6
|
import { inspect } from 'util';
|
|
6
7
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
7
8
|
import { GasFees } from '../gas/gas_fees.js';
|
|
9
|
+
_computedKey = inspect.custom;
|
|
8
10
|
/**
|
|
9
11
|
* Constants that are the same for the entire checkpoint.
|
|
10
12
|
* Used in circuits during rollup proving.
|
|
@@ -74,7 +76,7 @@ import { GasFees } from '../gas/gas_fees.js';
|
|
|
74
76
|
gasFees: this.gasFees.toInspect()
|
|
75
77
|
};
|
|
76
78
|
}
|
|
77
|
-
[
|
|
79
|
+
[_computedKey]() {
|
|
78
80
|
return `CheckpointConstantData ${inspect(this.toInspect())}`;
|
|
79
81
|
}
|
|
80
82
|
}
|
|
@@ -8,16 +8,18 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
8
8
|
import { inspect } from 'util';
|
|
9
9
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
10
10
|
import { GasFees } from '../gas/index.js';
|
|
11
|
-
import {
|
|
11
|
+
import type { GlobalVariables } from '../tx/global_variables.js';
|
|
12
12
|
import type { UInt64 } from '../types/shared.js';
|
|
13
13
|
/**
|
|
14
14
|
* Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
|
|
15
15
|
* TODO(palla/mbps): Should this include chainId and version as well? Is this used just in circuits?
|
|
16
|
+
* TODO(palla/mbps): What about CheckpointNumber?
|
|
16
17
|
*/
|
|
17
18
|
export declare class CheckpointHeader {
|
|
18
19
|
lastArchiveRoot: Fr;
|
|
19
20
|
blockHeadersHash: Fr;
|
|
20
|
-
|
|
21
|
+
blobsHash: Fr;
|
|
22
|
+
inHash: Fr;
|
|
21
23
|
slotNumber: SlotNumber;
|
|
22
24
|
timestamp: UInt64;
|
|
23
25
|
coinbase: EthAddress;
|
|
@@ -29,8 +31,10 @@ export declare class CheckpointHeader {
|
|
|
29
31
|
lastArchiveRoot: Fr,
|
|
30
32
|
/** Hash of the headers of all blocks in this checkpoint. */
|
|
31
33
|
blockHeadersHash: Fr,
|
|
32
|
-
/**
|
|
33
|
-
|
|
34
|
+
/** Hash of the blobs in the checkpoint. */
|
|
35
|
+
blobsHash: Fr,
|
|
36
|
+
/** Root of the l1 to l2 messages subtree. */
|
|
37
|
+
inHash: Fr,
|
|
34
38
|
/** Slot number of the L2 block */
|
|
35
39
|
slotNumber: SlotNumber,
|
|
36
40
|
/** Timestamp of the L2 block. */
|
|
@@ -44,14 +48,16 @@ export declare class CheckpointHeader {
|
|
|
44
48
|
/** Total mana used in the block, computed by the root rollup circuit */
|
|
45
49
|
totalManaUsed: Fr);
|
|
46
50
|
static get schema(): ZodFor<CheckpointHeader>;
|
|
47
|
-
static getFields(fields: FieldsOf<CheckpointHeader>): readonly [Fr, Fr,
|
|
51
|
+
static getFields(fields: FieldsOf<CheckpointHeader>): readonly [Fr, Fr, Fr, Fr, SlotNumber, bigint, EthAddress, AztecAddress, GasFees, Fr];
|
|
48
52
|
static from(fields: FieldsOf<CheckpointHeader>): CheckpointHeader;
|
|
49
53
|
static fromBuffer(buffer: Buffer | BufferReader): CheckpointHeader;
|
|
50
54
|
equals(other: CheckpointHeader): boolean;
|
|
55
|
+
/** Returns true if the global variables match those in the checkpoint header. */
|
|
56
|
+
matchesGlobalVariables(other: GlobalVariables): boolean;
|
|
51
57
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
52
58
|
hash(): Fr;
|
|
53
59
|
static empty(fields?: Partial<FieldsOf<CheckpointHeader>>): CheckpointHeader;
|
|
54
|
-
static random(overrides?: Partial<FieldsOf<CheckpointHeader>>
|
|
60
|
+
static random(overrides?: Partial<FieldsOf<CheckpointHeader>>): CheckpointHeader;
|
|
55
61
|
isEmpty(): boolean;
|
|
56
62
|
/**
|
|
57
63
|
* Serializes this instance into a string.
|
|
@@ -69,11 +75,8 @@ export declare class CheckpointHeader {
|
|
|
69
75
|
toInspect(): {
|
|
70
76
|
lastArchive: `0x${string}`;
|
|
71
77
|
blockHeadersHash: `0x${string}`;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
inHash: `0x${string}`;
|
|
75
|
-
outHash: `0x${string}`;
|
|
76
|
-
};
|
|
78
|
+
blobsHash: `0x${string}`;
|
|
79
|
+
inHash: `0x${string}`;
|
|
77
80
|
slotNumber: SlotNumber;
|
|
78
81
|
timestamp: bigint;
|
|
79
82
|
coinbase: `0x${string}`;
|
|
@@ -86,4 +89,4 @@ export declare class CheckpointHeader {
|
|
|
86
89
|
};
|
|
87
90
|
[inspect.custom](): string;
|
|
88
91
|
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9oZWFkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xsdXAvY2hlY2twb2ludF9oZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBdUMsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQ7Ozs7R0FJRztBQUNILHFCQUFhLGdCQUFnQjtJQUdsQixlQUFlLEVBQUUsRUFBRTtJQUVuQixnQkFBZ0IsRUFBRSxFQUFFO0lBRXBCLFNBQVMsRUFBRSxFQUFFO0lBRWIsTUFBTSxFQUFFLEVBQUU7SUFFVixVQUFVLEVBQUUsVUFBVTtJQUV0QixTQUFTLEVBQUUsTUFBTTtJQUVqQixRQUFRLEVBQUUsVUFBVTtJQUVwQixZQUFZLEVBQUUsWUFBWTtJQUUxQixPQUFPLEVBQUUsT0FBTztJQUVoQixhQUFhLEVBQUUsRUFBRTtJQXBCMUI7SUFDRSwyREFBMkQ7SUFDcEQsZUFBZSxFQUFFLEVBQUU7SUFDMUIsNERBQTREO0lBQ3JELGdCQUFnQixFQUFFLEVBQUU7SUFDM0IsMkNBQTJDO0lBQ3BDLFNBQVMsRUFBRSxFQUFFO0lBQ3BCLDZDQUE2QztJQUN0QyxNQUFNLEVBQUUsRUFBRTtJQUNqQixrQ0FBa0M7SUFDM0IsVUFBVSxFQUFFLFVBQVU7SUFDN0IsaUNBQWlDO0lBQzFCLFNBQVMsRUFBRSxNQUFNO0lBQ3hCLGlDQUFpQztJQUMxQixRQUFRLEVBQUUsVUFBVTtJQUMzQiwrQkFBK0I7SUFDeEIsWUFBWSxFQUFFLFlBQVk7SUFDakMsd0NBQXdDO0lBQ2pDLE9BQU8sRUFBRSxPQUFPO0lBQ3ZCLHdFQUF3RTtJQUNqRSxhQUFhLEVBQUUsRUFBRSxFQUN0QjtJQUVKLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBZTVDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLHdGQWFsRDtJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFFN0M7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxvQkFlOUM7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLGdCQUFnQixXQWE3QjtJQUVELGlGQUFpRjtJQUNqRixzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsZUFBZSxXQVE1QztJQUVELFFBQVEsNEJBY1A7SUFFRCxJQUFJLElBQUksRUFBRSxDQUVUO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFNLG9CQWM1RDtJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBTSxHQUFHLGdCQUFnQixDQWNuRjtJQUVELE9BQU8sSUFBSSxPQUFPLENBYWpCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxrQkFFZDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sb0JBRTVCO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxvQkFhakM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLElBQUksVUFBVSxDQUUxQjtJQUVELE1BQU0sSUFBSSxVQUFVLENBZ0JuQjtJQUVELFNBQVM7Ozs7Ozs7Ozs7Ozs7O01BYVI7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FhZjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint_header.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAEhG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"checkpoint_header.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAEhG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;GAIG;AACH,qBAAa,gBAAgB;IAGlB,eAAe,EAAE,EAAE;IAEnB,gBAAgB,EAAE,EAAE;IAEpB,SAAS,EAAE,EAAE;IAEb,MAAM,EAAE,EAAE;IAEV,UAAU,EAAE,UAAU;IAEtB,SAAS,EAAE,MAAM;IAEjB,QAAQ,EAAE,UAAU;IAEpB,YAAY,EAAE,YAAY;IAE1B,OAAO,EAAE,OAAO;IAEhB,aAAa,EAAE,EAAE;IApB1B;IACE,2DAA2D;IACpD,eAAe,EAAE,EAAE;IAC1B,4DAA4D;IACrD,gBAAgB,EAAE,EAAE;IAC3B,2CAA2C;IACpC,SAAS,EAAE,EAAE;IACpB,6CAA6C;IACtC,MAAM,EAAE,EAAE;IACjB,kCAAkC;IAC3B,UAAU,EAAE,UAAU;IAC7B,iCAAiC;IAC1B,SAAS,EAAE,MAAM;IACxB,iCAAiC;IAC1B,QAAQ,EAAE,UAAU;IAC3B,+BAA+B;IACxB,YAAY,EAAE,YAAY;IACjC,wCAAwC;IACjC,OAAO,EAAE,OAAO;IACvB,wEAAwE;IACjE,aAAa,EAAE,EAAE,EACtB;IAEJ,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAe5C;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,wFAalD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,oBAE7C;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,oBAe9C;IAED,MAAM,CAAC,KAAK,EAAE,gBAAgB,WAa7B;IAED,iFAAiF;IACjF,sBAAsB,CAAC,KAAK,EAAE,eAAe,WAQ5C;IAED,QAAQ,4BAcP;IAED,IAAI,IAAI,EAAE,CAET;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAM,oBAc5D;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAM,GAAG,gBAAgB,CAcnF;IAED,OAAO,IAAI,OAAO,CAajB;IAED;;;OAGG;IACI,QAAQ,kBAEd;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,oBAE5B;IAED,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,oBAajC;IAED;;;OAGG;IACH,aAAa,IAAI,UAAU,CAE1B;IAED,MAAM,IAAI,UAAU,CAgBnB;IAED,SAAS;;;;;;;;;;;;;;MAaR;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAaf;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _computedKey;
|
|
1
2
|
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
3
|
import { sha256ToField } from '@aztec/foundation/crypto/sha256';
|
|
3
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
@@ -9,24 +10,27 @@ import { z } from 'zod';
|
|
|
9
10
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
10
11
|
import { GasFees } from '../gas/index.js';
|
|
11
12
|
import { schemas } from '../schemas/index.js';
|
|
12
|
-
|
|
13
|
+
_computedKey = inspect.custom;
|
|
13
14
|
/**
|
|
14
15
|
* Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
|
|
15
16
|
* TODO(palla/mbps): Should this include chainId and version as well? Is this used just in circuits?
|
|
17
|
+
* TODO(palla/mbps): What about CheckpointNumber?
|
|
16
18
|
*/ export class CheckpointHeader {
|
|
17
19
|
lastArchiveRoot;
|
|
18
20
|
blockHeadersHash;
|
|
19
|
-
|
|
21
|
+
blobsHash;
|
|
22
|
+
inHash;
|
|
20
23
|
slotNumber;
|
|
21
24
|
timestamp;
|
|
22
25
|
coinbase;
|
|
23
26
|
feeRecipient;
|
|
24
27
|
gasFees;
|
|
25
28
|
totalManaUsed;
|
|
26
|
-
constructor(/** Root of the archive tree before this block is added. */ lastArchiveRoot, /** Hash of the headers of all blocks in this checkpoint. */ blockHeadersHash, /**
|
|
29
|
+
constructor(/** Root of the archive tree before this block is added. */ lastArchiveRoot, /** Hash of the headers of all blocks in this checkpoint. */ blockHeadersHash, /** Hash of the blobs in the checkpoint. */ blobsHash, /** Root of the l1 to l2 messages subtree. */ inHash, /** Slot number of the L2 block */ slotNumber, /** Timestamp of the L2 block. */ timestamp, /** Recipient of block reward. */ coinbase, /** Address to receive fees. */ feeRecipient, /** Global gas prices for this block. */ gasFees, /** Total mana used in the block, computed by the root rollup circuit */ totalManaUsed){
|
|
27
30
|
this.lastArchiveRoot = lastArchiveRoot;
|
|
28
31
|
this.blockHeadersHash = blockHeadersHash;
|
|
29
|
-
this.
|
|
32
|
+
this.blobsHash = blobsHash;
|
|
33
|
+
this.inHash = inHash;
|
|
30
34
|
this.slotNumber = slotNumber;
|
|
31
35
|
this.timestamp = timestamp;
|
|
32
36
|
this.coinbase = coinbase;
|
|
@@ -38,7 +42,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
|
|
|
38
42
|
return z.object({
|
|
39
43
|
lastArchiveRoot: schemas.Fr,
|
|
40
44
|
blockHeadersHash: schemas.Fr,
|
|
41
|
-
|
|
45
|
+
blobsHash: schemas.Fr,
|
|
46
|
+
inHash: schemas.Fr,
|
|
42
47
|
slotNumber: schemas.SlotNumber,
|
|
43
48
|
timestamp: schemas.BigInt,
|
|
44
49
|
coinbase: schemas.EthAddress,
|
|
@@ -51,7 +56,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
|
|
|
51
56
|
return [
|
|
52
57
|
fields.lastArchiveRoot,
|
|
53
58
|
fields.blockHeadersHash,
|
|
54
|
-
fields.
|
|
59
|
+
fields.blobsHash,
|
|
60
|
+
fields.inHash,
|
|
55
61
|
fields.slotNumber,
|
|
56
62
|
fields.timestamp,
|
|
57
63
|
fields.coinbase,
|
|
@@ -65,17 +71,21 @@ import { ContentCommitment } from '../tx/content_commitment.js';
|
|
|
65
71
|
}
|
|
66
72
|
static fromBuffer(buffer) {
|
|
67
73
|
const reader = BufferReader.asReader(buffer);
|
|
68
|
-
return new CheckpointHeader(reader.readObject(Fr), reader.readObject(Fr), reader.readObject(
|
|
74
|
+
return new CheckpointHeader(reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), SlotNumber(Fr.fromBuffer(reader).toNumber()), reader.readUInt64(), reader.readObject(EthAddress), reader.readObject(AztecAddress), reader.readObject(GasFees), reader.readObject(Fr));
|
|
69
75
|
}
|
|
70
76
|
equals(other) {
|
|
71
|
-
return this.lastArchiveRoot.equals(other.lastArchiveRoot) && this.blockHeadersHash.equals(other.blockHeadersHash) && this.
|
|
77
|
+
return this.lastArchiveRoot.equals(other.lastArchiveRoot) && this.blockHeadersHash.equals(other.blockHeadersHash) && this.blobsHash.equals(other.blobsHash) && this.inHash.equals(other.inHash) && this.slotNumber === other.slotNumber && this.timestamp === other.timestamp && this.coinbase.equals(other.coinbase) && this.feeRecipient.equals(other.feeRecipient) && this.gasFees.equals(other.gasFees) && this.totalManaUsed.equals(other.totalManaUsed);
|
|
78
|
+
}
|
|
79
|
+
/** Returns true if the global variables match those in the checkpoint header. */ matchesGlobalVariables(other) {
|
|
80
|
+
return this.coinbase.equals(other.coinbase) && this.feeRecipient.equals(other.feeRecipient) && this.gasFees.equals(other.gasFees) && this.slotNumber === other.slotNumber && this.timestamp === other.timestamp;
|
|
72
81
|
}
|
|
73
82
|
toBuffer() {
|
|
74
83
|
// Note: The order here must match the order in the ProposedHeaderLib solidity library.
|
|
75
84
|
return serializeToBuffer([
|
|
76
85
|
this.lastArchiveRoot,
|
|
77
86
|
this.blockHeadersHash,
|
|
78
|
-
this.
|
|
87
|
+
this.blobsHash,
|
|
88
|
+
this.inHash,
|
|
79
89
|
new Fr(this.slotNumber),
|
|
80
90
|
bigintToUInt64BE(this.timestamp),
|
|
81
91
|
this.coinbase,
|
|
@@ -93,7 +103,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
|
|
|
93
103
|
return CheckpointHeader.from({
|
|
94
104
|
lastArchiveRoot: Fr.ZERO,
|
|
95
105
|
blockHeadersHash: Fr.ZERO,
|
|
96
|
-
|
|
106
|
+
blobsHash: Fr.ZERO,
|
|
107
|
+
inHash: Fr.ZERO,
|
|
97
108
|
slotNumber: SlotNumber.ZERO,
|
|
98
109
|
timestamp: 0n,
|
|
99
110
|
coinbase: EthAddress.ZERO,
|
|
@@ -107,7 +118,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
|
|
|
107
118
|
return CheckpointHeader.from({
|
|
108
119
|
lastArchiveRoot: Fr.random(),
|
|
109
120
|
blockHeadersHash: Fr.random(),
|
|
110
|
-
|
|
121
|
+
blobsHash: Fr.random(),
|
|
122
|
+
inHash: Fr.random(),
|
|
111
123
|
slotNumber: SlotNumber(Math.floor(Math.random() * 1000) + 1),
|
|
112
124
|
timestamp: BigInt(Math.floor(Date.now() / 1000)),
|
|
113
125
|
coinbase: EthAddress.random(),
|
|
@@ -118,7 +130,7 @@ import { ContentCommitment } from '../tx/content_commitment.js';
|
|
|
118
130
|
});
|
|
119
131
|
}
|
|
120
132
|
isEmpty() {
|
|
121
|
-
return this.lastArchiveRoot.isZero() && this.blockHeadersHash.isZero() && this.
|
|
133
|
+
return this.lastArchiveRoot.isZero() && this.blockHeadersHash.isZero() && this.blobsHash.isZero() && this.inHash.isZero() && this.slotNumber === 0 && this.timestamp === 0n && this.coinbase.isZero() && this.feeRecipient.isZero() && this.gasFees.isEmpty() && this.totalManaUsed.isZero();
|
|
122
134
|
}
|
|
123
135
|
/**
|
|
124
136
|
* Serializes this instance into a string.
|
|
@@ -130,7 +142,7 @@ import { ContentCommitment } from '../tx/content_commitment.js';
|
|
|
130
142
|
return CheckpointHeader.fromBuffer(hexToBuffer(str));
|
|
131
143
|
}
|
|
132
144
|
static fromViem(header) {
|
|
133
|
-
return new CheckpointHeader(Fr.fromString(header.lastArchiveRoot), Fr.fromString(header.blockHeadersHash),
|
|
145
|
+
return new CheckpointHeader(Fr.fromString(header.lastArchiveRoot), Fr.fromString(header.blockHeadersHash), Fr.fromString(header.blobsHash), Fr.fromString(header.inHash), SlotNumber.fromBigInt(header.slotNumber), header.timestamp, new EthAddress(hexToBuffer(header.coinbase)), new AztecAddress(hexToBuffer(header.feeRecipient)), new GasFees(header.gasFees.feePerDaGas, header.gasFees.feePerL2Gas), new Fr(header.totalManaUsed));
|
|
134
146
|
}
|
|
135
147
|
/**
|
|
136
148
|
* Returns the slot number as a SlotNumber branded type.
|
|
@@ -142,7 +154,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
|
|
|
142
154
|
return {
|
|
143
155
|
lastArchiveRoot: this.lastArchiveRoot.toString(),
|
|
144
156
|
blockHeadersHash: this.blockHeadersHash.toString(),
|
|
145
|
-
|
|
157
|
+
blobsHash: this.blobsHash.toString(),
|
|
158
|
+
inHash: this.inHash.toString(),
|
|
146
159
|
slotNumber: BigInt(this.slotNumber),
|
|
147
160
|
timestamp: this.timestamp,
|
|
148
161
|
coinbase: this.coinbase.toString(),
|
|
@@ -158,7 +171,8 @@ import { ContentCommitment } from '../tx/content_commitment.js';
|
|
|
158
171
|
return {
|
|
159
172
|
lastArchive: this.lastArchiveRoot.toString(),
|
|
160
173
|
blockHeadersHash: this.blockHeadersHash.toString(),
|
|
161
|
-
|
|
174
|
+
blobsHash: this.blobsHash.toString(),
|
|
175
|
+
inHash: this.inHash.toString(),
|
|
162
176
|
slotNumber: this.slotNumber,
|
|
163
177
|
timestamp: this.timestamp,
|
|
164
178
|
coinbase: this.coinbase.toString(),
|
|
@@ -167,17 +181,17 @@ import { ContentCommitment } from '../tx/content_commitment.js';
|
|
|
167
181
|
totalManaUsed: this.totalManaUsed.toBigInt()
|
|
168
182
|
};
|
|
169
183
|
}
|
|
170
|
-
[
|
|
171
|
-
const gasfees = `da:${this.gasFees.feePerDaGas}, l2:${this.gasFees.feePerL2Gas}`;
|
|
184
|
+
[_computedKey]() {
|
|
172
185
|
return `Header {
|
|
173
186
|
lastArchiveRoot: ${this.lastArchiveRoot.toString()},
|
|
174
187
|
blockHeadersHash: ${this.blockHeadersHash.toString()},
|
|
175
|
-
|
|
188
|
+
blobsHash: ${inspect(this.blobsHash)},
|
|
189
|
+
inHash: ${inspect(this.inHash)},
|
|
176
190
|
slotNumber: ${this.slotNumber},
|
|
177
191
|
timestamp: ${this.timestamp},
|
|
178
192
|
coinbase: ${this.coinbase.toString()},
|
|
179
193
|
feeRecipient: ${this.feeRecipient.toString()},
|
|
180
|
-
gasFees:
|
|
194
|
+
gasFees: { da:${this.gasFees.feePerDaGas}, l2:${this.gasFees.feePerL2Gas} },
|
|
181
195
|
totalManaUsed: ${this.totalManaUsed.toBigInt()},
|
|
182
196
|
}`;
|
|
183
197
|
}
|
|
@@ -14,6 +14,7 @@ export declare class CheckpointRollupPublicInputs {
|
|
|
14
14
|
previousArchive: AppendOnlyTreeSnapshot;
|
|
15
15
|
newArchive: AppendOnlyTreeSnapshot;
|
|
16
16
|
checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>;
|
|
17
|
+
outHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>;
|
|
17
18
|
fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>;
|
|
18
19
|
startBlobAccumulator: BlobAccumulator;
|
|
19
20
|
endBlobAccumulator: BlobAccumulator;
|
|
@@ -35,6 +36,10 @@ export declare class CheckpointRollupPublicInputs {
|
|
|
35
36
|
* The hashes of the headers of the constituent checkpoints.
|
|
36
37
|
*/
|
|
37
38
|
checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
|
|
39
|
+
/**
|
|
40
|
+
* The `out_hash` values from all checkpoints in this checkpoint range.
|
|
41
|
+
*/
|
|
42
|
+
outHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
|
|
38
43
|
/**
|
|
39
44
|
* The summed transaction fees and recipients of the constituent checkpoints.
|
|
40
45
|
*/
|
|
@@ -79,4 +84,4 @@ export declare class FeeRecipient {
|
|
|
79
84
|
};
|
|
80
85
|
static random(): FeeRecipient;
|
|
81
86
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yb2xsdXBfcHVibGljX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9jaGVja3BvaW50X3JvbGx1cF9wdWJsaWNfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxLQUFLLEVBQXdDLE1BQU0sNkJBQTZCLENBQUM7QUFFN0csT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0Q7O0dBRUc7QUFDSCxxQkFBYSw0QkFBNEI7SUFLOUIsU0FBUyxFQUFFLGlCQUFpQjtJQUk1QixlQUFlLEVBQUUsc0JBQXNCO0lBSXZDLFVBQVUsRUFBRSxzQkFBc0I7SUFJbEMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLHdCQUF3QixDQUFDO0lBSWxFLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFJckQsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUkxRCxvQkFBb0IsRUFBRSxlQUFlO0lBSXJDLGtCQUFrQixFQUFFLGVBQWU7SUFJbkMsbUJBQW1CLEVBQUUsMkJBQTJCO0lBcEN6RDtJQUNFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLGlCQUFpQjtJQUNuQzs7T0FFRztJQUNJLGVBQWUsRUFBRSxzQkFBc0I7SUFDOUM7O09BRUc7SUFDSSxVQUFVLEVBQUUsc0JBQXNCO0lBQ3pDOztPQUVHO0lBQ0ksc0JBQXNCLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLHdCQUF3QixDQUFDO0lBQ3pFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUM1RDs7T0FFRztJQUNJLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFDakU7O09BRUc7SUFDSSxvQkFBb0IsRUFBRSxlQUFlO0lBQzVDOztPQUVHO0lBQ0ksa0JBQWtCLEVBQUUsZUFBZTtJQUMxQzs7T0FFRztJQUNJLG1CQUFtQixFQUFFLDJCQUEyQixFQUNyRDtJQUVKLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGdDQWE5QztJQUVELFFBQVEsNEJBWVA7SUFFRCxRQUFRLGtCQUVQO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxnQ0FFNUI7SUFFRCw4REFBOEQ7SUFDOUQsTUFBTSw0QkFFTDtJQUVELDZDQUE2QztJQUM3QyxNQUFNLEtBQUssTUFBTSxxRUFFaEI7Q0FDRjtBQUVELHFCQUFhLFlBQVk7SUFFZCxTQUFTLEVBQUUsVUFBVTtJQUNyQixLQUFLLEVBQUUsRUFBRTtJQUZsQixZQUNTLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLEtBQUssRUFBRSxFQUFFLEVBQ2Q7SUFFSixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFlBQVksQ0FHN0Q7SUFFRCxRQUFRLDRCQUVQO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyw2QkFFOUM7SUFFRCxRQUFRLFNBRVA7SUFFRCxNQUFNLENBQUMsS0FBSyxpQkFFWDtJQUVELE9BQU8sWUFFTjtJQUVELGNBQWM7Ozs7OztNQUtiO0lBRUQsTUFBTSxDQUFDLE1BQU0saUJBRVo7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAwC,MAAM,6BAA6B,CAAC;AAE7G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,4BAA4B;IAK9B,SAAS,EAAE,iBAAiB;IAI5B,eAAe,EAAE,sBAAsB;IAIvC,UAAU,EAAE,sBAAsB;IAIlC,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAIlE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IAI1D,oBAAoB,EAAE,eAAe;IAIrC,kBAAkB,EAAE,eAAe;IAInC,mBAAmB,EAAE,2BAA2B;
|
|
1
|
+
{"version":3,"file":"checkpoint_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAwC,MAAM,6BAA6B,CAAC;AAE7G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,4BAA4B;IAK9B,SAAS,EAAE,iBAAiB;IAI5B,eAAe,EAAE,sBAAsB;IAIvC,UAAU,EAAE,sBAAsB;IAIlC,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAIlE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAIrD,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IAI1D,oBAAoB,EAAE,eAAe;IAIrC,kBAAkB,EAAE,eAAe;IAInC,mBAAmB,EAAE,2BAA2B;IApCzD;IACE;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IACzE;;OAEG;IACI,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAC5D;;OAEG;IACI,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IACjE;;OAEG;IACI,oBAAoB,EAAE,eAAe;IAC5C;;OAEG;IACI,kBAAkB,EAAE,eAAe;IAC1C;;OAEG;IACI,mBAAmB,EAAE,2BAA2B,EACrD;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,gCAa9C;IAED,QAAQ,4BAYP;IAED,QAAQ,kBAEP;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,gCAE5B;IAED,8DAA8D;IAC9D,MAAM,4BAEL;IAED,6CAA6C;IAC7C,MAAM,KAAK,MAAM,qEAEhB;CACF;AAED,qBAAa,YAAY;IAEd,SAAS,EAAE,UAAU;IACrB,KAAK,EAAE,EAAE;IAFlB,YACS,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,EAAE,EACd;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,CAG7D;IAED,QAAQ,4BAEP;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,6BAE9C;IAED,QAAQ,SAEP;IAED,MAAM,CAAC,KAAK,iBAEX;IAED,OAAO,YAEN;IAED,cAAc;;;;;;MAKb;IAED,MAAM,CAAC,MAAM,iBAEZ;CACF"}
|
|
@@ -14,6 +14,7 @@ import { EpochConstantData } from './epoch_constant_data.js';
|
|
|
14
14
|
previousArchive;
|
|
15
15
|
newArchive;
|
|
16
16
|
checkpointHeaderHashes;
|
|
17
|
+
outHashes;
|
|
17
18
|
fees;
|
|
18
19
|
startBlobAccumulator;
|
|
19
20
|
endBlobAccumulator;
|
|
@@ -27,6 +28,8 @@ import { EpochConstantData } from './epoch_constant_data.js';
|
|
|
27
28
|
*/ newArchive, /**
|
|
28
29
|
* The hashes of the headers of the constituent checkpoints.
|
|
29
30
|
*/ checkpointHeaderHashes, /**
|
|
31
|
+
* The `out_hash` values from all checkpoints in this checkpoint range.
|
|
32
|
+
*/ outHashes, /**
|
|
30
33
|
* The summed transaction fees and recipients of the constituent checkpoints.
|
|
31
34
|
*/ fees, /**
|
|
32
35
|
* Accumulated opening proofs for all blobs before this checkpoint range.
|
|
@@ -39,6 +42,7 @@ import { EpochConstantData } from './epoch_constant_data.js';
|
|
|
39
42
|
this.previousArchive = previousArchive;
|
|
40
43
|
this.newArchive = newArchive;
|
|
41
44
|
this.checkpointHeaderHashes = checkpointHeaderHashes;
|
|
45
|
+
this.outHashes = outHashes;
|
|
42
46
|
this.fees = fees;
|
|
43
47
|
this.startBlobAccumulator = startBlobAccumulator;
|
|
44
48
|
this.endBlobAccumulator = endBlobAccumulator;
|
|
@@ -46,10 +50,10 @@ import { EpochConstantData } from './epoch_constant_data.js';
|
|
|
46
50
|
}
|
|
47
51
|
static fromBuffer(buffer) {
|
|
48
52
|
const reader = BufferReader.asReader(buffer);
|
|
49
|
-
return new CheckpointRollupPublicInputs(reader.readObject(EpochConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr), reader.readArray(AZTEC_MAX_EPOCH_DURATION, FeeRecipient), reader.readObject(BlobAccumulator), reader.readObject(BlobAccumulator), reader.readObject(FinalBlobBatchingChallenges));
|
|
53
|
+
return new CheckpointRollupPublicInputs(reader.readObject(EpochConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr), reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr), reader.readArray(AZTEC_MAX_EPOCH_DURATION, FeeRecipient), reader.readObject(BlobAccumulator), reader.readObject(BlobAccumulator), reader.readObject(FinalBlobBatchingChallenges));
|
|
50
54
|
}
|
|
51
55
|
toBuffer() {
|
|
52
|
-
return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.checkpointHeaderHashes, this.fees, this.startBlobAccumulator, this.endBlobAccumulator, this.finalBlobChallenges);
|
|
56
|
+
return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.checkpointHeaderHashes, this.outHashes, this.fees, this.startBlobAccumulator, this.endBlobAccumulator, this.finalBlobChallenges);
|
|
53
57
|
}
|
|
54
58
|
toString() {
|
|
55
59
|
return bufferToHex(this.toBuffer());
|