@aztec/sequencer-client 0.46.2 → 0.46.4
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/publisher/l1-publisher.d.ts +24 -8
- package/dest/publisher/l1-publisher.d.ts.map +1 -1
- package/dest/publisher/l1-publisher.js +58 -13
- package/dest/publisher/viem-tx-sender.d.ts +7 -1
- package/dest/publisher/viem-tx-sender.d.ts.map +1 -1
- package/dest/publisher/viem-tx-sender.js +24 -7
- package/dest/sequencer/sequencer.d.ts +2 -3
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +12 -5
- package/package.json +15 -15
- package/src/publisher/l1-publisher.ts +89 -21
- package/src/publisher/viem-tx-sender.ts +27 -6
- package/src/sequencer/sequencer.ts +13 -5
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import { type L2Block } from '@aztec/circuit-types';
|
|
3
|
-
import { type EthAddress, type
|
|
3
|
+
import { type EthAddress, type Header, type Proof } from '@aztec/circuits.js';
|
|
4
|
+
import { type Fr } from '@aztec/foundation/fields';
|
|
4
5
|
import { type L2BlockReceiver } from '../receiver.js';
|
|
5
6
|
import { type PublisherConfig } from './config.js';
|
|
6
7
|
/**
|
|
@@ -33,7 +34,9 @@ export type MinimalTransactionReceipt = {
|
|
|
33
34
|
* Pushes txs to the L1 chain and waits for their completion.
|
|
34
35
|
*/
|
|
35
36
|
export interface L1PublisherTxSender {
|
|
37
|
+
/** Returns the EOA used for sending txs to L1. */
|
|
36
38
|
getSenderAddress(): Promise<EthAddress>;
|
|
39
|
+
/** Returns the address elected for submitting a given block number or zero if anyone can submit. */
|
|
37
40
|
getSubmitterAddressForBlock(blockNumber: number): Promise<EthAddress>;
|
|
38
41
|
/**
|
|
39
42
|
* Publishes tx effects to Availability Oracle.
|
|
@@ -47,6 +50,12 @@ export interface L1PublisherTxSender {
|
|
|
47
50
|
* @returns The hash of the mined tx.
|
|
48
51
|
*/
|
|
49
52
|
sendProcessTx(encodedData: L1ProcessArgs): Promise<string | undefined>;
|
|
53
|
+
/**
|
|
54
|
+
* Sends a tx to the L1 rollup contract with a proof. Returns once the tx has been mined.
|
|
55
|
+
* @param encodedData - Serialized data for processing the new L2 block.
|
|
56
|
+
* @returns The hash of the mined tx.
|
|
57
|
+
*/
|
|
58
|
+
sendSubmitProofTx(submitProofArgs: L1SubmitProofArgs): Promise<string | undefined>;
|
|
50
59
|
/**
|
|
51
60
|
* Returns a tx receipt if the tx has been mined.
|
|
52
61
|
* @param txHash - Hash of the tx to look for.
|
|
@@ -70,9 +79,7 @@ export interface L1PublisherTxSender {
|
|
|
70
79
|
*/
|
|
71
80
|
checkIfTxsAreAvailable(block: L2Block): Promise<boolean>;
|
|
72
81
|
}
|
|
73
|
-
/**
|
|
74
|
-
* Encoded block and proof ready to be pushed to the L1 contract.
|
|
75
|
-
*/
|
|
82
|
+
/** Arguments to the process method of the rollup contract */
|
|
76
83
|
export type L1ProcessArgs = {
|
|
77
84
|
/** The L2 block header. */
|
|
78
85
|
header: Buffer;
|
|
@@ -80,10 +87,17 @@ export type L1ProcessArgs = {
|
|
|
80
87
|
archive: Buffer;
|
|
81
88
|
/** L2 block body. */
|
|
82
89
|
body: Buffer;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
90
|
+
};
|
|
91
|
+
/** Arguments to the submitProof method of the rollup contract */
|
|
92
|
+
export type L1SubmitProofArgs = {
|
|
93
|
+
/** The L2 block header. */
|
|
94
|
+
header: Buffer;
|
|
95
|
+
/** A root of the archive tree after the L2 block is applied. */
|
|
96
|
+
archive: Buffer;
|
|
97
|
+
/** The proof for the block. */
|
|
86
98
|
proof: Buffer;
|
|
99
|
+
/** The aggregation object for the block's proof. */
|
|
100
|
+
aggregationObject: Buffer;
|
|
87
101
|
};
|
|
88
102
|
/**
|
|
89
103
|
* Publishes L2 blocks to L1. This implementation does *not* retry a transaction in
|
|
@@ -106,7 +120,8 @@ export declare class L1Publisher implements L2BlockReceiver {
|
|
|
106
120
|
* @param block - L2 block to publish.
|
|
107
121
|
* @returns True once the tx has been confirmed and is successful, false on revert or interrupt, blocks otherwise.
|
|
108
122
|
*/
|
|
109
|
-
processL2Block(block: L2Block
|
|
123
|
+
processL2Block(block: L2Block): Promise<boolean>;
|
|
124
|
+
submitProof(header: Header, archiveRoot: Fr, aggregationObject: Fr[], proof: Proof): Promise<boolean>;
|
|
110
125
|
/**
|
|
111
126
|
* Calling `interrupt` will cause any in progress call to `publishRollup` to return `false` asap.
|
|
112
127
|
* Be warned, the call may return false even if the tx subsequently gets successfully mined.
|
|
@@ -122,6 +137,7 @@ export declare class L1Publisher implements L2BlockReceiver {
|
|
|
122
137
|
* @returns Boolean indicating if the hashes are equal.
|
|
123
138
|
*/
|
|
124
139
|
private checkLastArchiveHash;
|
|
140
|
+
private sendSubmitProofTx;
|
|
125
141
|
private sendPublishTx;
|
|
126
142
|
private sendProcessTx;
|
|
127
143
|
private getTransactionReceipt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/l1-publisher.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"l1-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/l1-publisher.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,18 +28,19 @@ export class L1Publisher {
|
|
|
28
28
|
* @param block - L2 block to publish.
|
|
29
29
|
* @returns True once the tx has been confirmed and is successful, false on revert or interrupt, blocks otherwise.
|
|
30
30
|
*/
|
|
31
|
-
async processL2Block(block
|
|
31
|
+
async processL2Block(block) {
|
|
32
|
+
const ctx = { blockNumber: block.number, blockHash: block.hash().toString() };
|
|
32
33
|
// TODO(#4148) Remove this block number check, it's here because we don't currently have proper genesis state on the contract
|
|
33
34
|
const lastArchive = block.header.lastArchive.root.toBuffer();
|
|
34
35
|
if (block.number != 1 && !(await this.checkLastArchiveHash(lastArchive))) {
|
|
35
|
-
this.log.info(`Detected different last archive prior to publishing a block, aborting publish
|
|
36
|
+
this.log.info(`Detected different last archive prior to publishing a block, aborting publish...`, ctx);
|
|
36
37
|
return false;
|
|
37
38
|
}
|
|
38
39
|
const encodedBody = block.body.toBuffer();
|
|
39
40
|
// Publish block transaction effects
|
|
40
41
|
while (!this.interrupted) {
|
|
41
42
|
if (await this.txSender.checkIfTxsAreAvailable(block)) {
|
|
42
|
-
this.log.verbose(`Transaction effects of
|
|
43
|
+
this.log.verbose(`Transaction effects of block ${block.number} already published.`, ctx);
|
|
43
44
|
break;
|
|
44
45
|
}
|
|
45
46
|
const txHash = await this.sendPublishTx(encodedBody);
|
|
@@ -57,20 +58,18 @@ export class L1Publisher {
|
|
|
57
58
|
txsEffectsHash = receipt.logs[0].data;
|
|
58
59
|
}
|
|
59
60
|
else {
|
|
60
|
-
this.log.warn(`Expected 1 log, got ${receipt.logs.length}
|
|
61
|
+
this.log.warn(`Expected 1 log, got ${receipt.logs.length}`, ctx);
|
|
61
62
|
}
|
|
62
|
-
this.log.info(`Block txs effects published, txsEffectsHash
|
|
63
|
+
this.log.info(`Block txs effects published`, { ...ctx, txsEffectsHash });
|
|
63
64
|
break;
|
|
64
65
|
}
|
|
65
|
-
this.log.error(`AvailabilityOracle.publish tx status failed: ${receipt.transactionHash}
|
|
66
|
+
this.log.error(`AvailabilityOracle.publish tx status failed: ${receipt.transactionHash}`, ctx);
|
|
66
67
|
await this.sleepOrInterrupted();
|
|
67
68
|
}
|
|
68
69
|
const processTxArgs = {
|
|
69
70
|
header: block.header.toBuffer(),
|
|
70
71
|
archive: block.archive.root.toBuffer(),
|
|
71
72
|
body: encodedBody,
|
|
72
|
-
aggregationObject: serializeToBuffer(aggregationObject),
|
|
73
|
-
proof: proof.withoutPublicInputs(),
|
|
74
73
|
};
|
|
75
74
|
// Process block
|
|
76
75
|
while (!this.interrupted) {
|
|
@@ -91,18 +90,53 @@ export class L1Publisher {
|
|
|
91
90
|
...block.getStats(),
|
|
92
91
|
eventName: 'rollup-published-to-l1',
|
|
93
92
|
};
|
|
94
|
-
this.log.info(`Published L2 block to L1 rollup contract`, stats);
|
|
93
|
+
this.log.info(`Published L2 block to L1 rollup contract`, { ...stats, ...ctx });
|
|
95
94
|
return true;
|
|
96
95
|
}
|
|
97
96
|
// Check if someone else incremented the block number
|
|
98
97
|
if (!(await this.checkLastArchiveHash(lastArchive))) {
|
|
99
|
-
this.log.warn('Publish failed. Detected different last archive hash.');
|
|
98
|
+
this.log.warn('Publish failed. Detected different last archive hash.', ctx);
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
this.log.error(`Rollup.process tx status failed: ${receipt.transactionHash}`, ctx);
|
|
102
|
+
await this.sleepOrInterrupted();
|
|
103
|
+
}
|
|
104
|
+
this.log.verbose('L2 block data syncing interrupted while processing blocks.', ctx);
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
async submitProof(header, archiveRoot, aggregationObject, proof) {
|
|
108
|
+
const ctx = { blockNumber: header.globalVariables.blockNumber };
|
|
109
|
+
const txArgs = {
|
|
110
|
+
header: header.toBuffer(),
|
|
111
|
+
archive: archiveRoot.toBuffer(),
|
|
112
|
+
aggregationObject: serializeToBuffer(aggregationObject),
|
|
113
|
+
proof: proof.withoutPublicInputs(),
|
|
114
|
+
};
|
|
115
|
+
// Process block
|
|
116
|
+
while (!this.interrupted) {
|
|
117
|
+
const txHash = await this.sendSubmitProofTx(txArgs);
|
|
118
|
+
if (!txHash) {
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
const receipt = await this.getTransactionReceipt(txHash);
|
|
122
|
+
if (!receipt) {
|
|
100
123
|
break;
|
|
101
124
|
}
|
|
102
|
-
|
|
125
|
+
// Tx was mined successfully
|
|
126
|
+
if (receipt.status) {
|
|
127
|
+
const tx = await this.txSender.getTransactionStats(txHash);
|
|
128
|
+
const stats = {
|
|
129
|
+
...pick(receipt, 'gasPrice', 'gasUsed', 'transactionHash'),
|
|
130
|
+
...pick(tx, 'calldataGas', 'calldataSize'),
|
|
131
|
+
eventName: 'proof-published-to-l1',
|
|
132
|
+
};
|
|
133
|
+
this.log.info(`Published L2 block to L1 rollup contract`, { ...stats, ...ctx });
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
this.log.error(`Rollup.submitProof tx status failed: ${receipt.transactionHash}`, ctx);
|
|
103
137
|
await this.sleepOrInterrupted();
|
|
104
138
|
}
|
|
105
|
-
this.log.verbose('L2 block data syncing interrupted while processing blocks.');
|
|
139
|
+
this.log.verbose('L2 block data syncing interrupted while processing blocks.', ctx);
|
|
106
140
|
return false;
|
|
107
141
|
}
|
|
108
142
|
/**
|
|
@@ -133,6 +167,17 @@ export class L1Publisher {
|
|
|
133
167
|
}
|
|
134
168
|
return areSame;
|
|
135
169
|
}
|
|
170
|
+
async sendSubmitProofTx(submitProofArgs) {
|
|
171
|
+
try {
|
|
172
|
+
const size = Object.values(submitProofArgs).reduce((acc, arg) => acc + arg.length, 0);
|
|
173
|
+
this.log.info(`SubmitProof size=${size} bytes`);
|
|
174
|
+
return await this.txSender.sendSubmitProofTx(submitProofArgs);
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
this.log.error(`Rollup submit proof failed`, err);
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
136
181
|
async sendPublishTx(encodedBody) {
|
|
137
182
|
while (!this.interrupted) {
|
|
138
183
|
try {
|
|
@@ -171,4 +216,4 @@ export class L1Publisher {
|
|
|
171
216
|
await this.interruptibleSleep.sleep(this.sleepTimeMs);
|
|
172
217
|
}
|
|
173
218
|
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDEtcHVibGlzaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1Ymxpc2hlci9sMS1wdWJsaXNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0QsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBaUgvQjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFNdEIsWUFBb0IsUUFBNkIsRUFBRSxNQUF3QjtRQUF2RCxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUx6Qyx1QkFBa0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFFOUMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsUUFBRyxHQUFHLGlCQUFpQixDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFHM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLEVBQUUsNkJBQTZCLElBQUksS0FBTSxDQUFDO0lBQ3JFLENBQUM7SUFFTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsV0FBbUI7UUFDakQsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RELE9BQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWM7UUFDeEMsTUFBTSxHQUFHLEdBQUcsRUFBRSxXQUFXLEVBQUUsS0FB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
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { type L2Block } from '@aztec/circuit-types';
|
|
3
3
|
import { EthAddress } from '@aztec/circuits.js';
|
|
4
4
|
import { type TxSenderConfig } from './config.js';
|
|
5
|
-
import { type L1PublisherTxSender, type MinimalTransactionReceipt, type L1ProcessArgs as ProcessTxArgs, type TransactionStats } from './l1-publisher.js';
|
|
5
|
+
import { type L1PublisherTxSender, type L1SubmitProofArgs, type MinimalTransactionReceipt, type L1ProcessArgs as ProcessTxArgs, type TransactionStats } from './l1-publisher.js';
|
|
6
6
|
/**
|
|
7
7
|
* Pushes transactions to the L1 rollup contract using viem.
|
|
8
8
|
*/
|
|
@@ -36,6 +36,12 @@ export declare class ViemTxSender implements L1PublisherTxSender {
|
|
|
36
36
|
* @returns The hash of the mined tx.
|
|
37
37
|
*/
|
|
38
38
|
sendProcessTx(encodedData: ProcessTxArgs): Promise<string | undefined>;
|
|
39
|
+
/**
|
|
40
|
+
* Sends a tx to the L1 rollup contract with a proof. Returns once the tx has been mined.
|
|
41
|
+
* @param encodedData - Serialized data for the proof.
|
|
42
|
+
* @returns The hash of the mined tx.
|
|
43
|
+
*/
|
|
44
|
+
sendSubmitProofTx(submitProofArgs: L1SubmitProofArgs): Promise<string | undefined>;
|
|
39
45
|
/**
|
|
40
46
|
* Gets the chain object for the given chain id.
|
|
41
47
|
* @param chainId - Chain id of the target EVM chain.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viem-tx-sender.d.ts","sourceRoot":"","sources":["../../src/publisher/viem-tx-sender.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAqBhD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,IAAI,aAAa,EACnC,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,qBAAa,YAAa,YAAW,mBAAmB;IACtD,OAAO,CAAC,0BAA0B,CAGhC;IACF,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,CAAC,GAAG,CAAuD;IAClE,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,OAAO,CAAoB;gBAEvB,MAAM,EAAE,cAAc;IA2BlC,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIjC,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAUrE,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAK1C,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAahF;;;;OAIG;IACG,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAmB3F;;;;OAIG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAarE;;;;OAIG;IACG,aAAa,CAAC,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"viem-tx-sender.d.ts","sourceRoot":"","sources":["../../src/publisher/viem-tx-sender.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAqBhD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,IAAI,aAAa,EACnC,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,qBAAa,YAAa,YAAW,mBAAmB;IACtD,OAAO,CAAC,0BAA0B,CAGhC;IACF,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,CAAC,GAAG,CAAuD;IAClE,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,OAAO,CAAoB;gBAEvB,MAAM,EAAE,cAAc;IA2BlC,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIjC,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAUrE,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAK1C,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAahF;;;;OAIG;IACG,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAmB3F;;;;OAIG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAarE;;;;OAIG;IACG,aAAa,CAAC,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa5E;;;;OAIG;IACG,iBAAiB,CAAC,eAAe,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAoBxF;;;;OAIG;IACH,OAAO,CAAC,QAAQ;CASjB"}
|
|
@@ -110,12 +110,7 @@ export class ViemTxSender {
|
|
|
110
110
|
* @returns The hash of the mined tx.
|
|
111
111
|
*/
|
|
112
112
|
async sendProcessTx(encodedData) {
|
|
113
|
-
const args = [
|
|
114
|
-
`0x${encodedData.header.toString('hex')}`,
|
|
115
|
-
`0x${encodedData.archive.toString('hex')}`,
|
|
116
|
-
`0x${encodedData.aggregationObject.toString('hex')}`,
|
|
117
|
-
`0x${encodedData.proof.toString('hex')}`,
|
|
118
|
-
];
|
|
113
|
+
const args = [`0x${encodedData.header.toString('hex')}`, `0x${encodedData.archive.toString('hex')}`];
|
|
119
114
|
const gas = await this.rollupContract.estimateGas.process(args, {
|
|
120
115
|
account: this.account,
|
|
121
116
|
});
|
|
@@ -125,6 +120,28 @@ export class ViemTxSender {
|
|
|
125
120
|
});
|
|
126
121
|
return hash;
|
|
127
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Sends a tx to the L1 rollup contract with a proof. Returns once the tx has been mined.
|
|
125
|
+
* @param encodedData - Serialized data for the proof.
|
|
126
|
+
* @returns The hash of the mined tx.
|
|
127
|
+
*/
|
|
128
|
+
async sendSubmitProofTx(submitProofArgs) {
|
|
129
|
+
const { header, archive, aggregationObject, proof } = submitProofArgs;
|
|
130
|
+
const args = [
|
|
131
|
+
`0x${header.toString('hex')}`,
|
|
132
|
+
`0x${archive.toString('hex')}`,
|
|
133
|
+
`0x${aggregationObject.toString('hex')}`,
|
|
134
|
+
`0x${proof.toString('hex')}`,
|
|
135
|
+
];
|
|
136
|
+
const gas = await this.rollupContract.estimateGas.submitProof(args, {
|
|
137
|
+
account: this.account,
|
|
138
|
+
});
|
|
139
|
+
const hash = await this.rollupContract.write.submitProof(args, {
|
|
140
|
+
gas,
|
|
141
|
+
account: this.account,
|
|
142
|
+
});
|
|
143
|
+
return hash;
|
|
144
|
+
}
|
|
128
145
|
/**
|
|
129
146
|
* Gets the chain object for the given chain id.
|
|
130
147
|
* @param chainId - Chain id of the target EVM chain.
|
|
@@ -147,4 +164,4 @@ export class ViemTxSender {
|
|
|
147
164
|
function getCalldataGasUsage(data) {
|
|
148
165
|
return data.filter(byte => byte === 0).length * 4 + data.filter(byte => byte !== 0).length * 16;
|
|
149
166
|
}
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmllbS10eC1zZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGlzaGVyL3ZpZW0tdHgtc2VuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkUsT0FBTyxFQU1MLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLFdBQVcsRUFDWCxVQUFVLEVBQ1YsSUFBSSxHQUNMLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQztBQVd0Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBY3ZCLFlBQVksTUFBc0I7UUFKMUIsUUFBRyxHQUFHLGlCQUFpQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFLaEUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDeEQsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUM7WUFDdEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztZQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUss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
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type L1ToL2MessageSource, type L2Block, type L2BlockSource, type ProcessedTx, Tx, type TxValidator } from '@aztec/circuit-types';
|
|
2
2
|
import { type BlockProver } from '@aztec/circuit-types/interfaces';
|
|
3
|
-
import { AztecAddress, EthAddress
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
import { AztecAddress, EthAddress } from '@aztec/circuits.js';
|
|
5
4
|
import { type P2P } from '@aztec/p2p';
|
|
6
5
|
import { type PublicProcessorFactory } from '@aztec/simulator';
|
|
7
6
|
import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
|
|
@@ -77,7 +76,7 @@ export declare class Sequencer {
|
|
|
77
76
|
* Publishes the L2Block to the rollup contract.
|
|
78
77
|
* @param block - The L2Block to be published.
|
|
79
78
|
*/
|
|
80
|
-
protected publishL2Block(block: L2Block
|
|
79
|
+
protected publishL2Block(block: L2Block): Promise<void>;
|
|
81
80
|
protected takeValidTxs<T extends Tx | ProcessedTx>(txs: T[], validator: TxValidator<T>): Promise<T[]>;
|
|
82
81
|
protected takeTxsWithinMaxSize(txs: Tx[]): Tx[];
|
|
83
82
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer.d.ts","sourceRoot":"","sources":["../../src/sequencer/sequencer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,EAAE,EACF,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAqC,
|
|
1
|
+
{"version":3,"file":"sequencer.d.ts","sourceRoot":"","sources":["../../src/sequencer/sequencer.ts"],"names":[],"mappings":"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"}
|
|
@@ -231,17 +231,24 @@ let Sequencer = (() => {
|
|
|
231
231
|
rollupCircuitsDuration: blockBuildingTimer.ms(),
|
|
232
232
|
...block.getStats(),
|
|
233
233
|
});
|
|
234
|
-
await this.publishL2Block(block
|
|
234
|
+
await this.publishL2Block(block);
|
|
235
235
|
this.log.info(`Submitted rollup block ${block.number} with ${processedTxs.length} transactions`);
|
|
236
|
+
// Submit the proof if we have configured this sequencer to run with a prover.
|
|
237
|
+
// This is temporary while we submit one proof per block, but will have to change once we
|
|
238
|
+
// move onto proving batches of multiple blocks at a time.
|
|
239
|
+
if (aggregationObject && proof) {
|
|
240
|
+
await this.publisher.submitProof(block.header, block.archive.root, aggregationObject, proof);
|
|
241
|
+
this.log.info(`Submitted proof for block ${block.number}`);
|
|
242
|
+
}
|
|
236
243
|
}
|
|
237
244
|
/**
|
|
238
245
|
* Publishes the L2Block to the rollup contract.
|
|
239
246
|
* @param block - The L2Block to be published.
|
|
240
247
|
*/
|
|
241
|
-
async publishL2Block(block
|
|
248
|
+
async publishL2Block(block) {
|
|
242
249
|
// Publishes new block to the network and awaits the tx to be mined
|
|
243
250
|
this.state = SequencerState.PUBLISHING_BLOCK;
|
|
244
|
-
const publishedL2Block = await this.publisher.processL2Block(block
|
|
251
|
+
const publishedL2Block = await this.publisher.processL2Block(block);
|
|
245
252
|
if (publishedL2Block) {
|
|
246
253
|
this.lastPublishedBlock = block.number;
|
|
247
254
|
}
|
|
@@ -262,7 +269,7 @@ let Sequencer = (() => {
|
|
|
262
269
|
let totalSize = 0;
|
|
263
270
|
const toReturn = [];
|
|
264
271
|
for (const tx of txs) {
|
|
265
|
-
const txSize = tx.getSize() - tx.
|
|
272
|
+
const txSize = tx.getSize() - tx.clientIvcProof.clientIvcProofBuffer.length;
|
|
266
273
|
if (totalSize + txSize > maxSize) {
|
|
267
274
|
this.log.warn(`Dropping tx ${tx.getTxHash()} with estimated size ${txSize} due to exceeding ${maxSize} block size limit (currently at ${totalSize})`);
|
|
268
275
|
continue;
|
|
@@ -338,4 +345,4 @@ export var SequencerState;
|
|
|
338
345
|
*/
|
|
339
346
|
SequencerState[SequencerState["STOPPED"] = 5] = "STOPPED";
|
|
340
347
|
})(SequencerState || (SequencerState = {}));
|
|
341
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcXVlbmNlci9zZXF1ZW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFLTCxFQUFFLEdBRUgsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBRUwsZUFBZSxFQUVmLGNBQWMsR0FDZixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFpRCxNQUFNLG9CQUFvQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd6RCxPQUFPLEVBQUUsVUFBVSxFQUFxQyxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVFuRzs7Ozs7Ozs7R0FRRztJQUNVLFNBQVM7Ozs7O3NCQUFULFNBQVM7WUFnQnBCLFlBQ1UsU0FBc0IsRUFDdEIsY0FBcUMsRUFDckMsU0FBYyxFQUNkLFVBQWtDLEVBQ2xDLE1BQW1CLEVBQ25CLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxzQkFBOEMsRUFDOUMsa0JBQXNDLEVBQzlDLFNBQTBCLEVBQzFCLFNBQTBCLEVBQUUsRUFDcEIsTUFBTSxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQztnQkFYMUMsY0FBUyxJQWpCUixtREFBUyxFQWlCVixTQUFTLEVBQWE7Z0JBQ3RCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtnQkFDckMsY0FBUyxHQUFULFNBQVMsQ0FBSztnQkFDZCxlQUFVLEdBQVYsVUFBVSxDQUF3QjtnQkFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBYTtnQkFDbkIsa0JBQWEsR0FBYixh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
|
|
348
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcXVlbmNlci9zZXF1ZW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFLTCxFQUFFLEdBRUgsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBRUwsZUFBZSxFQUVmLGNBQWMsR0FDZixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFxQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd6RCxPQUFPLEVBQUUsVUFBVSxFQUFxQyxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVFuRzs7Ozs7Ozs7R0FRRztJQUNVLFNBQVM7Ozs7O3NCQUFULFNBQVM7WUFnQnBCLFlBQ1UsU0FBc0IsRUFDdEIsY0FBcUMsRUFDckMsU0FBYyxFQUNkLFVBQWtDLEVBQ2xDLE1BQW1CLEVBQ25CLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxzQkFBOEMsRUFDOUMsa0JBQXNDLEVBQzlDLFNBQTBCLEVBQzFCLFNBQTBCLEVBQUUsRUFDcEIsTUFBTSxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQztnQkFYMUMsY0FBUyxJQWpCUixtREFBUyxFQWlCVixTQUFTLEVBQWE7Z0JBQ3RCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtnQkFDckMsY0FBUyxHQUFULFNBQVMsQ0FBSztnQkFDZCxlQUFVLEdBQVYsVUFBVSxDQUF3QjtnQkFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBYTtnQkFDbkIsa0JBQWEsR0FBYixh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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/sequencer-client",
|
|
3
|
-
"version": "0.46.
|
|
3
|
+
"version": "0.46.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"typedocOptions": {
|
|
@@ -24,20 +24,20 @@
|
|
|
24
24
|
"test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aztec/circuit-types": "0.46.
|
|
28
|
-
"@aztec/circuits.js": "0.46.
|
|
29
|
-
"@aztec/ethereum": "0.46.
|
|
30
|
-
"@aztec/foundation": "0.46.
|
|
31
|
-
"@aztec/l1-artifacts": "0.46.
|
|
32
|
-
"@aztec/merkle-tree": "0.46.
|
|
33
|
-
"@aztec/noir-contracts.js": "0.46.
|
|
34
|
-
"@aztec/noir-protocol-circuits-types": "0.46.
|
|
35
|
-
"@aztec/p2p": "0.46.
|
|
36
|
-
"@aztec/protocol-contracts": "0.46.
|
|
37
|
-
"@aztec/simulator": "0.46.
|
|
38
|
-
"@aztec/telemetry-client": "0.46.
|
|
39
|
-
"@aztec/types": "0.46.
|
|
40
|
-
"@aztec/world-state": "0.46.
|
|
27
|
+
"@aztec/circuit-types": "0.46.4",
|
|
28
|
+
"@aztec/circuits.js": "0.46.4",
|
|
29
|
+
"@aztec/ethereum": "0.46.4",
|
|
30
|
+
"@aztec/foundation": "0.46.4",
|
|
31
|
+
"@aztec/l1-artifacts": "0.46.4",
|
|
32
|
+
"@aztec/merkle-tree": "0.46.4",
|
|
33
|
+
"@aztec/noir-contracts.js": "0.46.4",
|
|
34
|
+
"@aztec/noir-protocol-circuits-types": "0.46.4",
|
|
35
|
+
"@aztec/p2p": "0.46.4",
|
|
36
|
+
"@aztec/protocol-contracts": "0.46.4",
|
|
37
|
+
"@aztec/simulator": "0.46.4",
|
|
38
|
+
"@aztec/telemetry-client": "0.46.4",
|
|
39
|
+
"@aztec/types": "0.46.4",
|
|
40
|
+
"@aztec/world-state": "0.46.4",
|
|
41
41
|
"@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
|
|
42
42
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
43
43
|
"lodash.chunk": "^4.2.0",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type L2Block } from '@aztec/circuit-types';
|
|
2
|
-
import { type
|
|
3
|
-
import { type EthAddress, type
|
|
2
|
+
import { type L1PublishBlockStats, type L1PublishProofStats } from '@aztec/circuit-types/stats';
|
|
3
|
+
import { type EthAddress, type Header, type Proof } from '@aztec/circuits.js';
|
|
4
|
+
import { type Fr } from '@aztec/foundation/fields';
|
|
4
5
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
6
|
import { serializeToBuffer } from '@aztec/foundation/serialize';
|
|
6
7
|
import { InterruptibleSleep } from '@aztec/foundation/sleep';
|
|
@@ -42,8 +43,10 @@ export type MinimalTransactionReceipt = {
|
|
|
42
43
|
* Pushes txs to the L1 chain and waits for their completion.
|
|
43
44
|
*/
|
|
44
45
|
export interface L1PublisherTxSender {
|
|
46
|
+
/** Returns the EOA used for sending txs to L1. */
|
|
45
47
|
getSenderAddress(): Promise<EthAddress>;
|
|
46
48
|
|
|
49
|
+
/** Returns the address elected for submitting a given block number or zero if anyone can submit. */
|
|
47
50
|
getSubmitterAddressForBlock(blockNumber: number): Promise<EthAddress>;
|
|
48
51
|
|
|
49
52
|
/**
|
|
@@ -60,6 +63,13 @@ export interface L1PublisherTxSender {
|
|
|
60
63
|
*/
|
|
61
64
|
sendProcessTx(encodedData: L1ProcessArgs): Promise<string | undefined>;
|
|
62
65
|
|
|
66
|
+
/**
|
|
67
|
+
* Sends a tx to the L1 rollup contract with a proof. Returns once the tx has been mined.
|
|
68
|
+
* @param encodedData - Serialized data for processing the new L2 block.
|
|
69
|
+
* @returns The hash of the mined tx.
|
|
70
|
+
*/
|
|
71
|
+
sendSubmitProofTx(submitProofArgs: L1SubmitProofArgs): Promise<string | undefined>;
|
|
72
|
+
|
|
63
73
|
/**
|
|
64
74
|
* Returns a tx receipt if the tx has been mined.
|
|
65
75
|
* @param txHash - Hash of the tx to look for.
|
|
@@ -87,9 +97,7 @@ export interface L1PublisherTxSender {
|
|
|
87
97
|
checkIfTxsAreAvailable(block: L2Block): Promise<boolean>;
|
|
88
98
|
}
|
|
89
99
|
|
|
90
|
-
/**
|
|
91
|
-
* Encoded block and proof ready to be pushed to the L1 contract.
|
|
92
|
-
*/
|
|
100
|
+
/** Arguments to the process method of the rollup contract */
|
|
93
101
|
export type L1ProcessArgs = {
|
|
94
102
|
/** The L2 block header. */
|
|
95
103
|
header: Buffer;
|
|
@@ -97,10 +105,18 @@ export type L1ProcessArgs = {
|
|
|
97
105
|
archive: Buffer;
|
|
98
106
|
/** L2 block body. */
|
|
99
107
|
body: Buffer;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
/** Arguments to the submitProof method of the rollup contract */
|
|
111
|
+
export type L1SubmitProofArgs = {
|
|
112
|
+
/** The L2 block header. */
|
|
113
|
+
header: Buffer;
|
|
114
|
+
/** A root of the archive tree after the L2 block is applied. */
|
|
115
|
+
archive: Buffer;
|
|
116
|
+
/** The proof for the block. */
|
|
103
117
|
proof: Buffer;
|
|
118
|
+
/** The aggregation object for the block's proof. */
|
|
119
|
+
aggregationObject: Buffer;
|
|
104
120
|
};
|
|
105
121
|
|
|
106
122
|
/**
|
|
@@ -132,11 +148,12 @@ export class L1Publisher implements L2BlockReceiver {
|
|
|
132
148
|
* @param block - L2 block to publish.
|
|
133
149
|
* @returns True once the tx has been confirmed and is successful, false on revert or interrupt, blocks otherwise.
|
|
134
150
|
*/
|
|
135
|
-
public async processL2Block(block: L2Block
|
|
151
|
+
public async processL2Block(block: L2Block): Promise<boolean> {
|
|
152
|
+
const ctx = { blockNumber: block.number, blockHash: block.hash().toString() };
|
|
136
153
|
// TODO(#4148) Remove this block number check, it's here because we don't currently have proper genesis state on the contract
|
|
137
154
|
const lastArchive = block.header.lastArchive.root.toBuffer();
|
|
138
155
|
if (block.number != 1 && !(await this.checkLastArchiveHash(lastArchive))) {
|
|
139
|
-
this.log.info(`Detected different last archive prior to publishing a block, aborting publish
|
|
156
|
+
this.log.info(`Detected different last archive prior to publishing a block, aborting publish...`, ctx);
|
|
140
157
|
return false;
|
|
141
158
|
}
|
|
142
159
|
|
|
@@ -145,7 +162,7 @@ export class L1Publisher implements L2BlockReceiver {
|
|
|
145
162
|
// Publish block transaction effects
|
|
146
163
|
while (!this.interrupted) {
|
|
147
164
|
if (await this.txSender.checkIfTxsAreAvailable(block)) {
|
|
148
|
-
this.log.verbose(`Transaction effects of
|
|
165
|
+
this.log.verbose(`Transaction effects of block ${block.number} already published.`, ctx);
|
|
149
166
|
break;
|
|
150
167
|
}
|
|
151
168
|
|
|
@@ -165,14 +182,14 @@ export class L1Publisher implements L2BlockReceiver {
|
|
|
165
182
|
// txsEffectsHash from IAvailabilityOracle.TxsPublished event
|
|
166
183
|
txsEffectsHash = receipt.logs[0].data;
|
|
167
184
|
} else {
|
|
168
|
-
this.log.warn(`Expected 1 log, got ${receipt.logs.length}
|
|
185
|
+
this.log.warn(`Expected 1 log, got ${receipt.logs.length}`, ctx);
|
|
169
186
|
}
|
|
170
187
|
|
|
171
|
-
this.log.info(`Block txs effects published, txsEffectsHash
|
|
188
|
+
this.log.info(`Block txs effects published`, { ...ctx, txsEffectsHash });
|
|
172
189
|
break;
|
|
173
190
|
}
|
|
174
191
|
|
|
175
|
-
this.log.error(`AvailabilityOracle.publish tx status failed: ${receipt.transactionHash}
|
|
192
|
+
this.log.error(`AvailabilityOracle.publish tx status failed: ${receipt.transactionHash}`, ctx);
|
|
176
193
|
await this.sleepOrInterrupted();
|
|
177
194
|
}
|
|
178
195
|
|
|
@@ -180,8 +197,6 @@ export class L1Publisher implements L2BlockReceiver {
|
|
|
180
197
|
header: block.header.toBuffer(),
|
|
181
198
|
archive: block.archive.root.toBuffer(),
|
|
182
199
|
body: encodedBody,
|
|
183
|
-
aggregationObject: serializeToBuffer(aggregationObject),
|
|
184
|
-
proof: proof.withoutPublicInputs(),
|
|
185
200
|
};
|
|
186
201
|
|
|
187
202
|
// Process block
|
|
@@ -199,27 +214,69 @@ export class L1Publisher implements L2BlockReceiver {
|
|
|
199
214
|
// Tx was mined successfully
|
|
200
215
|
if (receipt.status) {
|
|
201
216
|
const tx = await this.txSender.getTransactionStats(txHash);
|
|
202
|
-
const stats:
|
|
217
|
+
const stats: L1PublishBlockStats = {
|
|
203
218
|
...pick(receipt, 'gasPrice', 'gasUsed', 'transactionHash'),
|
|
204
219
|
...pick(tx!, 'calldataGas', 'calldataSize'),
|
|
205
220
|
...block.getStats(),
|
|
206
221
|
eventName: 'rollup-published-to-l1',
|
|
207
222
|
};
|
|
208
|
-
this.log.info(`Published L2 block to L1 rollup contract`, stats);
|
|
223
|
+
this.log.info(`Published L2 block to L1 rollup contract`, { ...stats, ...ctx });
|
|
209
224
|
return true;
|
|
210
225
|
}
|
|
211
226
|
|
|
212
227
|
// Check if someone else incremented the block number
|
|
213
228
|
if (!(await this.checkLastArchiveHash(lastArchive))) {
|
|
214
|
-
this.log.warn('Publish failed. Detected different last archive hash.');
|
|
229
|
+
this.log.warn('Publish failed. Detected different last archive hash.', ctx);
|
|
215
230
|
break;
|
|
216
231
|
}
|
|
217
232
|
|
|
218
|
-
this.log.error(`Rollup.process tx status failed: ${receipt.transactionHash}
|
|
233
|
+
this.log.error(`Rollup.process tx status failed: ${receipt.transactionHash}`, ctx);
|
|
219
234
|
await this.sleepOrInterrupted();
|
|
220
235
|
}
|
|
221
236
|
|
|
222
|
-
this.log.verbose('L2 block data syncing interrupted while processing blocks.');
|
|
237
|
+
this.log.verbose('L2 block data syncing interrupted while processing blocks.', ctx);
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
public async submitProof(header: Header, archiveRoot: Fr, aggregationObject: Fr[], proof: Proof): Promise<boolean> {
|
|
242
|
+
const ctx = { blockNumber: header.globalVariables.blockNumber };
|
|
243
|
+
|
|
244
|
+
const txArgs: L1SubmitProofArgs = {
|
|
245
|
+
header: header.toBuffer(),
|
|
246
|
+
archive: archiveRoot.toBuffer(),
|
|
247
|
+
aggregationObject: serializeToBuffer(aggregationObject),
|
|
248
|
+
proof: proof.withoutPublicInputs(),
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
// Process block
|
|
252
|
+
while (!this.interrupted) {
|
|
253
|
+
const txHash = await this.sendSubmitProofTx(txArgs);
|
|
254
|
+
if (!txHash) {
|
|
255
|
+
break;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
const receipt = await this.getTransactionReceipt(txHash);
|
|
259
|
+
if (!receipt) {
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// Tx was mined successfully
|
|
264
|
+
if (receipt.status) {
|
|
265
|
+
const tx = await this.txSender.getTransactionStats(txHash);
|
|
266
|
+
const stats: L1PublishProofStats = {
|
|
267
|
+
...pick(receipt, 'gasPrice', 'gasUsed', 'transactionHash'),
|
|
268
|
+
...pick(tx!, 'calldataGas', 'calldataSize'),
|
|
269
|
+
eventName: 'proof-published-to-l1',
|
|
270
|
+
};
|
|
271
|
+
this.log.info(`Published L2 block to L1 rollup contract`, { ...stats, ...ctx });
|
|
272
|
+
return true;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
this.log.error(`Rollup.submitProof tx status failed: ${receipt.transactionHash}`, ctx);
|
|
276
|
+
await this.sleepOrInterrupted();
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
this.log.verbose('L2 block data syncing interrupted while processing blocks.', ctx);
|
|
223
280
|
return false;
|
|
224
281
|
}
|
|
225
282
|
|
|
@@ -254,6 +311,17 @@ export class L1Publisher implements L2BlockReceiver {
|
|
|
254
311
|
return areSame;
|
|
255
312
|
}
|
|
256
313
|
|
|
314
|
+
private async sendSubmitProofTx(submitProofArgs: L1SubmitProofArgs): Promise<string | undefined> {
|
|
315
|
+
try {
|
|
316
|
+
const size = Object.values(submitProofArgs).reduce((acc, arg) => acc + arg.length, 0);
|
|
317
|
+
this.log.info(`SubmitProof size=${size} bytes`);
|
|
318
|
+
return await this.txSender.sendSubmitProofTx(submitProofArgs);
|
|
319
|
+
} catch (err) {
|
|
320
|
+
this.log.error(`Rollup submit proof failed`, err);
|
|
321
|
+
return undefined;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
257
325
|
private async sendPublishTx(encodedBody: Buffer): Promise<string | undefined> {
|
|
258
326
|
while (!this.interrupted) {
|
|
259
327
|
try {
|
|
@@ -23,6 +23,7 @@ import * as chains from 'viem/chains';
|
|
|
23
23
|
import { type TxSenderConfig } from './config.js';
|
|
24
24
|
import {
|
|
25
25
|
type L1PublisherTxSender,
|
|
26
|
+
type L1SubmitProofArgs,
|
|
26
27
|
type MinimalTransactionReceipt,
|
|
27
28
|
type L1ProcessArgs as ProcessTxArgs,
|
|
28
29
|
type TransactionStats,
|
|
@@ -157,12 +158,7 @@ export class ViemTxSender implements L1PublisherTxSender {
|
|
|
157
158
|
* @returns The hash of the mined tx.
|
|
158
159
|
*/
|
|
159
160
|
async sendProcessTx(encodedData: ProcessTxArgs): Promise<string | undefined> {
|
|
160
|
-
const args = [
|
|
161
|
-
`0x${encodedData.header.toString('hex')}`,
|
|
162
|
-
`0x${encodedData.archive.toString('hex')}`,
|
|
163
|
-
`0x${encodedData.aggregationObject.toString('hex')}`,
|
|
164
|
-
`0x${encodedData.proof.toString('hex')}`,
|
|
165
|
-
] as const;
|
|
161
|
+
const args = [`0x${encodedData.header.toString('hex')}`, `0x${encodedData.archive.toString('hex')}`] as const;
|
|
166
162
|
|
|
167
163
|
const gas = await this.rollupContract.estimateGas.process(args, {
|
|
168
164
|
account: this.account,
|
|
@@ -174,6 +170,31 @@ export class ViemTxSender implements L1PublisherTxSender {
|
|
|
174
170
|
return hash;
|
|
175
171
|
}
|
|
176
172
|
|
|
173
|
+
/**
|
|
174
|
+
* Sends a tx to the L1 rollup contract with a proof. Returns once the tx has been mined.
|
|
175
|
+
* @param encodedData - Serialized data for the proof.
|
|
176
|
+
* @returns The hash of the mined tx.
|
|
177
|
+
*/
|
|
178
|
+
async sendSubmitProofTx(submitProofArgs: L1SubmitProofArgs): Promise<string | undefined> {
|
|
179
|
+
const { header, archive, aggregationObject, proof } = submitProofArgs;
|
|
180
|
+
const args = [
|
|
181
|
+
`0x${header.toString('hex')}`,
|
|
182
|
+
`0x${archive.toString('hex')}`,
|
|
183
|
+
`0x${aggregationObject.toString('hex')}`,
|
|
184
|
+
`0x${proof.toString('hex')}`,
|
|
185
|
+
] as const;
|
|
186
|
+
|
|
187
|
+
const gas = await this.rollupContract.estimateGas.submitProof(args, {
|
|
188
|
+
account: this.account,
|
|
189
|
+
});
|
|
190
|
+
const hash = await this.rollupContract.write.submitProof(args, {
|
|
191
|
+
gas,
|
|
192
|
+
account: this.account,
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
return hash;
|
|
196
|
+
}
|
|
197
|
+
|
|
177
198
|
/**
|
|
178
199
|
* Gets the chain object for the given chain id.
|
|
179
200
|
* @param chainId - Chain id of the target EVM chain.
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
PROVING_STATUS,
|
|
14
14
|
} from '@aztec/circuit-types/interfaces';
|
|
15
15
|
import { type L2BlockBuiltStats } from '@aztec/circuit-types/stats';
|
|
16
|
-
import { AztecAddress, EthAddress, type GlobalVariables, type Header
|
|
16
|
+
import { AztecAddress, EthAddress, type GlobalVariables, type Header } from '@aztec/circuits.js';
|
|
17
17
|
import { Fr } from '@aztec/foundation/fields';
|
|
18
18
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
19
19
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
@@ -306,8 +306,16 @@ export class Sequencer {
|
|
|
306
306
|
...block.getStats(),
|
|
307
307
|
} satisfies L2BlockBuiltStats);
|
|
308
308
|
|
|
309
|
-
await this.publishL2Block(block
|
|
309
|
+
await this.publishL2Block(block);
|
|
310
310
|
this.log.info(`Submitted rollup block ${block.number} with ${processedTxs.length} transactions`);
|
|
311
|
+
|
|
312
|
+
// Submit the proof if we have configured this sequencer to run with a prover.
|
|
313
|
+
// This is temporary while we submit one proof per block, but will have to change once we
|
|
314
|
+
// move onto proving batches of multiple blocks at a time.
|
|
315
|
+
if (aggregationObject && proof) {
|
|
316
|
+
await this.publisher.submitProof(block.header, block.archive.root, aggregationObject, proof);
|
|
317
|
+
this.log.info(`Submitted proof for block ${block.number}`);
|
|
318
|
+
}
|
|
311
319
|
}
|
|
312
320
|
|
|
313
321
|
/**
|
|
@@ -317,10 +325,10 @@ export class Sequencer {
|
|
|
317
325
|
@trackSpan('Sequencer.publishL2Block', block => ({
|
|
318
326
|
[Attributes.BLOCK_NUMBER]: block.number,
|
|
319
327
|
}))
|
|
320
|
-
protected async publishL2Block(block: L2Block
|
|
328
|
+
protected async publishL2Block(block: L2Block) {
|
|
321
329
|
// Publishes new block to the network and awaits the tx to be mined
|
|
322
330
|
this.state = SequencerState.PUBLISHING_BLOCK;
|
|
323
|
-
const publishedL2Block = await this.publisher.processL2Block(block
|
|
331
|
+
const publishedL2Block = await this.publisher.processL2Block(block);
|
|
324
332
|
if (publishedL2Block) {
|
|
325
333
|
this.lastPublishedBlock = block.number;
|
|
326
334
|
} else {
|
|
@@ -344,7 +352,7 @@ export class Sequencer {
|
|
|
344
352
|
|
|
345
353
|
const toReturn: Tx[] = [];
|
|
346
354
|
for (const tx of txs) {
|
|
347
|
-
const txSize = tx.getSize() - tx.
|
|
355
|
+
const txSize = tx.getSize() - tx.clientIvcProof.clientIvcProofBuffer.length;
|
|
348
356
|
if (totalSize + txSize > maxSize) {
|
|
349
357
|
this.log.warn(
|
|
350
358
|
`Dropping tx ${tx.getTxHash()} with estimated size ${txSize} due to exceeding ${maxSize} block size limit (currently at ${totalSize})`,
|