@aztec/stdlib 0.0.1-commit.2ed92850 → 0.0.1-commit.43597cc1
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/function_call.d.ts +39 -9
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +20 -3
- package/dest/block/block_hash.d.ts +16 -19
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +21 -34
- package/dest/block/block_parameter.d.ts +4 -4
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +2 -2
- package/dest/block/in_block.d.ts +9 -9
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/in_block.js +5 -5
- package/dest/block/l2_block.d.ts +3 -2
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +2 -3
- package/dest/block/l2_block_source.d.ts +5 -4
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/config/index.d.ts +2 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/config/sequencer-config.d.ts +10 -0
- package/dest/config/sequencer-config.d.ts.map +1 -0
- package/dest/config/sequencer-config.js +12 -0
- package/dest/contract/contract_address.js +1 -1
- package/dest/contract/contract_class_id.d.ts +1 -1
- package/dest/contract/contract_class_id.js +1 -1
- package/dest/contract/private_function.js +1 -1
- package/dest/contract/private_function_membership_proof.d.ts +1 -1
- package/dest/contract/private_function_membership_proof.js +1 -1
- package/dest/database-version/database_version.d.ts +58 -0
- package/dest/database-version/database_version.d.ts.map +1 -0
- package/dest/database-version/database_version.js +69 -0
- package/dest/database-version/version_manager.d.ts +2 -50
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +1 -66
- package/dest/epoch-helpers/index.d.ts +7 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +8 -2
- package/dest/hash/hash.js +2 -2
- package/dest/hash/map_slot.d.ts +1 -1
- package/dest/hash/map_slot.d.ts.map +1 -1
- package/dest/hash/map_slot.js +4 -3
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +4 -3
- package/dest/interfaces/aztec-node-admin.d.ts +11 -2
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +3 -1
- package/dest/interfaces/aztec-node.d.ts +33 -54
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +6 -10
- package/dest/interfaces/block-builder.d.ts +10 -4
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +7 -0
- package/dest/interfaces/get_logs_response.d.ts +15 -8
- package/dest/interfaces/get_logs_response.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +2 -2
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/prover-broker.d.ts +16 -1
- package/dest/interfaces/prover-broker.d.ts.map +1 -1
- package/dest/interfaces/prover-broker.js +4 -1
- package/dest/interfaces/prover-client.d.ts +6 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +5 -0
- package/dest/interfaces/proving-job.d.ts +200 -200
- package/dest/interfaces/slasher.d.ts +5 -1
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +1 -0
- package/dest/interfaces/validator.d.ts +38 -3
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +1 -0
- package/dest/keys/derivation.d.ts +3 -3
- package/dest/keys/derivation.js +8 -8
- package/dest/keys/key_types.d.ts +1 -1
- package/dest/keys/utils.d.ts +1 -1
- package/dest/keys/utils.d.ts.map +1 -1
- package/dest/keys/utils.js +7 -3
- package/dest/l1-contracts/slash_factory.d.ts +1 -1
- package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
- package/dest/l1-contracts/slash_factory.js +1 -0
- package/dest/logs/extended_public_log.d.ts +13 -7
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/log_id.d.ts +17 -14
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +20 -17
- package/dest/logs/siloed_tag.d.ts +1 -1
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +4 -3
- package/dest/messaging/l2_to_l1_membership.d.ts +2 -2
- package/dest/messaging/l2_to_l1_membership.js +3 -3
- package/dest/p2p/block_proposal.d.ts +10 -3
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.d.ts +17 -3
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +9 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +3 -3
- package/dest/slashing/empire.d.ts +1 -1
- package/dest/slashing/empire.d.ts.map +1 -1
- package/dest/slashing/empire.js +1 -0
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +3 -0
- package/dest/slashing/tally.d.ts +2 -1
- package/dest/slashing/tally.d.ts.map +1 -1
- package/dest/slashing/tally.js +6 -2
- package/dest/slashing/types.d.ts +5 -3
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +7 -1
- package/dest/stats/stats.d.ts +1 -3
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.js +3 -3
- package/dest/tests/mocks.d.ts +6 -2
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +4 -3
- package/dest/timetable/index.d.ts +37 -0
- package/dest/timetable/index.d.ts.map +1 -0
- package/dest/timetable/index.js +39 -0
- package/dest/tx/block_header.d.ts +3 -3
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +3 -3
- package/dest/tx/in_tx.d.ts +3 -3
- package/dest/tx/indexed_tx_effect.d.ts +5 -5
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +3 -2
- package/dest/tx/tx_receipt.d.ts +5 -5
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +2 -2
- package/package.json +24 -12
- package/src/abi/function_call.ts +25 -3
- package/src/block/block_hash.ts +25 -50
- package/src/block/block_parameter.ts +3 -3
- package/src/block/in_block.ts +6 -6
- package/src/block/l2_block.ts +3 -3
- package/src/block/l2_block_source.ts +4 -3
- package/src/config/index.ts +1 -0
- package/src/config/sequencer-config.ts +19 -0
- package/src/contract/contract_address.ts +1 -1
- package/src/contract/contract_class_id.ts +1 -1
- package/src/contract/private_function.ts +1 -1
- package/src/contract/private_function_membership_proof.ts +1 -1
- package/src/database-version/database_version.ts +87 -0
- package/src/database-version/version_manager.ts +1 -77
- package/src/epoch-helpers/index.ts +12 -0
- package/src/hash/hash.ts +2 -2
- package/src/hash/map_slot.ts +3 -2
- package/src/interfaces/archiver.ts +4 -3
- package/src/interfaces/aztec-node-admin.ts +3 -2
- package/src/interfaces/aztec-node.ts +42 -93
- package/src/interfaces/block-builder.ts +12 -2
- package/src/interfaces/p2p.ts +1 -1
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +7 -0
- package/src/interfaces/slasher.ts +2 -0
- package/src/interfaces/validator.ts +3 -3
- package/src/keys/derivation.ts +8 -8
- package/src/keys/key_types.ts +1 -1
- package/src/keys/utils.ts +7 -3
- package/src/l1-contracts/slash_factory.ts +1 -0
- package/src/logs/log_id.ts +22 -18
- package/src/logs/siloed_tag.ts +3 -2
- package/src/messaging/l2_to_l1_membership.ts +3 -3
- package/src/p2p/block_proposal.ts +9 -2
- package/src/p2p/checkpoint_proposal.ts +19 -2
- package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
- package/src/rollup/root_rollup_public_inputs.ts +7 -7
- package/src/slashing/empire.ts +2 -1
- package/src/slashing/helpers.ts +4 -0
- package/src/slashing/tally.ts +8 -2
- package/src/slashing/types.ts +7 -0
- package/src/stats/stats.ts +0 -2
- package/src/tests/factories.ts +5 -5
- package/src/tests/mocks.ts +6 -4
- package/src/timetable/index.ts +66 -0
- package/src/tx/block_header.ts +6 -6
- package/src/tx/indexed_tx_effect.ts +3 -2
- package/src/tx/tx_receipt.ts +4 -4
- package/dest/database-version/index.d.ts +0 -2
- package/dest/database-version/index.d.ts.map +0 -1
- package/dest/database-version/index.js +0 -1
- package/src/database-version/index.ts +0 -1
package/dest/slashing/helpers.js
CHANGED
|
@@ -46,6 +46,8 @@ import { OffenseType } from './types.js';
|
|
|
46
46
|
return config.slashAttestDescendantOfInvalidPenalty;
|
|
47
47
|
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
48
48
|
return config.slashBroadcastedInvalidBlockPenalty;
|
|
49
|
+
case OffenseType.DUPLICATE_PROPOSAL:
|
|
50
|
+
return config.slashDuplicateProposalPenalty;
|
|
49
51
|
case OffenseType.UNKNOWN:
|
|
50
52
|
return config.slashUnknownPenalty;
|
|
51
53
|
default:
|
|
@@ -59,6 +61,7 @@ import { OffenseType } from './types.js';
|
|
|
59
61
|
switch(offense){
|
|
60
62
|
case OffenseType.ATTESTED_DESCENDANT_OF_INVALID:
|
|
61
63
|
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
64
|
+
case OffenseType.DUPLICATE_PROPOSAL:
|
|
62
65
|
case OffenseType.PROPOSED_INCORRECT_ATTESTATIONS:
|
|
63
66
|
case OffenseType.PROPOSED_INSUFFICIENT_ATTESTATIONS:
|
|
64
67
|
return 'slot';
|
package/dest/slashing/tally.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ import type { Offense, ValidatorSlashVote } from './types.js';
|
|
|
12
12
|
export declare function getSlashConsensusVotesFromOffenses(offenses: PartialBy<Offense, 'epochOrSlot'>[], committees: EthAddress[][], epochsForCommittees: bigint[], settings: {
|
|
13
13
|
slashingAmounts: [bigint, bigint, bigint];
|
|
14
14
|
epochDuration: number;
|
|
15
|
+
targetCommitteeSize: number;
|
|
15
16
|
}): ValidatorSlashVote[];
|
|
16
17
|
/**
|
|
17
18
|
* Encodes a set of slash votes into a Buffer for use in a consensus slashing vote transaction.
|
|
@@ -20,4 +21,4 @@ export declare function getSlashConsensusVotesFromOffenses(offenses: PartialBy<O
|
|
|
20
21
|
* @returns A Buffer containing the encoded slash votes
|
|
21
22
|
*/
|
|
22
23
|
export declare function encodeSlashConsensusVotes(votes: ValidatorSlashVote[]): Buffer;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFsbHkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zbGFzaGluZy90YWxseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0Isa0NBQWtDLENBQ2hELFFBQVEsRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQzdDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUMxQixtQkFBbUIsRUFBRSxNQUFNLEVBQUUsRUFDN0IsUUFBUSxFQUFFO0lBQ1IsZUFBZSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxQyxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztDQUM3QixHQUNBLGtCQUFrQixFQUFFLENBK0J0QjtBQWVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxHQUFHLE1BQU0sQ0FlN0UifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tally.d.ts","sourceRoot":"","sources":["../../src/slashing/tally.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tally.d.ts","sourceRoot":"","sources":["../../src/slashing/tally.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,EAC7C,UAAU,EAAE,UAAU,EAAE,EAAE,EAC1B,mBAAmB,EAAE,MAAM,EAAE,EAC7B,QAAQ,EAAE;IACR,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GACA,kBAAkB,EAAE,CA+BtB;AAeD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAe7E"}
|
package/dest/slashing/tally.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { sumBigint } from '@aztec/foundation/bigint';
|
|
2
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
2
3
|
import { getEpochForOffense } from './helpers.js';
|
|
3
4
|
/**
|
|
4
5
|
* Creates a consensus-slash vote for a given set of committees based on a set of Offenses
|
|
@@ -8,13 +9,15 @@ import { getEpochForOffense } from './helpers.js';
|
|
|
8
9
|
* @param settings - Settings including slashingAmounts and optional validator override lists
|
|
9
10
|
* @returns Array of ValidatorSlashVote, where each vote is how many slash units the validator in that position should be slashed
|
|
10
11
|
*/ export function getSlashConsensusVotesFromOffenses(offenses, committees, epochsForCommittees, settings) {
|
|
11
|
-
const { slashingAmounts } = settings;
|
|
12
|
+
const { slashingAmounts, targetCommitteeSize } = settings;
|
|
12
13
|
if (committees.length !== epochsForCommittees.length) {
|
|
13
14
|
throw new Error('committees and epochsForCommittees must have the same length');
|
|
14
15
|
}
|
|
15
16
|
const votes = committees.flatMap((committee, committeeIndex)=>{
|
|
16
17
|
const committeeEpoch = epochsForCommittees[committeeIndex];
|
|
17
|
-
|
|
18
|
+
// Map over actual committee members, then pad to targetCommitteeSize.
|
|
19
|
+
// Padding handles cases where committees may be empty (e.g., when there aren't enough validators to fill the committee size during network startup).
|
|
20
|
+
const votes = committee.map((validator)=>{
|
|
18
21
|
// Find offenses for this validator in this specific epoch.
|
|
19
22
|
// If an offense has no epoch, it is considered for all epochs due to a slashAlways setting.
|
|
20
23
|
const validatorOffenses = offenses.filter((o)=>o.validator.equals(validator) && (o.epochOrSlot === undefined || getEpochForOffense(o, settings) === committeeEpoch));
|
|
@@ -23,6 +26,7 @@ import { getEpochForOffense } from './helpers.js';
|
|
|
23
26
|
const slashUnits = getSlashUnitsForAmount(slashAmount, slashingAmounts);
|
|
24
27
|
return Number(slashUnits);
|
|
25
28
|
});
|
|
29
|
+
return padArrayEnd(votes, 0, targetCommitteeSize);
|
|
26
30
|
});
|
|
27
31
|
return votes;
|
|
28
32
|
}
|
package/dest/slashing/types.d.ts
CHANGED
|
@@ -15,9 +15,11 @@ export declare enum OffenseType {
|
|
|
15
15
|
/** A proposer pushed to L1 a block with incorrect committee attestations (ie signature from a non-committee member) */
|
|
16
16
|
PROPOSED_INCORRECT_ATTESTATIONS = 6,
|
|
17
17
|
/** A committee member attested to a block that was built as a descendent of an invalid block (as in a block with invalid attestations) */
|
|
18
|
-
ATTESTED_DESCENDANT_OF_INVALID = 7
|
|
18
|
+
ATTESTED_DESCENDANT_OF_INVALID = 7,
|
|
19
|
+
/** A proposer sent duplicate proposals for the same position (slot, indexWithinCheckpoint for blocks or slot for checkpoints) */
|
|
20
|
+
DUPLICATE_PROPOSAL = 8
|
|
19
21
|
}
|
|
20
|
-
export declare function getOffenseTypeName(offense: OffenseType): "attested_descendant_of_invalid" | "broadcasted_invalid_block_proposal" | "data_withholding" | "inactivity" | "proposed_incorrect_attestations" | "proposed_insufficient_attestations" | "unknown" | "valid_epoch_pruned";
|
|
22
|
+
export declare function getOffenseTypeName(offense: OffenseType): "attested_descendant_of_invalid" | "broadcasted_invalid_block_proposal" | "data_withholding" | "duplicate_proposal" | "inactivity" | "proposed_incorrect_attestations" | "proposed_insufficient_attestations" | "unknown" | "valid_epoch_pruned";
|
|
21
23
|
export declare const OffenseTypeSchema: z.ZodNativeEnum<typeof OffenseType>;
|
|
22
24
|
export declare const OffenseToBigInt: Record<OffenseType, bigint>;
|
|
23
25
|
export declare function bigIntToOffense(offense: bigint): OffenseType;
|
|
@@ -158,4 +160,4 @@ export type ProposerSlashAction =
|
|
|
158
160
|
round: bigint;
|
|
159
161
|
};
|
|
160
162
|
export type ProposerSlashActionType = ProposerSlashAction['type'];
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zbGFzaGluZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0QsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl4QixvQkFBWSxXQUFXO0lBQ3JCLE9BQU8sSUFBSTtJQUNYLHVGQUF1RjtJQUN2RixnQkFBZ0IsSUFBSTtJQUNwQiwyRUFBMkU7SUFDM0Usa0JBQWtCLElBQUk7SUFDdEIsdUZBQXVGO0lBQ3ZGLFVBQVUsSUFBSTtJQUNkLHNGQUFzRjtJQUN0RixrQ0FBa0MsSUFBSTtJQUN0QywrRUFBK0U7SUFDL0Usa0NBQWtDLElBQUk7SUFDdEMsdUhBQXVIO0lBQ3ZILCtCQUErQixJQUFJO0lBQ25DLDBJQUEwSTtJQUMxSSw4QkFBOEIsSUFBSTtJQUNsQyxpSUFBaUk7SUFDakksa0JBQWtCLElBQUk7Q0FDdkI7QUFFRCx3QkFBZ0Isa0JBQWtCLENBQUMsT0FBTyxFQUFFLFdBQVcsb1BBdUJ0RDtBQUVELGVBQU8sTUFBTSxpQkFBaUIscUNBQTRCLENBQUM7QUFFM0QsZUFBTyxNQUFNLGVBQWUsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FVdkQsQ0FBQztBQUVGLHdCQUFnQixlQUFlLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxXQUFXLENBdUI1RDtBQUVELE1BQU0sTUFBTSxPQUFPLEdBQUc7SUFDcEIsU0FBUyxFQUFFLFVBQVUsQ0FBQztJQUN0QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUN6QixXQUFXLEVBQUUsTUFBTSxDQUFDO0NBQ3JCLENBQUM7QUFFRixNQUFNLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEdBQUcsYUFBYSxHQUFHLGFBQWEsQ0FBQyxDQUFDO0FBRTNGLGVBQU8sTUFBTSxhQUFhOzs7Ozs7Ozs7Ozs7Ozs7RUFPekIsQ0FBQztBQUVGLCtEQUErRDtBQUMvRCxNQUFNLE1BQU0scUJBQXFCLEdBQUc7SUFDbEMsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixXQUFXLEVBQUUsV0FBVyxDQUFDO0NBQzFCLENBQUM7QUFFRix5RkFBeUY7QUFDekYsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQixTQUFTLEVBQUUsVUFBVSxDQUFDO0lBQ3RCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztDQUNuQyxDQUFDO0FBRUYsOERBQThEO0FBQzlELE1BQU0sTUFBTSxZQUFZLEdBQUc7SUFDekIsT0FBTyxFQUFFLFVBQVUsQ0FBQztJQUNwQixPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUM7SUFDMUIsU0FBUyxFQUFFLE1BQU0sQ0FBQztDQUNuQixDQUFDO0FBRUYsc0VBQXNFO0FBQ3RFLE1BQU0sTUFBTSxpQkFBaUIsR0FBRyxZQUFZLEdBQUc7SUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUM7QUFFaEYsZUFBTyxNQUFNLHVCQUF1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFjbkMsQ0FBQztBQUVGLGtFQUFrRTtBQUNsRSxNQUFNLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDO0FBRXhDLE1BQU0sTUFBTSxtQkFBbUI7QUFDN0IsbUVBQW1FO0FBQ2pFO0lBQUUsSUFBSSxFQUFFLHVCQUF1QixDQUFDO0lBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFBO0NBQUU7QUFDM0Qsb0VBQW9FO0dBQ2xFO0lBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDO0lBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQTtDQUFFO0FBQ3RELG1FQUFtRTtHQUNqRTtJQUFFLElBQUksRUFBRSx3QkFBd0IsQ0FBQztJQUFDLEtBQUssRUFBRSxNQUFNLENBQUE7Q0FBRTtBQUNuRCx5REFBeUQ7R0FDdkQ7SUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDO0lBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLENBQUM7SUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUFDLEtBQUssRUFBRSxNQUFNLENBQUE7Q0FBRTtBQUNuRyxnRUFBZ0U7R0FDOUQ7SUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDO0lBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FBQztBQUV6RSxNQUFNLE1BQU0sdUJBQXVCLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/slashing/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,oBAAY,WAAW;IACrB,OAAO,IAAI;IACX,uFAAuF;IACvF,gBAAgB,IAAI;IACpB,2EAA2E;IAC3E,kBAAkB,IAAI;IACtB,uFAAuF;IACvF,UAAU,IAAI;IACd,sFAAsF;IACtF,kCAAkC,IAAI;IACtC,+EAA+E;IAC/E,kCAAkC,IAAI;IACtC,uHAAuH;IACvH,+BAA+B,IAAI;IACnC,0IAA0I;IAC1I,8BAA8B,IAAI;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/slashing/types.ts"],"names":[],"mappings":"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"}
|
package/dest/slashing/types.js
CHANGED
|
@@ -9,6 +9,7 @@ export var OffenseType = /*#__PURE__*/ function(OffenseType) {
|
|
|
9
9
|
/** A proposer pushed to L1 a block with insufficient committee attestations */ OffenseType[OffenseType["PROPOSED_INSUFFICIENT_ATTESTATIONS"] = 5] = "PROPOSED_INSUFFICIENT_ATTESTATIONS";
|
|
10
10
|
/** A proposer pushed to L1 a block with incorrect committee attestations (ie signature from a non-committee member) */ OffenseType[OffenseType["PROPOSED_INCORRECT_ATTESTATIONS"] = 6] = "PROPOSED_INCORRECT_ATTESTATIONS";
|
|
11
11
|
/** A committee member attested to a block that was built as a descendent of an invalid block (as in a block with invalid attestations) */ OffenseType[OffenseType["ATTESTED_DESCENDANT_OF_INVALID"] = 7] = "ATTESTED_DESCENDANT_OF_INVALID";
|
|
12
|
+
/** A proposer sent duplicate proposals for the same position (slot, indexWithinCheckpoint for blocks or slot for checkpoints) */ OffenseType[OffenseType["DUPLICATE_PROPOSAL"] = 8] = "DUPLICATE_PROPOSAL";
|
|
12
13
|
return OffenseType;
|
|
13
14
|
}({});
|
|
14
15
|
export function getOffenseTypeName(offense) {
|
|
@@ -29,6 +30,8 @@ export function getOffenseTypeName(offense) {
|
|
|
29
30
|
return 'proposed_incorrect_attestations';
|
|
30
31
|
case 7:
|
|
31
32
|
return 'attested_descendant_of_invalid';
|
|
33
|
+
case 8:
|
|
34
|
+
return 'duplicate_proposal';
|
|
32
35
|
default:
|
|
33
36
|
throw new Error(`Unknown offense type: ${offense}`);
|
|
34
37
|
}
|
|
@@ -42,7 +45,8 @@ export const OffenseToBigInt = {
|
|
|
42
45
|
[4]: 4n,
|
|
43
46
|
[5]: 5n,
|
|
44
47
|
[6]: 6n,
|
|
45
|
-
[7]: 7n
|
|
48
|
+
[7]: 7n,
|
|
49
|
+
[8]: 8n
|
|
46
50
|
};
|
|
47
51
|
export function bigIntToOffense(offense) {
|
|
48
52
|
switch(offense){
|
|
@@ -62,6 +66,8 @@ export function bigIntToOffense(offense) {
|
|
|
62
66
|
return 6;
|
|
63
67
|
case 7n:
|
|
64
68
|
return 7;
|
|
69
|
+
case 8n:
|
|
70
|
+
return 8;
|
|
65
71
|
default:
|
|
66
72
|
throw new Error(`Unknown offense: ${offense}`);
|
|
67
73
|
}
|
package/dest/stats/stats.d.ts
CHANGED
|
@@ -158,8 +158,6 @@ export type L2BlockBuiltStats = {
|
|
|
158
158
|
duration: number;
|
|
159
159
|
/** Time for processing public txs in ms. */
|
|
160
160
|
publicProcessDuration: number;
|
|
161
|
-
/** Time for running rollup circuits in ms. */
|
|
162
|
-
rollupCircuitsDuration: number;
|
|
163
161
|
} & L2BlockStats;
|
|
164
162
|
/** Stats for an L2 block processed by the world state synchronizer. */
|
|
165
163
|
export type L2BlockHandledStats = {
|
|
@@ -225,4 +223,4 @@ export type TxAddedToPoolStats = {
|
|
|
225
223
|
export type Stats = AvmSimulationStats | CircuitProvingStats | CircuitSimulationStats | CircuitWitnessGenerationStats | PublicDBAccessStats | L1PublishCheckpointStats | L1PublishProofStats | L2BlockBuiltStats | L2BlockHandledStats | NodeSyncedChainHistoryStats | ProofConstructed | TreeInsertionStats | TxAddedToPoolStats;
|
|
226
224
|
/** Set of event names across emitted stats. */
|
|
227
225
|
export type StatsEventName = Stats['eventName'];
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0cy9zdGF0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFDckQsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCLDZDQUE2QztJQUM3QyxTQUFTLEVBQUUseUJBQXlCLENBQUM7SUFDckMsdUNBQXVDO0lBQ3ZDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIseUNBQXlDO0lBQ3pDLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIseUJBQXlCO0lBQ3pCLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYseUNBQXlDO0FBQ3pDLE1BQU0sTUFBTSxZQUFZLEdBQUc7SUFDekIscUNBQXFDO0lBQ3JDLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsOEJBQThCO0lBQzlCLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsNkJBQTZCO0lBQzdCLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUN6QixDQUFDO0FBRUYsTUFBTSxNQUFNLGVBQWUsR0FBRztJQUM1QiwrQ0FBK0M7SUFDL0MsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQix5Q0FBeUM7SUFDekMsVUFBVSxFQUFFLE1BQU0sQ0FBQztDQUNwQixDQUFDO0FBRUYsMENBQTBDO0FBQzFDLE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFDM0IsNkJBQTZCO0lBQzdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixxQ0FBcUM7SUFDckMsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixvQ0FBb0M7SUFDcEMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQix5QkFBeUI7SUFDekIsZUFBZSxFQUFFLE1BQU0sQ0FBQztJQUN4QixnQ0FBZ0M7SUFDaEMsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixxQ0FBcUM7SUFDckMsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixnQ0FBZ0M7SUFDaEMsV0FBVyxF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/stats/stats.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/stats/stats.ts"],"names":[],"mappings":"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"}
|
package/dest/tests/factories.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { makeBlobAccumulator, makeFinalBlobAccumulator, makeFinalBlobBatchingChallenges, makeSpongeBlob } from '@aztec/blob-lib/testing';
|
|
2
|
-
import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
|
|
2
|
+
import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, CHONK_PROOF_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, GeneratorIndex, L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, MAX_CHECKPOINTS_PER_EPOCH, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_ENQUEUED_CALLS_PER_CALL, MAX_ENQUEUED_CALLS_PER_TX, MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL, MAX_PRIVATE_LOGS_PER_TX, MAX_PROTOCOL_CONTRACTS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_BASE_PARITY_PER_ROOT_PARITY, NUM_MSGS_PER_BASE_PARITY, PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_DATA_TREE_HEIGHT, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
|
|
3
3
|
import { makeTuple } from '@aztec/foundation/array';
|
|
4
4
|
import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
5
5
|
import { compact } from '@aztec/foundation/collection';
|
|
@@ -441,7 +441,7 @@ function makeEpochConstantData(seed = 1) {
|
|
|
441
441
|
return new BlockRollupPublicInputs(makeCheckpointConstantData(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeStateReference(seed + 0x400), makeStateReference(seed + 0x500), makeSpongeBlob(seed + 0x600), makeSpongeBlob(seed + 0x700), BigInt(seed + 0x800), fr(seed + 0x820), fr(seed + 0x830), fr(seed + 0x840), fr(seed + 0x850), fr(seed + 0x860));
|
|
442
442
|
}
|
|
443
443
|
export function makeCheckpointRollupPublicInputs(seed = 0) {
|
|
444
|
-
return new CheckpointRollupPublicInputs(makeEpochConstantData(seed), makeAppendOnlyTreeSnapshot(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeAppendOnlyTreeSnapshot(seed + 0x350), makeTuple(
|
|
444
|
+
return new CheckpointRollupPublicInputs(makeEpochConstantData(seed), makeAppendOnlyTreeSnapshot(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeAppendOnlyTreeSnapshot(seed + 0x350), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>makeFeeRecipient(seed), 0x500), makeBlobAccumulator(seed + 0x600), makeBlobAccumulator(seed + 0x700), makeFinalBlobBatchingChallenges(seed + 0x800));
|
|
445
445
|
}
|
|
446
446
|
export function makeParityPublicInputs(seed = 0) {
|
|
447
447
|
return new ParityPublicInputs(new Fr(BigInt(seed + 0x200)), new Fr(BigInt(seed + 0x300)), new Fr(BigInt(seed + 0x400)));
|
|
@@ -458,7 +458,7 @@ export function makeParityRootPrivateInputs(seed = 0) {
|
|
|
458
458
|
* @param blockNumber - The block number to use in the global variables of a header.
|
|
459
459
|
* @returns A root rollup public inputs.
|
|
460
460
|
*/ export function makeRootRollupPublicInputs(seed = 0) {
|
|
461
|
-
return new RootRollupPublicInputs(fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300), makeTuple(
|
|
461
|
+
return new RootRollupPublicInputs(fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>makeFeeRecipient(seed), 0x500), makeEpochConstantData(seed + 0x600), makeFinalBlobAccumulator(seed + 0x700));
|
|
462
462
|
}
|
|
463
463
|
export function makeBlockHeader(seed = 0, overrides = {}) {
|
|
464
464
|
return BlockHeader.from({
|
package/dest/tests/mocks.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ import { BlockHeader, GlobalVariables, ProtocolContracts, Tx } from '../tx/index
|
|
|
25
25
|
import { TxSimulationResult } from '../tx/simulated_tx.js';
|
|
26
26
|
import { TxHash } from '../tx/tx_hash.js';
|
|
27
27
|
export declare const randomTxHash: () => TxHash;
|
|
28
|
-
export declare const mockTx: (seed?: number, { numberOfNonRevertiblePublicCallRequests, numberOfRevertiblePublicCallRequests, numberOfRevertibleNullifiers, hasPublicTeardownCallRequest, publicCalldataSize, feePayer, chonkProof, maxPriorityFeesPerGas, gasUsed, chainId, version, vkTreeRoot, protocolContractsHash, }?: {
|
|
28
|
+
export declare const mockTx: (seed?: number, { numberOfNonRevertiblePublicCallRequests, numberOfRevertiblePublicCallRequests, numberOfRevertibleNullifiers, hasPublicTeardownCallRequest, publicCalldataSize, feePayer, chonkProof, maxFeesPerGas, maxPriorityFeesPerGas, gasUsed, chainId, version, vkTreeRoot, protocolContractsHash, anchorBlockHeader, }?: {
|
|
29
29
|
numberOfNonRevertiblePublicCallRequests?: number | undefined;
|
|
30
30
|
numberOfRevertiblePublicCallRequests?: number | undefined;
|
|
31
31
|
numberOfRevertibleNullifiers?: number | undefined;
|
|
@@ -33,12 +33,14 @@ export declare const mockTx: (seed?: number, { numberOfNonRevertiblePublicCallRe
|
|
|
33
33
|
publicCalldataSize?: number | undefined;
|
|
34
34
|
feePayer?: AztecAddress | undefined;
|
|
35
35
|
chonkProof?: ChonkProof | undefined;
|
|
36
|
+
maxFeesPerGas?: GasFees | undefined;
|
|
36
37
|
maxPriorityFeesPerGas?: GasFees | undefined;
|
|
37
38
|
gasUsed?: Gas | undefined;
|
|
38
39
|
chainId?: Fr | undefined;
|
|
39
40
|
version?: Fr | undefined;
|
|
40
41
|
vkTreeRoot?: Fr | undefined;
|
|
41
42
|
protocolContractsHash?: Fr | undefined;
|
|
43
|
+
anchorBlockHeader?: BlockHeader | undefined;
|
|
42
44
|
}) => Promise<Tx>;
|
|
43
45
|
export declare const mockTxForRollup: (seed?: number, opts?: {
|
|
44
46
|
numberOfNonRevertiblePublicCallRequests?: number | undefined;
|
|
@@ -48,12 +50,14 @@ export declare const mockTxForRollup: (seed?: number, opts?: {
|
|
|
48
50
|
publicCalldataSize?: number | undefined;
|
|
49
51
|
feePayer?: AztecAddress | undefined;
|
|
50
52
|
chonkProof?: ChonkProof | undefined;
|
|
53
|
+
maxFeesPerGas?: GasFees | undefined;
|
|
51
54
|
maxPriorityFeesPerGas?: GasFees | undefined;
|
|
52
55
|
gasUsed?: Gas | undefined;
|
|
53
56
|
chainId?: Fr | undefined;
|
|
54
57
|
version?: Fr | undefined;
|
|
55
58
|
vkTreeRoot?: Fr | undefined;
|
|
56
59
|
protocolContractsHash?: Fr | undefined;
|
|
60
|
+
anchorBlockHeader?: BlockHeader | undefined;
|
|
57
61
|
} | undefined) => Promise<Tx>;
|
|
58
62
|
/** Mock a processed tx for testing purposes. */
|
|
59
63
|
export declare function mockProcessedTx({ seed, anchorBlockHeader, db, chainId, version, gasSettings, vkTreeRoot, protocolContracts, globalVariables, newL1ToL2Snapshot, feePayer, feePaymentPublicDataWrite, gasUsed, privateOnly, avmAccumulatedData, ...mockTxOpts }?: {
|
|
@@ -155,4 +159,4 @@ export declare const makeCheckpointAttestationFromBlock: (block: L2Block, attest
|
|
|
155
159
|
export declare function randomPublishedL2Block(l2BlockNumber: number, opts?: {
|
|
156
160
|
signers?: Secp256k1Signer[];
|
|
157
161
|
}): Promise<CheckpointedL2Block>;
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBd0IsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLekQsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,qBAAqB,EAAc,MAAM,iCAAiC,CAAC;AAInH,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAwB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAKzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAWxF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EACL,WAAW,EACX,eAAe,EAIf,iBAAiB,EACjB,EAAE,EAIH,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAe1C,eAAO,MAAM,YAAY,cAAgC,CAAC;AAE1D,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"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"}
|
package/dest/tests/mocks.js
CHANGED
|
@@ -38,20 +38,21 @@ import { ChonkProof } from '../proofs/chonk_proof.js';
|
|
|
38
38
|
import { ProvingRequestType } from '../proofs/proving_request_type.js';
|
|
39
39
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
40
40
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
41
|
-
import { GlobalVariables, HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, TxConstantData, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '../tx/index.js';
|
|
41
|
+
import { BlockHeader, GlobalVariables, HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, TxConstantData, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '../tx/index.js';
|
|
42
42
|
import { NestedProcessReturnValues, PublicSimulationOutput } from '../tx/public_simulation_output.js';
|
|
43
43
|
import { TxSimulationResult } from '../tx/simulated_tx.js';
|
|
44
44
|
import { TxEffect } from '../tx/tx_effect.js';
|
|
45
45
|
import { TxHash } from '../tx/tx_hash.js';
|
|
46
46
|
import { makeAvmCircuitInputs, makeAztecAddress, makeBlockHeader, makeCheckpointHeader, makeGas, makeGlobalVariables, makePrivateToPublicAccumulatedData, makePrivateToRollupAccumulatedData, makeProtocolContracts, makePublicCallRequest, makePublicDataWrite } from './factories.js';
|
|
47
47
|
export const randomTxHash = ()=>TxHash.random();
|
|
48
|
-
export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, chonkProof = ChonkProof.random(), maxPriorityFeesPerGas, gasUsed = Gas.empty(), chainId = Fr.ZERO, version = Fr.ZERO, vkTreeRoot = Fr.ZERO, protocolContractsHash = Fr.ZERO } = {})=>{
|
|
48
|
+
export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, chonkProof = ChonkProof.random(), maxFeesPerGas = new GasFees(10, 10), maxPriorityFeesPerGas, gasUsed = Gas.empty(), chainId = Fr.ZERO, version = Fr.ZERO, vkTreeRoot = Fr.ZERO, protocolContractsHash = Fr.ZERO, anchorBlockHeader = BlockHeader.empty() } = {})=>{
|
|
49
49
|
const totalPublicCallRequests = numberOfNonRevertiblePublicCallRequests + numberOfRevertiblePublicCallRequests + (hasPublicTeardownCallRequest ? 1 : 0);
|
|
50
50
|
const isForPublic = totalPublicCallRequests > 0;
|
|
51
51
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
52
52
|
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
53
|
+
data.constants.anchorBlockHeader = anchorBlockHeader;
|
|
53
54
|
data.constants.txContext.gasSettings = GasSettings.default({
|
|
54
|
-
maxFeesPerGas
|
|
55
|
+
maxFeesPerGas,
|
|
55
56
|
maxPriorityFeesPerGas
|
|
56
57
|
});
|
|
57
58
|
data.feePayer = feePayer ?? await AztecAddress.random();
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timetable constants used for sequencer timing calculations.
|
|
3
|
+
* These define the time budgets for various phases of block production.
|
|
4
|
+
*
|
|
5
|
+
* The sequencer slot is divided into phases:
|
|
6
|
+
* 1. Checkpoint initialization (sync + proposer check)
|
|
7
|
+
* 2. Block building (execution)
|
|
8
|
+
* 3. Checkpoint assembly
|
|
9
|
+
* 4. P2P propagation for proposal and attestations (round-trip)
|
|
10
|
+
* 5. L1 publishing
|
|
11
|
+
*/
|
|
12
|
+
/** Time budget for checkpoint initialization (sync + proposer check) in seconds */
|
|
13
|
+
export declare const CHECKPOINT_INITIALIZATION_TIME = 1;
|
|
14
|
+
/** Time budget for assembling a checkpoint after building the last block in seconds */
|
|
15
|
+
export declare const CHECKPOINT_ASSEMBLE_TIME = 1;
|
|
16
|
+
/** Default one-way P2P propagation time for proposals and attestations in seconds */
|
|
17
|
+
export declare const DEFAULT_P2P_PROPAGATION_TIME = 2;
|
|
18
|
+
/** Default L1 publishing time (matches Ethereum slot duration on mainnet) in seconds */
|
|
19
|
+
export declare const DEFAULT_L1_PUBLISHING_TIME = 12;
|
|
20
|
+
/** Minimum execution time for building a block in seconds */
|
|
21
|
+
export declare const MIN_EXECUTION_TIME = 2;
|
|
22
|
+
/**
|
|
23
|
+
* Calculates the maximum number of blocks that can be built in a slot.
|
|
24
|
+
* Used by both the sequencer timetable and p2p gossipsub scoring.
|
|
25
|
+
*
|
|
26
|
+
* @param aztecSlotDurationSec - Aztec slot duration in seconds
|
|
27
|
+
* @param blockDurationSec - Duration per block in seconds (undefined = single block mode)
|
|
28
|
+
* @param opts - Optional overrides for timing constants
|
|
29
|
+
* @returns Maximum number of blocks per slot
|
|
30
|
+
*/
|
|
31
|
+
export declare function calculateMaxBlocksPerSlot(aztecSlotDurationSec: number, blockDurationSec: number | undefined, opts?: {
|
|
32
|
+
checkpointInitializationTime?: number;
|
|
33
|
+
checkpointAssembleTime?: number;
|
|
34
|
+
p2pPropagationTime?: number;
|
|
35
|
+
l1PublishingTime?: number;
|
|
36
|
+
}): number;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aW1ldGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILG1GQUFtRjtBQUNuRixlQUFPLE1BQU0sOEJBQThCLElBQUksQ0FBQztBQUVoRCx1RkFBdUY7QUFDdkYsZUFBTyxNQUFNLHdCQUF3QixJQUFJLENBQUM7QUFFMUMscUZBQXFGO0FBQ3JGLGVBQU8sTUFBTSw0QkFBNEIsSUFBSSxDQUFDO0FBRTlDLHdGQUF3RjtBQUN4RixlQUFPLE1BQU0sMEJBQTBCLEtBQUssQ0FBQztBQUU3Qyw2REFBNkQ7QUFDN0QsZUFBTyxNQUFNLGtCQUFrQixJQUFJLENBQUM7QUFFcEM7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IseUJBQXlCLENBQ3ZDLG9CQUFvQixFQUFFLE1BQU0sRUFDNUIsZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDcEMsSUFBSSxHQUFFO0lBQ0osNEJBQTRCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEMsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEMsa0JBQWtCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDNUIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDdEIsR0FDTCxNQUFNLENBb0JSIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/timetable/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,qFAAqF;AACrF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,IAAI,GAAE;IACJ,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACtB,GACL,MAAM,CAoBR"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timetable constants used for sequencer timing calculations.
|
|
3
|
+
* These define the time budgets for various phases of block production.
|
|
4
|
+
*
|
|
5
|
+
* The sequencer slot is divided into phases:
|
|
6
|
+
* 1. Checkpoint initialization (sync + proposer check)
|
|
7
|
+
* 2. Block building (execution)
|
|
8
|
+
* 3. Checkpoint assembly
|
|
9
|
+
* 4. P2P propagation for proposal and attestations (round-trip)
|
|
10
|
+
* 5. L1 publishing
|
|
11
|
+
*/ /** Time budget for checkpoint initialization (sync + proposer check) in seconds */ export const CHECKPOINT_INITIALIZATION_TIME = 1;
|
|
12
|
+
/** Time budget for assembling a checkpoint after building the last block in seconds */ export const CHECKPOINT_ASSEMBLE_TIME = 1;
|
|
13
|
+
/** Default one-way P2P propagation time for proposals and attestations in seconds */ export const DEFAULT_P2P_PROPAGATION_TIME = 2;
|
|
14
|
+
/** Default L1 publishing time (matches Ethereum slot duration on mainnet) in seconds */ export const DEFAULT_L1_PUBLISHING_TIME = 12;
|
|
15
|
+
/** Minimum execution time for building a block in seconds */ export const MIN_EXECUTION_TIME = 2;
|
|
16
|
+
/**
|
|
17
|
+
* Calculates the maximum number of blocks that can be built in a slot.
|
|
18
|
+
* Used by both the sequencer timetable and p2p gossipsub scoring.
|
|
19
|
+
*
|
|
20
|
+
* @param aztecSlotDurationSec - Aztec slot duration in seconds
|
|
21
|
+
* @param blockDurationSec - Duration per block in seconds (undefined = single block mode)
|
|
22
|
+
* @param opts - Optional overrides for timing constants
|
|
23
|
+
* @returns Maximum number of blocks per slot
|
|
24
|
+
*/ export function calculateMaxBlocksPerSlot(aztecSlotDurationSec, blockDurationSec, opts = {}) {
|
|
25
|
+
if (!blockDurationSec) {
|
|
26
|
+
return 1; // Single block per slot
|
|
27
|
+
}
|
|
28
|
+
const initOffset = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
|
|
29
|
+
const assembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
|
|
30
|
+
const p2pTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
|
|
31
|
+
const l1Time = opts.l1PublishingTime ?? DEFAULT_L1_PUBLISHING_TIME;
|
|
32
|
+
// Calculate checkpoint finalization time (assembly + round-trip propagation + L1 publishing)
|
|
33
|
+
const checkpointFinalizationTime = assembleTime + p2pTime * 2 + l1Time;
|
|
34
|
+
// Time reserved at end for last sub-slot (validator re-execution) + finalization
|
|
35
|
+
const timeReservedAtEnd = blockDurationSec + checkpointFinalizationTime;
|
|
36
|
+
// Time available for building blocks
|
|
37
|
+
const timeAvailableForBlocks = aztecSlotDurationSec - initOffset - timeReservedAtEnd;
|
|
38
|
+
return Math.max(1, Math.floor(timeAvailableForBlocks / blockDurationSec));
|
|
39
|
+
}
|
|
@@ -4,7 +4,7 @@ import { type ZodFor } from '@aztec/foundation/schemas';
|
|
|
4
4
|
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
5
5
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
6
6
|
import { inspect } from 'util';
|
|
7
|
-
import {
|
|
7
|
+
import { BlockHash } from '../block/block_hash.js';
|
|
8
8
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
9
9
|
import { GlobalVariables } from './global_variables.js';
|
|
10
10
|
import { StateReference } from './state_reference.js';
|
|
@@ -61,7 +61,7 @@ export declare class BlockHeader {
|
|
|
61
61
|
*/
|
|
62
62
|
toString(): `0x${string}`;
|
|
63
63
|
static fromString(str: string): BlockHeader;
|
|
64
|
-
hash(): Promise<
|
|
64
|
+
hash(): Promise<BlockHash>;
|
|
65
65
|
/** Manually set the hash for this block header if already computed */
|
|
66
66
|
setHash(hashed: Fr): void;
|
|
67
67
|
static random(overrides?: Partial<FieldsOf<BlockHeader>> & Partial<FieldsOf<GlobalVariables>>): BlockHeader;
|
|
@@ -91,4 +91,4 @@ export declare class BlockHeader {
|
|
|
91
91
|
[inspect.custom](): string;
|
|
92
92
|
equals(other: this): boolean;
|
|
93
93
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfaGVhZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvYmxvY2tfaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHMUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBVyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUF3QyxNQUFNLDZCQUE2QixDQUFDO0FBRTlHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsK0JBQStCO0FBQy9CLHFCQUFhLFdBQVc7SUFJcEIsdURBQXVEO2FBQ3ZDLFdBQVcsRUFBRSxzQkFBc0I7SUFDbkQsdUJBQXVCO2FBQ1AsS0FBSyxFQUFFLGNBQWM7SUFDckM7OztPQUdHO2FBQ2EsY0FBYyxFQUFFLEVBQUU7SUFDbEMsdUNBQXVDO2FBQ3ZCLGVBQWUsRUFBRSxlQUFlO0lBQ2hELG1FQUFtRTthQUNuRCxTQUFTLEVBQUUsRUFBRTtJQUM3Qix3RUFBd0U7YUFDeEQsYUFBYSxFQUFFLEVBQUU7SUFqQm5DLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBcUI7SUFFekM7SUFDRSx1REFBdUQ7SUFDdkMsV0FBVyxFQUFFLHNCQUFzQjtJQUNuRCx1QkFBdUI7SUFDUCxLQUFLLEVBQUUsY0FBYztJQUNyQzs7O09BR0c7SUFDYSxjQUFjLEVBQUUsRUFBRTtJQUNsQyx1Q0FBdUM7SUFDdkIsZUFBZSxFQUFFLGVBQWU7SUFDaEQsbUVBQW1FO0lBQ25ELFNBQVMsRUFBRSxFQUFFO0lBQzdCLHdFQUF3RTtJQUN4RCxhQUFhLEVBQUUsRUFBRSxFQUMvQjtJQUVKLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQVd2QztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsa0ZBUzdDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUV4QztJQUVELE9BQU8sSUFBSSxVQUFVLENBRXBCO0lBRUQsY0FBYyxJQUFJLFdBQVcsQ0FFNUI7SUFFRCxPQUFPLFdBU047SUFFRCxRQUFRLDRCQUVQO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQU1mO0lBRUQsS0FBSyxJQUFJLFdBQVcsQ0FFbkI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFdBQVcsQ0FXNUQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUcsV0FBVyxDQVd6RDtJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQU0sR0FBRyxXQUFXLENBVXJFO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FTakI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLGtCQUVkO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FFMUM7SUFFRCxJQUFJLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQU96QjtJQUVELHNFQUFzRTtJQUN0RSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFFakI7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBTSxHQUFHLFdBQVcsQ0FVOUc7SUFFRCxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BU1I7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FZZjtJQUVNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLE9BQU8sQ0FTbEM7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_header.d.ts","sourceRoot":"","sources":["../../src/tx/block_header.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"block_header.d.ts","sourceRoot":"","sources":["../../src/tx/block_header.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,+BAA+B;AAC/B,qBAAa,WAAW;IAIpB,uDAAuD;aACvC,WAAW,EAAE,sBAAsB;IACnD,uBAAuB;aACP,KAAK,EAAE,cAAc;IACrC;;;OAGG;aACa,cAAc,EAAE,EAAE;IAClC,uCAAuC;aACvB,eAAe,EAAE,eAAe;IAChD,mEAAmE;aACnD,SAAS,EAAE,EAAE;IAC7B,wEAAwE;aACxD,aAAa,EAAE,EAAE;IAjBnC,OAAO,CAAC,WAAW,CAAC,CAAqB;IAEzC;IACE,uDAAuD;IACvC,WAAW,EAAE,sBAAsB;IACnD,uBAAuB;IACP,KAAK,EAAE,cAAc;IACrC;;;OAGG;IACa,cAAc,EAAE,EAAE;IAClC,uCAAuC;IACvB,eAAe,EAAE,eAAe;IAChD,mEAAmE;IACnD,SAAS,EAAE,EAAE;IAC7B,wEAAwE;IACxD,aAAa,EAAE,EAAE,EAC/B;IAEJ,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,CAWvC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,kFAS7C;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,eAExC;IAED,OAAO,IAAI,UAAU,CAEpB;IAED,cAAc,IAAI,WAAW,CAE5B;IAED,OAAO,WASN;IAED,QAAQ,4BAEP;IAED,QAAQ,IAAI,EAAE,EAAE,CAMf;IAED,KAAK,IAAI,WAAW,CAEnB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAW5D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,WAAW,CAWzD;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAM,GAAG,WAAW,CAUrE;IAED,OAAO,IAAI,OAAO,CASjB;IAED;;;OAGG;IACI,QAAQ,kBAEd;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAE1C;IAED,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,CAOzB;IAED,sEAAsE;IACtE,OAAO,CAAC,MAAM,EAAE,EAAE,QAEjB;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAM,GAAG,WAAW,CAU9G;IAED,SAAS;;;;;;;;;;;;;;;;;;;;;;MASR;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAYf;IAEM,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CASlC;CACF"}
|
package/dest/tx/block_header.js
CHANGED
|
@@ -8,7 +8,7 @@ import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from
|
|
|
8
8
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
9
9
|
import { inspect } from 'util';
|
|
10
10
|
import { z } from 'zod';
|
|
11
|
-
import {
|
|
11
|
+
import { BlockHash } from '../block/block_hash.js';
|
|
12
12
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
13
13
|
import { GlobalVariables } from './global_variables.js';
|
|
14
14
|
import { StateReference } from './state_reference.js';
|
|
@@ -110,12 +110,12 @@ _computedKey = inspect.custom;
|
|
|
110
110
|
}
|
|
111
111
|
hash() {
|
|
112
112
|
if (!this._cachedHash) {
|
|
113
|
-
this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.
|
|
113
|
+
this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HEADER_HASH).then((fr)=>new BlockHash(fr));
|
|
114
114
|
}
|
|
115
115
|
return this._cachedHash;
|
|
116
116
|
}
|
|
117
117
|
/** Manually set the hash for this block header if already computed */ setHash(hashed) {
|
|
118
|
-
this._cachedHash = Promise.resolve(
|
|
118
|
+
this._cachedHash = Promise.resolve(new BlockHash(hashed));
|
|
119
119
|
}
|
|
120
120
|
static random(overrides = {}) {
|
|
121
121
|
return BlockHeader.from({
|
package/dest/tx/in_tx.d.ts
CHANGED
|
@@ -7,15 +7,15 @@ export type InTx = InBlock & {
|
|
|
7
7
|
export declare function randomInTx(): InTx;
|
|
8
8
|
export declare function inTxSchema(): z.ZodIntersection<z.ZodObject<{
|
|
9
9
|
l2BlockNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, import("@aztec/foundation/branded-types").BlockNumber, string | number | bigint>;
|
|
10
|
-
l2BlockHash:
|
|
10
|
+
l2BlockHash: import("@aztec/foundation/schemas").ZodFor<import("../block/block_hash.js").BlockHash>;
|
|
11
11
|
}, "strip", z.ZodTypeAny, {
|
|
12
12
|
l2BlockNumber: number & {
|
|
13
13
|
_branding: "BlockNumber";
|
|
14
14
|
};
|
|
15
|
-
l2BlockHash: import("../block/block_hash.js").
|
|
15
|
+
l2BlockHash: import("../block/block_hash.js").BlockHash;
|
|
16
16
|
}, {
|
|
17
17
|
l2BlockNumber: string | number | bigint;
|
|
18
|
-
l2BlockHash
|
|
18
|
+
l2BlockHash?: any;
|
|
19
19
|
}>, z.ZodObject<{
|
|
20
20
|
txHash: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, TxHash, string>;
|
|
21
21
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import {
|
|
2
|
+
import { BlockHash } from '../block/block_hash.js';
|
|
3
3
|
import { type DataInBlock } from '../block/in_block.js';
|
|
4
4
|
import { TxEffect } from './tx_effect.js';
|
|
5
5
|
export type IndexedTxEffect = DataInBlock<TxEffect> & {
|
|
@@ -7,7 +7,7 @@ export type IndexedTxEffect = DataInBlock<TxEffect> & {
|
|
|
7
7
|
};
|
|
8
8
|
export declare function indexedTxSchema(): import("zod").ZodObject<{
|
|
9
9
|
l2BlockNumber: import("zod").ZodEffects<import("zod").ZodPipeline<import("zod").ZodUnion<[import("zod").ZodNumber, import("zod").ZodBigInt, import("zod").ZodString]>, import("zod").ZodNumber>, BlockNumber, string | number | bigint>;
|
|
10
|
-
l2BlockHash: import("
|
|
10
|
+
l2BlockHash: import("@aztec/foundation/schemas").ZodFor<BlockHash>;
|
|
11
11
|
} & {
|
|
12
12
|
data: import("@aztec/foundation/schemas").ZodFor<TxEffect>;
|
|
13
13
|
} & {
|
|
@@ -16,16 +16,16 @@ export declare function indexedTxSchema(): import("zod").ZodObject<{
|
|
|
16
16
|
l2BlockNumber: number & {
|
|
17
17
|
_branding: "BlockNumber";
|
|
18
18
|
};
|
|
19
|
-
l2BlockHash:
|
|
19
|
+
l2BlockHash: BlockHash;
|
|
20
20
|
data: TxEffect;
|
|
21
21
|
txIndexInBlock: number;
|
|
22
22
|
}, {
|
|
23
23
|
l2BlockNumber: string | number | bigint;
|
|
24
|
-
l2BlockHash
|
|
24
|
+
l2BlockHash?: any;
|
|
25
25
|
data?: any;
|
|
26
26
|
txIndexInBlock: string | number | bigint;
|
|
27
27
|
}>;
|
|
28
28
|
export declare function randomIndexedTxEffect(): Promise<IndexedTxEffect>;
|
|
29
29
|
export declare function serializeIndexedTxEffect(effect: IndexedTxEffect): Buffer;
|
|
30
30
|
export declare function deserializeIndexedTxEffect(buffer: Buffer): IndexedTxEffect;
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZF90eF9lZmZlY3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC9pbmRleGVkX3R4X2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFLOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBMkMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUc7SUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FBQztBQUVqRix3QkFBZ0IsZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQUU5QjtBQUVELHdCQUFzQixxQkFBcUIsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLENBS3RFO0FBRUQsd0JBQWdCLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxlQUFlLEdBQUcsTUFBTSxDQUV4RTtBQUVELHdCQUFnQiwwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLGVBQWUsQ0FjMUUifQ==
|