@aztec/stdlib 0.0.1-commit.936cb2cae → 0.0.1-commit.949a33fd8
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/authorization_selector.d.ts +3 -6
- package/dest/abi/authorization_selector.d.ts.map +1 -1
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +32 -6
- package/dest/abi/event_selector.d.ts +3 -6
- package/dest/abi/event_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.d.ts +3 -6
- package/dest/abi/function_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.js +1 -3
- package/dest/abi/note_selector.d.ts +3 -6
- package/dest/abi/note_selector.d.ts.map +1 -1
- package/dest/abi/note_selector.js +1 -3
- package/dest/abi/selector.d.ts +2 -2
- package/dest/abi/selector.d.ts.map +1 -1
- package/dest/abi/selector.js +1 -1
- package/dest/avm/revert_code.d.ts +8 -18
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +15 -30
- package/dest/aztec-address/index.d.ts +3 -6
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +2 -4
- package/dest/block/attestation_info.d.ts +3 -2
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +7 -5
- package/dest/block/block_data.d.ts +297 -8
- package/dest/block/block_data.d.ts.map +1 -1
- package/dest/block/block_data.js +16 -2
- package/dest/block/block_hash.d.ts +11 -10
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +10 -9
- package/dest/block/block_parameter.d.ts +30 -3
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +36 -2
- package/dest/block/l2_block_info.d.ts +6 -5
- package/dest/block/l2_block_info.d.ts.map +1 -1
- package/dest/block/l2_block_info.js +6 -5
- package/dest/block/l2_block_source.d.ts +116 -4
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +1 -0
- package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.js +18 -5
- package/dest/block/proposal/attestations_and_signers.d.ts +13 -6
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
- package/dest/block/proposal/attestations_and_signers.js +26 -18
- 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 +4 -3
- package/dest/checkpoint/checkpoint.d.ts +7 -1
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +9 -1
- package/dest/checkpoint/checkpoint_data.d.ts +77 -5
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_data.js +12 -0
- package/dest/config/chain-config.d.ts +2 -2
- package/dest/config/chain-config.d.ts.map +1 -1
- package/dest/config/chain-config.js +9 -3
- package/dest/config/sequencer-config.d.ts +3 -3
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +11 -4
- package/dest/contract/contract_address.d.ts +1 -1
- package/dest/contract/contract_address.js +2 -2
- package/dest/contract/private_function.d.ts +1 -1
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/contract/private_function.js +2 -4
- package/dest/epoch-helpers/index.d.ts +3 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +3 -0
- package/dest/gas/fee_math.d.ts +49 -0
- package/dest/gas/fee_math.d.ts.map +1 -0
- package/dest/gas/fee_math.js +80 -0
- package/dest/gas/gas_fees.d.ts +5 -1
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +10 -1
- package/dest/gas/gas_settings.d.ts +40 -3
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +50 -6
- package/dest/gas/index.d.ts +2 -1
- package/dest/gas/index.d.ts.map +1 -1
- package/dest/gas/index.js +1 -0
- package/dest/ha-signing/config.d.ts +6 -6
- package/dest/ha-signing/config.d.ts.map +1 -1
- package/dest/ha-signing/config.js +4 -3
- package/dest/ha-signing/index.d.ts +2 -2
- package/dest/ha-signing/index.d.ts.map +1 -1
- package/dest/ha-signing/index.js +1 -1
- package/dest/ha-signing/local_config.d.ts +1 -1
- package/dest/ha-signing/local_config.d.ts.map +1 -1
- package/dest/ha-signing/local_config.js +2 -2
- package/dest/ha-signing/types.d.ts +37 -32
- package/dest/ha-signing/types.d.ts.map +1 -1
- package/dest/ha-signing/types.js +13 -6
- package/dest/hash/hash.d.ts +16 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +32 -0
- package/dest/interfaces/archiver.d.ts +11 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +11 -3
- package/dest/interfaces/aztec-node-admin.d.ts +19 -14
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +5 -4
- package/dest/interfaces/aztec-node-debug.d.ts +21 -0
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
- package/dest/interfaces/aztec-node-debug.js +18 -0
- package/dest/interfaces/aztec-node.d.ts +54 -55
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +20 -16
- package/dest/interfaces/block_response.d.ts +156 -0
- package/dest/interfaces/block_response.d.ts.map +1 -0
- package/dest/interfaces/block_response.js +24 -0
- package/dest/interfaces/chain_tips.d.ts +304 -0
- package/dest/interfaces/chain_tips.d.ts.map +1 -0
- package/dest/interfaces/chain_tips.js +11 -0
- package/dest/interfaces/checkpoint_parameter.d.ts +27 -0
- package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_parameter.js +20 -0
- package/dest/interfaces/checkpoint_response.d.ts +312 -0
- package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_response.js +26 -0
- package/dest/interfaces/client.d.ts +7 -1
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +6 -0
- package/dest/interfaces/configs.d.ts +7 -2
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +2 -1
- package/dest/interfaces/l1_publish_info.d.ts +43 -0
- package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
- package/dest/interfaces/l1_publish_info.js +26 -0
- package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/prover-client.d.ts +1 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +0 -3
- package/dest/interfaces/proving-job.d.ts +166 -166
- package/dest/interfaces/server.d.ts +6 -1
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +5 -0
- package/dest/interfaces/slasher.d.ts +1 -10
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +0 -2
- package/dest/interfaces/validator.d.ts +23 -17
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +1 -0
- package/dest/l1-contracts/index.d.ts +2 -2
- package/dest/l1-contracts/index.d.ts.map +1 -1
- package/dest/l1-contracts/index.js +1 -1
- package/dest/logs/extended_directional_app_tagging_secret.d.ts +4 -4
- package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -1
- package/dest/logs/extended_directional_app_tagging_secret.js +12 -5
- package/dest/logs/log_id.d.ts +1 -1
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +1 -2
- package/dest/logs/siloed_tag.d.ts +5 -7
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +4 -0
- package/dest/logs/tag.d.ts +5 -6
- package/dest/logs/tag.d.ts.map +1 -1
- package/dest/logs/tag.js +4 -0
- package/dest/p2p/block_proposal.d.ts +22 -14
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +45 -40
- package/dest/p2p/checkpoint_attestation.d.ts +10 -8
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +17 -24
- package/dest/p2p/checkpoint_proposal.d.ts +20 -14
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +34 -51
- package/dest/p2p/consensus_payload.d.ts +18 -7
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +31 -19
- package/dest/p2p/gossipable.d.ts +4 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/signature_utils.d.ts +28 -19
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +118 -21
- package/dest/p2p/signed_txs.d.ts +15 -13
- package/dest/p2p/signed_txs.d.ts.map +1 -1
- package/dest/p2p/signed_txs.js +26 -24
- package/dest/parity/parity_base_private_inputs.d.ts +7 -3
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_base_private_inputs.js +7 -5
- package/dest/parity/parity_public_inputs.d.ts +7 -3
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.js +6 -3
- package/dest/rollup/block_headers_hash.d.ts +1 -1
- package/dest/rollup/block_headers_hash.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +8 -2
- package/dest/slashing/index.d.ts +2 -3
- package/dest/slashing/index.d.ts.map +1 -1
- package/dest/slashing/index.js +1 -2
- package/dest/slashing/serialization.d.ts +2 -6
- package/dest/slashing/serialization.d.ts.map +1 -1
- package/dest/slashing/serialization.js +0 -60
- package/dest/slashing/types.d.ts +4 -90
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +0 -14
- package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
- package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
- package/dest/slashing/{tally.js → votes.js} +1 -1
- package/dest/tests/factories.d.ts +2 -7
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +19 -19
- package/dest/tests/mocks.d.ts +7 -1
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +39 -30
- package/dest/timetable/index.d.ts +51 -1
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +218 -14
- package/dest/trees/nullifier_leaf.d.ts +2 -1
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.js +3 -0
- package/dest/tx/block_header.d.ts +2 -2
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +1 -1
- package/dest/tx/fee_provider.d.ts +10 -0
- package/dest/tx/fee_provider.d.ts.map +1 -0
- package/dest/tx/fee_provider.js +1 -0
- package/dest/tx/global_variable_builder.d.ts +3 -4
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/index.d.ts +2 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +1 -0
- package/dest/tx/indexed_tx_effect.d.ts +1 -1
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +1 -2
- package/dest/tx/profiling.js +4 -4
- package/dest/tx/simulated_tx.d.ts +4 -4
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +3 -3
- package/dest/tx/tx.d.ts +3 -3
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx_receipt.d.ts +8 -4
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +8 -15
- package/dest/types/shared.d.ts +1 -10
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/types/shared.js +0 -9
- package/dest/vks/verification_key.d.ts +2 -137
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/verification_key.js +5 -126
- package/dest/world-state/genesis_data.d.ts +11 -0
- package/dest/world-state/genesis_data.d.ts.map +1 -0
- package/dest/world-state/genesis_data.js +4 -0
- package/dest/world-state/index.d.ts +2 -1
- package/dest/world-state/index.d.ts.map +1 -1
- package/dest/world-state/index.js +1 -0
- package/dest/world-state/world_state_revision.d.ts +8 -1
- package/dest/world-state/world_state_revision.d.ts.map +1 -1
- package/dest/world-state/world_state_revision.js +7 -1
- package/package.json +8 -8
- package/src/abi/authorization_selector.ts +2 -8
- package/src/abi/encoder.ts +42 -6
- package/src/abi/event_selector.ts +2 -8
- package/src/abi/function_selector.ts +3 -12
- package/src/abi/note_selector.ts +3 -12
- package/src/abi/selector.ts +1 -1
- package/src/avm/revert_code.ts +25 -39
- package/src/aztec-address/index.ts +4 -10
- package/src/block/attestation_info.ts +11 -11
- package/src/block/block_data.ts +20 -4
- package/src/block/block_hash.ts +21 -14
- package/src/block/block_parameter.ts +35 -2
- package/src/block/l2_block_info.ts +8 -6
- package/src/block/l2_block_source.ts +51 -3
- package/src/block/l2_block_stream/interfaces.ts +6 -2
- package/src/block/l2_block_stream/l2_tips_store_base.ts +25 -13
- package/src/block/proposal/attestations_and_signers.ts +32 -17
- package/src/block/test/l2_tips_store_test_suite.ts +9 -2
- package/src/checkpoint/checkpoint.ts +11 -1
- package/src/checkpoint/checkpoint_data.ts +44 -4
- package/src/config/chain-config.ts +9 -4
- package/src/config/sequencer-config.ts +20 -6
- package/src/contract/contract_address.ts +2 -2
- package/src/contract/private_function.ts +3 -1
- package/src/epoch-helpers/index.ts +5 -0
- package/src/gas/README.md +31 -0
- package/src/gas/fee_math.ts +120 -0
- package/src/gas/gas_fees.ts +17 -4
- package/src/gas/gas_settings.ts +65 -12
- package/src/gas/index.ts +1 -0
- package/src/ha-signing/config.ts +5 -2
- package/src/ha-signing/index.ts +3 -1
- package/src/ha-signing/local_config.ts +2 -2
- package/src/ha-signing/types.ts +48 -34
- package/src/hash/hash.ts +27 -0
- package/src/interfaces/archiver.ts +22 -2
- package/src/interfaces/aztec-node-admin.ts +8 -8
- package/src/interfaces/aztec-node-debug.ts +40 -0
- package/src/interfaces/aztec-node.ts +120 -95
- package/src/interfaces/block_response.ts +79 -0
- package/src/interfaces/chain_tips.ts +24 -0
- package/src/interfaces/checkpoint_parameter.ts +22 -0
- package/src/interfaces/checkpoint_response.ts +84 -0
- package/src/interfaces/client.ts +6 -0
- package/src/interfaces/configs.ts +5 -1
- package/src/interfaces/l1_publish_info.ts +40 -0
- package/src/interfaces/merkle_tree_operations.ts +3 -2
- package/src/interfaces/prover-client.ts +2 -5
- package/src/interfaces/server.ts +5 -0
- package/src/interfaces/slasher.ts +0 -6
- package/src/interfaces/validator.ts +20 -8
- package/src/l1-contracts/index.ts +1 -1
- package/src/logs/extended_directional_app_tagging_secret.ts +19 -8
- package/src/logs/log_id.ts +1 -2
- package/src/logs/siloed_tag.ts +8 -9
- package/src/logs/tag.ts +8 -8
- package/src/p2p/block_proposal.ts +96 -36
- package/src/p2p/checkpoint_attestation.ts +20 -29
- package/src/p2p/checkpoint_proposal.ts +88 -71
- package/src/p2p/consensus_payload.ts +50 -28
- package/src/p2p/gossipable.ts +4 -4
- package/src/p2p/signature_utils.ts +110 -25
- package/src/p2p/signed_txs.ts +46 -28
- package/src/parity/parity_base_private_inputs.ts +10 -4
- package/src/parity/parity_public_inputs.ts +9 -2
- package/src/rollup/block_headers_hash.ts +11 -2
- package/src/slashing/index.ts +1 -2
- package/src/slashing/serialization.ts +1 -81
- package/src/slashing/types.ts +3 -35
- package/src/slashing/{tally.ts → votes.ts} +1 -1
- package/src/tests/factories.ts +19 -21
- package/src/tests/mocks.ts +63 -39
- package/src/timetable/index.ts +308 -13
- package/src/trees/nullifier_leaf.ts +4 -0
- package/src/tx/block_header.ts +2 -2
- package/src/tx/fee_provider.ts +10 -0
- package/src/tx/global_variable_builder.ts +2 -3
- package/src/tx/index.ts +1 -0
- package/src/tx/indexed_tx_effect.ts +1 -2
- package/src/tx/profiling.ts +4 -4
- package/src/tx/simulated_tx.ts +6 -2
- package/src/tx/tx.ts +2 -2
- package/src/tx/tx_receipt.ts +11 -14
- package/src/types/shared.ts +0 -10
- package/src/vks/verification_key.ts +5 -184
- package/src/world-state/genesis_data.ts +15 -0
- package/src/world-state/index.ts +1 -0
- package/src/world-state/world_state_revision.ts +9 -1
- package/dest/abi/mocked_keys.d.ts +0 -2
- package/dest/abi/mocked_keys.d.ts.map +0 -1
- package/dest/abi/mocked_keys.js +0 -1
- package/dest/l1-contracts/slash_factory.d.ts +0 -45
- package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
- package/dest/l1-contracts/slash_factory.js +0 -158
- package/dest/slashing/empire.d.ts +0 -31
- package/dest/slashing/empire.d.ts.map +0 -1
- package/dest/slashing/empire.js +0 -87
- package/src/abi/mocked_keys.ts +0 -2
- package/src/l1-contracts/slash_factory.ts +0 -180
- package/src/slashing/empire.ts +0 -104
|
@@ -152,6 +152,12 @@ export declare class Checkpoint {
|
|
|
152
152
|
* checkpoints up to and including this one in the epoch.
|
|
153
153
|
*/
|
|
154
154
|
getCheckpointOutHash(): Fr;
|
|
155
|
+
/**
|
|
156
|
+
* Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
|
|
157
|
+
* Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
|
|
158
|
+
* checkpoints up to and including this one in the epoch.
|
|
159
|
+
*/
|
|
160
|
+
static getCheckpointOutHash(blocks: L2Block[]): Fr;
|
|
155
161
|
getState(): import("../tx/state_reference.js").StateReference;
|
|
156
162
|
toCheckpointInfo(): CheckpointInfo;
|
|
157
163
|
/** Returns stats used for logging */
|
|
@@ -175,4 +181,4 @@ export declare class Checkpoint {
|
|
|
175
181
|
} & Partial<Parameters<typeof CheckpointHeader.random>[0]> & Partial<Parameters<typeof L2Block.random>[1]>): Promise<Checkpoint>;
|
|
176
182
|
}
|
|
177
183
|
export {};
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NoZWNrcG9pbnQvY2hlY2twb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsZ0JBQWdCLEVBRWhCLHFCQUFxQixFQUNyQixVQUFVLEVBQ1gsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBNEMsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxLQUFLLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFN0QscUJBQWEsVUFBVTtJQUVuQiw4REFBOEQ7SUFDdkQsT0FBTyxFQUFFLHNCQUFzQjtJQUN0QyxnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQUMvQixtQ0FBbUM7SUFDNUIsTUFBTSxFQUFFLE9BQU8sRUFBRTtJQUN4QixnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQUMvQix5RkFBeUY7SUFDbEYscUJBQXFCLEVBQUUsTUFBTTtJQVZ0QztJQUNFLDhEQUE4RDtJQUN2RCxPQUFPLEVBQUUsc0JBQXNCO0lBQ3RDLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCO0lBQy9CLG1DQUFtQztJQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFO0lBQ3hCLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCO0lBQy9CLHlGQUF5RjtJQUNsRixxQkFBcUIsR0FBRSxNQUFXLEVBQ3ZDO0lBRUosSUFBSSxJQUFJLElBQUksVUFBVSxDQUVyQjtJQUVELE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FhaEI7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsY0FFckM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsNEZBRTFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFlBQVksY0FRM0M7SUFFTSxRQUFRLDRCQVNkO0lBRU0sWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUcxQjtJQUVNLElBQUksSUFBSSxFQUFFLENBRWhCO0lBRUQ7Ozs7T0FJRztJQUNJLG9CQUFvQixJQUFJLEVBQUUsQ0FFaEM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBR2pEO0lBRU0sUUFBUSxzREFFZDtJQUVNLGdCQUFnQixJQUFJLGNBQWMsQ0FReEM7SUFFRCxxQ0FBcUM7SUFDOUIsUUFBUTs7Ozs7Ozs7OztNQWtCZDtJQUVELE9BQWEsTUFBTSxDQUNqQixnQkFBZ0IsbUJBQXNCLEVBQ3RDLEVBQ0UsU0FBYSxFQUNiLGdCQUFvQixFQUNwQixlQUFlLEVBQ2YscUJBQTBCLEVBQzFCLEdBQUcsT0FBTyxFQUNYLEdBQUU7UUFDRCxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDbkIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDMUIsZUFBZSxDQUFDLEVBQUUsc0JBQXNCLENBQUM7UUFDekMscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDL0IsT0FBTyxDQUFDLEVBQUUsc0JBQXNCLENBQUM7S0FDbEMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FDeEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBTSx1QkE0QnJEO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAEhB,qBAAqB,EACrB,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAA4C,MAAM,6BAA6B,CAAC;AACrG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,KAAK,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;AAE7D,qBAAa,UAAU;IAEnB,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,yFAAyF;IAClF,qBAAqB,EAAE,MAAM;IAVtC;IACE,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,yFAAyF;IAClF,qBAAqB,GAAE,MAAW,EACvC;IAEJ,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAahB;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,cAErC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,4FAE1C;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,cAQ3C;IAEM,QAAQ,4BASd;IAEM,YAAY,IAAI,EAAE,EAAE,CAG1B;IAEM,IAAI,IAAI,EAAE,CAEhB;IAED;;;;OAIG;IACI,oBAAoB,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAEhB,qBAAqB,EACrB,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAA4C,MAAM,6BAA6B,CAAC;AACrG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,KAAK,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;AAE7D,qBAAa,UAAU;IAEnB,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,yFAAyF;IAClF,qBAAqB,EAAE,MAAM;IAVtC;IACE,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,OAAO,EAAE;IACxB,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,yFAAyF;IAClF,qBAAqB,GAAE,MAAW,EACvC;IAEJ,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAahB;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,cAErC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,4FAE1C;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,cAQ3C;IAEM,QAAQ,4BASd;IAEM,YAAY,IAAI,EAAE,EAAE,CAG1B;IAEM,IAAI,IAAI,EAAE,CAEhB;IAED;;;;OAIG;IACI,oBAAoB,IAAI,EAAE,CAEhC;IAED;;;;OAIG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAGjD;IAEM,QAAQ,sDAEd;IAEM,gBAAgB,IAAI,cAAc,CAQxC;IAED,qCAAqC;IAC9B,QAAQ;;;;;;;;;;MAkBd;IAED,OAAa,MAAM,CACjB,gBAAgB,mBAAsB,EACtC,EACE,SAAa,EACb,gBAAoB,EACpB,eAAe,EACf,qBAA0B,EAC1B,GAAG,OAAO,EACX,GAAE;QACD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,OAAO,CAAC,EAAE,sBAAsB,CAAC;KAClC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GACxD,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAM,uBA4BrD;CACF"}
|
|
@@ -70,7 +70,14 @@ export class Checkpoint {
|
|
|
70
70
|
* Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
|
|
71
71
|
* checkpoints up to and including this one in the epoch.
|
|
72
72
|
*/ getCheckpointOutHash() {
|
|
73
|
-
|
|
73
|
+
return Checkpoint.getCheckpointOutHash(this.blocks);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
|
|
77
|
+
* Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
|
|
78
|
+
* checkpoints up to and including this one in the epoch.
|
|
79
|
+
*/ static getCheckpointOutHash(blocks) {
|
|
80
|
+
const msgs = blocks.map((block)=>block.body.txEffects.map((txEffect)=>txEffect.l2ToL1Msgs));
|
|
74
81
|
return computeCheckpointOutHash(msgs);
|
|
75
82
|
}
|
|
76
83
|
getState() {
|
|
@@ -114,6 +121,7 @@ export class Checkpoint {
|
|
|
114
121
|
let lastArchive = previousArchive;
|
|
115
122
|
for(let i = 0; i < numBlocks; i++){
|
|
116
123
|
const block = await L2Block.random(BlockNumber(startBlockNumber + i), {
|
|
124
|
+
checkpointNumber,
|
|
117
125
|
indexWithinCheckpoint: IndexWithinCheckpoint(i),
|
|
118
126
|
...options,
|
|
119
127
|
...lastArchive ? {
|
|
@@ -5,17 +5,85 @@ import { CommitteeAttestation } from '../block/proposal/committee_attestation.js
|
|
|
5
5
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
6
6
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
7
7
|
import { L1PublishedData } from './published_checkpoint.js';
|
|
8
|
-
/**
|
|
9
|
-
export type
|
|
8
|
+
/** Base type for checkpoint data */
|
|
9
|
+
export type CommonCheckpointData = {
|
|
10
10
|
checkpointNumber: CheckpointNumber;
|
|
11
11
|
header: CheckpointHeader;
|
|
12
|
-
archive: AppendOnlyTreeSnapshot;
|
|
13
|
-
checkpointOutHash: Fr;
|
|
14
12
|
startBlock: BlockNumber;
|
|
15
13
|
blockCount: number;
|
|
14
|
+
};
|
|
15
|
+
/** Data stored with checkpoint data after publishing on l1 */
|
|
16
|
+
export type L1EnrichedCheckpointData = {
|
|
16
17
|
attestations: CommitteeAttestation[];
|
|
17
18
|
l1: L1PublishedData;
|
|
18
19
|
};
|
|
20
|
+
/** Data stored alongside checkpoint data in storage */
|
|
21
|
+
export type StorageEnrichedCheckpointData = {
|
|
22
|
+
archive: AppendOnlyTreeSnapshot;
|
|
23
|
+
checkpointOutHash: Fr;
|
|
24
|
+
/** Fee asset price modifier in basis points. Defaults to 0 (no change) when not explicitly set. */
|
|
25
|
+
feeAssetPriceModifier: bigint;
|
|
26
|
+
};
|
|
27
|
+
/** Data stored only with proposed checkpoint data */
|
|
28
|
+
export type ProposedOnlyCheckpointData = {
|
|
29
|
+
totalManaUsed: bigint;
|
|
30
|
+
feeAssetPriceModifier: bigint;
|
|
31
|
+
};
|
|
32
|
+
/** Lightweight checkpoint metadata without full block data. */
|
|
33
|
+
export type CheckpointData = CommonCheckpointData & StorageEnrichedCheckpointData & L1EnrichedCheckpointData;
|
|
34
|
+
/** Input for setting a proposed checkpoint. The archive and checkpointOutHash are computed
|
|
35
|
+
* internally by the block store from the stored blocks. */
|
|
36
|
+
export type ProposedCheckpointInput = CommonCheckpointData & ProposedOnlyCheckpointData;
|
|
37
|
+
/** Full data for a proposed checkpoint (proposed but not yet L1-confirmed).
|
|
38
|
+
* Includes fee-relevant fields used during pipelining to compute the fee header override. */
|
|
39
|
+
export type ProposedCheckpointData = ProposedCheckpointInput & StorageEnrichedCheckpointData;
|
|
40
|
+
export declare const ProposedCheckpointDataSchema: z.ZodObject<{
|
|
41
|
+
checkpointNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, CheckpointNumber, string | number | bigint>;
|
|
42
|
+
header: import("@aztec/foundation/schemas").ZodFor<CheckpointHeader>;
|
|
43
|
+
archive: z.ZodEffects<z.ZodObject<{
|
|
44
|
+
root: z.ZodType<Fr, any, string>;
|
|
45
|
+
nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
|
|
46
|
+
}, "strip", z.ZodTypeAny, {
|
|
47
|
+
root: Fr;
|
|
48
|
+
nextAvailableLeafIndex: number;
|
|
49
|
+
}, {
|
|
50
|
+
root: string;
|
|
51
|
+
nextAvailableLeafIndex: string | number | bigint;
|
|
52
|
+
}>, AppendOnlyTreeSnapshot, {
|
|
53
|
+
root: string;
|
|
54
|
+
nextAvailableLeafIndex: string | number | bigint;
|
|
55
|
+
}>;
|
|
56
|
+
checkpointOutHash: z.ZodType<Fr, any, string>;
|
|
57
|
+
startBlock: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, BlockNumber, string | number | bigint>;
|
|
58
|
+
blockCount: z.ZodNumber;
|
|
59
|
+
totalManaUsed: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
60
|
+
feeAssetPriceModifier: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
61
|
+
}, "strip", z.ZodTypeAny, {
|
|
62
|
+
checkpointNumber: number & {
|
|
63
|
+
_branding: "CheckpointNumber";
|
|
64
|
+
};
|
|
65
|
+
header: CheckpointHeader;
|
|
66
|
+
archive: AppendOnlyTreeSnapshot;
|
|
67
|
+
checkpointOutHash: Fr;
|
|
68
|
+
startBlock: number & {
|
|
69
|
+
_branding: "BlockNumber";
|
|
70
|
+
};
|
|
71
|
+
blockCount: number;
|
|
72
|
+
totalManaUsed: bigint;
|
|
73
|
+
feeAssetPriceModifier: bigint;
|
|
74
|
+
}, {
|
|
75
|
+
checkpointNumber: string | number | bigint;
|
|
76
|
+
header?: any;
|
|
77
|
+
archive: {
|
|
78
|
+
root: string;
|
|
79
|
+
nextAvailableLeafIndex: string | number | bigint;
|
|
80
|
+
};
|
|
81
|
+
checkpointOutHash: string;
|
|
82
|
+
startBlock: string | number | bigint;
|
|
83
|
+
blockCount: number;
|
|
84
|
+
totalManaUsed: string | number | bigint;
|
|
85
|
+
feeAssetPriceModifier: string | number | bigint;
|
|
86
|
+
}>;
|
|
19
87
|
export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
|
|
20
88
|
checkpointNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, CheckpointNumber, string | number | bigint>;
|
|
21
89
|
header: import("@aztec/foundation/schemas").ZodFor<CheckpointHeader>;
|
|
@@ -35,6 +103,7 @@ export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
|
|
|
35
103
|
checkpointOutHash: z.ZodType<Fr, any, string>;
|
|
36
104
|
startBlock: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, BlockNumber, string | number | bigint>;
|
|
37
105
|
blockCount: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
|
|
106
|
+
feeAssetPriceModifier: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
38
107
|
attestations: z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
39
108
|
address: z.ZodType<import("@aztec/foundation/eth-address").EthAddress, any, string>;
|
|
40
109
|
signature: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, `0x${string}`, string>, `0x${string}`, string>, import("../block/proposal/committee_attestation.js").Signature, string>;
|
|
@@ -76,6 +145,7 @@ export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
|
|
|
76
145
|
_branding: "BlockNumber";
|
|
77
146
|
};
|
|
78
147
|
blockCount: number;
|
|
148
|
+
feeAssetPriceModifier: bigint;
|
|
79
149
|
attestations: CommitteeAttestation[];
|
|
80
150
|
l1: L1PublishedData;
|
|
81
151
|
}, {
|
|
@@ -88,6 +158,7 @@ export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
|
|
|
88
158
|
checkpointOutHash: string;
|
|
89
159
|
startBlock: string | number | bigint;
|
|
90
160
|
blockCount: string | number | bigint;
|
|
161
|
+
feeAssetPriceModifier: string | number | bigint;
|
|
91
162
|
attestations: {
|
|
92
163
|
address: string;
|
|
93
164
|
signature: string;
|
|
@@ -107,6 +178,7 @@ export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
|
|
|
107
178
|
checkpointOutHash: string;
|
|
108
179
|
startBlock: string | number | bigint;
|
|
109
180
|
blockCount: string | number | bigint;
|
|
181
|
+
feeAssetPriceModifier: string | number | bigint;
|
|
110
182
|
attestations: {
|
|
111
183
|
address: string;
|
|
112
184
|
signature: string;
|
|
@@ -117,4 +189,4 @@ export declare const CheckpointDataSchema: z.ZodEffects<z.ZodObject<{
|
|
|
117
189
|
blockHash: string;
|
|
118
190
|
};
|
|
119
191
|
}>;
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9kYXRhLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9jaGVja3BvaW50X2RhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFFWCxnQkFBZ0IsRUFFakIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsb0NBQW9DO0FBQ3BDLE1BQU0sTUFBTSxvQkFBb0IsR0FBRztJQUNqQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUNuQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7SUFDekIsVUFBVSxFQUFFLFdBQVcsQ0FBQztJQUN4QixVQUFVLEVBQUUsTUFBTSxDQUFDO0NBQ3BCLENBQUM7QUFFRiw4REFBOEQ7QUFDOUQsTUFBTSxNQUFNLHdCQUF3QixHQUFHO0lBQ3JDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDLEVBQUUsRUFBRSxlQUFlLENBQUM7Q0FDckIsQ0FBQztBQUVGLHVEQUF1RDtBQUN2RCxNQUFNLE1BQU0sNkJBQTZCLEdBQUc7SUFDMUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDO0lBQ2hDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztJQUN0QixtR0FBbUc7SUFDbkcscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0NBQy9CLENBQUM7QUFFRixzREFBc0Q7QUFDdEQsTUFBTSxNQUFNLDBCQUEwQixHQUFHO0lBQ3ZDLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0NBQy9CLENBQUM7QUFFRiwrREFBK0Q7QUFDL0QsTUFBTSxNQUFNLGNBQWMsR0FBRyxvQkFBb0IsR0FBRyw2QkFBNkIsR0FBRyx3QkFBd0IsQ0FBQztBQUU3Rzs0REFDNEQ7QUFDNUQsTUFBTSxNQUFNLHVCQUF1QixHQUFHLG9CQUFvQixHQUFHLDBCQUEwQixDQUFDO0FBRXhGOzhGQUM4RjtBQUM5RixNQUFNLE1BQU0sc0JBQXNCLEdBQUcsdUJBQXVCLEdBQUcsNkJBQTZCLENBQUM7QUFFN0YsZUFBTyxNQUFNLDRCQUE0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQVN2QyxDQUFDO0FBRUgsZUFBTyxNQUFNLG9CQUFvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF3QjlCLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint_data.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_data.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,gBAAgB,EAEjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D
|
|
1
|
+
{"version":3,"file":"checkpoint_data.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_data.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,gBAAgB,EAEjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,oCAAoC;AACpC,MAAM,MAAM,oBAAoB,GAAG;IACjC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,EAAE,EAAE,eAAe,CAAC;CACrB,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,sBAAsB,CAAC;IAChC,iBAAiB,EAAE,EAAE,CAAC;IACtB,mGAAmG;IACnG,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,6BAA6B,GAAG,wBAAwB,CAAC;AAE7G;4DAC4D;AAC5D,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,GAAG,0BAA0B,CAAC;AAExF;8FAC8F;AAC9F,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG,6BAA6B,CAAC;AAE7F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB9B,CAAC"}
|
|
@@ -5,6 +5,16 @@ import { CommitteeAttestation } from '../block/proposal/committee_attestation.js
|
|
|
5
5
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
6
6
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
7
7
|
import { L1PublishedData } from './published_checkpoint.js';
|
|
8
|
+
export const ProposedCheckpointDataSchema = z.object({
|
|
9
|
+
checkpointNumber: CheckpointNumberSchema,
|
|
10
|
+
header: CheckpointHeader.schema,
|
|
11
|
+
archive: AppendOnlyTreeSnapshot.schema,
|
|
12
|
+
checkpointOutHash: schemas.Fr,
|
|
13
|
+
startBlock: BlockNumberSchema,
|
|
14
|
+
blockCount: z.number(),
|
|
15
|
+
totalManaUsed: schemas.BigInt,
|
|
16
|
+
feeAssetPriceModifier: schemas.BigInt
|
|
17
|
+
});
|
|
8
18
|
export const CheckpointDataSchema = z.object({
|
|
9
19
|
checkpointNumber: CheckpointNumberSchema,
|
|
10
20
|
header: CheckpointHeader.schema,
|
|
@@ -12,6 +22,7 @@ export const CheckpointDataSchema = z.object({
|
|
|
12
22
|
checkpointOutHash: schemas.Fr,
|
|
13
23
|
startBlock: BlockNumberSchema,
|
|
14
24
|
blockCount: schemas.Integer,
|
|
25
|
+
feeAssetPriceModifier: schemas.BigInt,
|
|
15
26
|
attestations: z.array(CommitteeAttestation.schema),
|
|
16
27
|
l1: L1PublishedData.schema
|
|
17
28
|
}).transform((obj)=>({
|
|
@@ -21,6 +32,7 @@ export const CheckpointDataSchema = z.object({
|
|
|
21
32
|
checkpointOutHash: obj.checkpointOutHash,
|
|
22
33
|
startBlock: obj.startBlock,
|
|
23
34
|
blockCount: obj.blockCount,
|
|
35
|
+
feeAssetPriceModifier: obj.feeAssetPriceModifier,
|
|
24
36
|
attestations: obj.attestations,
|
|
25
37
|
l1: obj.l1
|
|
26
38
|
}));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
2
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
3
|
export { type SequencerConfig, SequencerConfigSchema } from '../interfaces/configs.js';
|
|
4
4
|
export { type AllowedElement } from '../interfaces/allowed_element.js';
|
|
@@ -16,4 +16,4 @@ export type ChainConfig = {
|
|
|
16
16
|
rollupAddress: EthAddress;
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4tY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NoYWluLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBc0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0QsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkYsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdkUsZUFBTyxNQUFNLGdCQUFnQixFQUFFLFdBSTlCLENBQUM7QUFFRixlQUFPLE1BQU0sbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsV0FBVyxDQXFCL0QsQ0FBQztBQUVGLDJCQUEyQjtBQUMzQixNQUFNLE1BQU0sV0FBVyxHQUFHO0lBQ3hCLHlDQUF5QztJQUN6QyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGlDQUFpQztJQUNqQyxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHVDQUF1QztJQUN2QyxXQUFXLEVBQUU7UUFDWCw0QkFBNEI7UUFDNUIsYUFBYSxFQUFFLFVBQVUsQ0FBQztLQUMzQixDQUFDO0NBQ0gsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-config.d.ts","sourceRoot":"","sources":["../../src/config/chain-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"chain-config.d.ts","sourceRoot":"","sources":["../../src/config/chain-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,eAAO,MAAM,gBAAgB,EAAE,WAI9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,WAAW,CAqB/D,CAAC;AAEF,2BAA2B;AAC3B,MAAM,MAAM,WAAW,GAAG;IACxB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,WAAW,EAAE;QACX,4BAA4B;QAC5B,aAAa,EAAE,UAAU,CAAC;KAC3B,CAAC;CACH,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresses';
|
|
2
|
+
import { numberConfigHelper } from '@aztec/foundation/config';
|
|
2
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
4
|
export { SequencerConfigSchema } from '../interfaces/configs.js';
|
|
4
5
|
export const emptyChainConfig = {
|
|
@@ -11,14 +12,19 @@ export const emptyChainConfig = {
|
|
|
11
12
|
export const chainConfigMappings = {
|
|
12
13
|
l1ChainId: {
|
|
13
14
|
env: 'L1_CHAIN_ID',
|
|
14
|
-
|
|
15
|
-
defaultValue: 31337,
|
|
15
|
+
...numberConfigHelper(31337),
|
|
16
16
|
description: 'The chain ID of the ethereum host.'
|
|
17
17
|
},
|
|
18
18
|
rollupVersion: {
|
|
19
19
|
env: 'ROLLUP_VERSION',
|
|
20
20
|
description: 'The version of the rollup.',
|
|
21
|
-
parseEnv: (val)=>
|
|
21
|
+
parseEnv: (val)=>{
|
|
22
|
+
const parsed = parseInt(val, 10);
|
|
23
|
+
if (!Number.isSafeInteger(parsed)) {
|
|
24
|
+
throw new Error(`Invalid rollup version: ${val}`);
|
|
25
|
+
}
|
|
26
|
+
return parsed;
|
|
27
|
+
}
|
|
22
28
|
},
|
|
23
29
|
l1Contracts: {
|
|
24
30
|
description: 'The deployed L1 contract addresses',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
2
2
|
import type { SequencerConfig } from '../interfaces/configs.js';
|
|
3
3
|
/** Default maximum number of transactions per block. */
|
|
4
4
|
export declare const DEFAULT_MAX_TXS_PER_BLOCK = 32;
|
|
@@ -8,5 +8,5 @@ export declare const DEFAULT_MAX_TXS_PER_BLOCK = 32;
|
|
|
8
8
|
* (like blockDurationMs needed by both p2p and sequencer-client) are defined here
|
|
9
9
|
* to avoid duplication.
|
|
10
10
|
*/
|
|
11
|
-
export declare const sharedSequencerConfigMappings: ConfigMappingsType<Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock'>>;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
export declare const sharedSequencerConfigMappings: ConfigMappingsType<Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock' | 'attestationPropagationTime'>>;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9zZXF1ZW5jZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUl4QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR2hFLHdEQUF3RDtBQUN4RCxlQUFPLE1BQU0seUJBQXlCLEtBQUssQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSw2QkFBNkIsRUFBRSxrQkFBa0IsQ0FDNUQsSUFBSSxDQUNGLGVBQWUsRUFDZixpQkFBaUIsR0FBRywrQkFBK0IsR0FBRyxnQkFBZ0IsR0FBRyw0QkFBNEIsQ0FDdEcsQ0EyQkYsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-config.d.ts","sourceRoot":"","sources":["../../src/config/sequencer-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"sequencer-config.d.ts","sourceRoot":"","sources":["../../src/config/sequencer-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,wDAAwD;AACxD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAC5D,IAAI,CACF,eAAe,EACf,iBAAiB,GAAG,+BAA+B,GAAG,gBAAgB,GAAG,4BAA4B,CACtG,CA2BF,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { floatConfigHelper, numberConfigHelper, optionalNumberConfigHelper } from '@aztec/foundation/config';
|
|
2
|
+
import { DEFAULT_P2P_PROPAGATION_TIME } from '../timetable/index.js';
|
|
1
3
|
/** Default maximum number of transactions per block. */ export const DEFAULT_MAX_TXS_PER_BLOCK = 32;
|
|
2
4
|
/**
|
|
3
5
|
* Partial sequencer config mappings for fields that need to be shared across packages.
|
|
@@ -8,17 +10,22 @@
|
|
|
8
10
|
blockDurationMs: {
|
|
9
11
|
env: 'SEQ_BLOCK_DURATION_MS',
|
|
10
12
|
description: 'Duration per block in milliseconds when building multiple blocks per slot. ' + 'If undefined (default), builds a single block per slot using the full slot duration.',
|
|
11
|
-
|
|
13
|
+
...optionalNumberConfigHelper()
|
|
12
14
|
},
|
|
13
15
|
expectedBlockProposalsPerSlot: {
|
|
14
16
|
env: 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT',
|
|
15
17
|
description: 'Expected number of block proposals per slot for P2P peer scoring. ' + '0 (default) disables block proposal scoring. Set to a positive value to enable.',
|
|
16
|
-
|
|
17
|
-
defaultValue: 0
|
|
18
|
+
...numberConfigHelper(0)
|
|
18
19
|
},
|
|
19
20
|
maxTxsPerBlock: {
|
|
20
21
|
env: 'SEQ_MAX_TX_PER_BLOCK',
|
|
21
22
|
description: 'The maximum number of txs to include in a block.',
|
|
22
|
-
|
|
23
|
+
...optionalNumberConfigHelper()
|
|
24
|
+
},
|
|
25
|
+
attestationPropagationTime: {
|
|
26
|
+
env: 'SEQ_ATTESTATION_PROPAGATION_TIME',
|
|
27
|
+
description: 'How many seconds it takes for proposals and attestations to travel across the p2p layer (one-way).',
|
|
28
|
+
defaultValue: DEFAULT_P2P_PROPAGATION_TIME,
|
|
29
|
+
...floatConfigHelper(DEFAULT_P2P_PROPAGATION_TIME)
|
|
23
30
|
}
|
|
24
31
|
};
|
|
@@ -5,7 +5,7 @@ import type { ContractInstance } from './interfaces/contract_instance.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* Returns the deployment address for a given contract instance.
|
|
7
7
|
* ```
|
|
8
|
-
* salted_initialization_hash = poseidon2(
|
|
8
|
+
* salted_initialization_hash = poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, [salt, initialization_hash, deployer])
|
|
9
9
|
* partial_address = poseidon2(DOM_SEP__PARTIAL_ADDRESS, [contract_class_id, salted_initialization_hash])
|
|
10
10
|
* address = ((poseidon2(DOM_SEP__CONTRACT_ADDRESS_V1, [public_keys_hash, partial_address]) * G) + ivpk_m).x <- the x-coordinate of the address point
|
|
11
11
|
* ```
|
|
@@ -8,7 +8,7 @@ import { computeAddress } from '../keys/index.js';
|
|
|
8
8
|
/**
|
|
9
9
|
* Returns the deployment address for a given contract instance.
|
|
10
10
|
* ```
|
|
11
|
-
* salted_initialization_hash = poseidon2(
|
|
11
|
+
* salted_initialization_hash = poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, [salt, initialization_hash, deployer])
|
|
12
12
|
* partial_address = poseidon2(DOM_SEP__PARTIAL_ADDRESS, [contract_class_id, salted_initialization_hash])
|
|
13
13
|
* address = ((poseidon2(DOM_SEP__CONTRACT_ADDRESS_V1, [public_keys_hash, partial_address]) * G) + ivpk_m).x <- the x-coordinate of the address point
|
|
14
14
|
* ```
|
|
@@ -35,7 +35,7 @@ import { computeAddress } from '../keys/index.js';
|
|
|
35
35
|
instance.salt,
|
|
36
36
|
instance.initializationHash,
|
|
37
37
|
instance.deployer
|
|
38
|
-
], DomainSeparator.
|
|
38
|
+
], DomainSeparator.SALTED_INITIALIZATION_HASH);
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Computes the initialization hash for an instance given its constructor function and arguments.
|
|
@@ -7,4 +7,4 @@ export declare function computePrivateFunctionsTree(fns: PrivateFunction[]): Pro
|
|
|
7
7
|
export declare function computePrivateFunctionsRoot(fns: PrivateFunction[]): Promise<Fr>;
|
|
8
8
|
/** Returns the leaf for a given private function. */
|
|
9
9
|
export declare function computePrivateFunctionLeaf(fn: PrivateFunction): Promise<Buffer>;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9mdW5jdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L3ByaXZhdGVfZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBd0IsTUFBTSx5QkFBeUIsQ0FBQztBQUdoRixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU90RSw0RUFBNEU7QUFDNUUsd0JBQXNCLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBSTdGO0FBRUQsbUZBQW1GO0FBQ25GLHdCQUFzQiwyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsZUFBZSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUlyRjtBQU9ELHFEQUFxRDtBQUNyRCx3QkFBc0IsMEJBQTBCLENBQUMsRUFBRSxFQUFFLGVBQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_function.d.ts","sourceRoot":"","sources":["../../src/contract/private_function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"private_function.d.ts","sourceRoot":"","sources":["../../src/contract/private_function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,yBAAyB,CAAC;AAGhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAOtE,4EAA4E;AAC5E,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAI7F;AAED,mFAAmF;AACnF,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAIrF;AAOD,qDAAqD;AACrD,wBAAsB,0BAA0B,CAAC,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAErF"}
|
|
@@ -2,6 +2,7 @@ import { DomainSeparator, FUNCTION_TREE_HEIGHT } from '@aztec/constants';
|
|
|
2
2
|
import { poseidon2Hash, poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { MerkleTreeCalculator } from '@aztec/foundation/trees';
|
|
5
|
+
import { computeMerkleHash } from '../hash/hash.js';
|
|
5
6
|
// Memoize the merkle tree calculators to avoid re-computing the zero-hash for each level in each call
|
|
6
7
|
let privateFunctionTreeCalculator;
|
|
7
8
|
const PRIVATE_FUNCTION_SIZE = 2;
|
|
@@ -30,10 +31,7 @@ function computePrivateFunctionLeaves(fns) {
|
|
|
30
31
|
async function getPrivateFunctionTreeCalculator() {
|
|
31
32
|
if (!privateFunctionTreeCalculator) {
|
|
32
33
|
const functionTreeZeroLeaf = (await poseidon2Hash(new Array(PRIVATE_FUNCTION_SIZE).fill(0))).toBuffer();
|
|
33
|
-
privateFunctionTreeCalculator = await MerkleTreeCalculator.create(FUNCTION_TREE_HEIGHT, functionTreeZeroLeaf, async (left, right)=>(await
|
|
34
|
-
left,
|
|
35
|
-
right
|
|
36
|
-
])).toBuffer());
|
|
34
|
+
privateFunctionTreeCalculator = await MerkleTreeCalculator.create(FUNCTION_TREE_HEIGHT, functionTreeZeroLeaf, async (left, right)=>(await computeMerkleHash(Fr.fromBuffer(left), Fr.fromBuffer(right))).toBuffer());
|
|
37
35
|
}
|
|
38
36
|
return privateFunctionTreeCalculator;
|
|
39
37
|
}
|
|
@@ -74,6 +74,8 @@ export declare function getProofSubmissionDeadlineEpoch(epochNumber: EpochNumber
|
|
|
74
74
|
* Computed as the start of the given epoch plus the proof submission window.
|
|
75
75
|
*/
|
|
76
76
|
export declare function getProofSubmissionDeadlineTimestamp(epochNumber: EpochNumber, constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'epochDuration' | 'proofSubmissionEpochs'>): bigint;
|
|
77
|
+
/** Computes the quorum size required for a committee (⌊2n/3⌋ + 1). */
|
|
78
|
+
export declare function computeQuorum(committeeSize: number): number;
|
|
77
79
|
/** Returns the timestamp to start building a block for a given L2 slot. Computed as the start timestamp of the slot minus one L1 slot duration. */
|
|
78
80
|
export declare function getSlotStartBuildTimestamp(slotNumber: SlotNumber, constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'ethereumSlotDuration'>): number;
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcG9jaC1oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl4QixNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDN0IscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUM1QixlQUFlLEVBQUUsTUFBTSxDQUFDO0NBQ3pCLENBQUM7QUFFRixlQUFPLE1BQU0sc0JBQXNCLEVBQUUsaUJBU3BDLENBQUM7QUFFRixlQUFPLE1BQU0sdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFXbkMsQ0FBQztBQUVGLGlEQUFpRDtBQUNqRCx3QkFBZ0IsbUJBQW1CLENBQ2pDLElBQUksRUFBRSxVQUFVLEVBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsQ0FBQyxVQUdyRTtBQUVELHFEQUFxRDtBQUNyRCx3QkFBZ0Isa0JBQWtCLENBQ2hDLEVBQUUsRUFBRSxNQUFNLEVBQ1YsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEdBQUcsY0FBYyxDQUFDLEdBQ25FLFVBQVUsQ0FJWjtBQUVELDBGQUEwRjtBQUMxRix3QkFBZ0Isc0JBQXNCLENBQ3BDLFlBQVksRUFBRSxNQUFNLEVBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLHNCQUFzQixDQUFDLEdBQzNFLE1BQU0sQ0FLUjtBQUVELHdFQUF3RTtBQUN4RSx3QkFBZ0IsK0JBQStCLENBQzdDLElBQUksRUFBRSxVQUFVLEVBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxHQUM1RixNQUFNLENBRVI7QUFFRCxzRkFBc0Y7QUFDdEYsd0JBQWdCLG9CQUFvQixDQUNsQyxrQkFBa0IsRUFBRSxNQUFNLEVBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxHQUM1RixVQUFVLENBR1o7QUFFRCxzREFBc0Q7QUFDdEQsd0JBQWdCLHlCQUF5QixDQUN2QyxFQUFFLEVBQUUsTUFBTSxFQUNWLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FDckYsV0FBVyxDQUViO0FBRUQsaURBQWlEO0FBQ2pELHdCQUFnQixjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxHQUFHLFdBQVcsQ0FFakg7QUFFRCwwRUFBMEU7QUFDMUUsd0JBQWdCLG9CQUFvQixDQUNsQyxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxHQUNsRCxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FHMUI7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IseUJBQXlCLENBQ3ZDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxlQUFlLEdBQUcsc0JBQXNCLENBQUMsR0FDOUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBU2xCO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IseUJBQXlCLENBQ3ZDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxHQUFHLGNBQWMsR0FBRyxlQUFlLENBQUMsVUFJdkY7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IsK0JBQStCLENBQzdDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsdUJBQXVCLENBQUMsR0FDMUQsV0FBVyxDQUViO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLG1DQUFtQyxDQUNqRCxXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsZUFBZSxHQUFHLHVCQUF1QixDQUFDLFVBT2pIO0FBRUQsMEVBQXNFO0FBQ3RFLHdCQUFnQixhQUFhLENBQUMsYUFBYSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBRTNEO0FBRUQsbUpBQW1KO0FBQ25KLHdCQUFnQiwwQkFBMEIsQ0FDeEMsVUFBVSxFQUFFLFVBQVUsRUFDdEIsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEdBQUcsY0FBYyxHQUFHLHNCQUFzQixDQUFDLEdBQzVGLE1BQU0sQ0FFUiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/epoch-helpers/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/epoch-helpers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,6 +86,9 @@ export const L1RollupConstantsSchema = zodFor()(z.object({
|
|
|
86
86
|
const [deadlineSlot] = getSlotRangeForEpoch(deadlineEpoch, constants);
|
|
87
87
|
return getTimestampForSlot(deadlineSlot, constants);
|
|
88
88
|
}
|
|
89
|
+
/** Computes the quorum size required for a committee (⌊2n/3⌋ + 1). */ export function computeQuorum(committeeSize) {
|
|
90
|
+
return Math.floor(committeeSize * 2 / 3) + 1;
|
|
91
|
+
}
|
|
89
92
|
/** Returns the timestamp to start building a block for a given L2 slot. Computed as the start timestamp of the slot minus one L1 slot duration. */ export function getSlotStartBuildTimestamp(slotNumber, constants) {
|
|
90
93
|
return Number(constants.l1GenesisTime) + slotNumber * constants.slotDuration - constants.ethereumSlotDuration;
|
|
91
94
|
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript port of fee computation logic from FeeLib.sol.
|
|
3
|
+
* Used to predict worst-case min fees over a future window of L2 slots.
|
|
4
|
+
*/
|
|
5
|
+
export declare const MINIMUM_CONGESTION_MULTIPLIER = 1000000000n;
|
|
6
|
+
export declare const L1_GAS_PER_CHECKPOINT_PROPOSED = 300000n;
|
|
7
|
+
export declare const L1_GAS_PER_EPOCH_VERIFIED = 3600000n;
|
|
8
|
+
export declare const BLOBS_PER_CHECKPOINT = 3n;
|
|
9
|
+
export declare const BLOB_GAS_PER_BLOB: bigint;
|
|
10
|
+
export declare const MAGIC_CONGESTION_VALUE_MULTIPLIER = 854700854n;
|
|
11
|
+
export declare const MAGIC_CONGESTION_VALUE_DIVISOR = 100000000n;
|
|
12
|
+
export declare const ETH_PER_FEE_ASSET_PRECISION = 1000000000000n;
|
|
13
|
+
export declare const MIN_ETH_PER_FEE_ASSET = 100n;
|
|
14
|
+
/** Number of L2 slots of lag before new oracle values activate. Defines the prediction window. */
|
|
15
|
+
export declare const FEE_ORACLE_LAG = 2;
|
|
16
|
+
/** Expected mana usage per checkpoint for fee prediction. */
|
|
17
|
+
export declare enum ManaUsageEstimate {
|
|
18
|
+
/** No usage — fees decrease as congestion drains. */
|
|
19
|
+
None = "none",
|
|
20
|
+
/** Target usage — congestion stays roughly flat (steady state). */
|
|
21
|
+
Target = "target",
|
|
22
|
+
/** Limit usage (2x target) — worst case, congestion grows maximally. */
|
|
23
|
+
Limit = "limit"
|
|
24
|
+
}
|
|
25
|
+
/** Parameters for computing the mana min fee at a given point in time. */
|
|
26
|
+
export type ManaMinFeeParams = {
|
|
27
|
+
l1BaseFee: bigint;
|
|
28
|
+
l1BlobFee: bigint;
|
|
29
|
+
manaTarget: bigint;
|
|
30
|
+
epochDuration: bigint;
|
|
31
|
+
provingCostPerManaEth: bigint;
|
|
32
|
+
excessMana: bigint;
|
|
33
|
+
ethPerFeeAsset: bigint;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Taylor series approximation of `factor * e^(numerator/denominator)`.
|
|
37
|
+
* Direct port of FeeLib.sol fakeExponential (EIP-4844 style).
|
|
38
|
+
*/
|
|
39
|
+
export declare function fakeExponential(factor: bigint, numerator: bigint, denominator: bigint): bigint;
|
|
40
|
+
/** Computes excess mana for the next checkpoint, clamped to zero. */
|
|
41
|
+
export declare function computeExcessMana(prevExcessMana: bigint, prevManaUsed: bigint, manaTarget: bigint): bigint;
|
|
42
|
+
/** Computes the congestion multiplier from excess mana (1e9 = no congestion). */
|
|
43
|
+
export declare function computeCongestionMultiplier(excessMana: bigint, manaTarget: bigint): bigint;
|
|
44
|
+
/**
|
|
45
|
+
* Computes the full mana min fee (sequencer + prover + congestion) in fee asset terms.
|
|
46
|
+
* Mirrors FeeLib.getManaMinFeeComponentsAt + summedMinFee.
|
|
47
|
+
*/
|
|
48
|
+
export declare function computeManaMinFee(params: ManaMinFeeParams): bigint;
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX21hdGguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYXMvZmVlX21hdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsZUFBTyxNQUFNLDZCQUE2QixjQUFpQixDQUFDO0FBQzVELGVBQU8sTUFBTSw4QkFBOEIsVUFBVyxDQUFDO0FBQ3ZELGVBQU8sTUFBTSx5QkFBeUIsV0FBYSxDQUFDO0FBQ3BELGVBQU8sTUFBTSxvQkFBb0IsS0FBSyxDQUFDO0FBQ3ZDLGVBQU8sTUFBTSxpQkFBaUIsUUFBWSxDQUFDO0FBQzNDLGVBQU8sTUFBTSxpQ0FBaUMsYUFBZSxDQUFDO0FBQzlELGVBQU8sTUFBTSw4QkFBOEIsYUFBZSxDQUFDO0FBQzNELGVBQU8sTUFBTSwyQkFBMkIsaUJBQXFCLENBQUM7QUFDOUQsZUFBTyxNQUFNLHFCQUFxQixPQUFPLENBQUM7QUFFMUMsa0dBQWtHO0FBQ2xHLGVBQU8sTUFBTSxjQUFjLElBQUksQ0FBQztBQUVoQyw2REFBNkQ7QUFDN0Qsb0JBQVksaUJBQWlCO0lBQzNCLHVEQUFxRDtJQUNyRCxJQUFJLFNBQVM7SUFDYixxRUFBbUU7SUFDbkUsTUFBTSxXQUFXO0lBQ2pCLDBFQUF3RTtJQUN4RSxLQUFLLFVBQVU7Q0FDaEI7QUFFRCwwRUFBMEU7QUFDMUUsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLFVBQVUsRUFBRSxNQUFNLENBQUM7SUFDbkIsY0FBYyxFQUFFLE1BQU0sQ0FBQztDQUN4QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBVTlGO0FBRUQscUVBQXFFO0FBQ3JFLHdCQUFnQixpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBRzFHO0FBRUQsaUZBQWlGO0FBQ2pGLHdCQUFnQiwyQkFBMkIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUkxRjtBQWVEOzs7R0FHRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEdBQUcsTUFBTSxDQWlDbEUifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fee_math.d.ts","sourceRoot":"","sources":["../../src/gas/fee_math.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,6BAA6B,cAAiB,CAAC;AAC5D,eAAO,MAAM,8BAA8B,UAAW,CAAC;AACvD,eAAO,MAAM,yBAAyB,WAAa,CAAC;AACpD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,iBAAiB,QAAY,CAAC;AAC3C,eAAO,MAAM,iCAAiC,aAAe,CAAC;AAC9D,eAAO,MAAM,8BAA8B,aAAe,CAAC;AAC3D,eAAO,MAAM,2BAA2B,iBAAqB,CAAC;AAC9D,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,kGAAkG;AAClG,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,6DAA6D;AAC7D,oBAAY,iBAAiB;IAC3B,uDAAqD;IACrD,IAAI,SAAS;IACb,qEAAmE;IACnE,MAAM,WAAW;IACjB,0EAAwE;IACxE,KAAK,UAAU;CAChB;AAED,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAU9F;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAG1G;AAED,iFAAiF;AACjF,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAI1F;AAeD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAiClE"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript port of fee computation logic from FeeLib.sol.
|
|
3
|
+
* Used to predict worst-case min fees over a future window of L2 slots.
|
|
4
|
+
*/ // Constants matching FeeLib.sol
|
|
5
|
+
export const MINIMUM_CONGESTION_MULTIPLIER = 1_000_000_000n;
|
|
6
|
+
export const L1_GAS_PER_CHECKPOINT_PROPOSED = 300_000n;
|
|
7
|
+
export const L1_GAS_PER_EPOCH_VERIFIED = 3_600_000n;
|
|
8
|
+
export const BLOBS_PER_CHECKPOINT = 3n;
|
|
9
|
+
export const BLOB_GAS_PER_BLOB = 2n ** 17n;
|
|
10
|
+
export const MAGIC_CONGESTION_VALUE_MULTIPLIER = 854_700_854n;
|
|
11
|
+
export const MAGIC_CONGESTION_VALUE_DIVISOR = 100_000_000n;
|
|
12
|
+
export const ETH_PER_FEE_ASSET_PRECISION = 1_000_000_000_000n;
|
|
13
|
+
export const MIN_ETH_PER_FEE_ASSET = 100n;
|
|
14
|
+
/** Number of L2 slots of lag before new oracle values activate. Defines the prediction window. */ export const FEE_ORACLE_LAG = 2;
|
|
15
|
+
/** Expected mana usage per checkpoint for fee prediction. */ export var ManaUsageEstimate = /*#__PURE__*/ function(ManaUsageEstimate) {
|
|
16
|
+
/** No usage — fees decrease as congestion drains. */ ManaUsageEstimate["None"] = "none";
|
|
17
|
+
/** Target usage — congestion stays roughly flat (steady state). */ ManaUsageEstimate["Target"] = "target";
|
|
18
|
+
/** Limit usage (2x target) — worst case, congestion grows maximally. */ ManaUsageEstimate["Limit"] = "limit";
|
|
19
|
+
return ManaUsageEstimate;
|
|
20
|
+
}({});
|
|
21
|
+
/**
|
|
22
|
+
* Taylor series approximation of `factor * e^(numerator/denominator)`.
|
|
23
|
+
* Direct port of FeeLib.sol fakeExponential (EIP-4844 style).
|
|
24
|
+
*/ export function fakeExponential(factor, numerator, denominator) {
|
|
25
|
+
let i = 1n;
|
|
26
|
+
let output = 0n;
|
|
27
|
+
let numeratorAccumulator = factor * denominator;
|
|
28
|
+
while(numeratorAccumulator > 0n){
|
|
29
|
+
output += numeratorAccumulator;
|
|
30
|
+
numeratorAccumulator = numeratorAccumulator * numerator / (denominator * i);
|
|
31
|
+
i += 1n;
|
|
32
|
+
}
|
|
33
|
+
return output / denominator;
|
|
34
|
+
}
|
|
35
|
+
/** Computes excess mana for the next checkpoint, clamped to zero. */ export function computeExcessMana(prevExcessMana, prevManaUsed, manaTarget) {
|
|
36
|
+
const sum = prevExcessMana + prevManaUsed;
|
|
37
|
+
return sum > manaTarget ? sum - manaTarget : 0n;
|
|
38
|
+
}
|
|
39
|
+
/** Computes the congestion multiplier from excess mana (1e9 = no congestion). */ export function computeCongestionMultiplier(excessMana, manaTarget) {
|
|
40
|
+
const denominator = manaTarget * MAGIC_CONGESTION_VALUE_MULTIPLIER / MAGIC_CONGESTION_VALUE_DIVISOR;
|
|
41
|
+
const cappedNumerator = excessMana < denominator * 100n ? excessMana : denominator * 100n;
|
|
42
|
+
return fakeExponential(MINIMUM_CONGESTION_MULTIPLIER, cappedNumerator, denominator);
|
|
43
|
+
}
|
|
44
|
+
/** Ceiling division for positive bigints. */ function ceilDiv(a, b) {
|
|
45
|
+
return (a + b - 1n) / b;
|
|
46
|
+
}
|
|
47
|
+
/** Converts an ETH value to fee asset value using ethPerFeeAsset (1e12 precision). */ function toFeeAsset(ethValue, ethPerFeeAsset) {
|
|
48
|
+
if (ethPerFeeAsset === 0n) {
|
|
49
|
+
return 0n;
|
|
50
|
+
}
|
|
51
|
+
return ceilDiv(ethValue * ETH_PER_FEE_ASSET_PRECISION, ethPerFeeAsset);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Computes the full mana min fee (sequencer + prover + congestion) in fee asset terms.
|
|
55
|
+
* Mirrors FeeLib.getManaMinFeeComponentsAt + summedMinFee.
|
|
56
|
+
*/ export function computeManaMinFee(params) {
|
|
57
|
+
const { l1BaseFee, l1BlobFee, manaTarget, epochDuration, provingCostPerManaEth, excessMana, ethPerFeeAsset } = params;
|
|
58
|
+
if (manaTarget === 0n) {
|
|
59
|
+
return 0n;
|
|
60
|
+
}
|
|
61
|
+
// Sequencer cost per mana (in ETH)
|
|
62
|
+
const ethUsed = L1_GAS_PER_CHECKPOINT_PROPOSED * l1BaseFee + BLOBS_PER_CHECKPOINT * BLOB_GAS_PER_BLOB * l1BlobFee;
|
|
63
|
+
const sequencerCostEth = ceilDiv(ethUsed, manaTarget);
|
|
64
|
+
// Prover cost per mana (in ETH): L1 verification gas + governance-set proving cost
|
|
65
|
+
const proverCostEth = ceilDiv(ceilDiv(L1_GAS_PER_EPOCH_VERIFIED * l1BaseFee, epochDuration), manaTarget) + provingCostPerManaEth;
|
|
66
|
+
// Total base cost in ETH (congestion is computed on this)
|
|
67
|
+
const totalEth = sequencerCostEth + proverCostEth;
|
|
68
|
+
// Congestion multiplier and cost (in ETH)
|
|
69
|
+
const congestionMul = computeCongestionMultiplier(excessMana, manaTarget);
|
|
70
|
+
const congestionCostEth = totalEth * congestionMul / MINIMUM_CONGESTION_MULTIPLIER - totalEth;
|
|
71
|
+
// Convert all components to fee asset
|
|
72
|
+
const clampedEthPerFeeAsset = ethPerFeeAsset < MIN_ETH_PER_FEE_ASSET ? MIN_ETH_PER_FEE_ASSET : ethPerFeeAsset;
|
|
73
|
+
const sequencerCost = toFeeAsset(sequencerCostEth, clampedEthPerFeeAsset);
|
|
74
|
+
const proverCost = toFeeAsset(proverCostEth, clampedEthPerFeeAsset);
|
|
75
|
+
const congestionCost = toFeeAsset(congestionCostEth, clampedEthPerFeeAsset);
|
|
76
|
+
const total = sequencerCost + proverCost + congestionCost;
|
|
77
|
+
// Cap at uint128 max (matching FeeLib.summedMinFee)
|
|
78
|
+
const UINT128_MAX = (1n << 128n) - 1n;
|
|
79
|
+
return total < UINT128_MAX ? total : UINT128_MAX;
|
|
80
|
+
}
|