@aztec-labs/sequencer-client 6.0.0-nightly.20260922 → 6.0.0-rc.1
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/client/sequencer-client.d.ts +1 -1
- package/dest/client/sequencer-client.d.ts.map +1 -1
- package/dest/client/sequencer-client.js +1 -1
- package/dest/publisher/sequencer-bundle-simulator.d.ts +9 -5
- package/dest/publisher/sequencer-bundle-simulator.d.ts.map +1 -1
- package/dest/publisher/sequencer-bundle-simulator.js +19 -10
- package/dest/publisher/sequencer-publisher.d.ts +2 -1
- package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher.js +37 -16
- package/package.json +22 -22
- package/src/client/sequencer-client.ts +1 -0
- package/src/publisher/sequencer-bundle-simulator.ts +37 -13
- package/src/publisher/sequencer-publisher.ts +49 -11
|
@@ -97,4 +97,4 @@ export declare class SequencerClient {
|
|
|
97
97
|
get validatorAddresses(): EthAddress[] | undefined;
|
|
98
98
|
get maxL2BlockGas(): number | undefined;
|
|
99
99
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9zZXF1ZW5jZXItY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JELE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkcsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVySCxPQUFPLEVBQUUsS0FBSyxx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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ import { Sequencer } from '../sequencer/index.js';
|
|
|
43
43
|
const log = createLogger('sequencer');
|
|
44
44
|
const publicClient = getPublicClient(config);
|
|
45
45
|
const l1TxUtils = deps.l1TxUtils;
|
|
46
|
-
const l1Metrics = new L1Metrics(telemetryClient.getMeter('L1PublisherMetrics'), publicClient, l1TxUtils.map((x)=>x.getSenderAddress()));
|
|
46
|
+
const l1Metrics = new L1Metrics(telemetryClient.getMeter('L1PublisherMetrics'), publicClient, l1TxUtils.map((x)=>x.getSenderAddress()), 'sequencer');
|
|
47
47
|
const publisherManager = new PublisherManager(l1TxUtils, getPublisherConfigFromSequencerConfig(config), {
|
|
48
48
|
bindings: log.getBindings(),
|
|
49
49
|
funder: deps.funderL1TxUtils
|
|
@@ -15,8 +15,8 @@ export type DroppedRequest = {
|
|
|
15
15
|
* Result of {@link SequencerBundleSimulator.simulate}.
|
|
16
16
|
*
|
|
17
17
|
* - `success`: simulation succeeded. `requests` is the filtered survivor list, `gasLimit` is
|
|
18
|
-
* the bumped gas limit derived from
|
|
19
|
-
* lists the entries that were observed to revert in simulation.
|
|
18
|
+
* the bumped gas limit derived from the simulated transaction gas (plus blob evaluation gas).
|
|
19
|
+
* `droppedRequests` lists the entries that were observed to revert in simulation.
|
|
20
20
|
* - `fallback`: the node does not support eth_simulateV1 (or the simulate call threw). The
|
|
21
21
|
* caller should send `requests` as-is with a safe gas limit (e.g. {@link MAX_L1_TX_LIMIT}).
|
|
22
22
|
* `droppedRequests` carries any entries that the first pass already proved reverted, so the
|
|
@@ -82,8 +82,12 @@ export declare class SequencerBundleSimulator {
|
|
|
82
82
|
simulate(validRequests: RequestWithExpiry[], targetSlot: SlotNumber): Promise<BundleSimulateResult>;
|
|
83
83
|
private buildSuccessResult;
|
|
84
84
|
/**
|
|
85
|
-
* `gasLimit = bumpGasLimit(ceil(
|
|
86
|
-
*
|
|
85
|
+
* `gasLimit = bumpGasLimit(ceil(basis * 64 / 63))`, plus blob evaluation gas if a propose survived,
|
|
86
|
+
* capped at {@link MAX_L1_TX_LIMIT}.
|
|
87
|
+
*
|
|
88
|
+
* The basis is the simulation's `maxUsedGas` when the node reports it, since that is measured before
|
|
89
|
+
* refunds, and its `gasUsed` otherwise. Either way the headroom on top is the buffer configured for the
|
|
90
|
+
* L1 tx utils; neither figure guarantees a sufficient limit, hence the padding and the buffer.
|
|
87
91
|
*/
|
|
88
92
|
private computeGasLimit;
|
|
89
93
|
/**
|
|
@@ -93,4 +97,4 @@ export declare class SequencerBundleSimulator {
|
|
|
93
97
|
private buildStateOverrides;
|
|
94
98
|
private simulateAndDecode;
|
|
95
99
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWJ1bmRsZS1zaW11bGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaXNoZXIvc2VxdWVuY2VyLWJ1bmRsZS1zaW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFjLEtBQUssY0FBYyxFQUF5QyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBbUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFFdkUsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFpQixNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWxFLHVGQUF1RjtBQUN2RixNQUFNLE1BQU0sY0FBYyxHQUFHO0lBQzNCLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQztJQUMzQixZQUFZLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUNqQyxVQUFVLEVBQUUsR0FBRyxHQUFHLFNBQVMsQ0FBQztDQUM3QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sTUFBTSxvQkFBb0IsR0FDNUI7SUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDO0lBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUM7SUFBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxDQUFBO0NBQUUsR0FDdkc7SUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDO0lBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUM7SUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLENBQUE7Q0FBRSxHQUN0RjtJQUFFLElBQUksRUFBRSxTQUFTLENBQUM7SUFBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxDQUFBO0NBQUUsQ0FBQztBQUVoRixNQUFNLE1BQU0sV0FBVyxHQUFHLGNBQWMsR0FBRyxjQUFjLEdBQUcscUJBQXFCLENBQUM7QUFZbEY7Ozs7OztHQU1HO0FBQ0gscUJBQWEsd0JBQXdCO0lBSWpDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSTtJQUh2QixPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBUztJQUU3QixZQUNtQixJQUFJLEVBQUU7UUFDckIsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO1FBQzlCLGNBQWMsRUFBRSxjQUFjLENBQUM7UUFDL0IsVUFBVSxFQUFFLFVBQVUsQ0FBQztRQUN2QixHQUFHLENBQUMsRUFBRSxNQUFNLENBQUM7S0FDZCxFQUdGO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FzQkc7SUFDVSxRQUFRLENBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFFLEVBQUUsVUFBVSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0E4RS9HO0lBRUQsT0FBTyxDQUFDLGtCQUFrQjtJQXFCMUI7Ozs7Ozs7T0FPRztJQUNILE9BQU8sQ0FBQyxlQUFlO0lBV3ZCOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxtQkFBbUI7WUFPYixpQkFBaUI7Q0FvRGhDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-bundle-simulator.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-bundle-simulator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAc,KAAK,cAAc,EAAyC,MAAM,gCAAgC,CAAC;AACxH,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,kCAAkC,CAAC;AAEnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AAEvE,OAAO,KAAK,EAAE,GAAG,EAAiB,MAAM,MAAM,CAAC;AAE/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,GAAG,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,cAAc,EAAE,CAAA;CAAE,GACvG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAAC,eAAe,EAAE,cAAc,EAAE,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,eAAe,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC;AAEhF,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"sequencer-bundle-simulator.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-bundle-simulator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAc,KAAK,cAAc,EAAyC,MAAM,gCAAgC,CAAC;AACxH,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,kCAAkC,CAAC;AAEnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AAEvE,OAAO,KAAK,EAAE,GAAG,EAAiB,MAAM,MAAM,CAAC;AAE/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,GAAG,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,cAAc,EAAE,CAAA;CAAE,GACvG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAAC,eAAe,EAAE,cAAc,EAAE,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,eAAe,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC;AAEhF,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,qBAAqB,CAAC;AAYlF;;;;;;GAMG;AACH,qBAAa,wBAAwB;IAIjC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,YACmB,IAAI,EAAE;QACrB,YAAY,EAAE,MAAM,SAAS,CAAC;QAC9B,cAAc,EAAE,cAAc,CAAC;QAC/B,UAAU,EAAE,UAAU,CAAC;QACvB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,EAGF;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,QAAQ,CAAC,aAAa,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA8E/G;IAED,OAAO,CAAC,kBAAkB;IAqB1B;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAWvB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;YAOb,iBAAiB;CAoDhC"}
|
|
@@ -74,7 +74,7 @@ import { getLastL1SlotTimestampForL2Slot } from '@aztec-labs/stdlib/epoch-helper
|
|
|
74
74
|
};
|
|
75
75
|
}
|
|
76
76
|
if (firstPass.droppedRequests.length === 0) {
|
|
77
|
-
return this.buildSuccessResult(l1TxUtils, firstPass.survivors, [], firstPass
|
|
77
|
+
return this.buildSuccessResult(l1TxUtils, firstPass.survivors, [], firstPass, proposeRequest);
|
|
78
78
|
}
|
|
79
79
|
this.log.warn('Some bundle entries reverted; re-simulating reduced bundle', {
|
|
80
80
|
droppedActions: firstPass.droppedRequests.map((d)=>d.request.action),
|
|
@@ -109,15 +109,18 @@ import { getLastL1SlotTimestampForL2Slot } from '@aztec-labs/stdlib/epoch-helper
|
|
|
109
109
|
]
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
-
|
|
112
|
+
// The reduced bundle is what we are about to send, so its own gas metrics are the ones that size the tx.
|
|
113
|
+
return this.buildSuccessResult(l1TxUtils, secondPass.survivors, firstPass.droppedRequests, secondPass, proposeRequest);
|
|
113
114
|
}
|
|
114
|
-
buildSuccessResult(l1TxUtils, survivors, droppedRequests,
|
|
115
|
+
buildSuccessResult(l1TxUtils, survivors, droppedRequests, bundleGas, proposeRequest) {
|
|
115
116
|
const proposeSurvived = proposeRequest !== undefined && survivors.includes(proposeRequest);
|
|
116
117
|
const blobEvaluationGas = proposeSurvived ? proposeRequest?.blobEvaluationGas ?? 0n : 0n;
|
|
117
|
-
const gasLimit = this.computeGasLimit(l1TxUtils,
|
|
118
|
+
const gasLimit = this.computeGasLimit(l1TxUtils, bundleGas, blobEvaluationGas);
|
|
118
119
|
this.log.debug('Bundle simulate complete', {
|
|
119
120
|
survivingRequests: survivors.length,
|
|
120
|
-
bundleGasUsed,
|
|
121
|
+
bundleGasUsed: bundleGas.gasUsed,
|
|
122
|
+
bundleMaxUsedGas: bundleGas.maxUsedGas,
|
|
123
|
+
blobEvaluationGas,
|
|
121
124
|
gasLimit,
|
|
122
125
|
actions: survivors.map((r)=>r.action)
|
|
123
126
|
});
|
|
@@ -129,10 +132,15 @@ import { getLastL1SlotTimestampForL2Slot } from '@aztec-labs/stdlib/epoch-helper
|
|
|
129
132
|
};
|
|
130
133
|
}
|
|
131
134
|
/**
|
|
132
|
-
* `gasLimit = bumpGasLimit(ceil(
|
|
133
|
-
*
|
|
134
|
-
|
|
135
|
-
|
|
135
|
+
* `gasLimit = bumpGasLimit(ceil(basis * 64 / 63))`, plus blob evaluation gas if a propose survived,
|
|
136
|
+
* capped at {@link MAX_L1_TX_LIMIT}.
|
|
137
|
+
*
|
|
138
|
+
* The basis is the simulation's `maxUsedGas` when the node reports it, since that is measured before
|
|
139
|
+
* refunds, and its `gasUsed` otherwise. Either way the headroom on top is the buffer configured for the
|
|
140
|
+
* L1 tx utils; neither figure guarantees a sufficient limit, hence the padding and the buffer.
|
|
141
|
+
*/ computeGasLimit(l1TxUtils, bundleGas, blobEvaluationGas) {
|
|
142
|
+
const basis = bundleGas.maxUsedGas ?? bundleGas.gasUsed;
|
|
143
|
+
const gasUsedWithEip150 = (basis * 64n + 62n) / 63n;
|
|
136
144
|
const gasLimit = l1TxUtils.bumpGasLimit(gasUsedWithEip150) + blobEvaluationGas;
|
|
137
145
|
return gasLimit > MAX_L1_TX_LIMIT ? MAX_L1_TX_LIMIT : gasLimit;
|
|
138
146
|
}
|
|
@@ -192,7 +200,8 @@ import { getLastL1SlotTimestampForL2Slot } from '@aztec-labs/stdlib/epoch-helper
|
|
|
192
200
|
kind: 'decoded',
|
|
193
201
|
survivors,
|
|
194
202
|
droppedRequests,
|
|
195
|
-
gasUsed: simResult.gasUsed
|
|
203
|
+
gasUsed: simResult.gasUsed,
|
|
204
|
+
maxUsedGas: simResult.maxUsedGas
|
|
196
205
|
};
|
|
197
206
|
}
|
|
198
207
|
}
|
|
@@ -195,6 +195,7 @@ export declare class SequencerPublisher implements Disposable {
|
|
|
195
195
|
* than building against a chain tip that the wait then leaves behind.
|
|
196
196
|
*/
|
|
197
197
|
waitForTargetSlot(targetSlot: SlotNumber): Promise<void>;
|
|
198
|
+
private summarizeTransactionResult;
|
|
198
199
|
private callbackBundledTransactions;
|
|
199
200
|
/**
|
|
200
201
|
* @notice Will call `canProposeAt` to make sure that it is possible to propose
|
|
@@ -276,4 +277,4 @@ export declare class SequencerPublisher implements Disposable {
|
|
|
276
277
|
private getNextL1SlotTimestamp;
|
|
277
278
|
}
|
|
278
279
|
export {};
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLXB1Ymxpc2hlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1Ymxpc2hlci9zZXF1ZW5jZXItcHVibGlzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBR0wsS0FBSywwQkFBMEIsRUFLL0IsS0FBSyxjQUFjLEVBQ25CLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssd0JBQXdCLEVBRTlCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQUUsYUFBYSxFQUEwQixNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZILE9BQU8sRUFDTCxLQUFLLFlBQVksRUFDakIsS0FBSyxVQUFVLEVBQ2YsS0FBSyxXQUFXLEVBRWhCLEtBQUssU0FBUyxFQUVkLEtBQUssZ0JBQWdCLEVBR3RCLE1BQU0sa0NBQWtDLENBQUM7QUFRMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR3BGLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBR3ZFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBUyxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixFQUE2QixNQUFNLHFCQUFxQixD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAGL,KAAK,0BAA0B,EAK/B,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAE9B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,mBAAmB,EAAE,aAAa,EAA0B,MAAM,sCAAsC,CAAC;AACvH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAEhB,KAAK,SAAS,EAEd,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"sequencer-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher.ts"],"names":[],"mappings":"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"}
|
|
@@ -375,11 +375,11 @@ import { EmpireBaseAbi, ErrorsAbi, RollupAbi, SlashingProposerAbi } from '@aztec
|
|
|
375
375
|
import { Blob, getBlobsPerL1Block, getPrefixedEthBlobCommitments } from '@aztec-labs/blob-lib';
|
|
376
376
|
import { FeeAssetPriceOracle, MULTI_CALL_3_ADDRESS, Multicall3, MulticallForwarderRevertedError, buildSimulationOverridesStateOverride } from '@aztec-labs/ethereum/contracts';
|
|
377
377
|
import { L1FeeAnalyzer, captureWindowBlockFees } from '@aztec-labs/ethereum/l1-fee-analysis';
|
|
378
|
-
import { L1TxTimeoutError, MAX_L1_TX_LIMIT, WEI_CONST } from '@aztec-labs/ethereum/l1-tx-utils';
|
|
378
|
+
import { L1TxTimeoutError, MAX_L1_TX_LIMIT, WEI_CONST, summarizeTransactionReceipt } from '@aztec-labs/ethereum/l1-tx-utils';
|
|
379
379
|
import { FormattedViemError, formatViemError, mergeAbis, tryDecodeRevertReason, tryExtractEvent } from '@aztec-labs/ethereum/utils';
|
|
380
380
|
import { CheckpointNumber, SlotNumber } from '@aztec-labs/foundation/branded-types';
|
|
381
381
|
import { trimmedBytesLength } from '@aztec-labs/foundation/buffer';
|
|
382
|
-
import { pick } from '@aztec-labs/foundation/collection';
|
|
382
|
+
import { pick, sum } from '@aztec-labs/foundation/collection';
|
|
383
383
|
import { TimeoutError } from '@aztec-labs/foundation/error';
|
|
384
384
|
import { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
385
385
|
import { Signature } from '@aztec-labs/foundation/eth-signature';
|
|
@@ -391,7 +391,7 @@ import { encodeSlashConsensusVotes } from '@aztec-labs/slasher';
|
|
|
391
391
|
import { CommitteeAttestationsAndSigners } from '@aztec-labs/stdlib/block';
|
|
392
392
|
import { getLastL1SlotTimestampForL2Slot, getNextL1SlotTimestamp, getTimestampForSlot } from '@aztec-labs/stdlib/epoch-helpers';
|
|
393
393
|
import { getTelemetryClient, trackSpan } from '@aztec-labs/telemetry-client';
|
|
394
|
-
import { encodeFunctionData, keccak256, toHex } from 'viem';
|
|
394
|
+
import { encodeFunctionData, keccak256, size, toHex } from 'viem';
|
|
395
395
|
import { createL1TxFailedStore } from './l1_tx_failed_store/index.js';
|
|
396
396
|
import { SequencerBundleSimulator } from './sequencer-bundle-simulator.js';
|
|
397
397
|
import { SequencerPublisherMetrics } from './sequencer-publisher-metrics.js';
|
|
@@ -1067,18 +1067,39 @@ export class SequencerPublisher {
|
|
|
1067
1067
|
}
|
|
1068
1068
|
}
|
|
1069
1069
|
}
|
|
1070
|
+
summarizeTransactionResult(result) {
|
|
1071
|
+
return {
|
|
1072
|
+
receipt: result?.receipt && summarizeTransactionReceipt(result.receipt),
|
|
1073
|
+
stats: result?.stats,
|
|
1074
|
+
errorMsg: result?.errorMsg
|
|
1075
|
+
};
|
|
1076
|
+
}
|
|
1070
1077
|
callbackBundledTransactions(requests, result) {
|
|
1071
|
-
|
|
1078
|
+
// Bound both payload sizes and entry count so the container log remains one JSON record.
|
|
1079
|
+
const loggedRequests = requests.slice(0, 10);
|
|
1080
|
+
const actionsListStr = loggedRequests.map((r)=>r.action).join(', ');
|
|
1072
1081
|
this.log.verbose(`Published bundled transactions (${actionsListStr})`, {
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1082
|
+
eventName: 'l1_bundle_published',
|
|
1083
|
+
result: {
|
|
1084
|
+
receipt: summarizeTransactionReceipt(result.receipt),
|
|
1085
|
+
multicallDataBytes: size(result.multicallData)
|
|
1086
|
+
},
|
|
1087
|
+
requestCount: requests.length,
|
|
1088
|
+
omittedRequestCount: requests.length - loggedRequests.length,
|
|
1089
|
+
requests: loggedRequests.map((r)=>({
|
|
1090
|
+
action: r.action,
|
|
1091
|
+
request: {
|
|
1092
|
+
to: r.request.to,
|
|
1093
|
+
value: r.request.value,
|
|
1094
|
+
dataBytes: size(r.request.data ?? '0x')
|
|
1095
|
+
},
|
|
1096
|
+
lastValidL2Slot: r.lastValidL2Slot,
|
|
1097
|
+
gasConfig: r.gasConfig,
|
|
1098
|
+
blobEvaluationGas: r.blobEvaluationGas,
|
|
1076
1099
|
// Avoid logging large blob data
|
|
1077
1100
|
blobConfig: r.blobConfig ? {
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
size: trimmedBytesLength(b)
|
|
1081
|
-
}))
|
|
1101
|
+
blobCount: r.blobConfig.blobs.length,
|
|
1102
|
+
blobBytes: sum(r.blobConfig.blobs.map(trimmedBytesLength))
|
|
1082
1103
|
} : undefined
|
|
1083
1104
|
}))
|
|
1084
1105
|
});
|
|
@@ -1386,7 +1407,7 @@ export class SequencerPublisher {
|
|
|
1386
1407
|
eventName: 'SignalCast'
|
|
1387
1408
|
});
|
|
1388
1409
|
const logData = {
|
|
1389
|
-
...result,
|
|
1410
|
+
...this.summarizeTransactionResult(result),
|
|
1390
1411
|
slotNumber,
|
|
1391
1412
|
round,
|
|
1392
1413
|
payload: payload.toString()
|
|
@@ -1563,12 +1584,12 @@ export class SequencerPublisher {
|
|
|
1563
1584
|
});
|
|
1564
1585
|
if (!success) {
|
|
1565
1586
|
this.log.warn(`Invalidate checkpoint ${request.checkpointNumber} failed`, {
|
|
1566
|
-
...result,
|
|
1587
|
+
...this.summarizeTransactionResult(result),
|
|
1567
1588
|
...logData
|
|
1568
1589
|
});
|
|
1569
1590
|
} else {
|
|
1570
1591
|
this.log.info(`Invalidate checkpoint ${request.checkpointNumber} succeeded`, {
|
|
1571
|
-
...result,
|
|
1592
|
+
...this.summarizeTransactionResult(result),
|
|
1572
1593
|
...logData
|
|
1573
1594
|
});
|
|
1574
1595
|
}
|
|
@@ -1598,13 +1619,13 @@ export class SequencerPublisher {
|
|
|
1598
1619
|
const success = result && extractEventSuccess(result.receipt, eventOpts);
|
|
1599
1620
|
if (!success) {
|
|
1600
1621
|
this.log.warn(`Action ${action} at ${slotNumber} failed`, {
|
|
1601
|
-
...result,
|
|
1622
|
+
...this.summarizeTransactionResult(result),
|
|
1602
1623
|
slotNumber
|
|
1603
1624
|
});
|
|
1604
1625
|
this.lastActions[action] = cachedLastActionSlot;
|
|
1605
1626
|
} else {
|
|
1606
1627
|
this.log.info(`Action ${action} at ${slotNumber} succeeded`, {
|
|
1607
|
-
...result,
|
|
1628
|
+
...this.summarizeTransactionResult(result),
|
|
1608
1629
|
slotNumber
|
|
1609
1630
|
});
|
|
1610
1631
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec-labs/sequencer-client",
|
|
3
|
-
"version": "6.0.0-
|
|
3
|
+
"version": "6.0.0-rc.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -27,32 +27,32 @@
|
|
|
27
27
|
"test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@aztec-foundation/l1-artifacts": "6.0.0-
|
|
31
|
-
"@aztec-labs/archiver": "6.0.0-
|
|
32
|
-
"@aztec-labs/blob-client": "6.0.0-
|
|
33
|
-
"@aztec-labs/blob-lib": "6.0.0-
|
|
34
|
-
"@aztec-labs/constants": "6.0.0-
|
|
35
|
-
"@aztec-labs/epoch-cache": "6.0.0-
|
|
36
|
-
"@aztec-labs/ethereum": "6.0.0-
|
|
37
|
-
"@aztec-labs/foundation": "6.0.0-
|
|
38
|
-
"@aztec-labs/node-keystore": "6.0.0-
|
|
39
|
-
"@aztec-labs/p2p": "6.0.0-
|
|
40
|
-
"@aztec-labs/prover-client": "6.0.0-
|
|
41
|
-
"@aztec-labs/simulator": "6.0.0-
|
|
42
|
-
"@aztec-labs/slasher": "6.0.0-
|
|
43
|
-
"@aztec-labs/stdlib": "6.0.0-
|
|
44
|
-
"@aztec-labs/telemetry-client": "6.0.0-
|
|
45
|
-
"@aztec-labs/validator-client": "6.0.0-
|
|
46
|
-
"@aztec-labs/validator-ha-signer": "6.0.0-
|
|
30
|
+
"@aztec-foundation/l1-artifacts": "6.0.0-rc.1",
|
|
31
|
+
"@aztec-labs/archiver": "6.0.0-rc.1",
|
|
32
|
+
"@aztec-labs/blob-client": "6.0.0-rc.1",
|
|
33
|
+
"@aztec-labs/blob-lib": "6.0.0-rc.1",
|
|
34
|
+
"@aztec-labs/constants": "6.0.0-rc.1",
|
|
35
|
+
"@aztec-labs/epoch-cache": "6.0.0-rc.1",
|
|
36
|
+
"@aztec-labs/ethereum": "6.0.0-rc.1",
|
|
37
|
+
"@aztec-labs/foundation": "6.0.0-rc.1",
|
|
38
|
+
"@aztec-labs/node-keystore": "6.0.0-rc.1",
|
|
39
|
+
"@aztec-labs/p2p": "6.0.0-rc.1",
|
|
40
|
+
"@aztec-labs/prover-client": "6.0.0-rc.1",
|
|
41
|
+
"@aztec-labs/simulator": "6.0.0-rc.1",
|
|
42
|
+
"@aztec-labs/slasher": "6.0.0-rc.1",
|
|
43
|
+
"@aztec-labs/stdlib": "6.0.0-rc.1",
|
|
44
|
+
"@aztec-labs/telemetry-client": "6.0.0-rc.1",
|
|
45
|
+
"@aztec-labs/validator-client": "6.0.0-rc.1",
|
|
46
|
+
"@aztec-labs/validator-ha-signer": "6.0.0-rc.1",
|
|
47
47
|
"lodash.chunk": "^4.2.0",
|
|
48
48
|
"tslib": "^2.4.0",
|
|
49
|
-
"viem": "npm:@aztec/viem@2.38.
|
|
49
|
+
"viem": "npm:@aztec/viem@2.38.3",
|
|
50
50
|
"zod": "~4.4.3"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-
|
|
54
|
-
"@aztec-labs/protocol-contracts": "6.0.0-
|
|
55
|
-
"@aztec-labs/world-state": "6.0.0-
|
|
53
|
+
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.1",
|
|
54
|
+
"@aztec-labs/protocol-contracts": "6.0.0-rc.1",
|
|
55
|
+
"@aztec-labs/world-state": "6.0.0-rc.1",
|
|
56
56
|
"@electric-sql/pglite": "^0.3.14",
|
|
57
57
|
"@jest/globals": "^30.0.0",
|
|
58
58
|
"@types/jest": "^30.0.0",
|
|
@@ -92,6 +92,7 @@ export class SequencerClient {
|
|
|
92
92
|
telemetryClient.getMeter('L1PublisherMetrics'),
|
|
93
93
|
publicClient,
|
|
94
94
|
l1TxUtils.map(x => x.getSenderAddress()),
|
|
95
|
+
'sequencer',
|
|
95
96
|
);
|
|
96
97
|
const publisherManager = new PublisherManager(l1TxUtils, getPublisherConfigFromSequencerConfig(config), {
|
|
97
98
|
bindings: log.getBindings(),
|
|
@@ -20,8 +20,8 @@ export type DroppedRequest = {
|
|
|
20
20
|
* Result of {@link SequencerBundleSimulator.simulate}.
|
|
21
21
|
*
|
|
22
22
|
* - `success`: simulation succeeded. `requests` is the filtered survivor list, `gasLimit` is
|
|
23
|
-
* the bumped gas limit derived from
|
|
24
|
-
* lists the entries that were observed to revert in simulation.
|
|
23
|
+
* the bumped gas limit derived from the simulated transaction gas (plus blob evaluation gas).
|
|
24
|
+
* `droppedRequests` lists the entries that were observed to revert in simulation.
|
|
25
25
|
* - `fallback`: the node does not support eth_simulateV1 (or the simulate call threw). The
|
|
26
26
|
* caller should send `requests` as-is with a safe gas limit (e.g. {@link MAX_L1_TX_LIMIT}).
|
|
27
27
|
* `droppedRequests` carries any entries that the first pass already proved reverted, so the
|
|
@@ -38,7 +38,13 @@ export type BundleSimulateResult =
|
|
|
38
38
|
export type AbortReason = 'empty-bundle' | 'all-reverted' | 'second-pass-reverts';
|
|
39
39
|
|
|
40
40
|
type SimulatePassResult =
|
|
41
|
-
| {
|
|
41
|
+
| {
|
|
42
|
+
kind: 'decoded';
|
|
43
|
+
survivors: RequestWithExpiry[];
|
|
44
|
+
droppedRequests: DroppedRequest[];
|
|
45
|
+
gasUsed: bigint;
|
|
46
|
+
maxUsedGas?: bigint;
|
|
47
|
+
}
|
|
42
48
|
| { kind: 'fallback' };
|
|
43
49
|
|
|
44
50
|
/**
|
|
@@ -114,7 +120,7 @@ export class SequencerBundleSimulator {
|
|
|
114
120
|
}
|
|
115
121
|
|
|
116
122
|
if (firstPass.droppedRequests.length === 0) {
|
|
117
|
-
return this.buildSuccessResult(l1TxUtils, firstPass.survivors, [], firstPass
|
|
123
|
+
return this.buildSuccessResult(l1TxUtils, firstPass.survivors, [], firstPass, proposeRequest);
|
|
118
124
|
}
|
|
119
125
|
|
|
120
126
|
this.log.warn('Some bundle entries reverted; re-simulating reduced bundle', {
|
|
@@ -155,11 +161,12 @@ export class SequencerBundleSimulator {
|
|
|
155
161
|
};
|
|
156
162
|
}
|
|
157
163
|
|
|
164
|
+
// The reduced bundle is what we are about to send, so its own gas metrics are the ones that size the tx.
|
|
158
165
|
return this.buildSuccessResult(
|
|
159
166
|
l1TxUtils,
|
|
160
167
|
secondPass.survivors,
|
|
161
168
|
firstPass.droppedRequests,
|
|
162
|
-
secondPass
|
|
169
|
+
secondPass,
|
|
163
170
|
proposeRequest,
|
|
164
171
|
);
|
|
165
172
|
}
|
|
@@ -168,15 +175,17 @@ export class SequencerBundleSimulator {
|
|
|
168
175
|
l1TxUtils: L1TxUtils,
|
|
169
176
|
survivors: RequestWithExpiry[],
|
|
170
177
|
droppedRequests: DroppedRequest[],
|
|
171
|
-
|
|
178
|
+
bundleGas: { gasUsed: bigint; maxUsedGas?: bigint },
|
|
172
179
|
proposeRequest: RequestWithExpiry | undefined,
|
|
173
180
|
): BundleSimulateResult {
|
|
174
181
|
const proposeSurvived = proposeRequest !== undefined && survivors.includes(proposeRequest);
|
|
175
182
|
const blobEvaluationGas = proposeSurvived ? (proposeRequest?.blobEvaluationGas ?? 0n) : 0n;
|
|
176
|
-
const gasLimit = this.computeGasLimit(l1TxUtils,
|
|
183
|
+
const gasLimit = this.computeGasLimit(l1TxUtils, bundleGas, blobEvaluationGas);
|
|
177
184
|
this.log.debug('Bundle simulate complete', {
|
|
178
185
|
survivingRequests: survivors.length,
|
|
179
|
-
bundleGasUsed,
|
|
186
|
+
bundleGasUsed: bundleGas.gasUsed,
|
|
187
|
+
bundleMaxUsedGas: bundleGas.maxUsedGas,
|
|
188
|
+
blobEvaluationGas,
|
|
180
189
|
gasLimit,
|
|
181
190
|
actions: survivors.map(r => r.action),
|
|
182
191
|
});
|
|
@@ -184,11 +193,20 @@ export class SequencerBundleSimulator {
|
|
|
184
193
|
}
|
|
185
194
|
|
|
186
195
|
/**
|
|
187
|
-
* `gasLimit = bumpGasLimit(ceil(
|
|
188
|
-
*
|
|
196
|
+
* `gasLimit = bumpGasLimit(ceil(basis * 64 / 63))`, plus blob evaluation gas if a propose survived,
|
|
197
|
+
* capped at {@link MAX_L1_TX_LIMIT}.
|
|
198
|
+
*
|
|
199
|
+
* The basis is the simulation's `maxUsedGas` when the node reports it, since that is measured before
|
|
200
|
+
* refunds, and its `gasUsed` otherwise. Either way the headroom on top is the buffer configured for the
|
|
201
|
+
* L1 tx utils; neither figure guarantees a sufficient limit, hence the padding and the buffer.
|
|
189
202
|
*/
|
|
190
|
-
private computeGasLimit(
|
|
191
|
-
|
|
203
|
+
private computeGasLimit(
|
|
204
|
+
l1TxUtils: L1TxUtils,
|
|
205
|
+
bundleGas: { gasUsed: bigint; maxUsedGas?: bigint },
|
|
206
|
+
blobEvaluationGas: bigint,
|
|
207
|
+
): bigint {
|
|
208
|
+
const basis = bundleGas.maxUsedGas ?? bundleGas.gasUsed;
|
|
209
|
+
const gasUsedWithEip150 = (basis * 64n + 62n) / 63n;
|
|
192
210
|
const gasLimit = l1TxUtils.bumpGasLimit(gasUsedWithEip150) + blobEvaluationGas;
|
|
193
211
|
return gasLimit > MAX_L1_TX_LIMIT ? MAX_L1_TX_LIMIT : gasLimit;
|
|
194
212
|
}
|
|
@@ -248,6 +266,12 @@ export class SequencerBundleSimulator {
|
|
|
248
266
|
returnData: entry.returnData,
|
|
249
267
|
});
|
|
250
268
|
}
|
|
251
|
-
return {
|
|
269
|
+
return {
|
|
270
|
+
kind: 'decoded',
|
|
271
|
+
survivors,
|
|
272
|
+
droppedRequests,
|
|
273
|
+
gasUsed: simResult.gasUsed,
|
|
274
|
+
maxUsedGas: simResult.maxUsedGas,
|
|
275
|
+
};
|
|
252
276
|
}
|
|
253
277
|
}
|
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
MAX_L1_TX_LIMIT,
|
|
28
28
|
type TransactionStats,
|
|
29
29
|
WEI_CONST,
|
|
30
|
+
summarizeTransactionReceipt,
|
|
30
31
|
} from '@aztec-labs/ethereum/l1-tx-utils';
|
|
31
32
|
import {
|
|
32
33
|
FormattedViemError,
|
|
@@ -37,7 +38,7 @@ import {
|
|
|
37
38
|
} from '@aztec-labs/ethereum/utils';
|
|
38
39
|
import { CheckpointNumber, SlotNumber } from '@aztec-labs/foundation/branded-types';
|
|
39
40
|
import { trimmedBytesLength } from '@aztec-labs/foundation/buffer';
|
|
40
|
-
import { pick } from '@aztec-labs/foundation/collection';
|
|
41
|
+
import { pick, sum } from '@aztec-labs/foundation/collection';
|
|
41
42
|
import type { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
42
43
|
import { TimeoutError } from '@aztec-labs/foundation/error';
|
|
43
44
|
import { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
@@ -65,6 +66,7 @@ import {
|
|
|
65
66
|
type TypedDataDefinition,
|
|
66
67
|
encodeFunctionData,
|
|
67
68
|
keccak256,
|
|
69
|
+
size,
|
|
68
70
|
toHex,
|
|
69
71
|
} from 'viem';
|
|
70
72
|
|
|
@@ -928,18 +930,42 @@ export class SequencerPublisher implements Disposable {
|
|
|
928
930
|
}
|
|
929
931
|
}
|
|
930
932
|
|
|
933
|
+
private summarizeTransactionResult(result?: {
|
|
934
|
+
receipt: TransactionReceipt;
|
|
935
|
+
stats?: TransactionStats;
|
|
936
|
+
errorMsg?: string;
|
|
937
|
+
}) {
|
|
938
|
+
return {
|
|
939
|
+
receipt: result?.receipt && summarizeTransactionReceipt(result.receipt),
|
|
940
|
+
stats: result?.stats,
|
|
941
|
+
errorMsg: result?.errorMsg,
|
|
942
|
+
};
|
|
943
|
+
}
|
|
944
|
+
|
|
931
945
|
private callbackBundledTransactions(
|
|
932
946
|
requests: RequestWithExpiry[],
|
|
933
947
|
result: { receipt: TransactionReceipt; multicallData: Hex },
|
|
934
948
|
) {
|
|
935
|
-
|
|
949
|
+
// Bound both payload sizes and entry count so the container log remains one JSON record.
|
|
950
|
+
const loggedRequests = requests.slice(0, 10);
|
|
951
|
+
const actionsListStr = loggedRequests.map(r => r.action).join(', ');
|
|
936
952
|
this.log.verbose(`Published bundled transactions (${actionsListStr})`, {
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
953
|
+
eventName: 'l1_bundle_published',
|
|
954
|
+
result: {
|
|
955
|
+
receipt: summarizeTransactionReceipt(result.receipt),
|
|
956
|
+
multicallDataBytes: size(result.multicallData),
|
|
957
|
+
},
|
|
958
|
+
requestCount: requests.length,
|
|
959
|
+
omittedRequestCount: requests.length - loggedRequests.length,
|
|
960
|
+
requests: loggedRequests.map(r => ({
|
|
961
|
+
action: r.action,
|
|
962
|
+
request: { to: r.request.to, value: r.request.value, dataBytes: size(r.request.data ?? '0x') },
|
|
963
|
+
lastValidL2Slot: r.lastValidL2Slot,
|
|
964
|
+
gasConfig: r.gasConfig,
|
|
965
|
+
blobEvaluationGas: r.blobEvaluationGas,
|
|
940
966
|
// Avoid logging large blob data
|
|
941
967
|
blobConfig: r.blobConfig
|
|
942
|
-
? {
|
|
968
|
+
? { blobCount: r.blobConfig.blobs.length, blobBytes: sum(r.blobConfig.blobs.map(trimmedBytesLength)) }
|
|
943
969
|
: undefined,
|
|
944
970
|
})),
|
|
945
971
|
});
|
|
@@ -1296,7 +1322,7 @@ export class SequencerPublisher implements Disposable {
|
|
|
1296
1322
|
eventName: 'SignalCast',
|
|
1297
1323
|
});
|
|
1298
1324
|
|
|
1299
|
-
const logData = { ...result, slotNumber, round, payload: payload.toString() };
|
|
1325
|
+
const logData = { ...this.summarizeTransactionResult(result), slotNumber, round, payload: payload.toString() };
|
|
1300
1326
|
if (!success) {
|
|
1301
1327
|
this.log.error(
|
|
1302
1328
|
`Signaling in ${action} for ${payload} at slot ${slotNumber} in round ${round} failed`,
|
|
@@ -1510,9 +1536,15 @@ export class SequencerPublisher implements Disposable {
|
|
|
1510
1536
|
eventName: 'CheckpointInvalidated',
|
|
1511
1537
|
});
|
|
1512
1538
|
if (!success) {
|
|
1513
|
-
this.log.warn(`Invalidate checkpoint ${request.checkpointNumber} failed`, {
|
|
1539
|
+
this.log.warn(`Invalidate checkpoint ${request.checkpointNumber} failed`, {
|
|
1540
|
+
...this.summarizeTransactionResult(result),
|
|
1541
|
+
...logData,
|
|
1542
|
+
});
|
|
1514
1543
|
} else {
|
|
1515
|
-
this.log.info(`Invalidate checkpoint ${request.checkpointNumber} succeeded`, {
|
|
1544
|
+
this.log.info(`Invalidate checkpoint ${request.checkpointNumber} succeeded`, {
|
|
1545
|
+
...this.summarizeTransactionResult(result),
|
|
1546
|
+
...logData,
|
|
1547
|
+
});
|
|
1516
1548
|
}
|
|
1517
1549
|
return !!success;
|
|
1518
1550
|
},
|
|
@@ -1545,10 +1577,16 @@ export class SequencerPublisher implements Disposable {
|
|
|
1545
1577
|
checkSuccess: (_request, result) => {
|
|
1546
1578
|
const success = result && extractEventSuccess(result.receipt, eventOpts);
|
|
1547
1579
|
if (!success) {
|
|
1548
|
-
this.log.warn(`Action ${action} at ${slotNumber} failed`, {
|
|
1580
|
+
this.log.warn(`Action ${action} at ${slotNumber} failed`, {
|
|
1581
|
+
...this.summarizeTransactionResult(result),
|
|
1582
|
+
slotNumber,
|
|
1583
|
+
});
|
|
1549
1584
|
this.lastActions[action] = cachedLastActionSlot;
|
|
1550
1585
|
} else {
|
|
1551
|
-
this.log.info(`Action ${action} at ${slotNumber} succeeded`, {
|
|
1586
|
+
this.log.info(`Action ${action} at ${slotNumber} succeeded`, {
|
|
1587
|
+
...this.summarizeTransactionResult(result),
|
|
1588
|
+
slotNumber,
|
|
1589
|
+
});
|
|
1552
1590
|
}
|
|
1553
1591
|
return !!success;
|
|
1554
1592
|
},
|