@aztec/stdlib 6.0.0-nightly.20260603 → 6.0.0-nightly.20260604
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/block/l2_block_source.d.ts +12 -6
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/config/index.d.ts +1 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +0 -1
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +9 -4
- package/dest/interfaces/aztec-node.d.ts +32 -6
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +16 -3
- package/dest/interfaces/block_response.d.ts +5 -5
- package/dest/interfaces/block_response.d.ts.map +1 -1
- package/dest/interfaces/checkpoint_response.d.ts +5 -5
- package/dest/interfaces/checkpoint_response.d.ts.map +1 -1
- package/dest/logs/app_tagging_secret_kind.d.ts +2 -1
- package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -1
- package/dest/logs/app_tagging_secret_kind.js +13 -0
- package/dest/logs/log_result.d.ts +3 -3
- package/dest/logs/log_result.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +11 -4
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +22 -7
- package/dest/timetable/index.d.ts +7 -10
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +47 -81
- package/dest/tx/indexed_tx_effect.d.ts +5 -2
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +8 -4
- package/dest/tx/tx.d.ts +8 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +8 -0
- package/dest/tx/tx_receipt.d.ts +143 -60
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +141 -45
- package/package.json +8 -8
- package/src/block/l2_block_source.ts +15 -5
- package/src/config/index.ts +0 -1
- package/src/interfaces/archiver.ts +8 -2
- package/src/interfaces/aztec-node.ts +54 -6
- package/src/interfaces/block_response.ts +4 -4
- package/src/interfaces/checkpoint_response.ts +4 -4
- package/src/logs/app_tagging_secret_kind.ts +15 -0
- package/src/logs/log_result.ts +2 -2
- package/src/messaging/l2_to_l1_membership.ts +28 -11
- package/src/timetable/index.ts +52 -109
- package/src/tx/indexed_tx_effect.ts +17 -4
- package/src/tx/tx.ts +10 -0
- package/src/tx/tx_receipt.ts +263 -71
- package/dest/config/pipelining-config.d.ts +0 -15
- package/dest/config/pipelining-config.d.ts.map +0 -1
- package/dest/config/pipelining-config.js +0 -18
- package/src/config/pipelining-config.ts +0 -31
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type EpochNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { SiblingPath } from '@aztec/foundation/trees';
|
|
4
|
+
import { z } from 'zod';
|
|
4
5
|
import type { AztecNode } from '../interfaces/aztec-node.js';
|
|
5
6
|
import { TxHash } from '../tx/tx_hash.js';
|
|
6
|
-
import { TxReceipt } from '../tx/tx_receipt.js';
|
|
7
|
+
import type { TxReceipt } from '../tx/tx_receipt.js';
|
|
7
8
|
/**
|
|
8
9
|
* Provides access to the L1 Outbox's per-epoch roots so the witness helper can pick the smallest
|
|
9
10
|
* partial-proof root that covers a tx's checkpoint. Implemented by `OutboxContract` in the
|
|
@@ -112,6 +113,12 @@ export type L2ToL1MembershipWitness = {
|
|
|
112
113
|
leafIndex: bigint;
|
|
113
114
|
siblingPath: SiblingPath<number>;
|
|
114
115
|
};
|
|
116
|
+
/**
|
|
117
|
+
* Zod schema for {@link L2ToL1MembershipWitness}. The sibling-path length varies with the shape of
|
|
118
|
+
* the per-epoch tree, so we use the unsized `SiblingPath.schema` here rather than a fixed-height
|
|
119
|
+
* `schemaFor`.
|
|
120
|
+
*/
|
|
121
|
+
export declare const L2ToL1MembershipWitnessSchema: z.ZodType<L2ToL1MembershipWitness, unknown, z.core.$ZodTypeInternals<L2ToL1MembershipWitness, unknown>>;
|
|
115
122
|
/**
|
|
116
123
|
* Computes the L2 to L1 membership witness for a given message in a transaction.
|
|
117
124
|
*
|
|
@@ -132,7 +139,7 @@ export type L2ToL1MembershipWitness = {
|
|
|
132
139
|
* @param messageIndexInTx - Optional index of the message within the transaction's L2-to-L1 messages.
|
|
133
140
|
* If not provided, the message is found by scanning the tx's messages (throws if duplicates exist).
|
|
134
141
|
*/
|
|
135
|
-
export declare function computeL2ToL1MembershipWitness(node: Pick<AztecNode, 'getL2ToL1Messages' | 'getTxReceipt' | '
|
|
142
|
+
export declare function computeL2ToL1MembershipWitness(node: Pick<AztecNode, 'getL2ToL1Messages' | 'getTxReceipt' | 'getBlock' | 'getCheckpointsData'>, outboxOrRoots: OutboxRootsReader | Fr[], message: Fr, txHashOrReceipt: TxHash | Pick<TxReceipt, 'txHash' | 'epochNumber' | 'blockNumber' | 'txIndexInBlock'>, messageIndexInTx?: number): Promise<L2ToL1MembershipWitness | undefined>;
|
|
136
143
|
/**
|
|
137
144
|
* Computes a membership witness for a message in the epoch's L2-to-L1 message tree, given explicit position indices.
|
|
138
145
|
*
|
|
@@ -150,4 +157,4 @@ export declare function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messag
|
|
|
150
157
|
leafIndex: bigint;
|
|
151
158
|
siblingPath: SiblingPath<number>;
|
|
152
159
|
};
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdG9fbDFfbWVtYmVyc2hpcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lc3NhZ2luZy9sMl90b19sMV9tZW1iZXJzaGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBcUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBNEQsTUFBTSx5QkFBeUIsQ0FBQztBQUVoSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxXQUFXLGlCQUFpQjtJQUNoQzs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Q0FDN0M7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0VHO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0Isc0JBQXNCLENBQ3BDLGlCQUFpQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLEdBQUcsYUFBYSxDQUFDLEdBQzVFLE1BQU0sQ0FFUjtBQUVELE1BQU0sTUFBTSx1QkFBdUIsR0FBRztJQUNwQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQ3pCOzs7O09BSUc7SUFDSCxxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNULFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUNsQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILGVBQU8sTUFBTSw2QkFBNkIseUdBTVMsQ0FBQztBQUVwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILHdCQUFzQiw4QkFBOEIsQ0FDbEQsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLEdBQUcsY0FBYyxHQUFHLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxFQUMvRixhQUFhLEVBQUUsaUJBQWlCLEdBQUcsRUFBRSxFQUFFLEVBQ3ZDLE9BQU8sRUFBRSxFQUFFLEVBQ1gsZUFBZSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsR0FBRyxhQUFhLEdBQUcsYUFBYSxHQUFHLGdCQUFnQixDQUFDLEVBQ3RHLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxHQUN4QixPQUFPLENBQUMsdUJBQXVCLEdBQUcsU0FBUyxDQUFDLENBZ0U5QztBQWdCRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsMkNBQTJDO0FBQzNDLHdCQUFnQixpREFBaUQsQ0FDL0QsZUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUMzQixPQUFPLEVBQUUsRUFBRSxFQUNYLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEdBQ3hCO0lBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0NBQUUsQ0FvRW5FIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l2_to_l1_membership.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_membership.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"l2_to_l1_membership.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_membership.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,WAAW,EAA4D,MAAM,yBAAyB,CAAC;AAEhH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,aAAa,CAAC,GAC5E,MAAM,CAER;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,WAAW,CAAC;IACzB;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,IAAI,EAAE,EAAE,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,yGAMS,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,mBAAmB,GAAG,cAAc,GAAG,UAAU,GAAG,oBAAoB,CAAC,EAC/F,aAAa,EAAE,iBAAiB,GAAG,EAAE,EAAE,EACvC,OAAO,EAAE,EAAE,EACX,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,CAAC,EACtG,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAgE9C;AAgBD;;;;;;;;;;GAUG;AACH,2CAA2C;AAC3C,wBAAgB,iDAAiD,CAC/D,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3B,OAAO,EAAE,EAAE,EACX,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,GACxB;IAAE,IAAI,EAAE,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,CAoEnE"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { MAX_CHECKPOINTS_PER_EPOCH, OUT_HASH_TREE_LEAF_COUNT } from '@aztec/constants';
|
|
2
|
+
import { EpochNumberSchema } from '@aztec/foundation/branded-types';
|
|
2
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot } from '@aztec/foundation/trees';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { schemas } from '../schemas/schemas.js';
|
|
4
7
|
/**
|
|
5
8
|
* # L2-to-L1 Message Tree Structure and Leaf IDs
|
|
6
9
|
*
|
|
@@ -84,6 +87,17 @@ import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot }
|
|
|
84
87
|
*/ export function getL2ToL1MessageLeafId(membershipWitness) {
|
|
85
88
|
return 2n ** BigInt(membershipWitness.siblingPath.pathSize) + membershipWitness.leafIndex;
|
|
86
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Zod schema for {@link L2ToL1MembershipWitness}. The sibling-path length varies with the shape of
|
|
92
|
+
* the per-epoch tree, so we use the unsized `SiblingPath.schema` here rather than a fixed-height
|
|
93
|
+
* `schemaFor`.
|
|
94
|
+
*/ export const L2ToL1MembershipWitnessSchema = z.object({
|
|
95
|
+
epochNumber: EpochNumberSchema,
|
|
96
|
+
numCheckpointsInEpoch: schemas.Integer,
|
|
97
|
+
root: schemas.Fr,
|
|
98
|
+
leafIndex: schemas.BigInt,
|
|
99
|
+
siblingPath: SiblingPath.schema
|
|
100
|
+
});
|
|
87
101
|
/**
|
|
88
102
|
* Computes the L2 to L1 membership witness for a given message in a transaction.
|
|
89
103
|
*
|
|
@@ -104,20 +118,21 @@ import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot }
|
|
|
104
118
|
* @param messageIndexInTx - Optional index of the message within the transaction's L2-to-L1 messages.
|
|
105
119
|
* If not provided, the message is found by scanning the tx's messages (throws if duplicates exist).
|
|
106
120
|
*/ export async function computeL2ToL1MembershipWitness(node, outboxOrRoots, message, txHashOrReceipt, messageIndexInTx) {
|
|
107
|
-
const receipt = 'txHash' in txHashOrReceipt ? txHashOrReceipt : await node.getTxReceipt(txHashOrReceipt
|
|
108
|
-
|
|
109
|
-
|
|
121
|
+
const receipt = 'txHash' in txHashOrReceipt ? txHashOrReceipt : await node.getTxReceipt(txHashOrReceipt, {
|
|
122
|
+
includeTxEffect: true
|
|
123
|
+
});
|
|
124
|
+
const { epochNumber, blockNumber, txIndexInBlock } = receipt;
|
|
125
|
+
if (epochNumber === undefined || blockNumber === undefined || txIndexInBlock === undefined) {
|
|
110
126
|
return undefined;
|
|
111
127
|
}
|
|
112
|
-
const [messagesInEpoch, block,
|
|
128
|
+
const [messagesInEpoch, block, checkpointsData] = await Promise.all([
|
|
113
129
|
node.getL2ToL1Messages(epochNumber),
|
|
114
130
|
node.getBlock(blockNumber),
|
|
115
|
-
node.getTxEffect(txHash),
|
|
116
131
|
node.getCheckpointsData({
|
|
117
132
|
epoch: epochNumber
|
|
118
133
|
})
|
|
119
134
|
]);
|
|
120
|
-
if (messagesInEpoch.length === 0 || !block
|
|
135
|
+
if (messagesInEpoch.length === 0 || !block) {
|
|
121
136
|
return undefined;
|
|
122
137
|
}
|
|
123
138
|
const checkpointIndex = checkpointsData.findIndex((c)=>c.checkpointNumber === block.checkpointNumber);
|
|
@@ -125,7 +140,7 @@ import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot }
|
|
|
125
140
|
return undefined;
|
|
126
141
|
}
|
|
127
142
|
const blockIndex = block.indexWithinCheckpoint;
|
|
128
|
-
const txIndex =
|
|
143
|
+
const txIndex = txIndexInBlock;
|
|
129
144
|
// Pick the smallest partial-proof root on the Outbox that covers checkpointIndex. The Outbox
|
|
130
145
|
// stores roots keyed by `numCheckpointsInEpoch - 1`, so to cover a tx in checkpoint at index
|
|
131
146
|
// `checkpointIndex` we need a non-zero entry at array index >= checkpointIndex.
|
|
@@ -28,7 +28,6 @@ export type CheckpointTimingConfig = {
|
|
|
28
28
|
l1PublishingTime?: number;
|
|
29
29
|
minExecutionTime?: number;
|
|
30
30
|
p2pPropagationTime?: number;
|
|
31
|
-
pipelining?: boolean;
|
|
32
31
|
};
|
|
33
32
|
export interface CheckpointTiming {
|
|
34
33
|
readonly aztecSlotDuration: number;
|
|
@@ -54,20 +53,19 @@ export interface PipelinedCheckpointTiming extends CheckpointTiming {
|
|
|
54
53
|
readonly attestationWindowIntoTargetSlot: number;
|
|
55
54
|
}
|
|
56
55
|
/**
|
|
57
|
-
* Creates a checkpoint timing model
|
|
56
|
+
* Creates a checkpoint timing model.
|
|
58
57
|
*
|
|
59
58
|
* Most callers should use this factory and depend only on the shared
|
|
60
|
-
* `CheckpointTiming` interface.
|
|
61
|
-
* `opts.pipelining`.
|
|
59
|
+
* `CheckpointTiming` interface.
|
|
62
60
|
*/
|
|
63
61
|
export declare function createCheckpointTimingModel(opts: CheckpointTimingConfig): CheckpointTiming;
|
|
64
62
|
/**
|
|
65
|
-
* Creates a
|
|
63
|
+
* Creates a checkpoint timing model exposing the target-slot window accessors.
|
|
66
64
|
*
|
|
67
|
-
* Use this when the caller specifically needs the pipelined
|
|
68
|
-
*
|
|
65
|
+
* Use this when the caller specifically needs the pipelined timing surface, such
|
|
66
|
+
* as proposal or attestation acceptance windows into the target slot.
|
|
69
67
|
*/
|
|
70
|
-
export declare function createPipelinedCheckpointTimingModel(opts:
|
|
68
|
+
export declare function createPipelinedCheckpointTimingModel(opts: CheckpointTimingConfig): PipelinedCheckpointTiming;
|
|
71
69
|
/**
|
|
72
70
|
* Calculates the maximum number of blocks that can be built in a slot.
|
|
73
71
|
* Used by both the sequencer timetable and p2p gossipsub scoring.
|
|
@@ -82,6 +80,5 @@ export declare function calculateMaxBlocksPerSlot(aztecSlotDurationSec: number,
|
|
|
82
80
|
checkpointAssembleTime?: number;
|
|
83
81
|
p2pPropagationTime?: number;
|
|
84
82
|
l1PublishingTime?: number;
|
|
85
|
-
pipelining?: boolean;
|
|
86
83
|
}): number;
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aW1ldGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILG1GQUFtRjtBQUNuRixlQUFPLE1BQU0sOEJBQThCLElBQUksQ0FBQztBQUVoRCx1RkFBdUY7QUFDdkYsZUFBTyxNQUFNLHdCQUF3QixJQUFJLENBQUM7QUFFMUMscUZBQXFGO0FBQ3JGLGVBQU8sTUFBTSw0QkFBNEIsSUFBSSxDQUFDO0FBRTlDLHdGQUF3RjtBQUN4RixlQUFPLE1BQU0sMEJBQTBCLEtBQUssQ0FBQztBQUU3Qyw2REFBNkQ7QUFDN0QsZUFBTyxNQUFNLGtCQUFrQixJQUFJLENBQUM7QUFFcEMsTUFBTSxNQUFNLHNCQUFzQixHQUFHO0lBQ25DLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM5QixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEMsNEJBQTRCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDMUIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDMUIsa0JBQWtCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDN0IsQ0FBQztBQUVGLE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsUUFBUSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUNuQyxRQUFRLENBQUMsYUFBYSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDM0MsUUFBUSxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxRQUFRLENBQUMsNEJBQTRCLEVBQUUsTUFBTSxDQUFDO0lBQzlDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFDbEMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztJQUNsQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLFFBQVEsQ0FBQywwQkFBMEIsRUFBRSxNQUFNLENBQUM7SUFDNUMsUUFBUSxDQUFDLGdDQUFnQyxFQUFFLE1BQU0sQ0FBQztJQUNsRCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQ25DLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDdEMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0lBQzVDLFFBQVEsQ0FBQyxrQ0FBa0MsRUFBRSxNQUFNLENBQUM7SUFDcEQsUUFBUSxDQUFDLDZCQUE2QixFQUFFLE1BQU0sQ0FBQztJQUMvQyxRQUFRLENBQUMsNEJBQTRCLEVBQUUsTUFBTSxDQUFDO0lBRTlDLHlCQUF5QixJQUFJLE1BQU0sQ0FBQztDQUNyQztBQUVELE1BQU0sV0FBVyx5QkFBMEIsU0FBUSxnQkFBZ0I7SUFDakUsUUFBUSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQztJQUM5QyxRQUFRLENBQUMsK0JBQStCLEVBQUUsTUFBTSxDQUFDO0NBQ2xEO0FBaUhEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLDJCQUEyQixDQUFDLElBQUksRUFBRSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FFMUY7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQixvQ0FBb0MsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEdBQUcseUJBQXlCLENBTzVHO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IseUJBQXlCLENBQ3ZDLG9CQUFvQixFQUFFLE1BQU0sRUFDNUIsZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDcEMsSUFBSSxHQUFFO0lBQ0osNEJBQTRCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEMsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEMsa0JBQWtCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDNUIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDdEIsR0FDTCxNQUFNLENBU1IifQ==
|
|
@@ -1 +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,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;
|
|
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,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,gCAAgC,EAAE,MAAM,CAAC;IAClD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,kCAAkC,EAAE,MAAM,CAAC;IACpD,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAE9C,yBAAyB,IAAI,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,+BAA+B,EAAE,MAAM,CAAC;CAClD;AAiHD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,CAE1F;AAED;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,sBAAsB,GAAG,yBAAyB,CAO5G;AAED;;;;;;;;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,CASR"}
|
package/dest/timetable/index.js
CHANGED
|
@@ -14,12 +14,14 @@
|
|
|
14
14
|
/** Default L1 publishing time (matches Ethereum slot duration on mainnet) in seconds */ export const DEFAULT_L1_PUBLISHING_TIME = 12;
|
|
15
15
|
/** Minimum execution time for building a block in seconds */ export const MIN_EXECUTION_TIME = 2;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Checkpoint timing model for proposer pipelining.
|
|
18
18
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
|
|
19
|
+
* The build work starts at the wall-clock slot boundary and the checkpoint
|
|
20
|
+
* proposal is broadcast early enough that attestations complete by the end of
|
|
21
|
+
* the build slot. L1 submission can then be sent at the boundary of the target
|
|
22
|
+
* slot. The target-slot window getters are intended for consumers such as P2P
|
|
23
|
+
* validators that need to validate pipelined messages against wallclock time.
|
|
24
|
+
*/ class CheckpointTimingModel {
|
|
23
25
|
aztecSlotDuration;
|
|
24
26
|
blockDuration;
|
|
25
27
|
checkpointAssembleTime;
|
|
@@ -27,6 +29,7 @@
|
|
|
27
29
|
l1PublishingTime;
|
|
28
30
|
minExecutionTime;
|
|
29
31
|
p2pPropagationTime;
|
|
32
|
+
ethereumSlotDuration;
|
|
30
33
|
constructor(opts){
|
|
31
34
|
this.aztecSlotDuration = opts.aztecSlotDuration;
|
|
32
35
|
this.blockDuration = opts.blockDuration;
|
|
@@ -35,6 +38,7 @@
|
|
|
35
38
|
this.l1PublishingTime = opts.l1PublishingTime ?? DEFAULT_L1_PUBLISHING_TIME;
|
|
36
39
|
this.minExecutionTime = opts.minExecutionTime ?? MIN_EXECUTION_TIME;
|
|
37
40
|
this.p2pPropagationTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
|
|
41
|
+
this.ethereumSlotDuration = opts.ethereumSlotDuration ?? this.l1PublishingTime;
|
|
38
42
|
}
|
|
39
43
|
get checkpointFinalizationTime() {
|
|
40
44
|
// Allow enough time to
|
|
@@ -43,58 +47,6 @@
|
|
|
43
47
|
// - Publish to L1
|
|
44
48
|
return this.checkpointAssembleTime + this.p2pPropagationTime * 2 + this.l1PublishingTime;
|
|
45
49
|
}
|
|
46
|
-
get pipeliningAttestationGracePeriod() {
|
|
47
|
-
// Allow enough time to
|
|
48
|
-
// - build the block
|
|
49
|
-
// - pass it back over p2p
|
|
50
|
-
return (this.blockDuration ?? 0) + this.p2pPropagationTime;
|
|
51
|
-
}
|
|
52
|
-
get initializeDeadline() {
|
|
53
|
-
return this.aztecSlotDuration - this.minimumBuildSlotWork;
|
|
54
|
-
}
|
|
55
|
-
get checkpointAttestationStartDeadline() {
|
|
56
|
-
return this.checkpointAssemblyDeadline;
|
|
57
|
-
}
|
|
58
|
-
calculateMaxBlocksPerSlot() {
|
|
59
|
-
if (!this.blockDuration) {
|
|
60
|
-
return 1;
|
|
61
|
-
}
|
|
62
|
-
const timeAvailableForBlocks = this.aztecSlotDuration - this.checkpointInitializationTime - this.timeReservedAtEnd;
|
|
63
|
-
return Math.floor(timeAvailableForBlocks / this.blockDuration);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Checkpoint timing model for the non-pipelined sequencer flow.
|
|
68
|
-
*
|
|
69
|
-
* In this mode, checkpoint assembly, attestation collection, and L1 publishing
|
|
70
|
-
* must all complete within the current Aztec slot.
|
|
71
|
-
*/ class StandardCheckpointTimingModel extends BaseCheckpointTiming {
|
|
72
|
-
get timeReservedAtEnd() {
|
|
73
|
-
return (this.blockDuration ?? 0) + this.checkpointFinalizationTime;
|
|
74
|
-
}
|
|
75
|
-
get minimumBuildSlotWork() {
|
|
76
|
-
return this.checkpointInitializationTime + this.minExecutionTime * 2 + this.checkpointFinalizationTime;
|
|
77
|
-
}
|
|
78
|
-
get checkpointAssemblyDeadline() {
|
|
79
|
-
return this.aztecSlotDuration - this.l1PublishingTime - 2 * this.p2pPropagationTime;
|
|
80
|
-
}
|
|
81
|
-
get checkpointAttestationDeadline() {
|
|
82
|
-
return this.aztecSlotDuration - this.l1PublishingTime;
|
|
83
|
-
}
|
|
84
|
-
get checkpointPublishingDeadline() {
|
|
85
|
-
return this.aztecSlotDuration - this.l1PublishingTime;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Checkpoint timing model for proposer pipelining.
|
|
90
|
-
*
|
|
91
|
-
* In this mode, the build work starts at the wall-clock slot boundary and the
|
|
92
|
-
* checkpoint proposal is broadcast early enough that attestations complete by
|
|
93
|
-
* the end of the build slot. L1 submission can then be sent at the boundary of
|
|
94
|
-
* the target slot. The extra target-slot window getters are intended for
|
|
95
|
-
* consumers such as P2P validators that need to validate pipelined messages
|
|
96
|
-
* against wallclock time.
|
|
97
|
-
*/ class PipelinedCheckpointTimingModel extends BaseCheckpointTiming {
|
|
98
50
|
get proposalWindowIntoTargetSlot() {
|
|
99
51
|
// Proposals no longer spill into the target slot: they are broadcast early
|
|
100
52
|
// enough in the build slot that attestations complete before the boundary.
|
|
@@ -102,14 +54,17 @@
|
|
|
102
54
|
return 0;
|
|
103
55
|
}
|
|
104
56
|
get attestationWindowIntoTargetSlot() {
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
|
|
57
|
+
// Span from the target-slot start to the L1 publish deadline (12s before the last L1 block of
|
|
58
|
+
// the target slot). The p2p layer accepts slot-N attestations until right before the publish
|
|
59
|
+
// deadline so the proposer can keep collecting useful attestations up to the latest moment the
|
|
60
|
+
// checkpoint can still land on L1 in the target slot.
|
|
61
|
+
return Math.max(0, this.aztecSlotDuration - 2 * this.ethereumSlotDuration);
|
|
108
62
|
}
|
|
109
63
|
get pipeliningAttestationGracePeriod() {
|
|
110
|
-
// Under the early-pipelining regime attestations complete inside the build
|
|
111
|
-
// slot
|
|
112
|
-
|
|
64
|
+
// Under the early-pipelining regime attestations complete inside the build slot itself. Local
|
|
65
|
+
// networks can publish much faster than the Ethereum slot geometry, so they may use the target
|
|
66
|
+
// slot attestation window without moving the L1 publish cutoff.
|
|
67
|
+
return this.l1PublishingTime < this.ethereumSlotDuration ? this.attestationWindowIntoTargetSlot : 0;
|
|
113
68
|
}
|
|
114
69
|
get timeReservedAtEnd() {
|
|
115
70
|
// Reserve enough time at the end of the build slot for:
|
|
@@ -121,42 +76,54 @@
|
|
|
121
76
|
get minimumBuildSlotWork() {
|
|
122
77
|
return this.checkpointInitializationTime + this.minExecutionTime * 2;
|
|
123
78
|
}
|
|
79
|
+
get initializeDeadline() {
|
|
80
|
+
return this.aztecSlotDuration - this.minimumBuildSlotWork;
|
|
81
|
+
}
|
|
124
82
|
get checkpointAssemblyDeadline() {
|
|
125
83
|
// Allow enough time to build all blocks and receive attestations. With
|
|
126
84
|
// `pipeliningAttestationGracePeriod = 0` this equals `aztecSlotDuration`.
|
|
127
85
|
return this.aztecSlotDuration + this.pipeliningAttestationGracePeriod;
|
|
128
86
|
}
|
|
87
|
+
get checkpointAttestationStartDeadline() {
|
|
88
|
+
return this.checkpointAssemblyDeadline;
|
|
89
|
+
}
|
|
129
90
|
get checkpointAttestationDeadline() {
|
|
130
|
-
//
|
|
131
|
-
|
|
91
|
+
// L1 publish deadline — 12s (one Ethereum slot) before the last L1 block of the target L2 slot;
|
|
92
|
+
// the latest the checkpoint can be submitted and still land on L1 in the target slot. This is an
|
|
93
|
+
// L1-geometry bound (ethereumSlotDuration), matching the publisher's send lead in sendRequestsAt
|
|
94
|
+
// (which also targets one Ethereum slot before the target slot start).
|
|
95
|
+
return this.aztecSlotDuration * 2 - this.ethereumSlotDuration;
|
|
132
96
|
}
|
|
133
97
|
get checkpointPublishingDeadline() {
|
|
134
|
-
//
|
|
135
|
-
|
|
98
|
+
// L1 publish deadline — 12s (one Ethereum slot) before the last L1 block of the target L2 slot;
|
|
99
|
+
// the latest the checkpoint can be submitted and still land on L1 in the target slot.
|
|
100
|
+
return this.aztecSlotDuration * 2 - this.ethereumSlotDuration;
|
|
101
|
+
}
|
|
102
|
+
calculateMaxBlocksPerSlot() {
|
|
103
|
+
if (!this.blockDuration) {
|
|
104
|
+
return 1;
|
|
105
|
+
}
|
|
106
|
+
const timeAvailableForBlocks = this.aztecSlotDuration - this.checkpointInitializationTime - this.timeReservedAtEnd;
|
|
107
|
+
return Math.floor(timeAvailableForBlocks / this.blockDuration);
|
|
136
108
|
}
|
|
137
109
|
}
|
|
138
110
|
/**
|
|
139
|
-
* Creates a checkpoint timing model
|
|
111
|
+
* Creates a checkpoint timing model.
|
|
140
112
|
*
|
|
141
113
|
* Most callers should use this factory and depend only on the shared
|
|
142
|
-
* `CheckpointTiming` interface.
|
|
143
|
-
* `opts.pipelining`.
|
|
114
|
+
* `CheckpointTiming` interface.
|
|
144
115
|
*/ export function createCheckpointTimingModel(opts) {
|
|
145
|
-
|
|
146
|
-
const normalizedOpts = normalizeCheckpointTimingConfig(opts);
|
|
147
|
-
const timing = normalizedOpts.pipelining ? new PipelinedCheckpointTimingModel(normalizedOpts) : new StandardCheckpointTimingModel(normalizedOpts);
|
|
148
|
-
validateCheckpointTimingModel(timing);
|
|
149
|
-
return timing;
|
|
116
|
+
return createPipelinedCheckpointTimingModel(opts);
|
|
150
117
|
}
|
|
151
118
|
/**
|
|
152
|
-
* Creates a
|
|
119
|
+
* Creates a checkpoint timing model exposing the target-slot window accessors.
|
|
153
120
|
*
|
|
154
|
-
* Use this when the caller specifically needs the pipelined
|
|
155
|
-
*
|
|
121
|
+
* Use this when the caller specifically needs the pipelined timing surface, such
|
|
122
|
+
* as proposal or attestation acceptance windows into the target slot.
|
|
156
123
|
*/ export function createPipelinedCheckpointTimingModel(opts) {
|
|
157
124
|
validateCheckpointTimingConfig(opts);
|
|
158
125
|
const normalizedOpts = normalizeCheckpointTimingConfig(opts);
|
|
159
|
-
const timing = new
|
|
126
|
+
const timing = new CheckpointTimingModel(normalizedOpts);
|
|
160
127
|
validateCheckpointTimingModel(timing);
|
|
161
128
|
return timing;
|
|
162
129
|
}
|
|
@@ -175,8 +142,7 @@
|
|
|
175
142
|
checkpointAssembleTime: opts.checkpointAssembleTime,
|
|
176
143
|
checkpointInitializationTime: opts.checkpointInitializationTime,
|
|
177
144
|
l1PublishingTime: opts.l1PublishingTime,
|
|
178
|
-
p2pPropagationTime: opts.p2pPropagationTime
|
|
179
|
-
pipelining: opts.pipelining
|
|
145
|
+
p2pPropagationTime: opts.p2pPropagationTime
|
|
180
146
|
}).calculateMaxBlocksPerSlot();
|
|
181
147
|
}
|
|
182
148
|
function assertNonNegative(name, value) {
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
|
+
import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
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
|
+
/** A tx effect together with its position in the block (`txIndexInBlock`) and the slot the block was built in. */
|
|
5
6
|
export type IndexedTxEffect = DataInBlock<TxEffect> & {
|
|
6
7
|
txIndexInBlock: number;
|
|
8
|
+
slotNumber: SlotNumber;
|
|
7
9
|
};
|
|
8
10
|
export declare function indexedTxSchema(): import("zod").ZodObject<{
|
|
9
11
|
l2BlockNumber: import("zod").ZodPipe<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodPipe<import("zod").ZodBigInt, import("zod").ZodTransform<number, bigint>>, import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<number, string>>]>, import("zod").ZodTransform<BlockNumber, number>>;
|
|
10
12
|
l2BlockHash: import("@aztec/foundation/schemas").ZodFor<BlockHash>;
|
|
11
13
|
data: import("@aztec/foundation/schemas").ZodFor<TxEffect>;
|
|
12
14
|
txIndexInBlock: import("zod").ZodPipe<import("zod").ZodUnion<readonly [import("zod").ZodBigInt, import("zod").ZodNumber, import("zod").ZodString]>, import("zod").ZodCoercedNumber<string | number | bigint>>;
|
|
15
|
+
slotNumber: import("zod").ZodPipe<import("zod").ZodPipe<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodBigInt, import("zod").ZodString]>, import("zod").ZodCoercedNumber<string | number | bigint>>, import("zod").ZodTransform<SlotNumber, number>>;
|
|
13
16
|
}, import("zod/v4/core").$strip>;
|
|
14
17
|
export declare function randomIndexedTxEffect(): Promise<IndexedTxEffect>;
|
|
15
18
|
export declare function serializeIndexedTxEffect(effect: IndexedTxEffect): Buffer;
|
|
16
19
|
export declare function deserializeIndexedTxEffect(buffer: Buffer): IndexedTxEffect;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZF90eF9lZmZlY3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC9pbmRleGVkX3R4X2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSTFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQTJDLE1BQU0sc0JBQXNCLENBQUM7QUFDakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLGtIQUFrSDtBQUNsSCxNQUFNLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRztJQUFFLGNBQWMsRUFBRSxNQUFNLENBQUM7SUFBQyxVQUFVLEVBQUUsVUFBVSxDQUFBO0NBQUUsQ0FBQztBQUV6Ryx3QkFBZ0IsZUFBZTs7Ozs7O2lDQUs5QjtBQUVELHdCQUFzQixxQkFBcUIsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLENBTXRFO0FBRUQsd0JBQWdCLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxlQUFlLEdBQUcsTUFBTSxDQVF4RTtBQUVELHdCQUFnQiwwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLGVBQWUsQ0FnQjFFIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexed_tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/indexed_tx_effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"indexed_tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/indexed_tx_effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAI1E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,KAAK,WAAW,EAA2C,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,kHAAkH;AAClH,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzG,wBAAgB,eAAe;;;;;;iCAK9B;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAMtE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAQxE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAgB1E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
|
+
import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import { schemas } from '@aztec/foundation/schemas';
|
|
3
3
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
4
|
import { BlockHash } from '../block/block_hash.js';
|
|
@@ -6,7 +6,8 @@ import { dataInBlockSchemaFor, randomDataInBlock } from '../block/in_block.js';
|
|
|
6
6
|
import { TxEffect } from './tx_effect.js';
|
|
7
7
|
export function indexedTxSchema() {
|
|
8
8
|
return dataInBlockSchemaFor(TxEffect.schema).extend({
|
|
9
|
-
txIndexInBlock: schemas.Integer
|
|
9
|
+
txIndexInBlock: schemas.Integer,
|
|
10
|
+
slotNumber: schemas.SlotNumber
|
|
10
11
|
});
|
|
11
12
|
}
|
|
12
13
|
export async function randomIndexedTxEffect() {
|
|
@@ -14,22 +15,25 @@ export async function randomIndexedTxEffect() {
|
|
|
14
15
|
...randomDataInBlock(await TxEffect.random({
|
|
15
16
|
numNullifiers: 1 + Math.floor(Math.random() * 64)
|
|
16
17
|
})),
|
|
17
|
-
txIndexInBlock: Math.floor(Math.random() * 1000)
|
|
18
|
+
txIndexInBlock: Math.floor(Math.random() * 1000),
|
|
19
|
+
slotNumber: SlotNumber(Math.floor(Math.random() * 1000))
|
|
18
20
|
};
|
|
19
21
|
}
|
|
20
22
|
export function serializeIndexedTxEffect(effect) {
|
|
21
|
-
return serializeToBuffer(effect.l2BlockHash, effect.l2BlockNumber, effect.txIndexInBlock, effect.data);
|
|
23
|
+
return serializeToBuffer(effect.l2BlockHash, effect.l2BlockNumber, effect.txIndexInBlock, effect.slotNumber, effect.data);
|
|
22
24
|
}
|
|
23
25
|
export function deserializeIndexedTxEffect(buffer) {
|
|
24
26
|
const reader = BufferReader.asReader(buffer);
|
|
25
27
|
const l2BlockHash = BlockHash.fromBuffer(reader);
|
|
26
28
|
const l2BlockNumber = BlockNumber(reader.readNumber());
|
|
27
29
|
const txIndexInBlock = reader.readNumber();
|
|
30
|
+
const slotNumber = SlotNumber(reader.readNumber());
|
|
28
31
|
const data = reader.readObject(TxEffect);
|
|
29
32
|
return {
|
|
30
33
|
l2BlockHash,
|
|
31
34
|
l2BlockNumber,
|
|
32
35
|
txIndexInBlock,
|
|
36
|
+
slotNumber,
|
|
33
37
|
data
|
|
34
38
|
};
|
|
35
39
|
}
|
package/dest/tx/tx.d.ts
CHANGED
|
@@ -136,6 +136,13 @@ export declare class Tx extends Gossipable {
|
|
|
136
136
|
* @returns The cloned transaction.
|
|
137
137
|
*/
|
|
138
138
|
static clone(tx: Tx, cloneProof?: boolean): Tx;
|
|
139
|
+
/**
|
|
140
|
+
* Returns a copy of this tx with its proof stripped (replaced by an empty {@link ChonkProof}). Used when archiving
|
|
141
|
+
* txs or shipping a pending tx over RPC where the proof is not needed. Note that {@link Tx.clone} with
|
|
142
|
+
* `cloneProof = false` does not strip the proof; it shares the original.
|
|
143
|
+
* @returns A new tx with an empty proof.
|
|
144
|
+
*/
|
|
145
|
+
withoutProof(): Tx;
|
|
139
146
|
/**
|
|
140
147
|
* Creates a random tx.
|
|
141
148
|
* @param randomProof - Whether to create a random proof - this will be random bytes of the full size.
|
|
@@ -156,4 +163,4 @@ export declare class TxArray extends Array<Tx> {
|
|
|
156
163
|
toBuffer(): Buffer;
|
|
157
164
|
toBuffer(sink: BufferSink): void;
|
|
158
165
|
}
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUNMLFlBQVksRUFDWixVQUFVLEVBSVgsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQVksTUFBTSx5QkFBeUIsQ0FBQztBQUlsRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdkYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQVV0Qzs7R0FFRztBQUVILHFCQUFhLEVBQUcsU0FBUSxVQUFVOztJQU05Qjs7OztPQUlHO2FBQ2EsTUFBTSxFQUFFLE1BQU07SUFDOUI7O09BRUc7YUFDYSxJQUFJLEVBQUUsb0NB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
|
package/dest/tx/tx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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"}
|
package/dest/tx/tx.js
CHANGED
|
@@ -219,6 +219,14 @@ export class Tx extends Gossipable {
|
|
|
219
219
|
return clonedTx;
|
|
220
220
|
}
|
|
221
221
|
/**
|
|
222
|
+
* Returns a copy of this tx with its proof stripped (replaced by an empty {@link ChonkProof}). Used when archiving
|
|
223
|
+
* txs or shipping a pending tx over RPC where the proof is not needed. Note that {@link Tx.clone} with
|
|
224
|
+
* `cloneProof = false` does not strip the proof; it shares the original.
|
|
225
|
+
* @returns A new tx with an empty proof.
|
|
226
|
+
*/ withoutProof() {
|
|
227
|
+
return new Tx(this.txHash, this.data, ChonkProof.empty(), this.contractClassLogFields, this.publicFunctionCalldata);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
222
230
|
* Creates a random tx.
|
|
223
231
|
* @param randomProof - Whether to create a random proof - this will be random bytes of the full size.
|
|
224
232
|
* @returns A random tx.
|