@aztec/prover-client 0.65.2 → 0.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/block_builder/index.d.ts +6 -0
- package/dest/block_builder/index.d.ts.map +1 -0
- package/dest/block_builder/index.js +2 -0
- package/dest/block_builder/light.d.ts +32 -0
- package/dest/block_builder/light.d.ts.map +1 -0
- package/dest/block_builder/light.js +75 -0
- package/dest/index.d.ts +1 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -3
- package/dest/mocks/fixtures.d.ts +4 -5
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +4 -8
- package/dest/mocks/test_context.d.ts +30 -12
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +61 -24
- package/dest/orchestrator/block-building-helpers.d.ts +5 -5
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +10 -11
- package/dest/orchestrator/epoch-proving-state.d.ts +5 -6
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +10 -12
- package/dest/orchestrator/orchestrator.d.ts +8 -6
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +85 -74
- package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator_metrics.js +2 -5
- package/dest/orchestrator/tx-proving-state.d.ts +0 -1
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +2 -34
- package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
- package/dest/prover-agent/memory-proving-queue.js +5 -4
- package/dest/prover-agent/prover-agent.d.ts.map +1 -1
- package/dest/prover-agent/prover-agent.js +3 -3
- package/dest/prover-client/factory.d.ts +6 -0
- package/dest/prover-client/factory.d.ts.map +1 -0
- package/dest/prover-client/factory.js +6 -0
- package/dest/prover-client/index.d.ts +3 -0
- package/dest/prover-client/index.d.ts.map +1 -0
- package/dest/prover-client/index.js +3 -0
- package/dest/{tx-prover/tx-prover.d.ts → prover-client/prover-client.d.ts} +8 -11
- package/dest/prover-client/prover-client.d.ts.map +1 -0
- package/dest/prover-client/prover-client.js +107 -0
- package/dest/proving_broker/caching_broker_facade.d.ts +12 -12
- package/dest/proving_broker/caching_broker_facade.d.ts.map +1 -1
- package/dest/proving_broker/caching_broker_facade.js +32 -29
- package/dest/proving_broker/factory.d.ts +2 -1
- package/dest/proving_broker/factory.d.ts.map +1 -1
- package/dest/proving_broker/factory.js +4 -4
- package/dest/proving_broker/proving_agent.d.ts +5 -0
- package/dest/proving_broker/proving_agent.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent.js +15 -4
- package/dest/proving_broker/proving_agent_instrumentation.d.ts +8 -0
- package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -0
- package/dest/proving_broker/proving_agent_instrumentation.js +16 -0
- package/dest/proving_broker/proving_broker.d.ts +29 -5
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +142 -41
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -1
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.js +6 -2
- package/dest/proving_broker/proving_broker_instrumentation.d.ts +25 -0
- package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -0
- package/dest/proving_broker/proving_broker_instrumentation.js +85 -0
- package/dest/proving_broker/rpc.d.ts.map +1 -1
- package/dest/proving_broker/rpc.js +3 -2
- package/dest/test/mock_prover.d.ts +3 -2
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +9 -5
- package/package.json +18 -13
- package/src/block_builder/index.ts +6 -0
- package/src/block_builder/light.ts +120 -0
- package/src/index.ts +1 -2
- package/src/mocks/fixtures.ts +6 -18
- package/src/mocks/test_context.ts +85 -29
- package/src/orchestrator/block-building-helpers.ts +13 -14
- package/src/orchestrator/epoch-proving-state.ts +10 -13
- package/src/orchestrator/orchestrator.ts +101 -81
- package/src/orchestrator/orchestrator_metrics.ts +1 -11
- package/src/orchestrator/tx-proving-state.ts +1 -56
- package/src/prover-agent/memory-proving-queue.ts +4 -3
- package/src/prover-agent/prover-agent.ts +2 -2
- package/src/{tx-prover → prover-client}/factory.ts +4 -3
- package/src/prover-client/index.ts +2 -0
- package/src/{tx-prover/tx-prover.ts → prover-client/prover-client.ts} +25 -15
- package/src/proving_broker/caching_broker_facade.ts +31 -15
- package/src/proving_broker/factory.ts +7 -3
- package/src/proving_broker/proving_agent.ts +18 -3
- package/src/proving_broker/proving_agent_instrumentation.ts +21 -0
- package/src/proving_broker/proving_broker.ts +182 -50
- package/src/proving_broker/proving_broker_database/persisted.ts +11 -2
- package/src/proving_broker/proving_broker_instrumentation.ts +123 -0
- package/src/proving_broker/rpc.ts +2 -1
- package/src/test/mock_prover.ts +8 -4
- package/dest/tx-prover/factory.d.ts +0 -6
- package/dest/tx-prover/factory.d.ts.map +0 -1
- package/dest/tx-prover/factory.js +0 -6
- package/dest/tx-prover/tx-prover.d.ts.map +0 -1
- package/dest/tx-prover/tx-prover.js +0 -110
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block_builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAExF,cAAc,YAAY,CAAC;AAC3B,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,EAAE,wBAAwB,GAAG,YAAY,CAAC;CACpD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type BlockBuilder, L2Block, type MerkleTreeWriteOperations, type ProcessedTx } from '@aztec/circuit-types';
|
|
2
|
+
import { Fr, type GlobalVariables } from '@aztec/circuits.js';
|
|
3
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
4
|
+
/**
|
|
5
|
+
* Builds a block and its header from a set of processed tx without running any circuits.
|
|
6
|
+
*/
|
|
7
|
+
export declare class LightweightBlockBuilder implements BlockBuilder {
|
|
8
|
+
private db;
|
|
9
|
+
private telemetry;
|
|
10
|
+
private numTxs?;
|
|
11
|
+
private globalVariables?;
|
|
12
|
+
private l1ToL2Messages?;
|
|
13
|
+
private readonly txs;
|
|
14
|
+
private readonly logger;
|
|
15
|
+
constructor(db: MerkleTreeWriteOperations, telemetry: TelemetryClient);
|
|
16
|
+
startNewBlock(numTxs: number, globalVariables: GlobalVariables, l1ToL2Messages: Fr[]): Promise<void>;
|
|
17
|
+
addNewTx(tx: ProcessedTx): Promise<void>;
|
|
18
|
+
setBlockCompleted(): Promise<L2Block>;
|
|
19
|
+
private buildBlock;
|
|
20
|
+
}
|
|
21
|
+
export declare class LightweightBlockBuilderFactory {
|
|
22
|
+
private telemetry?;
|
|
23
|
+
constructor(telemetry?: TelemetryClient | undefined);
|
|
24
|
+
create(db: MerkleTreeWriteOperations): BlockBuilder;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Creates a block builder under the hood with the given txs and messages and creates a block.
|
|
28
|
+
* Automatically adds padding txs to get to a minimum of 2 txs in the block.
|
|
29
|
+
* @param db - A db fork to use for block building.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildBlock(txs: ProcessedTx[], globalVariables: GlobalVariables, l1ToL2Messages: Fr[], db: MerkleTreeWriteOperations, telemetry?: TelemetryClient): Promise<L2Block>;
|
|
32
|
+
//# sourceMappingURL=light.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../src/block_builder/light.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,OAAO,EAEP,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,eAAe,EAAuC,MAAM,oBAAoB,CAAC;AAKnG,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAS/D;;GAEG;AACH,qBAAa,uBAAwB,YAAW,YAAY;IAS9C,OAAO,CAAC,EAAE;IAA6B,OAAO,CAAC,SAAS;IARpE,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAO;IAE9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IAEzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;gBAElD,EAAE,EAAE,yBAAyB,EAAU,SAAS,EAAE,eAAe;IAE/E,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpG,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;YAiB7B,UAAU;CAoBzB;AAED,qBAAa,8BAA8B;IAC7B,OAAO,CAAC,SAAS,CAAC;gBAAV,SAAS,CAAC,6BAAiB;IAE/C,MAAM,CAAC,EAAE,EAAE,yBAAyB,GAAG,YAAY;CAGpD;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,WAAW,EAAE,EAClB,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,EACpB,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAA2C,oBAQvD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { L2Block, MerkleTreeId, makeEmptyProcessedTx, } from '@aztec/circuit-types';
|
|
2
|
+
import { Fr, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/circuits.js';
|
|
3
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types';
|
|
6
|
+
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
7
|
+
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
8
|
+
import { buildBaseRollupHints, buildHeaderAndBodyFromTxs, getTreeSnapshot, } from '../orchestrator/block-building-helpers.js';
|
|
9
|
+
/**
|
|
10
|
+
* Builds a block and its header from a set of processed tx without running any circuits.
|
|
11
|
+
*/
|
|
12
|
+
export class LightweightBlockBuilder {
|
|
13
|
+
constructor(db, telemetry) {
|
|
14
|
+
this.db = db;
|
|
15
|
+
this.telemetry = telemetry;
|
|
16
|
+
this.txs = [];
|
|
17
|
+
this.logger = createLogger('prover-client:block_builder');
|
|
18
|
+
}
|
|
19
|
+
async startNewBlock(numTxs, globalVariables, l1ToL2Messages) {
|
|
20
|
+
this.logger.debug('Starting new block', { numTxs, globalVariables: globalVariables.toInspect(), l1ToL2Messages });
|
|
21
|
+
this.numTxs = numTxs;
|
|
22
|
+
this.globalVariables = globalVariables;
|
|
23
|
+
this.l1ToL2Messages = padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
24
|
+
// Update L1 to L2 tree
|
|
25
|
+
await this.db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, this.l1ToL2Messages);
|
|
26
|
+
}
|
|
27
|
+
async addNewTx(tx) {
|
|
28
|
+
this.logger.debug(tx.hash.isZero() ? 'Adding padding tx to block' : 'Adding new tx to block', {
|
|
29
|
+
txHash: tx.hash.toString(),
|
|
30
|
+
});
|
|
31
|
+
this.txs.push(tx);
|
|
32
|
+
await buildBaseRollupHints(tx, this.globalVariables, this.db);
|
|
33
|
+
}
|
|
34
|
+
async setBlockCompleted() {
|
|
35
|
+
const paddingTxCount = this.numTxs - this.txs.length;
|
|
36
|
+
for (let i = 0; i < paddingTxCount; i++) {
|
|
37
|
+
await this.addNewTx(makeEmptyProcessedTx(this.db.getInitialHeader(), this.globalVariables.chainId, this.globalVariables.version, getVKTreeRoot(), protocolContractTreeRoot));
|
|
38
|
+
}
|
|
39
|
+
return this.buildBlock();
|
|
40
|
+
}
|
|
41
|
+
async buildBlock() {
|
|
42
|
+
const { header, body } = await buildHeaderAndBodyFromTxs(this.txs, this.globalVariables, this.l1ToL2Messages, this.db);
|
|
43
|
+
await this.db.updateArchive(header);
|
|
44
|
+
const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db);
|
|
45
|
+
const block = new L2Block(newArchive, header, body);
|
|
46
|
+
this.logger.debug(`Built block ${block.number}`, {
|
|
47
|
+
globalVariables: this.globalVariables?.toInspect(),
|
|
48
|
+
archiveRoot: newArchive.root.toString(),
|
|
49
|
+
blockHash: block.hash.toString(),
|
|
50
|
+
});
|
|
51
|
+
return block;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export class LightweightBlockBuilderFactory {
|
|
55
|
+
constructor(telemetry) {
|
|
56
|
+
this.telemetry = telemetry;
|
|
57
|
+
}
|
|
58
|
+
create(db) {
|
|
59
|
+
return new LightweightBlockBuilder(db, this.telemetry ?? new NoopTelemetryClient());
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Creates a block builder under the hood with the given txs and messages and creates a block.
|
|
64
|
+
* Automatically adds padding txs to get to a minimum of 2 txs in the block.
|
|
65
|
+
* @param db - A db fork to use for block building.
|
|
66
|
+
*/
|
|
67
|
+
export async function buildBlock(txs, globalVariables, l1ToL2Messages, db, telemetry = new NoopTelemetryClient()) {
|
|
68
|
+
const builder = new LightweightBlockBuilder(db, telemetry);
|
|
69
|
+
await builder.startNewBlock(Math.max(txs.length, 2), globalVariables, l1ToL2Messages);
|
|
70
|
+
for (const tx of txs) {
|
|
71
|
+
await builder.addNewTx(tx);
|
|
72
|
+
}
|
|
73
|
+
return await builder.setBlockCompleted();
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2tfYnVpbGRlci9saWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsT0FBTyxFQUNQLFlBQVksRUFHWixvQkFBb0IsR0FDckIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsRUFBRSxFQUF3QixtQ0FBbUMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRW5FLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSwyQ0FBMkMsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFTbEMsWUFBb0IsRUFBNkIsRUFBVSxTQUEwQjtRQUFqRSxPQUFFLEdBQUYsRUFBRSxDQUEyQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBSnBFLFFBQUcsR0FBa0IsRUFBRSxDQUFDO1FBRXhCLFdBQU0sR0FBRyxZQUFZLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUVrQixDQUFDO0lBRXpGLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBYyxFQUFFLGVBQWdDLEVBQUUsY0FBb0I7UUFDeEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ2xI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
|
package/dest/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { EpochProverManager } from '@aztec/circuit-types';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './prover-client/index.js';
|
|
3
3
|
export * from './config.js';
|
|
4
|
-
export * from './tx-prover/factory.js';
|
|
5
4
|
export * from './proving_broker/prover_cache/memory.js';
|
|
6
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,yCAAyC,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './prover-client/index.js';
|
|
2
2
|
export * from './config.js';
|
|
3
|
-
export * from './tx-prover/factory.js';
|
|
4
3
|
export * from './proving_broker/prover_cache/memory.js';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHlDQUF5QyxDQUFDIn0=
|
package/dest/mocks/fixtures.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type MerkleTreeWriteOperations, type ProcessedTx } from '@aztec/circuit-types';
|
|
2
2
|
import { GlobalVariables } from '@aztec/circuits.js';
|
|
3
|
-
import { type
|
|
3
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
4
4
|
import { type SimulationProvider } from '@aztec/simulator';
|
|
5
|
-
export declare const getEnvironmentConfig: (logger:
|
|
5
|
+
export declare const getEnvironmentConfig: (logger: Logger) => Promise<{
|
|
6
6
|
acvmWorkingDirectory: string;
|
|
7
7
|
bbWorkingDirectory: string;
|
|
8
8
|
expectedAcvmPath: string;
|
|
@@ -13,8 +13,7 @@ export declare const getEnvironmentConfig: (logger: DebugLogger) => Promise<{
|
|
|
13
13
|
export declare function getSimulationProvider(config: {
|
|
14
14
|
acvmWorkingDirectory: string | undefined;
|
|
15
15
|
acvmBinaryPath: string | undefined;
|
|
16
|
-
}, logger?:
|
|
17
|
-
export declare const makeBloatedProcessedTxWithVKRoot: (builderDb: MerkleTreeReadOperations, seed?: number) => ProcessedTx;
|
|
16
|
+
}, logger?: Logger): Promise<SimulationProvider>;
|
|
18
17
|
export declare const updateExpectedTreesFromTxs: (db: MerkleTreeWriteOperations, txs: ProcessedTx[]) => Promise<void>;
|
|
19
18
|
export declare const makeGlobals: (blockNumber: number) => GlobalVariables;
|
|
20
19
|
//# sourceMappingURL=fixtures.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/mocks/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/mocks/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,yBAAyB,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAKL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAuB,KAAK,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAiB/F,eAAO,MAAM,oBAAoB,WAAkB,MAAM;;;;;;;cAkCxD,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE;IAAE,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EACxF,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,CAAC,CAe7B;AAGD,eAAO,MAAM,0BAA0B,OAAc,yBAAyB,OAAO,WAAW,EAAE,kBAgBjG,CAAC;AAEF,eAAO,MAAM,WAAW,gBAAiB,MAAM,oBAW9C,CAAC"}
|
package/dest/mocks/fixtures.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import { MerkleTreeId
|
|
2
|
-
import { makeBloatedProcessedTx } from '@aztec/circuit-types/test';
|
|
1
|
+
import { MerkleTreeId } from '@aztec/circuit-types';
|
|
3
2
|
import { AztecAddress, EthAddress, Fr, GasFees, GlobalVariables, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NULLIFIER_TREE_HEIGHT, } from '@aztec/circuits.js';
|
|
4
3
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
4
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
6
5
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
7
|
-
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types';
|
|
8
|
-
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
9
6
|
import { NativeACVMSimulator, WASMSimulator } from '@aztec/simulator';
|
|
10
|
-
import
|
|
7
|
+
import { promises as fs } from 'fs';
|
|
11
8
|
import path from 'path';
|
|
12
9
|
const { BB_RELEASE_DIR = 'cpp/build/bin', TEMP_DIR = '/tmp', BB_BINARY_PATH = '', BB_WORKING_DIRECTORY = '', BB_SKIP_CLEANUP = '', NOIR_RELEASE_DIR = 'noir-repo/target/release', ACVM_BINARY_PATH = '', ACVM_WORKING_DIRECTORY = '', } = process.env;
|
|
13
10
|
// Determines if we have access to the bb binary and a tmp folder for temp files
|
|
@@ -59,16 +56,15 @@ export async function getSimulationProvider(config, logger) {
|
|
|
59
56
|
logger?.info('Using WASM ACVM simulation');
|
|
60
57
|
return new WASMSimulator();
|
|
61
58
|
}
|
|
62
|
-
export const makeBloatedProcessedTxWithVKRoot = (builderDb, seed = 0x1) => makeBloatedProcessedTx({ db: builderDb, vkTreeRoot: getVKTreeRoot(), protocolContractTreeRoot, seed });
|
|
63
59
|
// Updates the expectedDb trees based on the new note hashes, contracts, and nullifiers from these txs
|
|
64
60
|
export const updateExpectedTreesFromTxs = async (db, txs) => {
|
|
65
61
|
await db.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, txs.flatMap(tx => padArrayEnd(tx.txEffect.noteHashes, Fr.zero(), MAX_NOTE_HASHES_PER_TX)));
|
|
66
62
|
await db.batchInsert(MerkleTreeId.NULLIFIER_TREE, txs.flatMap(tx => padArrayEnd(tx.txEffect.nullifiers, Fr.zero(), MAX_NULLIFIERS_PER_TX).map(x => x.toBuffer())), NULLIFIER_TREE_HEIGHT);
|
|
67
63
|
for (const tx of txs) {
|
|
68
|
-
await db.
|
|
64
|
+
await db.sequentialInsert(MerkleTreeId.PUBLIC_DATA_TREE, tx.txEffect.publicDataWrites.map(write => write.toBuffer()));
|
|
69
65
|
}
|
|
70
66
|
};
|
|
71
67
|
export const makeGlobals = (blockNumber) => {
|
|
72
68
|
return new GlobalVariables(Fr.ZERO, Fr.ZERO, new Fr(blockNumber) /** block number */, new Fr(blockNumber) /** slot number */, new Fr(blockNumber) /** timestamp */, EthAddress.ZERO, AztecAddress.ZERO, GasFees.empty());
|
|
73
69
|
};
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBb0QsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RyxPQUFPLEVBQ0wsWUFBWSxFQUNaLFVBQVUsRUFDVixFQUFFLEVBQ0YsT0FBTyxFQUNQLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUN0QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBMkIsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0YsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE1BQU0sRUFDSixjQUFjLEdBQUcsZUFBZSxFQUNoQyxRQUFRLEdBQUcsTUFBTSxFQUNqQixjQUFjLEdBQUcsRUFBRSxFQUNuQixvQkFBb0IsR0FBRyxFQUFFLEVBQ3pCLGVBQWUsR0FBRyxFQUFFLEVBQ3BCLGdCQUFnQixHQUFHLDBCQUEwQixFQUM3QyxnQkFBZ0IsR0FBRyxFQUFFLEVBQ3JCLHNCQUFzQixHQUFHLEVBQUUsR0FDNUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0FBRWhCLGdGQUFnRjtBQUNoRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDM0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxjQUFjLEdBQUcsY0FBYztZQUNuQyxDQUFDLENBQUMsY0FBYztZ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
|
|
@@ -1,29 +1,47 @@
|
|
|
1
1
|
import { type BBProverConfig } from '@aztec/bb-prover';
|
|
2
|
-
import { type
|
|
3
|
-
import {
|
|
4
|
-
import { type
|
|
5
|
-
import {
|
|
6
|
-
import { type
|
|
2
|
+
import { type L2Block, type ProcessedTx, type ProcessedTxHandler, type ServerCircuitProver, type Tx, type TxValidator } from '@aztec/circuit-types';
|
|
3
|
+
import { makeBloatedProcessedTx } from '@aztec/circuit-types/test';
|
|
4
|
+
import { type AppendOnlyTreeSnapshot, BlockHeader, type GlobalVariables } from '@aztec/circuits.js';
|
|
5
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
6
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
7
|
+
import { PublicProcessor, PublicTxSimulator, type SimulationProvider } from '@aztec/simulator';
|
|
8
|
+
import { type MerkleTreeAdminDatabase } from '@aztec/world-state';
|
|
7
9
|
import { ProvingOrchestrator } from '../orchestrator/index.js';
|
|
8
10
|
import { ProverAgent } from '../prover-agent/prover-agent.js';
|
|
9
11
|
export declare class TestContext {
|
|
10
12
|
publicTxSimulator: PublicTxSimulator;
|
|
11
|
-
|
|
13
|
+
worldState: MerkleTreeAdminDatabase;
|
|
12
14
|
publicProcessor: PublicProcessor;
|
|
13
15
|
simulationProvider: SimulationProvider;
|
|
14
16
|
globalVariables: GlobalVariables;
|
|
15
|
-
actualDb: MerkleTreeWriteOperations;
|
|
16
17
|
prover: ServerCircuitProver;
|
|
17
18
|
proverAgent: ProverAgent;
|
|
18
|
-
orchestrator:
|
|
19
|
+
orchestrator: TestProvingOrchestrator;
|
|
19
20
|
blockNumber: number;
|
|
20
21
|
directoriesToCleanup: string[];
|
|
21
|
-
logger:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
logger: Logger;
|
|
23
|
+
private headers;
|
|
24
|
+
constructor(publicTxSimulator: PublicTxSimulator, worldState: MerkleTreeAdminDatabase, publicProcessor: PublicProcessor, simulationProvider: SimulationProvider, globalVariables: GlobalVariables, prover: ServerCircuitProver, proverAgent: ProverAgent, orchestrator: TestProvingOrchestrator, blockNumber: number, directoriesToCleanup: string[], logger: Logger);
|
|
25
|
+
get epochProver(): TestProvingOrchestrator;
|
|
26
|
+
static new(logger: Logger, proverCount?: number, createProver?: (bbConfig: BBProverConfig) => Promise<ServerCircuitProver>, blockNumber?: number): Promise<TestContext>;
|
|
27
|
+
getFork(): Promise<import("@aztec/circuit-types").MerkleTreeWriteOperations>;
|
|
28
|
+
getBlockHeader(blockNumber: 0): BlockHeader;
|
|
29
|
+
getBlockHeader(blockNumber: number): BlockHeader | undefined;
|
|
25
30
|
cleanup(): Promise<void>;
|
|
31
|
+
makeProcessedTx(opts?: Parameters<typeof makeBloatedProcessedTx>[0]): ProcessedTx;
|
|
32
|
+
makeProcessedTx(seed?: number): ProcessedTx;
|
|
33
|
+
/** Creates a block with the given number of txs and adds it to world-state */
|
|
34
|
+
makePendingBlock(numTxs: number, numMsgs?: number, blockNumOrGlobals?: GlobalVariables | number, makeProcessedTxOpts?: (index: number) => Partial<Parameters<typeof makeBloatedProcessedTx>[0]>): Promise<{
|
|
35
|
+
block: L2Block;
|
|
36
|
+
txs: ProcessedTx[];
|
|
37
|
+
msgs: Fr[];
|
|
38
|
+
}>;
|
|
26
39
|
processPublicFunctions(txs: Tx[], maxTransactions: number, txHandler?: ProcessedTxHandler, txValidator?: TxValidator<ProcessedTx>): Promise<[ProcessedTx[], import("@aztec/circuit-types").FailedTx[], import("@aztec/circuit-types").NestedProcessReturnValues[]]>;
|
|
27
40
|
private processPublicFunctionsWithMockExecutorImplementation;
|
|
28
41
|
}
|
|
42
|
+
declare class TestProvingOrchestrator extends ProvingOrchestrator {
|
|
43
|
+
isVerifyBuiltBlockAgainstSyncedStateEnabled: boolean;
|
|
44
|
+
protected verifyBuiltBlockAgainstSyncedState(l2Block: L2Block, newArchive: AppendOnlyTreeSnapshot): Promise<void>;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
29
47
|
//# sourceMappingURL=test_context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_context.d.ts","sourceRoot":"","sources":["../../src/mocks/test_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"test_context.d.ts","sourceRoot":"","sources":["../../src/mocks/test_context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +1,51 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { makeBloatedProcessedTx } from '@aztec/circuit-types/test';
|
|
2
|
+
import { BlockHeader } from '@aztec/circuits.js';
|
|
3
|
+
import { times } from '@aztec/foundation/collection';
|
|
2
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import {
|
|
5
|
+
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types';
|
|
6
|
+
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
4
7
|
import { PublicProcessor, PublicTxSimulator, WASMSimulator, } from '@aztec/simulator';
|
|
5
8
|
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
6
|
-
import { MerkleTrees } from '@aztec/world-state';
|
|
7
9
|
import { NativeWorldStateService } from '@aztec/world-state/native';
|
|
8
10
|
import { jest } from '@jest/globals';
|
|
9
|
-
import
|
|
11
|
+
import { promises as fs } from 'fs';
|
|
10
12
|
import { mock } from 'jest-mock-extended';
|
|
11
13
|
import { TestCircuitProver } from '../../../bb-prover/src/test/test_circuit_prover.js';
|
|
12
14
|
import { AvmFinalizedCallResult } from '../../../simulator/src/avm/avm_contract_call_result.js';
|
|
15
|
+
import { buildBlock } from '../block_builder/light.js';
|
|
13
16
|
import { ProvingOrchestrator } from '../orchestrator/index.js';
|
|
14
17
|
import { MemoryProvingQueue } from '../prover-agent/memory-proving-queue.js';
|
|
15
18
|
import { ProverAgent } from '../prover-agent/prover-agent.js';
|
|
16
19
|
import { getEnvironmentConfig, getSimulationProvider, makeGlobals } from './fixtures.js';
|
|
17
20
|
export class TestContext {
|
|
18
|
-
constructor(publicTxSimulator,
|
|
21
|
+
constructor(publicTxSimulator, worldState, publicProcessor, simulationProvider, globalVariables, prover, proverAgent, orchestrator, blockNumber, directoriesToCleanup, logger) {
|
|
19
22
|
this.publicTxSimulator = publicTxSimulator;
|
|
20
|
-
this.
|
|
23
|
+
this.worldState = worldState;
|
|
21
24
|
this.publicProcessor = publicProcessor;
|
|
22
25
|
this.simulationProvider = simulationProvider;
|
|
23
26
|
this.globalVariables = globalVariables;
|
|
24
|
-
this.actualDb = actualDb;
|
|
25
27
|
this.prover = prover;
|
|
26
28
|
this.proverAgent = proverAgent;
|
|
27
29
|
this.orchestrator = orchestrator;
|
|
28
30
|
this.blockNumber = blockNumber;
|
|
29
31
|
this.directoriesToCleanup = directoriesToCleanup;
|
|
30
32
|
this.logger = logger;
|
|
33
|
+
this.headers = new Map();
|
|
31
34
|
}
|
|
32
35
|
get epochProver() {
|
|
33
36
|
return this.orchestrator;
|
|
34
37
|
}
|
|
35
|
-
static async new(logger,
|
|
38
|
+
static async new(logger, proverCount = 4, createProver = _ => Promise.resolve(new TestCircuitProver(new NoopTelemetryClient(), new WASMSimulator())), blockNumber = 1) {
|
|
36
39
|
const directoriesToCleanup = [];
|
|
37
40
|
const globalVariables = makeGlobals(blockNumber);
|
|
38
41
|
const worldStateDB = mock();
|
|
39
42
|
const telemetry = new NoopTelemetryClient();
|
|
40
43
|
// Separated dbs for public processor and prover - see public_processor for context
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (worldState === 'native') {
|
|
44
|
-
const ws = await NativeWorldStateService.tmp();
|
|
45
|
-
publicDb = await ws.fork();
|
|
46
|
-
proverDb = await ws.fork();
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
const ws = await MerkleTrees.new(openTmpStore(), telemetry);
|
|
50
|
-
publicDb = await ws.getLatest();
|
|
51
|
-
proverDb = await ws.getLatest();
|
|
52
|
-
}
|
|
44
|
+
const ws = await NativeWorldStateService.tmp();
|
|
45
|
+
const publicDb = await ws.fork();
|
|
53
46
|
worldStateDB.getMerkleInterface.mockReturnValue(publicDb);
|
|
54
47
|
const publicTxSimulator = new PublicTxSimulator(publicDb, worldStateDB, telemetry, globalVariables);
|
|
55
|
-
const processor = new PublicProcessor(publicDb, globalVariables,
|
|
48
|
+
const processor = new PublicProcessor(publicDb, globalVariables, BlockHeader.empty(), worldStateDB, publicTxSimulator, telemetry);
|
|
56
49
|
let localProver;
|
|
57
50
|
const config = await getEnvironmentConfig(logger);
|
|
58
51
|
const simulationProvider = await getSimulationProvider({
|
|
@@ -76,11 +69,17 @@ export class TestContext {
|
|
|
76
69
|
directoriesToCleanup.push(config.directoryToCleanup);
|
|
77
70
|
}
|
|
78
71
|
const queue = new MemoryProvingQueue(telemetry);
|
|
79
|
-
const orchestrator = new
|
|
72
|
+
const orchestrator = new TestProvingOrchestrator(ws, queue, telemetry, Fr.ZERO);
|
|
80
73
|
const agent = new ProverAgent(localProver, proverCount);
|
|
81
74
|
queue.start();
|
|
82
75
|
agent.start(queue);
|
|
83
|
-
return new this(publicTxSimulator,
|
|
76
|
+
return new this(publicTxSimulator, ws, processor, simulationProvider, globalVariables, localProver, agent, orchestrator, blockNumber, directoriesToCleanup, logger);
|
|
77
|
+
}
|
|
78
|
+
getFork() {
|
|
79
|
+
return this.worldState.fork();
|
|
80
|
+
}
|
|
81
|
+
getBlockHeader(blockNumber = 0) {
|
|
82
|
+
return blockNumber === 0 ? this.worldState.getCommitted().getInitialHeader() : this.headers.get(blockNumber);
|
|
84
83
|
}
|
|
85
84
|
async cleanup() {
|
|
86
85
|
await this.proverAgent.stop();
|
|
@@ -88,6 +87,30 @@ export class TestContext {
|
|
|
88
87
|
await fs.rm(dir, { recursive: true, force: true });
|
|
89
88
|
}
|
|
90
89
|
}
|
|
90
|
+
makeProcessedTx(seedOrOpts) {
|
|
91
|
+
const opts = typeof seedOrOpts === 'number' ? { seed: seedOrOpts } : seedOrOpts;
|
|
92
|
+
const blockNum = (opts?.globalVariables ?? this.globalVariables).blockNumber.toNumber();
|
|
93
|
+
const header = this.getBlockHeader(blockNum - 1);
|
|
94
|
+
return makeBloatedProcessedTx({
|
|
95
|
+
header,
|
|
96
|
+
vkTreeRoot: getVKTreeRoot(),
|
|
97
|
+
protocolContractTreeRoot,
|
|
98
|
+
globalVariables: this.globalVariables,
|
|
99
|
+
...opts,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/** Creates a block with the given number of txs and adds it to world-state */
|
|
103
|
+
async makePendingBlock(numTxs, numMsgs = 0, blockNumOrGlobals = this.globalVariables, makeProcessedTxOpts = () => ({})) {
|
|
104
|
+
const globalVariables = typeof blockNumOrGlobals === 'number' ? makeGlobals(blockNumOrGlobals) : blockNumOrGlobals;
|
|
105
|
+
const blockNum = globalVariables.blockNumber.toNumber();
|
|
106
|
+
const db = await this.worldState.fork();
|
|
107
|
+
const msgs = times(numMsgs, i => new Fr(blockNum * 100 + i));
|
|
108
|
+
const txs = times(numTxs, i => this.makeProcessedTx({ seed: i + blockNum * 1000, globalVariables, ...makeProcessedTxOpts(i) }));
|
|
109
|
+
const block = await buildBlock(txs, globalVariables, msgs, db);
|
|
110
|
+
this.headers.set(blockNum, block.header);
|
|
111
|
+
await this.worldState.handleL2BlockAndMessages(block, msgs);
|
|
112
|
+
return { block, txs, msgs };
|
|
113
|
+
}
|
|
91
114
|
async processPublicFunctions(txs, maxTransactions, txHandler, txValidator) {
|
|
92
115
|
const defaultExecutorImplementation = (_stateManager, executionRequest, allocatedGas, _transactionFee, _fnName) => {
|
|
93
116
|
for (const tx of txs) {
|
|
@@ -113,4 +136,18 @@ export class TestContext {
|
|
|
113
136
|
return await this.publicProcessor.process(txs, maxTransactions, txHandler, txValidator);
|
|
114
137
|
}
|
|
115
138
|
}
|
|
116
|
-
|
|
139
|
+
class TestProvingOrchestrator extends ProvingOrchestrator {
|
|
140
|
+
constructor() {
|
|
141
|
+
super(...arguments);
|
|
142
|
+
this.isVerifyBuiltBlockAgainstSyncedStateEnabled = false;
|
|
143
|
+
}
|
|
144
|
+
// Disable this check by default, since it requires seeding world state with the block being built
|
|
145
|
+
// This is only enabled in some tests with multiple blocks that populate the pending chain via makePendingBlock
|
|
146
|
+
verifyBuiltBlockAgainstSyncedState(l2Block, newArchive) {
|
|
147
|
+
if (this.isVerifyBuiltBlockAgainstSyncedStateEnabled) {
|
|
148
|
+
return super.verifyBuiltBlockAgainstSyncedState(l2Block, newArchive);
|
|
149
|
+
}
|
|
150
|
+
return Promise.resolve();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vY2tzL3Rlc3RfY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQStCLFdBQVcsRUFBa0MsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGlCQUFpQixFQUVqQixhQUFhLEdBRWQsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUVoRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Body, MerkleTreeId, type MerkleTreeWriteOperations, type ProcessedTx } from '@aztec/circuit-types';
|
|
2
|
-
import { AppendOnlyTreeSnapshot, type BaseOrMergeRollupPublicInputs, BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, ConstantRollupData, Fr, type GlobalVariables,
|
|
3
|
-
import { type
|
|
2
|
+
import { AppendOnlyTreeSnapshot, type BaseOrMergeRollupPublicInputs, BlockHeader, BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, ConstantRollupData, Fr, type GlobalVariables, MembershipWitness, MergeRollupInputs, type NESTED_RECURSIVE_PROOF_LENGTH, type ParityPublicInputs, PartialStateReference, PreviousRollupBlockData, PreviousRollupData, PrivateBaseRollupHints, PublicBaseRollupHints, type RecursiveProof, RootRollupInputs, StateReference, type VerificationKeyAsFields } from '@aztec/circuits.js';
|
|
3
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
4
4
|
import { type Tuple } from '@aztec/foundation/serialize';
|
|
5
5
|
import { type MerkleTreeReadOperations } from '@aztec/world-state';
|
|
6
6
|
/**
|
|
@@ -22,12 +22,12 @@ export declare function createBlockMergeRollupInputs(left: [
|
|
|
22
22
|
RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>,
|
|
23
23
|
VerificationKeyAsFields
|
|
24
24
|
]): BlockMergeRollupInputs;
|
|
25
|
-
export declare function buildHeaderFromCircuitOutputs(previousMergeData: [BaseOrMergeRollupPublicInputs, BaseOrMergeRollupPublicInputs], parityPublicInputs: ParityPublicInputs, rootRollupOutputs: BlockRootOrBlockMergePublicInputs, updatedL1ToL2TreeSnapshot: AppendOnlyTreeSnapshot, logger?:
|
|
25
|
+
export declare function buildHeaderFromCircuitOutputs(previousMergeData: [BaseOrMergeRollupPublicInputs, BaseOrMergeRollupPublicInputs], parityPublicInputs: ParityPublicInputs, rootRollupOutputs: BlockRootOrBlockMergePublicInputs, updatedL1ToL2TreeSnapshot: AppendOnlyTreeSnapshot, logger?: Logger): BlockHeader;
|
|
26
26
|
export declare function buildHeaderAndBodyFromTxs(txs: ProcessedTx[], globalVariables: GlobalVariables, l1ToL2Messages: Fr[], db: MerkleTreeReadOperations): Promise<{
|
|
27
|
-
header:
|
|
27
|
+
header: BlockHeader;
|
|
28
28
|
body: Body;
|
|
29
29
|
}>;
|
|
30
|
-
export declare function validateBlockRootOutput(blockRootOutput: BlockRootOrBlockMergePublicInputs, blockHeader:
|
|
30
|
+
export declare function validateBlockRootOutput(blockRootOutput: BlockRootOrBlockMergePublicInputs, blockHeader: BlockHeader, db: MerkleTreeReadOperations): Promise<void>;
|
|
31
31
|
export declare function validateState(state: StateReference, db: MerkleTreeReadOperations): Promise<void>;
|
|
32
32
|
export declare function getRootTreeSiblingPath<TID extends MerkleTreeId>(treeId: TID, db: MerkleTreeReadOperations): Promise<Tuple<Fr, {
|
|
33
33
|
readonly 1: 40;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,sBAAsB,EACtB,KAAK,iCAAiC,EACtC,kBAAkB,EAElB,EAAE,EACF,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"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"}
|