@aztec/sequencer-client 0.7.9 → 0.8.6
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/README.md +1 -1
- package/dest/client/sequencer-client.d.ts +3 -3
- package/dest/client/sequencer-client.d.ts.map +1 -1
- package/dest/client/sequencer-client.js +6 -6
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +14 -7
- package/dest/global_variable_builder/config.d.ts +5 -5
- package/dest/global_variable_builder/config.d.ts.map +1 -1
- package/dest/global_variable_builder/viem-reader.js +3 -3
- package/dest/publisher/config.d.ts +6 -2
- package/dest/publisher/config.d.ts.map +1 -1
- package/dest/publisher/index.d.ts +27 -0
- package/dest/publisher/index.d.ts.map +1 -1
- package/dest/publisher/index.js +1 -1
- package/dest/publisher/l1-publisher.d.ts +26 -11
- package/dest/publisher/l1-publisher.d.ts.map +1 -1
- package/dest/publisher/l1-publisher.js +18 -4
- package/dest/publisher/viem-tx-sender.d.ts +2 -1
- package/dest/publisher/viem-tx-sender.d.ts.map +1 -1
- package/dest/publisher/viem-tx-sender.js +27 -7
- package/dest/sequencer/public_processor.d.ts +4 -2
- package/dest/sequencer/public_processor.d.ts.map +1 -1
- package/dest/sequencer/public_processor.js +11 -5
- package/dest/sequencer/sequencer.d.ts +13 -9
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +53 -34
- package/dest/simulator/index.d.ts +0 -1
- package/dest/simulator/index.d.ts.map +1 -1
- package/dest/simulator/index.js +2 -2
- package/dest/simulator/public_executor.d.ts +28 -4
- package/dest/simulator/public_executor.d.ts.map +1 -1
- package/dest/simulator/public_executor.js +46 -7
- package/dest/simulator/public_kernel.d.ts +1 -0
- package/dest/simulator/public_kernel.d.ts.map +1 -1
- package/dest/simulator/public_kernel.js +26 -5
- package/dest/simulator/rollup.d.ts +2 -8
- package/dest/simulator/rollup.d.ts.map +1 -1
- package/dest/simulator/rollup.js +37 -18
- package/package.json +70 -11
- package/src/client/sequencer-client.ts +7 -6
- package/src/config.ts +14 -5
- package/src/global_variable_builder/config.ts +6 -5
- package/src/global_variable_builder/viem-reader.ts +2 -2
- package/src/publisher/config.ts +7 -2
- package/src/publisher/index.ts +28 -0
- package/src/publisher/l1-publisher.ts +46 -13
- package/src/publisher/viem-tx-sender.ts +33 -13
- package/src/sequencer/public_processor.ts +13 -4
- package/src/sequencer/sequencer.ts +59 -45
- package/src/simulator/index.ts +0 -2
- package/src/simulator/public_executor.ts +53 -7
- package/src/simulator/public_kernel.ts +24 -4
- package/src/simulator/rollup.ts +38 -21
- package/.eslintrc.cjs +0 -1
- package/.tsbuildinfo +0 -1
- package/dest/block_builder/solo_block_builder.test.d.ts +0 -3
- package/dest/block_builder/solo_block_builder.test.d.ts.map +0 -1
- package/dest/block_builder/solo_block_builder.test.js +0 -277
- package/dest/publisher/l1-publisher.test.d.ts +0 -2
- package/dest/publisher/l1-publisher.test.d.ts.map +0 -1
- package/dest/publisher/l1-publisher.test.js +0 -58
- package/dest/sequencer/public_processor.test.d.ts +0 -2
- package/dest/sequencer/public_processor.test.d.ts.map +0 -1
- package/dest/sequencer/public_processor.test.js +0 -164
- package/dest/sequencer/sequencer.test.d.ts +0 -2
- package/dest/sequencer/sequencer.test.d.ts.map +0 -1
- package/dest/sequencer/sequencer.test.js +0 -99
- package/jest.integration.config.json +0 -13
- package/src/block_builder/solo_block_builder.test.ts +0 -425
- package/src/publisher/l1-publisher.test.ts +0 -79
- package/src/sequencer/public_processor.test.ts +0 -265
- package/src/sequencer/sequencer.test.ts +0 -160
- package/tsconfig.json +0 -38
|
@@ -7,7 +7,7 @@ import { mapTuple, to2Fields } from '@aztec/foundation/serialize';
|
|
|
7
7
|
import { MerkleTreeId, Tx } from '@aztec/types';
|
|
8
8
|
import { getVerificationKeys } from '../index.js';
|
|
9
9
|
import { EmptyPublicProver } from '../prover/empty.js';
|
|
10
|
-
import { getPublicExecutor } from '../simulator/
|
|
10
|
+
import { ContractsDataSourcePublicDB, 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
13
|
import { getHistoricBlockData } from './utils.js';
|
|
@@ -24,11 +24,13 @@ export class PublicProcessorFactory {
|
|
|
24
24
|
* Creates a new instance of a PublicProcessor.
|
|
25
25
|
* @param prevGlobalVariables - The global variables for the previous block, used to calculate the prev global variables hash.
|
|
26
26
|
* @param globalVariables - The global variables for the block being processed.
|
|
27
|
+
* @param newContracts - Provides access to contract bytecode for public executions.
|
|
27
28
|
* @returns A new instance of a PublicProcessor.
|
|
28
29
|
*/
|
|
29
30
|
async create(prevGlobalVariables, globalVariables) {
|
|
30
31
|
const blockData = await getHistoricBlockData(this.merkleTree, prevGlobalVariables);
|
|
31
|
-
|
|
32
|
+
const publicContractsDB = new ContractsDataSourcePublicDB(this.contractDataSource);
|
|
33
|
+
return new PublicProcessor(this.merkleTree, getPublicExecutor(this.merkleTree, publicContractsDB, this.l1Tol2MessagesDataSource, blockData), new WasmPublicKernelCircuitSimulator(), new EmptyPublicProver(), globalVariables, blockData, publicContractsDB);
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
@@ -36,14 +38,14 @@ export class PublicProcessorFactory {
|
|
|
36
38
|
* any public function calls in them. Txs with private calls only are unaffected.
|
|
37
39
|
*/
|
|
38
40
|
export class PublicProcessor {
|
|
39
|
-
constructor(db, publicExecutor, publicKernel, publicProver,
|
|
41
|
+
constructor(db, publicExecutor, publicKernel, publicProver, globalVariables, blockData, publicContractsDB, log = createDebugLogger('aztec:sequencer:public-processor')) {
|
|
40
42
|
this.db = db;
|
|
41
43
|
this.publicExecutor = publicExecutor;
|
|
42
44
|
this.publicKernel = publicKernel;
|
|
43
45
|
this.publicProver = publicProver;
|
|
44
|
-
this.contractDataSource = contractDataSource;
|
|
45
46
|
this.globalVariables = globalVariables;
|
|
46
47
|
this.blockData = blockData;
|
|
48
|
+
this.publicContractsDB = publicContractsDB;
|
|
47
49
|
this.log = log;
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
@@ -59,6 +61,8 @@ export class PublicProcessor {
|
|
|
59
61
|
for (const tx of txs) {
|
|
60
62
|
this.log(`Processing tx ${await tx.getTxHash()}`);
|
|
61
63
|
try {
|
|
64
|
+
// add new contracts to the contracts db so that their functions may be found and called
|
|
65
|
+
await this.publicContractsDB.addNewContracts(tx);
|
|
62
66
|
result.push(await this.processTx(tx));
|
|
63
67
|
}
|
|
64
68
|
catch (err) {
|
|
@@ -67,6 +71,8 @@ export class PublicProcessor {
|
|
|
67
71
|
tx,
|
|
68
72
|
error: err instanceof Error ? err : new Error('Unknown error'),
|
|
69
73
|
});
|
|
74
|
+
// remove contracts on failure
|
|
75
|
+
await this.publicContractsDB.removeNewContracts(tx);
|
|
70
76
|
}
|
|
71
77
|
}
|
|
72
78
|
return [result, failed];
|
|
@@ -266,4 +272,4 @@ export class PublicProcessor {
|
|
|
266
272
|
], PublicDataUpdateRequest.empty(), MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX);
|
|
267
273
|
}
|
|
268
274
|
}
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXF1ZW5jZXIvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsc0JBQXNCLEVBQ3RCLCtCQUErQixFQUMvQix1QkFBdUIsR0FDeEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsWUFBWSxFQUNaLFlBQVksRUFDWix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixFQUFFLEVBR0YseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1Qiw4QkFBOEIsRUFDOUIsMkJBQTJCLEVBQzNCLHFDQUFxQyxFQUNyQyw4QkFBOEIsRUFDOUIsNEJBQTRCLEVBQzVCLHdDQUF3QyxFQUN4QyxzQ0FBc0MsRUFDdEMsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUVsQixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUVsQixvQkFBb0IsRUFDcEIsY0FBYyxHQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFTLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQTJELFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxN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
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXF1ZW5jZXIvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsc0JBQXNCLEVBQ3RCLCtCQUErQixFQUMvQix1QkFBdUIsR0FDeEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsWUFBWSxFQUNaLFlBQVksRUFDWix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixFQUFFLEVBR0YseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1Qiw4QkFBOEIsRUFDOUIsMkJBQTJCLEVBQzNCLHFDQUFxQyxFQUNyQyw4QkFBOEIsRUFDOUIsNEJBQTRCLEVBQzVCLHdDQUF3QyxFQUN4QyxzQ0FBc0MsRUFDdEMsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUVsQixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUVsQixvQkFBb0IsRUFDcEIsY0FBYyxHQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFTLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQTJELFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxN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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { GlobalVariables } from '@aztec/circuits.js';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { P2P } from '@aztec/p2p';
|
|
4
|
-
import { L1ToL2MessageSource, L2Block, L2BlockSource, Tx } from '@aztec/types';
|
|
5
|
-
import {
|
|
4
|
+
import { ContractDataSource, L1ToL2MessageSource, L2Block, L2BlockSource, Tx } from '@aztec/types';
|
|
5
|
+
import { WorldStateSynchronizer } from '@aztec/world-state';
|
|
6
6
|
import { BlockBuilder } from '../block_builder/index.js';
|
|
7
7
|
import { GlobalVariableBuilder } from '../global_variable_builder/global_builder.js';
|
|
8
8
|
import { L1Publisher } from '../publisher/l1-publisher.js';
|
|
@@ -11,7 +11,7 @@ import { ProcessedTx } from './processed_tx.js';
|
|
|
11
11
|
import { PublicProcessorFactory } from './public_processor.js';
|
|
12
12
|
/**
|
|
13
13
|
* Sequencer client
|
|
14
|
-
* - Wins a period of time to become the sequencer (depending on
|
|
14
|
+
* - Wins a period of time to become the sequencer (depending on finalized protocol).
|
|
15
15
|
* - Chooses a set of txs from the tx pool to be in the rollup.
|
|
16
16
|
* - Simulate the rollup of txs.
|
|
17
17
|
* - Adds proof requests to the request pool (not for this milestone).
|
|
@@ -26,6 +26,7 @@ export declare class Sequencer {
|
|
|
26
26
|
private blockBuilder;
|
|
27
27
|
private l2BlockSource;
|
|
28
28
|
private l1ToL2MessageSource;
|
|
29
|
+
private contractDataSource;
|
|
29
30
|
private publicProcessorFactory;
|
|
30
31
|
private log;
|
|
31
32
|
private runningPromise?;
|
|
@@ -34,9 +35,7 @@ export declare class Sequencer {
|
|
|
34
35
|
private minTxsPerBLock;
|
|
35
36
|
private lastPublishedBlock;
|
|
36
37
|
private state;
|
|
37
|
-
|
|
38
|
-
private version;
|
|
39
|
-
constructor(publisher: L1Publisher, globalsBuilder: GlobalVariableBuilder, p2pClient: P2P, worldState: WorldStateSynchroniser, blockBuilder: BlockBuilder, l2BlockSource: L2BlockSource, l1ToL2MessageSource: L1ToL2MessageSource, publicProcessorFactory: PublicProcessorFactory, config: SequencerConfig, log?: import("@aztec/foundation/log").DebugLogger);
|
|
38
|
+
constructor(publisher: L1Publisher, globalsBuilder: GlobalVariableBuilder, p2pClient: P2P, worldState: WorldStateSynchronizer, blockBuilder: BlockBuilder, l2BlockSource: L2BlockSource, l1ToL2MessageSource: L1ToL2MessageSource, contractDataSource: ContractDataSource, publicProcessorFactory: PublicProcessorFactory, config: SequencerConfig, log?: import("@aztec/foundation/log").DebugLogger);
|
|
40
39
|
/**
|
|
41
40
|
* Starts the sequencer and moves to IDLE state. Blocks until the initial sync is complete.
|
|
42
41
|
*/
|
|
@@ -72,8 +71,7 @@ export declare class Sequencer {
|
|
|
72
71
|
* @param block - The L2Block to be published.
|
|
73
72
|
*/
|
|
74
73
|
protected publishL2Block(block: L2Block): Promise<void>;
|
|
75
|
-
protected takeValidTxs(txs:
|
|
76
|
-
protected takeValidProcessedTxs(txs: ProcessedTx[]): Promise<ProcessedTx[]>;
|
|
74
|
+
protected takeValidTxs<T extends Tx | ProcessedTx>(txs: T[]): Promise<T[]>;
|
|
77
75
|
/**
|
|
78
76
|
* Returns whether the previous block sent has been mined, and all dependencies have caught up with it.
|
|
79
77
|
* @returns Boolean indicating if our dependencies are synced to the latest block.
|
|
@@ -94,13 +92,19 @@ export declare class Sequencer {
|
|
|
94
92
|
* @returns An array of L1 to L2 messages' messageKeys
|
|
95
93
|
*/
|
|
96
94
|
protected getPendingL1ToL2Messages(): Promise<Fr[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Returns true if one of the tx nullifiers exist on the block being built.
|
|
97
|
+
* @param tx - The tx to test.
|
|
98
|
+
* @param thisBlockNullifiers - The nullifiers added so far.
|
|
99
|
+
*/
|
|
100
|
+
protected isTxDoubleSpendSameBlock(tx: Tx | ProcessedTx, thisBlockNullifiers: Set<bigint>): boolean;
|
|
97
101
|
/**
|
|
98
102
|
* Returns true if one of the transaction nullifiers exist.
|
|
99
103
|
* Nullifiers prevent double spends in a private context.
|
|
100
104
|
* @param tx - The transaction.
|
|
101
105
|
* @returns Whether this is a problematic double spend that the L1 contract would reject.
|
|
102
106
|
*/
|
|
103
|
-
protected isTxDoubleSpend(tx: Tx): Promise<boolean>;
|
|
107
|
+
protected isTxDoubleSpend(tx: Tx | ProcessedTx): Promise<boolean>;
|
|
104
108
|
}
|
|
105
109
|
/**
|
|
106
110
|
* State of the sequencer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer.d.ts","sourceRoot":"","sources":["../../src/sequencer/sequencer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,EAAgB,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"sequencer.d.ts","sourceRoot":"","sources":["../../src/sequencer/sequencer.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import times from 'lodash.times';
|
|
|
7
7
|
import { ceilPowerOfTwo } from '../utils.js';
|
|
8
8
|
/**
|
|
9
9
|
* Sequencer client
|
|
10
|
-
* - Wins a period of time to become the sequencer (depending on
|
|
10
|
+
* - Wins a period of time to become the sequencer (depending on finalized protocol).
|
|
11
11
|
* - Chooses a set of txs from the tx pool to be in the rollup.
|
|
12
12
|
* - Simulate the rollup of txs.
|
|
13
13
|
* - Adds proof requests to the request pool (not for this milestone).
|
|
@@ -15,7 +15,7 @@ import { ceilPowerOfTwo } from '../utils.js';
|
|
|
15
15
|
* - Publishes L1 tx(s) to the rollup contract via RollupPublisher.
|
|
16
16
|
*/
|
|
17
17
|
export class Sequencer {
|
|
18
|
-
constructor(publisher, globalsBuilder, p2pClient, worldState, blockBuilder, l2BlockSource, l1ToL2MessageSource, publicProcessorFactory, config, log = createDebugLogger('aztec:sequencer')) {
|
|
18
|
+
constructor(publisher, globalsBuilder, p2pClient, worldState, blockBuilder, l2BlockSource, l1ToL2MessageSource, contractDataSource, publicProcessorFactory, config, log = createDebugLogger('aztec:sequencer')) {
|
|
19
19
|
this.publisher = publisher;
|
|
20
20
|
this.globalsBuilder = globalsBuilder;
|
|
21
21
|
this.p2pClient = p2pClient;
|
|
@@ -23,6 +23,7 @@ export class Sequencer {
|
|
|
23
23
|
this.blockBuilder = blockBuilder;
|
|
24
24
|
this.l2BlockSource = l2BlockSource;
|
|
25
25
|
this.l1ToL2MessageSource = l1ToL2MessageSource;
|
|
26
|
+
this.contractDataSource = contractDataSource;
|
|
26
27
|
this.publicProcessorFactory = publicProcessorFactory;
|
|
27
28
|
this.log = log;
|
|
28
29
|
this.maxTxsPerBlock = 32;
|
|
@@ -36,8 +37,7 @@ export class Sequencer {
|
|
|
36
37
|
if (config.minTxsPerBlock) {
|
|
37
38
|
this.minTxsPerBLock = config.minTxsPerBlock;
|
|
38
39
|
}
|
|
39
|
-
this.
|
|
40
|
-
this.version = new Fr(config.version);
|
|
40
|
+
this.log(`Initialized sequencer with ${this.minTxsPerBLock}-${this.maxTxsPerBlock} txs per block.`);
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Starts the sequencer and moves to IDLE state. Blocks until the initial sync is complete.
|
|
@@ -63,6 +63,7 @@ export class Sequencer {
|
|
|
63
63
|
*/
|
|
64
64
|
restart() {
|
|
65
65
|
this.log('Restarting sequencer');
|
|
66
|
+
this.publisher.restart();
|
|
66
67
|
this.runningPromise.start();
|
|
67
68
|
this.state = SequencerState.IDLE;
|
|
68
69
|
}
|
|
@@ -96,13 +97,14 @@ export class Sequencer {
|
|
|
96
97
|
const pendingTxs = await this.p2pClient.getTxs();
|
|
97
98
|
if (pendingTxs.length < this.minTxsPerBLock)
|
|
98
99
|
return;
|
|
100
|
+
this.log.info(`Retrieved ${pendingTxs.length} txs from P2P pool`);
|
|
99
101
|
// Filter out invalid txs
|
|
102
|
+
// TODO: It should be responsibility of the P2P layer to validate txs before passing them on here
|
|
100
103
|
const validTxs = await this.takeValidTxs(pendingTxs);
|
|
101
|
-
if (validTxs.length < this.minTxsPerBLock)
|
|
104
|
+
if (validTxs.length < this.minTxsPerBLock)
|
|
102
105
|
return;
|
|
103
|
-
}
|
|
104
106
|
const blockNumber = (await this.l2BlockSource.getBlockNumber()) + 1;
|
|
105
|
-
this.log.info(`Building block ${blockNumber} with ${validTxs.length} transactions
|
|
107
|
+
this.log.info(`Building block ${blockNumber} with ${validTxs.length} transactions`);
|
|
106
108
|
this.state = SequencerState.CREATING_BLOCK;
|
|
107
109
|
const newGlobalVariables = await this.globalsBuilder.buildGlobalVariables(new Fr(blockNumber));
|
|
108
110
|
const prevGlobalVariables = (await this.l2BlockSource.getL2Block(-1))?.globalVariables ?? GlobalVariables.empty();
|
|
@@ -115,9 +117,11 @@ export class Sequencer {
|
|
|
115
117
|
this.log(`Dropping failed txs ${(await Tx.getHashes(failedTxData)).join(', ')}`);
|
|
116
118
|
await this.p2pClient.deleteTxs(await Tx.getHashes(failedTxData));
|
|
117
119
|
}
|
|
118
|
-
// Only accept processed transactions that are not double-spends
|
|
119
|
-
// public functions emitting nullifiers would pass earlier check but fail here
|
|
120
|
-
|
|
120
|
+
// Only accept processed transactions that are not double-spends,
|
|
121
|
+
// public functions emitting nullifiers would pass earlier check but fail here.
|
|
122
|
+
// Note that we're checking all nullifiers generated in the private execution twice,
|
|
123
|
+
// we could store the ones already checked and skip them here as an optimisation.
|
|
124
|
+
const processedValidTxs = await this.takeValidTxs(processedTxs);
|
|
121
125
|
if (processedValidTxs.length === 0) {
|
|
122
126
|
this.log('No txs processed correctly to build block. Exiting');
|
|
123
127
|
return;
|
|
@@ -136,8 +140,7 @@ export class Sequencer {
|
|
|
136
140
|
this.log.info(`Submitted rollup block ${block.number} with ${processedValidTxs.length} transactions`);
|
|
137
141
|
}
|
|
138
142
|
catch (err) {
|
|
139
|
-
this.log.error(err);
|
|
140
|
-
this.log.error(`Rolling back world state DB`);
|
|
143
|
+
this.log.error(`Rolling back world state DB due to error assembling block`, err);
|
|
141
144
|
await this.worldState.getLatest().rollback();
|
|
142
145
|
}
|
|
143
146
|
}
|
|
@@ -184,23 +187,27 @@ export class Sequencer {
|
|
|
184
187
|
throw new Error(`Failed to publish block`);
|
|
185
188
|
}
|
|
186
189
|
}
|
|
187
|
-
// TODO: It should be responsibility of the P2P layer to validate txs before passing them on here
|
|
188
190
|
async takeValidTxs(txs) {
|
|
189
191
|
const validTxs = [];
|
|
190
192
|
const doubleSpendTxs = [];
|
|
193
|
+
const thisBlockNullifiers = new Set();
|
|
191
194
|
// Process txs until we get to maxTxsPerBlock, rejecting double spends in the process
|
|
192
195
|
for (const tx of txs) {
|
|
193
|
-
// TODO(AD) - eventually we should add a limit to how many transactions we
|
|
194
|
-
// skip in this manner and do something more DDOS-proof (like letting the transaction fail and pay a fee).
|
|
195
196
|
if (await this.isTxDoubleSpend(tx)) {
|
|
196
|
-
this.log(`Deleting double spend tx ${await
|
|
197
|
+
this.log(`Deleting double spend tx ${await Tx.getHash(tx)}`);
|
|
197
198
|
doubleSpendTxs.push(tx);
|
|
198
199
|
continue;
|
|
199
200
|
}
|
|
201
|
+
else if (this.isTxDoubleSpendSameBlock(tx, thisBlockNullifiers)) {
|
|
202
|
+
// We don't drop these txs from the p2p pool immediately since they become valid
|
|
203
|
+
// again if the current block fails to be published for some reason.
|
|
204
|
+
this.log(`Skipping tx with double-spend for this same block ${await Tx.getHash(tx)}`);
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
tx.data.end.newNullifiers.forEach(n => thisBlockNullifiers.add(n.toBigInt()));
|
|
200
208
|
validTxs.push(tx);
|
|
201
|
-
if (validTxs.length >= this.maxTxsPerBlock)
|
|
209
|
+
if (validTxs.length >= this.maxTxsPerBlock)
|
|
202
210
|
break;
|
|
203
|
-
}
|
|
204
211
|
}
|
|
205
212
|
// Make sure we remove these from the tx pool so we do not consider it again
|
|
206
213
|
if (doubleSpendTxs.length > 0) {
|
|
@@ -208,12 +215,6 @@ export class Sequencer {
|
|
|
208
215
|
}
|
|
209
216
|
return validTxs;
|
|
210
217
|
}
|
|
211
|
-
async takeValidProcessedTxs(txs) {
|
|
212
|
-
const isDoubleSpends = await Promise.all(txs.map(async (tx) => await this.isTxDoubleSpend(tx)));
|
|
213
|
-
const doubleSpends = txs.filter((tx, index) => isDoubleSpends[index]).map(tx => tx.hash);
|
|
214
|
-
await this.p2pClient.deleteTxs(doubleSpends);
|
|
215
|
-
return txs.filter((tx, index) => !isDoubleSpends[index]);
|
|
216
|
-
}
|
|
217
218
|
/**
|
|
218
219
|
* Returns whether the previous block sent has been mined, and all dependencies have caught up with it.
|
|
219
220
|
* @returns Boolean indicating if our dependencies are synced to the latest block.
|
|
@@ -222,6 +223,8 @@ export class Sequencer {
|
|
|
222
223
|
const syncedBlocks = await Promise.all([
|
|
223
224
|
this.worldState.status().then((s) => s.syncedToL2Block),
|
|
224
225
|
this.p2pClient.getStatus().then(s => s.syncedToL2Block),
|
|
226
|
+
this.l2BlockSource.getBlockNumber(),
|
|
227
|
+
this.l1ToL2MessageSource.getBlockNumber(),
|
|
225
228
|
]);
|
|
226
229
|
const min = Math.min(...syncedBlocks);
|
|
227
230
|
return min >= this.lastPublishedBlock;
|
|
@@ -251,6 +254,21 @@ export class Sequencer {
|
|
|
251
254
|
async getPendingL1ToL2Messages() {
|
|
252
255
|
return await this.l1ToL2MessageSource.getPendingL1ToL2Messages();
|
|
253
256
|
}
|
|
257
|
+
/**
|
|
258
|
+
* Returns true if one of the tx nullifiers exist on the block being built.
|
|
259
|
+
* @param tx - The tx to test.
|
|
260
|
+
* @param thisBlockNullifiers - The nullifiers added so far.
|
|
261
|
+
*/
|
|
262
|
+
isTxDoubleSpendSameBlock(tx, thisBlockNullifiers) {
|
|
263
|
+
// We only consider non-empty nullifiers
|
|
264
|
+
const newNullifiers = tx.data.end.newNullifiers.filter(n => !n.isZero());
|
|
265
|
+
for (const nullifier of newNullifiers) {
|
|
266
|
+
if (thisBlockNullifiers.has(nullifier.toBigInt())) {
|
|
267
|
+
return true;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
254
272
|
/**
|
|
255
273
|
* Returns true if one of the transaction nullifiers exist.
|
|
256
274
|
* Nullifiers prevent double spends in a private context.
|
|
@@ -258,17 +276,18 @@ export class Sequencer {
|
|
|
258
276
|
* @returns Whether this is a problematic double spend that the L1 contract would reject.
|
|
259
277
|
*/
|
|
260
278
|
async isTxDoubleSpend(tx) {
|
|
261
|
-
//
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
279
|
+
// We only consider non-empty nullifiers
|
|
280
|
+
const newNullifiers = tx.data.end.newNullifiers.filter(n => !n.isZero());
|
|
281
|
+
// Ditch this tx if it has a repeated nullifiers
|
|
282
|
+
const uniqNullifiers = new Set(newNullifiers.map(n => n.toBigInt()));
|
|
283
|
+
if (uniqNullifiers.size !== newNullifiers.length)
|
|
284
|
+
return true;
|
|
285
|
+
for (const nullifier of newNullifiers) {
|
|
266
286
|
// TODO(AD): this is an exhaustive search currently
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
287
|
+
const db = this.worldState.getLatest();
|
|
288
|
+
const indexInDb = await db.findLeafIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBuffer());
|
|
289
|
+
if (indexInDb !== undefined)
|
|
270
290
|
return true;
|
|
271
|
-
}
|
|
272
291
|
}
|
|
273
292
|
return false;
|
|
274
293
|
}
|
|
@@ -303,4 +322,4 @@ export var SequencerState;
|
|
|
303
322
|
*/
|
|
304
323
|
SequencerState[SequencerState["STOPPED"] = 5] = "STOPPED";
|
|
305
324
|
})(SequencerState || (SequencerState = {}));
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcXVlbmNlci9zZXF1ZW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbkUsT0FBTyxFQUErQyxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzdGLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUtqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzdDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFVcEIsWUFDVSxTQUFzQixFQUN0QixjQUFxQyxFQUNyQyxTQUFjLEVBQ2QsVUFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLHNCQUE4QyxFQUN0RCxNQUF1QixFQUNmLE1BQU0saUJBQWlCLENBQUMsaUJBQWlCLENBQUM7UUFUMUMsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsY0FBUyxHQUFULFNBQVMsQ0FBSztRQUNkLGVBQVUsR0FBVixVQUFVLENBQXdCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUU5QyxRQUFHLEdBQUgsR0FBRyxDQUF1QztRQWpCNUMsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsbUJBQWMsR0FBRyxD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
|
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcXVlbmNlci9zZXF1ZW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbkUsT0FBTyxFQUFtRSxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR2pILE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUtqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzdDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFRcEIsWUFDVSxTQUFzQixFQUN0QixjQUFxQyxFQUNyQyxTQUFjLEVBQ2QsVUFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLGtCQUFzQyxFQUN0QyxzQkFBOEMsRUFDdEQsTUFBdUIsRUFDZixNQUFNLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO1FBVjFDLGNBQVMsR0FBVCxTQUFTLENBQWE7UUFDdEIsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUU5QyxRQUFHLEdBQUgsR0FBRyxDQUF1QztR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
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { BaseOrMergeRollupPublicInputs, BaseRollupInputs, MergeRollupInputs, PublicKernelInputs, PublicKernelPublicInputs, RootRollupInputs, RootRollupPublicInputs } from '@aztec/circuits.js';
|
|
2
|
-
export { getPublicExecutor } from './public_executor.js';
|
|
3
2
|
/**
|
|
4
3
|
* Circuit simulator for the rollup circuits.
|
|
5
4
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACnF;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACrF;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,+BAA+B,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC/F;;;;OAIG;IACH,oCAAoC,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACrG"}
|
package/dest/simulator/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { CommitmentsDB, MessageLoadOracleInputs, PublicContractsDB, PublicExecutor } from '@aztec/acir-simulator';
|
|
3
|
+
import { AztecAddress, EthAddress, Fr, FunctionSelector, HistoricBlockData } from '@aztec/circuits.js';
|
|
4
|
+
import { ContractDataSource, ExtendedContractData, L1ToL2MessageSource, Tx } from '@aztec/types';
|
|
4
5
|
import { MerkleTreeOperations } from '@aztec/world-state';
|
|
5
6
|
/**
|
|
6
7
|
* Returns a new PublicExecutor simulator backed by the supplied merkle tree db and contract data source.
|
|
@@ -8,7 +9,30 @@ import { MerkleTreeOperations } from '@aztec/world-state';
|
|
|
8
9
|
* @param contractDataSource - A contract data source.
|
|
9
10
|
* @returns A new instance of a PublicExecutor.
|
|
10
11
|
*/
|
|
11
|
-
export declare function getPublicExecutor(merkleTree: MerkleTreeOperations,
|
|
12
|
+
export declare function getPublicExecutor(merkleTree: MerkleTreeOperations, publicContractsDB: PublicContractsDB, l1toL2MessageSource: L1ToL2MessageSource, blockData: HistoricBlockData): PublicExecutor;
|
|
13
|
+
/**
|
|
14
|
+
* Implements the PublicContractsDB using a ContractDataSource.
|
|
15
|
+
* Progresively records contracts in transaction as they are processed in a block.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ContractsDataSourcePublicDB implements PublicContractsDB {
|
|
18
|
+
#private;
|
|
19
|
+
private db;
|
|
20
|
+
cache: Map<string, ExtendedContractData>;
|
|
21
|
+
constructor(db: ContractDataSource);
|
|
22
|
+
/**
|
|
23
|
+
* Add new contracts from a transaction
|
|
24
|
+
* @param tx - The transaction to add contracts from.
|
|
25
|
+
*/
|
|
26
|
+
addNewContracts(tx: Tx): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Removes new contracts added from transactions
|
|
29
|
+
* @param tx - The tx's contracts to be removed
|
|
30
|
+
*/
|
|
31
|
+
removeNewContracts(tx: Tx): Promise<void>;
|
|
32
|
+
getBytecode(address: AztecAddress, selector: FunctionSelector): Promise<Buffer | undefined>;
|
|
33
|
+
getIsInternal(address: AztecAddress, selector: FunctionSelector): Promise<boolean | undefined>;
|
|
34
|
+
getPortalContractAddress(address: AztecAddress): Promise<EthAddress | undefined>;
|
|
35
|
+
}
|
|
12
36
|
/**
|
|
13
37
|
* Implements WorldState db using a world state database.
|
|
14
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_executor.d.ts","sourceRoot":"","sources":["../../src/simulator/public_executor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,uBAAuB,
|
|
1
|
+
{"version":3,"file":"public_executor.d.ts","sourceRoot":"","sources":["../../src/simulator/public_executor.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAgB,UAAU,EAAE,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrH,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAgB,EAAE,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAkC,MAAM,oBAAoB,CAAC;AAE1F;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,oBAAoB,EAChC,iBAAiB,EAAE,iBAAiB,EACpC,mBAAmB,EAAE,mBAAmB,EACxC,SAAS,EAAE,iBAAiB,kBAQ7B;AAED;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,iBAAiB;;IAGvD,OAAO,CAAC,EAAE;IAFtB,KAAK,oCAA2C;gBAE5B,EAAE,EAAE,kBAAkB;IAE1C;;;OAGG;IACI,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7C;;;OAGG;IACI,kBAAkB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1C,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI3F,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAI9F,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CAQvF;AAoCD;;GAEG;AACH,qBAAa,YAAa,YAAW,aAAa;IACpC,OAAO,CAAC,EAAE;IAAwB,OAAO,CAAC,mBAAmB;gBAArD,EAAE,EAAE,oBAAoB,EAAU,mBAAmB,EAAE,mBAAmB;IAEjF,gBAAgB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAalE,kBAAkB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAG7E"}
|