@aztec/sequencer-client 0.1.0-alpha23 → 0.1.0-alpha40
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/.tsbuildinfo +1 -1
- package/dest/block_builder/index.d.ts +2 -2
- package/dest/block_builder/index.d.ts.map +1 -1
- package/dest/block_builder/solo_block_builder.d.ts +7 -7
- package/dest/block_builder/solo_block_builder.d.ts.map +1 -1
- package/dest/block_builder/solo_block_builder.js +49 -53
- package/dest/block_builder/solo_block_builder.test.d.ts +2 -2
- package/dest/block_builder/solo_block_builder.test.d.ts.map +1 -1
- package/dest/block_builder/solo_block_builder.test.js +27 -26
- package/dest/block_builder/types.d.ts +1 -1
- package/dest/block_builder/types.d.ts.map +1 -1
- 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 +3 -3
- package/dest/config.d.ts +2 -2
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +8 -5
- package/dest/global_variable_builder/global_builder.d.ts +17 -0
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/global_variable_builder/global_builder.js +1 -1
- package/dest/global_variable_builder/viem-reader.d.ts +0 -12
- package/dest/global_variable_builder/viem-reader.d.ts.map +1 -1
- package/dest/global_variable_builder/viem-reader.js +2 -14
- package/dest/prover/empty.d.ts.map +1 -1
- package/dest/prover/empty.js +1 -1
- package/dest/prover/index.d.ts +23 -0
- package/dest/prover/index.d.ts.map +1 -1
- package/dest/publisher/config.d.ts +3 -3
- package/dest/publisher/config.d.ts.map +1 -1
- package/dest/publisher/l1-publisher.d.ts +3 -3
- package/dest/publisher/l1-publisher.d.ts.map +1 -1
- package/dest/publisher/l1-publisher.js +5 -3
- package/dest/publisher/l1-publisher.test.js +2 -2
- package/dest/publisher/viem-tx-sender.d.ts +4 -4
- package/dest/publisher/viem-tx-sender.d.ts.map +1 -1
- package/dest/publisher/viem-tx-sender.js +11 -11
- package/dest/sequencer/config.d.ts +1 -1
- package/dest/sequencer/config.d.ts.map +1 -1
- package/dest/sequencer/processed_tx.d.ts +2 -2
- package/dest/sequencer/processed_tx.d.ts.map +1 -1
- package/dest/sequencer/processed_tx.js +3 -3
- package/dest/sequencer/public_processor.d.ts +11 -10
- package/dest/sequencer/public_processor.d.ts.map +1 -1
- package/dest/sequencer/public_processor.js +24 -22
- package/dest/sequencer/public_processor.test.js +15 -17
- package/dest/sequencer/sequencer.d.ts +4 -4
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +18 -15
- package/dest/sequencer/sequencer.test.js +5 -5
- package/dest/sequencer/utils.d.ts +2 -2
- package/dest/sequencer/utils.d.ts.map +1 -1
- package/dest/sequencer/utils.js +8 -5
- package/dest/simulator/index.d.ts +2 -2
- package/dest/simulator/public_executor.d.ts +3 -20
- package/dest/simulator/public_executor.d.ts.map +1 -1
- package/dest/simulator/public_executor.js +16 -35
- package/dest/simulator/public_kernel.d.ts.map +1 -1
- package/dest/simulator/public_kernel.js +1 -1
- package/dest/simulator/rollup.d.ts.map +1 -1
- package/dest/simulator/rollup.js +1 -1
- package/package.json +10 -10
- package/src/block_builder/index.ts +3 -2
- package/src/block_builder/solo_block_builder.test.ts +46 -38
- package/src/block_builder/solo_block_builder.ts +79 -88
- package/src/block_builder/types.ts +1 -1
- package/src/client/sequencer-client.ts +3 -3
- package/src/config.ts +11 -7
- package/src/global_variable_builder/global_builder.ts +17 -0
- package/src/global_variable_builder/viem-reader.ts +5 -15
- package/src/prover/empty.ts +1 -0
- package/src/prover/index.ts +26 -0
- package/src/publisher/config.ts +3 -2
- package/src/publisher/l1-publisher.test.ts +3 -2
- package/src/publisher/l1-publisher.ts +18 -8
- package/src/publisher/viem-tx-sender.ts +14 -13
- package/src/sequencer/config.ts +1 -1
- package/src/sequencer/processed_tx.ts +3 -3
- package/src/sequencer/public_processor.test.ts +38 -18
- package/src/sequencer/public_processor.ts +33 -25
- package/src/sequencer/sequencer.test.ts +7 -5
- package/src/sequencer/sequencer.ts +20 -16
- package/src/sequencer/utils.ts +19 -11
- package/src/simulator/index.ts +2 -2
- package/src/simulator/public_executor.ts +15 -34
- package/src/simulator/public_kernel.ts +1 -0
- package/src/simulator/rollup.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/l1-publisher.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"l1-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/l1-publisher.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,aAAa,CAAC,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEvE;;;;;;OAMG;IACH,4BAA4B,CAC1B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,uBAAuB,EAAE,GACtC,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAEnC;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAAC;CACvF;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAYF;;;;;;;GAOG;AACH,qBAAa,WAAY,YAAW,eAAe;IAMrC,OAAO,CAAC,QAAQ;IAL5B,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,GAAG,CAAwC;gBAE/B,QAAQ,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,eAAe;IAI3E;;;;OAIG;IACU,cAAc,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAkCnE;;;;;;OAMG;IACU,sBAAsB,CACjC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,uBAAuB,EAAE;IAqCzC;;;;;OAKG;IACI,SAAS;YAQF,0BAA0B;IAMxC,OAAO,CAAC,mBAAmB;YAIb,aAAa;YAWb,yBAAyB;YAezB,qBAAqB;cAWnB,kBAAkB;CAGnC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InterruptableSleep } from '@aztec/foundation/sleep';
|
|
2
1
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { InterruptableSleep } from '@aztec/foundation/sleep';
|
|
3
3
|
/**
|
|
4
4
|
* Helper function to filter out undefined items from an array.
|
|
5
5
|
* Also asserts the resulting array is of type <T>.
|
|
@@ -23,7 +23,7 @@ export class L1Publisher {
|
|
|
23
23
|
this.interruptableSleep = new InterruptableSleep();
|
|
24
24
|
this.interrupted = false;
|
|
25
25
|
this.log = createDebugLogger('aztec:sequencer');
|
|
26
|
-
this.sleepTimeMs = config?.
|
|
26
|
+
this.sleepTimeMs = config?.l1BlockPublishRetryIntervalMS ?? 60000;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Processes incoming L2 block data by publishing it to the L1 rollup contract.
|
|
@@ -106,11 +106,13 @@ export class L1Publisher {
|
|
|
106
106
|
this.interruptableSleep.interrupt();
|
|
107
107
|
}
|
|
108
108
|
// TODO: Check fee distributor has at least 0.5 ETH.
|
|
109
|
+
// Related to https://github.com/AztecProtocol/aztec-packages/issues/1588
|
|
109
110
|
// eslint-disable-next-line require-await
|
|
110
111
|
async checkFeeDistributorBalance() {
|
|
111
112
|
return true;
|
|
112
113
|
}
|
|
113
114
|
// TODO: Fail if blockchainStatus.nextBlockNum > thisBlockNum.
|
|
115
|
+
// Related to https://github.com/AztecProtocol/aztec-packages/issues/1588
|
|
114
116
|
checkNextL2BlockNum(_thisBlockNum) {
|
|
115
117
|
return Promise.resolve(true);
|
|
116
118
|
}
|
|
@@ -151,4 +153,4 @@ export class L1Publisher {
|
|
|
151
153
|
await this.interruptableSleep.sleep(this.sleepTimeMs);
|
|
152
154
|
}
|
|
153
155
|
}
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDEtcHVibGlzaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1Ymxpc2hlci9sMS1wdWJsaXNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFrRTdEOzs7OztHQUtHO0FBQ0gsU0FBUyxjQUFjLENBQUksSUFBbUI7SUFDNUMsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDO0FBQzVCLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFNdEIsWUFBb0IsUUFBNkIsRUFBRSxNQUF3QjtRQUF2RCxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUx6Qyx1QkFBa0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFFOUMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsUUFBRyxHQUFHLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFHakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLEVBQUUsNkJBQTZCLElBQUksS0FBTSxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFvQjtRQUM5QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUV2RCxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN4QixJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxHQUFHLENBQUMseURBQXlELENBQUMsQ0FBQztnQkFDcEUsTUFBTSxJ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
|
|
@@ -19,7 +19,7 @@ describe('L1Publisher', () => {
|
|
|
19
19
|
txReceipt = { transactionHash: txHash, status: true };
|
|
20
20
|
txSender.sendProcessTx.mockResolvedValueOnce(txHash);
|
|
21
21
|
txSender.getTransactionReceipt.mockResolvedValueOnce(txReceipt);
|
|
22
|
-
publisher = new L1Publisher(txSender, {
|
|
22
|
+
publisher = new L1Publisher(txSender, { l1BlockPublishRetryIntervalMS: 1 });
|
|
23
23
|
});
|
|
24
24
|
it('publishes l2 block to l1', async () => {
|
|
25
25
|
const result = await publisher.processL2Block(l2Block);
|
|
@@ -55,4 +55,4 @@ describe('L1Publisher', () => {
|
|
|
55
55
|
it.skip('waits for fee distributor balance', () => { });
|
|
56
56
|
it.skip('fails if contract is changed underfoot', () => { });
|
|
57
57
|
});
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDEtcHVibGlzaGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGlzaGVyL2wxLXB1Ymxpc2hlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdkMsT0FBTyxFQUFhLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBa0QsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRyxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtJQUMzQixJQUFJLFFBQXdDLENBQUM7SUFDN0MsSUFBSSxNQUFjLENBQUM7SUFDbkIsSUFBSSxTQUFvQyxDQUFDO0lBQ3pDLElBQUksT0FBZ0IsQ0FBQztJQUNyQixJQUFJLFFBQWdCLENBQUM7SUFDckIsSUFBSSxPQUFlLENBQUM7SUFDcEIsSUFBSSxTQUFzQixDQUFDO0lBRTNCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTFCLFFBQVEsR0FBRyxJQUFJLEVBQXVCLENBQUM7UUFDdkMsTUFBTSxHQUFHLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtRQUN4RSxTQUFTLEdBQUcsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN0RCxRQUFRLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVoRSxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsNkJBQTZCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxRixNQUFNLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDcEQsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEcsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNyRCxRQUFRLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRS9HLE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2RCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUMzQyxRQUFRLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxHQUFHLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVsRyxNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM1QyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVuRixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQztRQUVuQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNoRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFFdkQsRUFBRSxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { ContractDataAndBytecode } from '@aztec/types';
|
|
2
3
|
import { TxSenderConfig } from './config.js';
|
|
3
|
-
import { L1ProcessArgs as ProcessTxArgs
|
|
4
|
-
import { ContractPublicData } from '@aztec/types';
|
|
4
|
+
import { L1PublisherTxSender, MinimalTransactionReceipt, L1ProcessArgs as ProcessTxArgs } from './l1-publisher.js';
|
|
5
5
|
/**
|
|
6
6
|
* Pushes transactions to the L1 rollup contract using viem.
|
|
7
7
|
*/
|
|
@@ -28,10 +28,10 @@ export declare class ViemTxSender implements L1PublisherTxSender {
|
|
|
28
28
|
* Sends a tx to the contract deployment emitter contract with contract deployment data such as bytecode. Returns once the tx has been mined.
|
|
29
29
|
* @param l2BlockNum - Number of the L2 block that owns this encrypted logs.
|
|
30
30
|
* @param l2BlockHash - The hash of the block corresponding to this data.
|
|
31
|
-
* @param
|
|
31
|
+
* @param newContractDataAndBytecode - Data to publish.
|
|
32
32
|
* @returns The hash of the mined tx.
|
|
33
33
|
*/
|
|
34
|
-
sendEmitContractDeploymentTx(l2BlockNum: number, l2BlockHash: Buffer,
|
|
34
|
+
sendEmitContractDeploymentTx(l2BlockNum: number, l2BlockHash: Buffer, newContractDataAndBytecode: ContractDataAndBytecode[]): Promise<(string | undefined)[]>;
|
|
35
35
|
/**
|
|
36
36
|
* Gets the chain object for the given chain id.
|
|
37
37
|
* @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":";
|
|
1
|
+
{"version":3,"file":"viem-tx-sender.d.ts","sourceRoot":"","sources":["../../src/publisher/viem-tx-sender.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAiBvD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,aAAa,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEnH;;GAEG;AACH,qBAAa,YAAa,YAAW,mBAAmB;IACtD,OAAO,CAAC,cAAc,CAIpB;IACF,OAAO,CAAC,iCAAiC,CAIvC;IAEF,OAAO,CAAC,GAAG,CAAuD;IAClE,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,OAAO,CAAoB;gBAEvB,MAAM,EAAE,cAAc;IAmClC;;;;OAIG;IACG,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAkB3F;;;;OAIG;IACG,aAAa,CAAC,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa5E;;;;;;OAMG;IACG,4BAA4B,CAChC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,0BAA0B,EAAE,uBAAuB,EAAE,GACpD,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAuBlC;;;;OAIG;IACH,OAAO,CAAC,QAAQ;CASjB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { createEthereumChain } from '@aztec/ethereum';
|
|
2
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { ContractDeploymentEmitterAbi, RollupAbi } from '@aztec/l1-artifacts';
|
|
1
4
|
import { createPublicClient, createWalletClient, getAddress, getContract, http, } from 'viem';
|
|
2
|
-
import { RollupAbi, ContractDeploymentEmitterAbi } from '@aztec/l1-artifacts';
|
|
3
5
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
4
6
|
import * as chains from 'viem/chains';
|
|
5
|
-
import { createDebugLogger } from '@aztec/foundation/log';
|
|
6
|
-
import { createEthereumChain } from '@aztec/ethereum';
|
|
7
7
|
/**
|
|
8
8
|
* Pushes transactions to the L1 rollup contract using viem.
|
|
9
9
|
*/
|
|
@@ -12,7 +12,7 @@ export class ViemTxSender {
|
|
|
12
12
|
this.log = createDebugLogger('aztec:sequencer:viem-tx-sender');
|
|
13
13
|
const { rpcUrl, apiKey, publisherPrivateKey, rollupContract: rollupContractAddress, contractDeploymentEmitterContract: contractDeploymentEmitterContractAddress, } = config;
|
|
14
14
|
const chain = createEthereumChain(rpcUrl, apiKey);
|
|
15
|
-
this.account = privateKeyToAccount(`0x${publisherPrivateKey.toString(
|
|
15
|
+
this.account = privateKeyToAccount(`0x${publisherPrivateKey.toString()}`);
|
|
16
16
|
const walletClient = createWalletClient({
|
|
17
17
|
account: this.account,
|
|
18
18
|
chain: chain.chainInfo,
|
|
@@ -74,18 +74,18 @@ export class ViemTxSender {
|
|
|
74
74
|
* Sends a tx to the contract deployment emitter contract with contract deployment data such as bytecode. Returns once the tx has been mined.
|
|
75
75
|
* @param l2BlockNum - Number of the L2 block that owns this encrypted logs.
|
|
76
76
|
* @param l2BlockHash - The hash of the block corresponding to this data.
|
|
77
|
-
* @param
|
|
77
|
+
* @param newContractDataAndBytecode - Data to publish.
|
|
78
78
|
* @returns The hash of the mined tx.
|
|
79
79
|
*/
|
|
80
|
-
async sendEmitContractDeploymentTx(l2BlockNum, l2BlockHash,
|
|
80
|
+
async sendEmitContractDeploymentTx(l2BlockNum, l2BlockHash, newContractDataAndBytecode) {
|
|
81
81
|
const hashes = [];
|
|
82
|
-
for (const
|
|
82
|
+
for (const contractDataAndBytecode of newContractDataAndBytecode) {
|
|
83
83
|
const args = [
|
|
84
84
|
BigInt(l2BlockNum),
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
contractDataAndBytecode.contractData.contractAddress.toString(),
|
|
86
|
+
contractDataAndBytecode.contractData.portalContractAddress.toString(),
|
|
87
87
|
`0x${l2BlockHash.toString('hex')}`,
|
|
88
|
-
`0x${
|
|
88
|
+
`0x${contractDataAndBytecode.bytecode.toString('hex')}`,
|
|
89
89
|
];
|
|
90
90
|
const gas = await this.contractDeploymentEmitterContract.estimateGas.emitContractDeployment(args, {
|
|
91
91
|
account: this.account,
|
|
@@ -112,4 +112,4 @@ export class ViemTxSender {
|
|
|
112
112
|
throw new Error(`Chain with id ${chainId} not found`);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmllbS10eC1zZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGlzaGVyL3ZpZW0tdHgtc2VuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUc5RSxPQUFPLEVBTUwsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixVQUFVLEVBQ1YsV0FBVyxFQUNYLElBQUksR0FDTCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBcUIsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFLdEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQWdCdkIsWUFBWSxNQUFzQjtRQUoxQixRQUFHLEdBQUcsaUJBQWlCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUtoRSxNQUFNLEVBQ0osTUFBTSxFQUNOLE1BQU0sRUFDTixtQkFBbUIsRUFDbkIsY0FBYyxFQUFFLHFCQUFxQixFQUNyQyxpQ0FBaUMsRUFBRSx3Q0FBd0MsR0FDNUUsR0FBRyxNQUFNLENBQUM7UUFDWCxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxRSxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztZQUN0QyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQ3RCLFNBQVMsRUFBRSxJQUFJ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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/sequencer/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/sequencer/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Fr, HistoricBlockData, KernelCircuitPublicInputs, Proof } from '@aztec/circuits.js';
|
|
2
2
|
import { Tx, TxHash } from '@aztec/types';
|
|
3
3
|
/**
|
|
4
4
|
* Represents a tx that has been processed by the sequencer public processor,
|
|
@@ -30,5 +30,5 @@ export declare function makeProcessedTx(tx: Tx, kernelOutput: KernelCircuitPubli
|
|
|
30
30
|
* Makes an empty tx from an empty kernel circuit public inputs.
|
|
31
31
|
* @returns A processed empty tx.
|
|
32
32
|
*/
|
|
33
|
-
export declare function makeEmptyProcessedTx(historicTreeRoots:
|
|
33
|
+
export declare function makeEmptyProcessedTx(historicTreeRoots: HistoricBlockData, chainId: Fr, version: Fr): Promise<ProcessedTx>;
|
|
34
34
|
//# sourceMappingURL=processed_tx.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processed_tx.d.ts","sourceRoot":"","sources":["../../src/sequencer/processed_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"processed_tx.d.ts","sourceRoot":"","sources":["../../src/sequencer/processed_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,KAAK,EAAkB,MAAM,oBAAoB,CAAC;AAC7G,OAAO,EAAE,EAAE,EAAE,MAAM,EAAY,MAAM,cAAc,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,eAAe,GAAG,iBAAiB,CAAC,GAAG;IAC3F;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,EAAE,EACN,YAAY,EAAE,yBAAyB,EACvC,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,WAAW,CAAC,CAAC;AAuBxB;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,EAAE,EACX,OAAO,EAAE,EAAE,GACV,OAAO,CAAC,WAAW,CAAC,CAgBtB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KernelCircuitPublicInputs, makeEmptyProof
|
|
1
|
+
import { Fr, KernelCircuitPublicInputs, makeEmptyProof } from '@aztec/circuits.js';
|
|
2
2
|
import { TxHash, TxL2Logs } from '@aztec/types';
|
|
3
3
|
/**
|
|
4
4
|
* Makes a processed tx out of source tx.
|
|
@@ -22,7 +22,7 @@ export async function makeProcessedTx(tx, kernelOutput, proof) {
|
|
|
22
22
|
*/
|
|
23
23
|
export function makeEmptyProcessedTx(historicTreeRoots, chainId, version) {
|
|
24
24
|
const emptyKernelOutput = KernelCircuitPublicInputs.empty();
|
|
25
|
-
emptyKernelOutput.constants.
|
|
25
|
+
emptyKernelOutput.constants.blockData = historicTreeRoots;
|
|
26
26
|
emptyKernelOutput.constants.txContext.chainId = chainId;
|
|
27
27
|
emptyKernelOutput.constants.txContext.version = version;
|
|
28
28
|
const emptyProof = makeEmptyProof();
|
|
@@ -36,4 +36,4 @@ export function makeEmptyProcessedTx(historicTreeRoots, chainId, version) {
|
|
|
36
36
|
isEmpty: true,
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc2VkX3R4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcXVlbmNlci9wcm9jZXNzZWRfdHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBcUIseUJBQXlCLEVBQVMsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0csT0FBTyxFQUFNLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFtQ3BEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQ25DLEVBQU0sRUFDTixZQUF3QyxFQUN4QyxLQUFhO0lBRWIsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUU7UUFDMUIsSUFBSSxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUMsSUFBSTtRQUM3QixLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxLQUFLO1FBQ3hCLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYTtRQUMvQixlQUFlLEVBQUUsRUFBRSxDQUFDLGVBQWU7UUFDbkMsT0FBTyxFQUFFLEtBQUs7S0FDZixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsaUJBQW9DLEVBQ3BDLE9BQVcsRUFDWCxPQUFXO0lBRVgsTUFBTSxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1RCxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDO0lBQzFELGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN4RCxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDeEQsTUFBTSxVQUFVLEdBQUcsY0FBYyxFQUFFLENBQUM7SUFFcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNyQixJQUFJO1FBQ0osYUFBYSxFQUFFLElBQUksUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMvQixlQUFlLEVBQUUsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2pDLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsS0FBSyxFQUFFLFVBQVU7UUFDakIsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PublicExecutionResult, PublicExecutor } from '@aztec/acir-simulator';
|
|
2
|
-
import { Fr, GlobalVariables, KernelCircuitPublicInputs, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, PreviousKernelData, Proof, PublicCallData, PublicCallStackItem, PublicCircuitPublicInputs, PublicKernelPublicInputs } from '@aztec/circuits.js';
|
|
2
|
+
import { Fr, GlobalVariables, HistoricBlockData, KernelCircuitPublicInputs, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, PreviousKernelData, Proof, PublicCallData, PublicCallStackItem, PublicCircuitPublicInputs, PublicKernelPublicInputs } from '@aztec/circuits.js';
|
|
3
3
|
import { Tuple } from '@aztec/foundation/serialize';
|
|
4
4
|
import { ContractDataSource, FunctionL2Logs, L1ToL2MessageSource, Tx } from '@aztec/types';
|
|
5
5
|
import { MerkleTreeOperations } from '@aztec/world-state';
|
|
@@ -16,9 +16,11 @@ export declare class PublicProcessorFactory {
|
|
|
16
16
|
constructor(merkleTree: MerkleTreeOperations, contractDataSource: ContractDataSource, l1Tol2MessagesDataSource: L1ToL2MessageSource);
|
|
17
17
|
/**
|
|
18
18
|
* Creates a new instance of a PublicProcessor.
|
|
19
|
+
* @param prevGlobalVariables - The global variables for the previous block, used to calculate the prev global variables hash.
|
|
20
|
+
* @param globalVariables - The global variables for the block being processed.
|
|
19
21
|
* @returns A new instance of a PublicProcessor.
|
|
20
22
|
*/
|
|
21
|
-
create(): PublicProcessor
|
|
23
|
+
create(prevGlobalVariables: GlobalVariables, globalVariables: GlobalVariables): Promise<PublicProcessor>;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* Converts Txs lifted from the P2P module into ProcessedTx objects by executing
|
|
@@ -30,24 +32,23 @@ export declare class PublicProcessor {
|
|
|
30
32
|
protected publicKernel: PublicKernelCircuitSimulator;
|
|
31
33
|
protected publicProver: PublicProver;
|
|
32
34
|
protected contractDataSource: ContractDataSource;
|
|
35
|
+
protected globalVariables: GlobalVariables;
|
|
36
|
+
protected blockData: HistoricBlockData;
|
|
33
37
|
private log;
|
|
34
|
-
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, publicProver: PublicProver, contractDataSource: ContractDataSource, log?: import("@aztec/foundation/log").DebugLogger);
|
|
38
|
+
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, publicProver: PublicProver, contractDataSource: ContractDataSource, globalVariables: GlobalVariables, blockData: HistoricBlockData, log?: import("@aztec/foundation/log").DebugLogger);
|
|
35
39
|
/**
|
|
36
40
|
* Run each tx through the public circuit and the public kernel circuit if needed.
|
|
37
41
|
* @param txs - Txs to process.
|
|
38
|
-
* @param globalVariables - The global variables for the block.
|
|
39
42
|
* @returns The list of processed txs with their circuit simulation outputs.
|
|
40
43
|
*/
|
|
41
|
-
process(txs: Tx[]
|
|
44
|
+
process(txs: Tx[]): Promise<[ProcessedTx[], Tx[]]>;
|
|
42
45
|
/**
|
|
43
46
|
* Makes an empty processed tx. Useful for padding a block to a power of two number of txs.
|
|
44
|
-
* @param chainId - The chain id of the rollup.
|
|
45
|
-
* @param version - The version of the rollup.
|
|
46
47
|
* @returns A processed tx with empty data.
|
|
47
48
|
*/
|
|
48
|
-
makeEmptyProcessedTx(
|
|
49
|
-
protected processTx(tx: Tx
|
|
50
|
-
protected processEnqueuedPublicCalls(tx: Tx
|
|
49
|
+
makeEmptyProcessedTx(): Promise<ProcessedTx>;
|
|
50
|
+
protected processTx(tx: Tx): Promise<ProcessedTx>;
|
|
51
|
+
protected processEnqueuedPublicCalls(tx: Tx): Promise<[PublicKernelPublicInputs, Proof, FunctionL2Logs[]]>;
|
|
51
52
|
protected runKernelCircuit(callData: PublicCallData, previousOutput: KernelCircuitPublicInputs, previousProof: Proof): Promise<[KernelCircuitPublicInputs, Proof]>;
|
|
52
53
|
protected getKernelCircuitOutput(callData: PublicCallData, previousOutput: KernelCircuitPublicInputs, previousProof: Proof): Promise<KernelCircuitPublicInputs>;
|
|
53
54
|
protected getPreviousKernelData(previousOutput: KernelCircuitPublicInputs, previousProof: Proof): PreviousKernelData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../src/sequencer/public_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,qBAAqB,EAAE,cAAc,EAA2B,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAKL,EAAE,EACF,eAAe,
|
|
1
|
+
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../src/sequencer/public_processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isPublicExecutionResult } from '@aztec/acir-simulator';
|
|
2
|
-
import { AztecAddress, CircuitsWasm, ContractStorageRead, ContractStorageUpdateRequest, Fr,
|
|
2
|
+
import { AztecAddress, CircuitsWasm, ContractStorageRead, ContractStorageUpdateRequest, Fr, MAX_NEW_COMMITMENTS_PER_CALL, MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MembershipWitness, PreviousKernelData, PublicCallData, PublicCallStackItem, PublicCircuitPublicInputs, PublicKernelInputs, RETURN_VALUES_LENGTH, VK_TREE_HEIGHT, } from '@aztec/circuits.js';
|
|
3
3
|
import { computeCallStackItemHash, computeVarArgsHash } from '@aztec/circuits.js/abis';
|
|
4
4
|
import { isArrayEmpty, padArrayEnd, padArrayStart } from '@aztec/foundation/collection';
|
|
5
5
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
@@ -10,7 +10,7 @@ import { EmptyPublicProver } from '../prover/empty.js';
|
|
|
10
10
|
import { getPublicExecutor } from '../simulator/public_executor.js';
|
|
11
11
|
import { WasmPublicKernelCircuitSimulator } from '../simulator/public_kernel.js';
|
|
12
12
|
import { makeEmptyProcessedTx, makeProcessedTx } from './processed_tx.js';
|
|
13
|
-
import {
|
|
13
|
+
import { getHistoricBlockData } from './utils.js';
|
|
14
14
|
/**
|
|
15
15
|
* Creates new instances of PublicProcessor given the provided merkle tree db and contract data source.
|
|
16
16
|
*/
|
|
@@ -22,10 +22,13 @@ export class PublicProcessorFactory {
|
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Creates a new instance of a PublicProcessor.
|
|
25
|
+
* @param prevGlobalVariables - The global variables for the previous block, used to calculate the prev global variables hash.
|
|
26
|
+
* @param globalVariables - The global variables for the block being processed.
|
|
25
27
|
* @returns A new instance of a PublicProcessor.
|
|
26
28
|
*/
|
|
27
|
-
create() {
|
|
28
|
-
|
|
29
|
+
async create(prevGlobalVariables, globalVariables) {
|
|
30
|
+
const blockData = await getHistoricBlockData(this.merkleTree, prevGlobalVariables);
|
|
31
|
+
return new PublicProcessor(this.merkleTree, getPublicExecutor(this.merkleTree, this.contractDataSource, this.l1Tol2MessagesDataSource, blockData), new WasmPublicKernelCircuitSimulator(), new EmptyPublicProver(), this.contractDataSource, globalVariables, blockData);
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
/**
|
|
@@ -33,27 +36,28 @@ export class PublicProcessorFactory {
|
|
|
33
36
|
* any public function calls in them. Txs with private calls only are unaffected.
|
|
34
37
|
*/
|
|
35
38
|
export class PublicProcessor {
|
|
36
|
-
constructor(db, publicExecutor, publicKernel, publicProver, contractDataSource, log = createDebugLogger('aztec:sequencer:public-processor')) {
|
|
39
|
+
constructor(db, publicExecutor, publicKernel, publicProver, contractDataSource, globalVariables, blockData, log = createDebugLogger('aztec:sequencer:public-processor')) {
|
|
37
40
|
this.db = db;
|
|
38
41
|
this.publicExecutor = publicExecutor;
|
|
39
42
|
this.publicKernel = publicKernel;
|
|
40
43
|
this.publicProver = publicProver;
|
|
41
44
|
this.contractDataSource = contractDataSource;
|
|
45
|
+
this.globalVariables = globalVariables;
|
|
46
|
+
this.blockData = blockData;
|
|
42
47
|
this.log = log;
|
|
43
48
|
}
|
|
44
49
|
/**
|
|
45
50
|
* Run each tx through the public circuit and the public kernel circuit if needed.
|
|
46
51
|
* @param txs - Txs to process.
|
|
47
|
-
* @param globalVariables - The global variables for the block.
|
|
48
52
|
* @returns The list of processed txs with their circuit simulation outputs.
|
|
49
53
|
*/
|
|
50
|
-
async process(txs
|
|
54
|
+
async process(txs) {
|
|
51
55
|
const result = [];
|
|
52
56
|
const failed = [];
|
|
53
57
|
for (const tx of txs) {
|
|
54
58
|
this.log(`Processing tx ${await tx.getTxHash()}`);
|
|
55
59
|
try {
|
|
56
|
-
result.push(await this.processTx(tx
|
|
60
|
+
result.push(await this.processTx(tx));
|
|
57
61
|
}
|
|
58
62
|
catch (err) {
|
|
59
63
|
this.log(`Error processing tx ${await tx.getTxHash()}: ${err}`);
|
|
@@ -64,17 +68,15 @@ export class PublicProcessor {
|
|
|
64
68
|
}
|
|
65
69
|
/**
|
|
66
70
|
* Makes an empty processed tx. Useful for padding a block to a power of two number of txs.
|
|
67
|
-
* @param chainId - The chain id of the rollup.
|
|
68
|
-
* @param version - The version of the rollup.
|
|
69
71
|
* @returns A processed tx with empty data.
|
|
70
72
|
*/
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
return makeEmptyProcessedTx(
|
|
73
|
+
makeEmptyProcessedTx() {
|
|
74
|
+
const { chainId, version } = this.globalVariables;
|
|
75
|
+
return makeEmptyProcessedTx(this.blockData, chainId, version);
|
|
74
76
|
}
|
|
75
|
-
async processTx(tx
|
|
77
|
+
async processTx(tx) {
|
|
76
78
|
if (!isArrayEmpty(tx.data.end.publicCallStack, item => item.isZero())) {
|
|
77
|
-
const [publicKernelOutput, publicKernelProof, newUnencryptedFunctionLogs] = await this.processEnqueuedPublicCalls(tx
|
|
79
|
+
const [publicKernelOutput, publicKernelProof, newUnencryptedFunctionLogs] = await this.processEnqueuedPublicCalls(tx);
|
|
78
80
|
tx.unencryptedLogs.addFunctionLogs(newUnencryptedFunctionLogs);
|
|
79
81
|
return makeProcessedTx(tx, publicKernelOutput, publicKernelProof);
|
|
80
82
|
}
|
|
@@ -82,7 +84,7 @@ export class PublicProcessor {
|
|
|
82
84
|
return makeProcessedTx(tx);
|
|
83
85
|
}
|
|
84
86
|
}
|
|
85
|
-
async processEnqueuedPublicCalls(tx
|
|
87
|
+
async processEnqueuedPublicCalls(tx) {
|
|
86
88
|
this.log(`Executing enqueued public calls for tx ${await tx.getTxHash()}`);
|
|
87
89
|
if (!tx.enqueuedPublicFunctionCalls)
|
|
88
90
|
throw new Error(`Missing preimages for enqueued public calls`);
|
|
@@ -94,7 +96,7 @@ export class PublicProcessor {
|
|
|
94
96
|
while (executionStack.length) {
|
|
95
97
|
const current = executionStack.pop();
|
|
96
98
|
const isExecutionRequest = !isPublicExecutionResult(current);
|
|
97
|
-
const result = isExecutionRequest ? await this.publicExecutor.execute(current, globalVariables) : current;
|
|
99
|
+
const result = isExecutionRequest ? await this.publicExecutor.execute(current, this.globalVariables) : current;
|
|
98
100
|
newUnencryptedFunctionLogs.push(result.unencryptedLogs);
|
|
99
101
|
const functionSelector = result.execution.functionData.functionSelectorBuffer.toString('hex');
|
|
100
102
|
this.log(`Running public kernel circuit for ${functionSelector}@${result.execution.contractAddress.toString()}`);
|
|
@@ -135,16 +137,16 @@ export class PublicProcessor {
|
|
|
135
137
|
}
|
|
136
138
|
async getPublicCircuitPublicInputs(result) {
|
|
137
139
|
const publicDataTreeInfo = await this.db.getTreeInfo(MerkleTreeId.PUBLIC_DATA_TREE);
|
|
138
|
-
|
|
140
|
+
this.blockData.publicDataTreeRoot = Fr.fromBuffer(publicDataTreeInfo.root);
|
|
139
141
|
const callStackPreimages = await this.getPublicCallStackPreimages(result);
|
|
140
142
|
const wasm = await CircuitsWasm.get();
|
|
141
143
|
const publicCallStack = mapTuple(callStackPreimages, item => item.isEmpty() ? Fr.zero() : computeCallStackItemHash(wasm, item));
|
|
142
|
-
// TODO(
|
|
144
|
+
// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165) --> set this in Noir
|
|
143
145
|
const unencryptedLogsHash = to2Fields(result.unencryptedLogs.hash());
|
|
144
146
|
const unencryptedLogPreimagesLength = new Fr(result.unencryptedLogs.getSerializedLength());
|
|
145
147
|
return PublicCircuitPublicInputs.from({
|
|
146
148
|
callContext: result.execution.callContext,
|
|
147
|
-
proverAddress: AztecAddress.
|
|
149
|
+
proverAddress: AztecAddress.ZERO,
|
|
148
150
|
argsHash: await computeVarArgsHash(wasm, result.execution.args),
|
|
149
151
|
newCommitments: padArrayEnd(result.newCommitments, Fr.ZERO, MAX_NEW_COMMITMENTS_PER_CALL),
|
|
150
152
|
newNullifiers: padArrayEnd(result.newNullifiers, Fr.ZERO, MAX_NEW_NULLIFIERS_PER_CALL),
|
|
@@ -155,7 +157,7 @@ export class PublicProcessor {
|
|
|
155
157
|
publicCallStack,
|
|
156
158
|
unencryptedLogsHash,
|
|
157
159
|
unencryptedLogPreimagesLength,
|
|
158
|
-
|
|
160
|
+
historicBlockData: this.blockData,
|
|
159
161
|
});
|
|
160
162
|
}
|
|
161
163
|
async getPublicCallStackItem(result, isExecutionRequest = false) {
|
|
@@ -192,4 +194,4 @@ export class PublicProcessor {
|
|
|
192
194
|
return new PublicCallData(callStackItem, preimages, proof, portalContractAddress, bytecodeHash);
|
|
193
195
|
}
|
|
194
196
|
}
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXF1ZW5jZXIvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBELHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEgsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixFQUFFLEVBRUYsOEJBQThCLEVBQzlCLHdDQUF3QyxFQUV4QyxpQkFBaUIsRUFDakIsNEJBQTRCLEVBQzVCLDhCQUE4QixFQUM5QiwyQkFBMkIsRUFDM0IscUNBQXFDLEVBQ3JDLGtCQUFrQixFQUVsQixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixrQkFBa0IsRUFFbEIsb0JBQW9CLEVBQ3BCLGNBQWMsR0FDZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBUyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUEyRCxZQUFZLEVBQU0sTUFBTSxjQUFjLENBQUM7QUFFekcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pGLE9BQU8sRUFBZSxv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
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXF1ZW5jZXIvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBELHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEgsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixFQUFFLEVBSUYsNEJBQTRCLEVBQzVCLDhCQUE4QixFQUM5QiwyQkFBMkIsRUFDM0IscUNBQXFDLEVBQ3JDLDhCQUE4QixFQUM5Qix3Q0FBd0MsRUFDeEMsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUVsQixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixrQkFBa0IsRUFFbEIsb0JBQW9CLEVBQ3BCLGNBQWMsR0FDZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBUyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUEyRCxZQUFZLEVBQU0sTUFBTSxjQUFjLENBQUM7QUFHekcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pGLE9BQU8sRUFBZSxv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
|