@aztec/prover-client 0.0.1-commit.b655e406 → 0.0.1-commit.b8a057fa
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/config.d.ts +2 -2
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +17 -3
- package/dest/index.d.ts +1 -1
- package/dest/light/index.d.ts +2 -0
- package/dest/light/index.d.ts.map +1 -0
- package/dest/light/index.js +1 -0
- package/dest/light/lightweight_checkpoint_builder.d.ts +52 -0
- package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -0
- package/dest/light/lightweight_checkpoint_builder.js +233 -0
- package/dest/mocks/fixtures.d.ts +1 -4
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +9 -18
- package/dest/mocks/test_context.d.ts +38 -55
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +143 -142
- package/dest/orchestrator/block-building-helpers.d.ts +18 -20
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +90 -115
- package/dest/orchestrator/block-proving-state.d.ts +20 -11
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +87 -19
- package/dest/orchestrator/checkpoint-proving-state.d.ts +24 -27
- package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/checkpoint-proving-state.js +28 -94
- package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts +161 -0
- package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts.map +1 -0
- package/dest/orchestrator/checkpoint-sub-tree-orchestrator.js +1066 -0
- package/dest/orchestrator/chonk-cache.d.ts +39 -0
- package/dest/orchestrator/chonk-cache.d.ts.map +1 -0
- package/dest/orchestrator/chonk-cache.js +80 -0
- package/dest/orchestrator/index.d.ts +4 -2
- package/dest/orchestrator/index.d.ts.map +1 -1
- package/dest/orchestrator/index.js +3 -1
- package/dest/orchestrator/orchestrator_metrics.d.ts +1 -3
- package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator_metrics.js +2 -15
- package/dest/orchestrator/proving-scheduler.d.ts +81 -0
- package/dest/orchestrator/proving-scheduler.d.ts.map +1 -0
- package/dest/orchestrator/proving-scheduler.js +120 -0
- package/dest/orchestrator/top-tree-orchestrator.d.ts +88 -0
- package/dest/orchestrator/top-tree-orchestrator.d.ts.map +1 -0
- package/dest/orchestrator/top-tree-orchestrator.js +232 -0
- package/dest/orchestrator/top-tree-proving-state.d.ts +61 -0
- package/dest/orchestrator/top-tree-proving-state.d.ts.map +1 -0
- package/dest/orchestrator/top-tree-proving-state.js +185 -0
- package/dest/orchestrator/tx-proving-state.d.ts +7 -6
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +7 -16
- package/dest/prover-client/factory.d.ts +3 -3
- package/dest/prover-client/factory.d.ts.map +1 -1
- package/dest/prover-client/index.d.ts +1 -1
- package/dest/prover-client/prover-client.d.ts +65 -8
- package/dest/prover-client/prover-client.d.ts.map +1 -1
- package/dest/prover-client/prover-client.js +66 -14
- package/dest/proving_broker/broker_prover_facade.d.ts +26 -24
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +21 -33
- package/dest/proving_broker/config.d.ts +14 -62
- package/dest/proving_broker/config.d.ts.map +1 -1
- package/dest/proving_broker/config.js +29 -6
- package/dest/proving_broker/factory.d.ts +1 -1
- package/dest/proving_broker/fixtures.d.ts +3 -2
- package/dest/proving_broker/fixtures.d.ts.map +1 -1
- package/dest/proving_broker/fixtures.js +3 -2
- package/dest/proving_broker/index.d.ts +2 -1
- package/dest/proving_broker/index.d.ts.map +1 -1
- package/dest/proving_broker/index.js +1 -0
- package/dest/proving_broker/proof_store/factory.d.ts +2 -5
- package/dest/proving_broker/proof_store/factory.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/factory.js +7 -30
- package/dest/proving_broker/proof_store/file_store_proof_store.d.ts +18 -0
- package/dest/proving_broker/proof_store/file_store_proof_store.d.ts.map +1 -0
- package/dest/proving_broker/proof_store/file_store_proof_store.js +60 -0
- package/dest/proving_broker/proof_store/index.d.ts +2 -2
- package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/index.js +1 -1
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts +1 -1
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/proof_store.d.ts +1 -1
- package/dest/proving_broker/proving_agent.d.ts +5 -9
- package/dest/proving_broker/proving_agent.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent.js +4 -19
- package/dest/proving_broker/proving_broker.d.ts +8 -5
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +74 -22
- package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +5 -3
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.js +394 -5
- package/dest/proving_broker/proving_broker_database.d.ts +3 -2
- package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.d.ts +3 -1
- package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_instrumentation.js +22 -35
- package/dest/proving_broker/proving_job_controller.d.ts +5 -3
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +8 -6
- package/dest/proving_broker/rpc.d.ts +9 -5
- package/dest/proving_broker/rpc.d.ts.map +1 -1
- package/dest/proving_broker/rpc.js +87 -23
- package/dest/test/epoch_settlement.d.ts +36 -0
- package/dest/test/epoch_settlement.d.ts.map +1 -0
- package/dest/test/epoch_settlement.js +52 -0
- package/dest/test/index.d.ts +2 -0
- package/dest/test/index.d.ts.map +1 -0
- package/dest/test/index.js +1 -0
- package/dest/test/mock_proof_store.d.ts +1 -1
- package/dest/test/mock_proof_store.d.ts.map +1 -1
- package/dest/test/mock_prover.d.ts +5 -6
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +4 -4
- package/package.json +25 -23
- package/src/config.ts +19 -3
- package/src/light/index.ts +1 -0
- package/src/light/lightweight_checkpoint_builder.ts +322 -0
- package/src/mocks/fixtures.ts +9 -31
- package/src/mocks/test_context.ts +182 -217
- package/src/orchestrator/block-building-helpers.ts +129 -209
- package/src/orchestrator/block-proving-state.ts +109 -22
- package/src/orchestrator/checkpoint-proving-state.ts +32 -123
- package/src/orchestrator/checkpoint-sub-tree-orchestrator.ts +1044 -0
- package/src/orchestrator/chonk-cache.ts +99 -0
- package/src/orchestrator/index.ts +8 -1
- package/src/orchestrator/orchestrator_metrics.ts +2 -25
- package/src/orchestrator/proving-scheduler.ts +160 -0
- package/src/orchestrator/top-tree-orchestrator.ts +384 -0
- package/src/orchestrator/top-tree-proving-state.ts +219 -0
- package/src/orchestrator/tx-proving-state.ts +10 -27
- package/src/prover-client/factory.ts +6 -2
- package/src/prover-client/prover-client.ts +148 -29
- package/src/proving_broker/broker_prover_facade.ts +47 -56
- package/src/proving_broker/config.ts +33 -3
- package/src/proving_broker/fixtures.ts +8 -3
- package/src/proving_broker/index.ts +1 -0
- package/src/proving_broker/proof_store/factory.ts +10 -32
- package/src/proving_broker/proof_store/file_store_proof_store.ts +78 -0
- package/src/proving_broker/proof_store/index.ts +1 -1
- package/src/proving_broker/proving_agent.ts +6 -19
- package/src/proving_broker/proving_broker.ts +70 -17
- package/src/proving_broker/proving_broker_database/memory.ts +2 -1
- package/src/proving_broker/proving_broker_database/persisted.ts +22 -7
- package/src/proving_broker/proving_broker_database.ts +2 -1
- package/src/proving_broker/proving_broker_instrumentation.ts +23 -35
- package/src/proving_broker/proving_job_controller.ts +13 -7
- package/src/proving_broker/rpc.ts +46 -20
- package/src/test/epoch_settlement.ts +82 -0
- package/src/test/index.ts +1 -0
- package/src/test/mock_prover.ts +3 -15
- package/dest/block-factory/index.d.ts +0 -2
- package/dest/block-factory/index.d.ts.map +0 -1
- package/dest/block-factory/index.js +0 -1
- package/dest/block-factory/light.d.ts +0 -38
- package/dest/block-factory/light.d.ts.map +0 -1
- package/dest/block-factory/light.js +0 -94
- package/dest/orchestrator/epoch-proving-state.d.ts +0 -73
- package/dest/orchestrator/epoch-proving-state.d.ts.map +0 -1
- package/dest/orchestrator/epoch-proving-state.js +0 -233
- package/dest/orchestrator/orchestrator.d.ts +0 -113
- package/dest/orchestrator/orchestrator.d.ts.map +0 -1
- package/dest/orchestrator/orchestrator.js +0 -848
- package/dest/prover-client/server-epoch-prover.d.ts +0 -31
- package/dest/prover-client/server-epoch-prover.d.ts.map +0 -1
- package/dest/prover-client/server-epoch-prover.js +0 -40
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +0 -14
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +0 -1
- package/dest/proving_broker/proof_store/gcs_proof_store.js +0 -52
- package/dest/proving_broker/proving_agent_instrumentation.d.ts +0 -8
- package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +0 -1
- package/dest/proving_broker/proving_agent_instrumentation.js +0 -16
- package/src/block-factory/index.ts +0 -1
- package/src/block-factory/light.ts +0 -140
- package/src/orchestrator/epoch-proving-state.ts +0 -328
- package/src/orchestrator/orchestrator.ts +0 -1272
- package/src/prover-client/server-epoch-prover.ts +0 -70
- package/src/proving_broker/proof_store/gcs_proof_store.ts +0 -76
- package/src/proving_broker/proving_agent_instrumentation.ts +0 -21
|
@@ -1,76 +1,79 @@
|
|
|
1
1
|
import { TestCircuitProver } from '@aztec/bb-prover';
|
|
2
|
-
import { SpongeBlob } from '@aztec/blob-lib';
|
|
3
2
|
import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
3
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
4
|
+
import { padArrayEnd, times, timesAsync } from '@aztec/foundation/collection';
|
|
5
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
6
|
+
import { SerialQueue } from '@aztec/foundation/queue';
|
|
7
7
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
8
8
|
import { ProtocolContractsList } from '@aztec/protocol-contracts';
|
|
9
9
|
import { computeFeePayerBalanceLeafSlot } from '@aztec/protocol-contracts/fee-juice';
|
|
10
|
-
import { SimpleContractDataSource } from '@aztec/simulator/public/fixtures';
|
|
11
|
-
import { PublicProcessorFactory } from '@aztec/simulator/server';
|
|
12
10
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
13
11
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
14
|
-
import {
|
|
15
|
-
import { getCheckpointBlobFields } from '@aztec/stdlib/checkpoint';
|
|
16
|
-
import { makeBloatedProcessedTx } from '@aztec/stdlib/testing';
|
|
12
|
+
import { mockProcessedTx } from '@aztec/stdlib/testing';
|
|
17
13
|
import { MerkleTreeId, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
18
14
|
import { TreeSnapshots } from '@aztec/stdlib/tx';
|
|
19
15
|
import { NativeWorldStateService } from '@aztec/world-state/native';
|
|
20
16
|
import { promises as fs } from 'fs';
|
|
21
|
-
import {
|
|
22
|
-
import { getTreeSnapshot } from '../orchestrator/block-building-helpers.js';
|
|
23
|
-
import { ProvingOrchestrator } from '../orchestrator/index.js';
|
|
17
|
+
import { LightweightCheckpointBuilder } from '../light/lightweight_checkpoint_builder.js';
|
|
18
|
+
import { buildFinalBlobChallenges, getTreeSnapshot, insertSideEffects } from '../orchestrator/block-building-helpers.js';
|
|
24
19
|
import { BrokerCircuitProverFacade } from '../proving_broker/broker_prover_facade.js';
|
|
25
20
|
import { TestBroker } from '../test/mock_prover.js';
|
|
26
|
-
import { getEnvironmentConfig, getSimulator, makeCheckpointConstants, makeGlobals
|
|
21
|
+
import { getEnvironmentConfig, getSimulator, makeCheckpointConstants, makeGlobals } from './fixtures.js';
|
|
22
|
+
/**
|
|
23
|
+
* Builds a started `SerialQueue` for use as an orchestrator's deferred-job queue in
|
|
24
|
+
* tests. Production wires a single shared queue via `ProverClient`; tests that construct
|
|
25
|
+
* orchestrators directly use one of these per orchestrator (or share one).
|
|
26
|
+
*/ export function makeTestDeferredJobQueue(concurrency = 10) {
|
|
27
|
+
const queue = new SerialQueue();
|
|
28
|
+
queue.start(concurrency);
|
|
29
|
+
return queue;
|
|
30
|
+
}
|
|
27
31
|
export class TestContext {
|
|
28
32
|
worldState;
|
|
29
|
-
firstCheckpointNumber;
|
|
30
|
-
globalVariables;
|
|
31
33
|
prover;
|
|
32
34
|
broker;
|
|
33
35
|
brokerProverFacade;
|
|
34
|
-
orchestrator;
|
|
35
|
-
blockNumber;
|
|
36
36
|
feePayer;
|
|
37
37
|
directoriesToCleanup;
|
|
38
38
|
logger;
|
|
39
39
|
headers;
|
|
40
|
+
checkpoints;
|
|
41
|
+
checkpointOutHashes;
|
|
42
|
+
nextCheckpointIndex;
|
|
43
|
+
nextCheckpointNumber;
|
|
44
|
+
nextBlockNumber;
|
|
45
|
+
epochNumber;
|
|
40
46
|
feePayerBalance;
|
|
41
|
-
constructor(worldState,
|
|
47
|
+
constructor(worldState, prover, broker, brokerProverFacade, feePayer, initialFeePayerBalance, directoriesToCleanup, logger){
|
|
42
48
|
this.worldState = worldState;
|
|
43
|
-
this.firstCheckpointNumber = firstCheckpointNumber;
|
|
44
|
-
this.globalVariables = globalVariables;
|
|
45
49
|
this.prover = prover;
|
|
46
50
|
this.broker = broker;
|
|
47
51
|
this.brokerProverFacade = brokerProverFacade;
|
|
48
|
-
this.orchestrator = orchestrator;
|
|
49
|
-
this.blockNumber = blockNumber;
|
|
50
52
|
this.feePayer = feePayer;
|
|
51
53
|
this.directoriesToCleanup = directoriesToCleanup;
|
|
52
54
|
this.logger = logger;
|
|
53
55
|
this.headers = new Map();
|
|
56
|
+
this.checkpoints = [];
|
|
57
|
+
this.checkpointOutHashes = [];
|
|
58
|
+
this.nextCheckpointIndex = 0;
|
|
59
|
+
this.nextCheckpointNumber = CheckpointNumber(1);
|
|
60
|
+
this.nextBlockNumber = 1;
|
|
61
|
+
this.epochNumber = 1;
|
|
54
62
|
this.feePayerBalance = initialFeePayerBalance;
|
|
55
63
|
}
|
|
56
|
-
|
|
57
|
-
return this.orchestrator;
|
|
58
|
-
}
|
|
59
|
-
getCheckpointConstants(checkpointIndex = 0) {
|
|
60
|
-
return makeCheckpointConstants(this.firstCheckpointNumber.toNumber() + checkpointIndex);
|
|
61
|
-
}
|
|
62
|
-
static async new(logger, { proverCount = 4, createProver = async (bbConfig)=>new TestCircuitProver(await getSimulator(bbConfig, logger)), slotNumber = 1, blockNumber = 1 } = {}) {
|
|
64
|
+
static async new(logger, { proverCount = 4, createProver = async (bbConfig)=>new TestCircuitProver(await getSimulator(bbConfig, logger)) } = {}) {
|
|
63
65
|
const directoriesToCleanup = [];
|
|
64
|
-
const
|
|
65
|
-
const globalVariables = makeGlobals(blockNumber, slotNumber);
|
|
66
|
-
const feePayer = AztecAddress.fromNumber(42222);
|
|
66
|
+
const feePayer = AztecAddress.fromNumberUnsafe(42222);
|
|
67
67
|
const initialFeePayerBalance = new Fr(10n ** 20n);
|
|
68
68
|
const feePayerSlot = await computeFeePayerBalanceLeafSlot(feePayer);
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
const genesis = {
|
|
70
|
+
prefilledPublicData: [
|
|
71
|
+
new PublicDataTreeLeaf(feePayerSlot, initialFeePayerBalance)
|
|
72
|
+
],
|
|
73
|
+
genesisTimestamp: 0n
|
|
74
|
+
};
|
|
72
75
|
// Separated dbs for public processor and prover - see public_processor for context
|
|
73
|
-
const ws = await NativeWorldStateService.tmp(/*
|
|
76
|
+
const ws = await NativeWorldStateService.tmp(/*cleanupTmpDir=*/ true, genesis);
|
|
74
77
|
let localProver;
|
|
75
78
|
const config = await getEnvironmentConfig(logger);
|
|
76
79
|
if (!config) {
|
|
@@ -82,8 +85,10 @@ export class TestContext {
|
|
|
82
85
|
bbBinaryPath: config.expectedBBPath,
|
|
83
86
|
bbWorkingDirectory: config.bbWorkingDirectory,
|
|
84
87
|
bbSkipCleanup: config.bbSkipCleanup,
|
|
85
|
-
numConcurrentIVCVerifiers:
|
|
86
|
-
bbIVCConcurrency: 1
|
|
88
|
+
numConcurrentIVCVerifiers: 8,
|
|
89
|
+
bbIVCConcurrency: 1,
|
|
90
|
+
bbChonkVerifyMaxBatch: 16,
|
|
91
|
+
bbChonkVerifyConcurrency: 6
|
|
87
92
|
};
|
|
88
93
|
localProver = await createProver(bbConfig);
|
|
89
94
|
}
|
|
@@ -92,23 +97,17 @@ export class TestContext {
|
|
|
92
97
|
}
|
|
93
98
|
const broker = new TestBroker(proverCount, localProver);
|
|
94
99
|
const facade = new BrokerCircuitProverFacade(broker);
|
|
95
|
-
const orchestrator = new TestProvingOrchestrator(ws, facade, EthAddress.ZERO);
|
|
96
100
|
await broker.start();
|
|
97
101
|
facade.start();
|
|
98
|
-
return new this(ws,
|
|
102
|
+
return new this(ws, localProver, broker, facade, feePayer, initialFeePayerBalance, directoriesToCleanup, logger);
|
|
99
103
|
}
|
|
100
104
|
getFork() {
|
|
101
105
|
return this.worldState.fork();
|
|
102
106
|
}
|
|
103
|
-
getBlockHeader(blockNumber = 0) {
|
|
104
|
-
return blockNumber === 0 ? this.worldState.getCommitted().getInitialHeader() : this.headers.get(blockNumber);
|
|
105
|
-
}
|
|
106
|
-
getPreviousBlockHeader(currentBlockNumber = this.blockNumber) {
|
|
107
|
-
return this.getBlockHeader(currentBlockNumber - 1);
|
|
108
|
-
}
|
|
109
107
|
async cleanup() {
|
|
110
108
|
await this.brokerProverFacade.stop();
|
|
111
109
|
await this.broker.stop();
|
|
110
|
+
await this.worldState.close();
|
|
112
111
|
for (const dir of this.directoriesToCleanup.filter((x)=>x !== '')){
|
|
113
112
|
try {
|
|
114
113
|
await fs.rm(dir, {
|
|
@@ -121,135 +120,137 @@ export class TestContext {
|
|
|
121
120
|
}
|
|
122
121
|
}
|
|
123
122
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
header,
|
|
130
|
-
vkTreeRoot: getVKTreeRoot(),
|
|
131
|
-
protocolContracts: ProtocolContractsList,
|
|
132
|
-
globalVariables,
|
|
133
|
-
feePayer: this.feePayer,
|
|
134
|
-
...opts
|
|
135
|
-
});
|
|
136
|
-
this.feePayerBalance = new Fr(this.feePayerBalance.toBigInt() - tx.txEffect.transactionFee.toBigInt());
|
|
137
|
-
if (opts?.privateOnly) {
|
|
138
|
-
const feePayerSlot = await computeFeePayerBalanceLeafSlot(this.feePayer);
|
|
139
|
-
tx.txEffect.publicDataWrites[0] = new PublicDataWrite(feePayerSlot, this.feePayerBalance);
|
|
140
|
-
}
|
|
141
|
-
return tx;
|
|
123
|
+
startNewEpoch() {
|
|
124
|
+
this.checkpoints = [];
|
|
125
|
+
this.checkpointOutHashes = [];
|
|
126
|
+
this.nextCheckpointIndex = 0;
|
|
127
|
+
this.epochNumber++;
|
|
142
128
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
const blockNum = globalVariables.blockNumber;
|
|
147
|
-
const db = await this.worldState.fork();
|
|
148
|
-
const l1ToL2Messages = times(numL1ToL2Messages, (i)=>new Fr(blockNum * 100 + i));
|
|
149
|
-
const merkleTrees = await this.worldState.fork();
|
|
150
|
-
await merkleTrees.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
|
|
151
|
-
const newL1ToL2Snapshot = await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, merkleTrees);
|
|
152
|
-
const txs = await timesParallel(numTxs, (i)=>this.makeProcessedTx({
|
|
153
|
-
seed: i + blockNum * 1000,
|
|
154
|
-
globalVariables,
|
|
155
|
-
newL1ToL2Snapshot,
|
|
156
|
-
...makeProcessedTxOpts(i)
|
|
157
|
-
}));
|
|
158
|
-
await this.setTreeRoots(txs);
|
|
159
|
-
const block = await buildBlockWithCleanDB(txs, globalVariables, l1ToL2Messages, db);
|
|
160
|
-
this.headers.set(blockNum, block.getBlockHeader());
|
|
161
|
-
await this.worldState.handleL2BlockAndMessages(block, l1ToL2Messages);
|
|
162
|
-
return {
|
|
163
|
-
block,
|
|
164
|
-
txs,
|
|
165
|
-
l1ToL2Messages
|
|
166
|
-
};
|
|
129
|
+
// Return blob fields of all checkpoints in the epoch.
|
|
130
|
+
getBlobFields() {
|
|
131
|
+
return this.checkpoints.map((checkpoint)=>checkpoint.toBlobFields());
|
|
167
132
|
}
|
|
168
|
-
async
|
|
169
|
-
const
|
|
133
|
+
async getFinalBlobChallenges() {
|
|
134
|
+
const blobFields = this.getBlobFields();
|
|
135
|
+
return await buildFinalBlobChallenges(blobFields);
|
|
136
|
+
}
|
|
137
|
+
async makeCheckpoint(numBlocks, { numTxsPerBlock = 0, numL1ToL2Messages = 0, makeProcessedTxOpts = ()=>({}), ...constantOpts } = {}) {
|
|
138
|
+
if (numBlocks === 0) {
|
|
139
|
+
throw new Error('Cannot make a checkpoint with 0 blocks. Crate an empty block (numTxsPerBlock = 0) if there are no txs.');
|
|
140
|
+
}
|
|
141
|
+
const checkpointIndex = this.nextCheckpointIndex++;
|
|
142
|
+
const checkpointNumber = this.nextCheckpointNumber;
|
|
143
|
+
this.nextCheckpointNumber++;
|
|
144
|
+
const slotNumber = checkpointNumber * 15; // times an arbitrary number to make it different to the checkpoint number
|
|
145
|
+
const constants = makeCheckpointConstants(slotNumber, constantOpts);
|
|
146
|
+
const fork = await this.worldState.fork();
|
|
147
|
+
// Build l1 to l2 messages.
|
|
170
148
|
const l1ToL2Messages = times(numL1ToL2Messages, (i)=>new Fr(slotNumber * 100 + i));
|
|
171
|
-
|
|
172
|
-
await
|
|
173
|
-
const
|
|
174
|
-
const
|
|
149
|
+
await fork.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
|
|
150
|
+
const newL1ToL2Snapshot = await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, fork);
|
|
151
|
+
const startBlockNumber = this.nextBlockNumber;
|
|
152
|
+
const previousBlockHeader = this.getBlockHeader(BlockNumber(startBlockNumber - 1));
|
|
153
|
+
// All blocks in the same slot/checkpoint share the same timestamp.
|
|
154
|
+
const timestamp = BigInt(slotNumber * 26);
|
|
155
|
+
// Build global variables.
|
|
156
|
+
const blockGlobalVariables = times(numBlocks, (i)=>makeGlobals(startBlockNumber + i, slotNumber, {
|
|
157
|
+
coinbase: constants.coinbase,
|
|
158
|
+
feeRecipient: constants.feeRecipient,
|
|
159
|
+
gasFees: constants.gasFees,
|
|
160
|
+
timestamp
|
|
161
|
+
}));
|
|
162
|
+
this.nextBlockNumber += numBlocks;
|
|
163
|
+
// Build txs.
|
|
175
164
|
let totalTxs = 0;
|
|
176
|
-
const
|
|
165
|
+
const blockEndStates = [];
|
|
166
|
+
const blockTxs = await timesAsync(numBlocks, async (blockIndex)=>{
|
|
177
167
|
const txIndexOffset = totalTxs;
|
|
178
168
|
const numTxs = typeof numTxsPerBlock === 'number' ? numTxsPerBlock : numTxsPerBlock[blockIndex];
|
|
179
169
|
totalTxs += numTxs;
|
|
180
|
-
|
|
181
|
-
seed: (txIndexOffset + txIndex + 1) * 321 + (checkpointIndex + 1) * 123456,
|
|
170
|
+
const txs = await timesAsync(numTxs, (txIndex)=>this.makeProcessedTx({
|
|
171
|
+
seed: (txIndexOffset + txIndex + 1) * 321 + (checkpointIndex + 1) * 123456 + this.epochNumber * 0x99999,
|
|
182
172
|
globalVariables: blockGlobalVariables[blockIndex],
|
|
183
|
-
|
|
173
|
+
anchorBlockHeader: previousBlockHeader,
|
|
184
174
|
newL1ToL2Snapshot,
|
|
185
175
|
...makeProcessedTxOpts(blockGlobalVariables[blockIndex], txIndexOffset + txIndex)
|
|
186
176
|
}));
|
|
177
|
+
// Insert side effects into the trees.
|
|
178
|
+
const endState = await this.updateTrees(txs, fork);
|
|
179
|
+
blockEndStates.push(endState);
|
|
180
|
+
return txs;
|
|
187
181
|
});
|
|
188
|
-
const
|
|
189
|
-
const
|
|
182
|
+
const cleanFork = await this.worldState.fork();
|
|
183
|
+
const previousCheckpointOutHashes = this.checkpointOutHashes;
|
|
184
|
+
const builder = await LightweightCheckpointBuilder.startNewCheckpoint(checkpointNumber, {
|
|
185
|
+
...constants,
|
|
186
|
+
timestamp
|
|
187
|
+
}, l1ToL2Messages, previousCheckpointOutHashes, cleanFork);
|
|
188
|
+
// Add tx effects to db and build block headers.
|
|
190
189
|
const blocks = [];
|
|
191
190
|
for(let i = 0; i < numBlocks; i++){
|
|
192
|
-
const isFirstBlock = i === 0;
|
|
193
|
-
const blockNumber = firstBlockNumber + i;
|
|
194
|
-
const globalVariables = blockGlobalVariables[i];
|
|
195
191
|
const txs = blockTxs[i];
|
|
196
|
-
|
|
197
|
-
const
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
const
|
|
204
|
-
await
|
|
192
|
+
const state = blockEndStates[i];
|
|
193
|
+
const { block } = await builder.addBlock(blockGlobalVariables[i], txs, {
|
|
194
|
+
expectedEndState: state,
|
|
195
|
+
insertTxsEffects: true
|
|
196
|
+
});
|
|
197
|
+
const header = block.header;
|
|
198
|
+
this.headers.set(block.number, header);
|
|
199
|
+
const blockMsgs = block.indexWithinCheckpoint === 0 ? l1ToL2Messages : [];
|
|
200
|
+
await this.worldState.handleL2BlockAndMessages(block, blockMsgs);
|
|
205
201
|
blocks.push({
|
|
206
202
|
header,
|
|
207
203
|
txs
|
|
208
204
|
});
|
|
209
205
|
}
|
|
206
|
+
const checkpoint = await builder.completeCheckpoint();
|
|
207
|
+
this.checkpoints.push(checkpoint);
|
|
208
|
+
this.checkpointOutHashes.push(checkpoint.getCheckpointOutHash());
|
|
210
209
|
return {
|
|
210
|
+
constants,
|
|
211
|
+
checkpoint,
|
|
212
|
+
header: checkpoint.header,
|
|
211
213
|
blocks,
|
|
212
214
|
l1ToL2Messages,
|
|
213
|
-
|
|
215
|
+
previousBlockHeader
|
|
214
216
|
};
|
|
215
217
|
}
|
|
216
|
-
async
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
skipFeeEnforcement: false,
|
|
223
|
-
clientInitiatedSimulation: false
|
|
224
|
-
});
|
|
225
|
-
return await publicProcessor.process(txs, {
|
|
226
|
-
maxTransactions
|
|
218
|
+
async makeProcessedTx(opts = {}) {
|
|
219
|
+
const tx = await mockProcessedTx({
|
|
220
|
+
vkTreeRoot: getVKTreeRoot(),
|
|
221
|
+
protocolContracts: ProtocolContractsList,
|
|
222
|
+
feePayer: this.feePayer,
|
|
223
|
+
...opts
|
|
227
224
|
});
|
|
225
|
+
this.feePayerBalance = new Fr(this.feePayerBalance.toBigInt() - tx.txEffect.transactionFee.toBigInt());
|
|
226
|
+
const feePayerSlot = await computeFeePayerBalanceLeafSlot(this.feePayer);
|
|
227
|
+
const feePaymentPublicDataWrite = new PublicDataWrite(feePayerSlot, this.feePayerBalance);
|
|
228
|
+
tx.txEffect.publicDataWrites[0] = feePaymentPublicDataWrite;
|
|
229
|
+
if (tx.avmProvingRequest) {
|
|
230
|
+
tx.avmProvingRequest.inputs.publicInputs.accumulatedData.publicDataWrites[0] = feePaymentPublicDataWrite;
|
|
231
|
+
}
|
|
232
|
+
return tx;
|
|
233
|
+
}
|
|
234
|
+
getBlockHeader(blockNumber) {
|
|
235
|
+
if (Number(blockNumber) > 0 && Number(blockNumber) >= this.nextBlockNumber) {
|
|
236
|
+
throw new Error(`Block header not built for block number ${blockNumber}.`);
|
|
237
|
+
}
|
|
238
|
+
return Number(blockNumber) === 0 ? this.worldState.getCommitted().getInitialHeader() : this.headers.get(Number(blockNumber));
|
|
228
239
|
}
|
|
229
|
-
async
|
|
230
|
-
|
|
240
|
+
async updateTrees(txs, fork) {
|
|
241
|
+
let startStateReference = await fork.getStateReference();
|
|
242
|
+
let endStateReference = startStateReference;
|
|
231
243
|
for (const tx of txs){
|
|
232
|
-
|
|
233
|
-
await
|
|
234
|
-
tx
|
|
235
|
-
]);
|
|
236
|
-
const endStateReference = await db.getStateReference();
|
|
244
|
+
await insertSideEffects(tx, fork);
|
|
245
|
+
endStateReference = await fork.getStateReference();
|
|
237
246
|
if (tx.avmProvingRequest) {
|
|
247
|
+
// Update the trees in the avm public inputs so that the proof won't fail.
|
|
238
248
|
const l1ToL2MessageTree = tx.avmProvingRequest.inputs.publicInputs.startTreeSnapshots.l1ToL2MessageTree;
|
|
239
249
|
tx.avmProvingRequest.inputs.publicInputs.startTreeSnapshots = new TreeSnapshots(l1ToL2MessageTree, startStateReference.partial.noteHashTree, startStateReference.partial.nullifierTree, startStateReference.partial.publicDataTree);
|
|
240
250
|
tx.avmProvingRequest.inputs.publicInputs.endTreeSnapshots = new TreeSnapshots(l1ToL2MessageTree, endStateReference.partial.noteHashTree, endStateReference.partial.nullifierTree, endStateReference.partial.publicDataTree);
|
|
241
251
|
}
|
|
252
|
+
startStateReference = endStateReference;
|
|
242
253
|
}
|
|
243
|
-
|
|
244
|
-
}
|
|
245
|
-
class TestProvingOrchestrator extends ProvingOrchestrator {
|
|
246
|
-
isVerifyBuiltBlockAgainstSyncedStateEnabled = false;
|
|
247
|
-
// Disable this check by default, since it requires seeding world state with the block being built
|
|
248
|
-
// This is only enabled in some tests with multiple blocks that populate the pending chain via makePendingBlock
|
|
249
|
-
verifyBuiltBlockAgainstSyncedState(provingState) {
|
|
250
|
-
if (this.isVerifyBuiltBlockAgainstSyncedStateEnabled) {
|
|
251
|
-
return super.verifyBuiltBlockAgainstSyncedState(provingState);
|
|
252
|
-
}
|
|
253
|
-
return Promise.resolve();
|
|
254
|
+
return endStateReference;
|
|
254
255
|
}
|
|
255
256
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { BatchedBlobAccumulator, SpongeBlob } from '@aztec/blob-lib';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
3
|
-
import { type Bufferable
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { type Bufferable } from '@aztec/foundation/serialize';
|
|
4
4
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
5
|
-
import { Body
|
|
5
|
+
import { Body } from '@aztec/stdlib/block';
|
|
6
6
|
import type { MerkleTreeWriteOperations, PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
7
7
|
import { ProofData, RecursiveProof } from '@aztec/stdlib/proofs';
|
|
8
8
|
import { BlockRollupPublicInputs, PrivateBaseRollupHints, PublicBaseRollupHints, PublicChonkVerifierPrivateInputs } from '@aztec/stdlib/rollup';
|
|
9
9
|
import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
10
|
-
import { BlockHeader, GlobalVariables, PartialStateReference, type ProcessedTx, Tx } from '@aztec/stdlib/tx';
|
|
10
|
+
import { BlockHeader, GlobalVariables, PartialStateReference, type ProcessedTx, StateReference, Tx } from '@aztec/stdlib/tx';
|
|
11
11
|
import type { MerkleTreeReadOperations } from '@aztec/world-state';
|
|
12
12
|
/**
|
|
13
13
|
* Type representing the names of the trees for the base rollup.
|
|
@@ -17,36 +17,34 @@ type BaseTreeNames = 'NoteHashTree' | 'ContractTree' | 'NullifierTree' | 'Public
|
|
|
17
17
|
* Type representing the names of the trees.
|
|
18
18
|
*/
|
|
19
19
|
export type TreeNames = BaseTreeNames | 'L1ToL2MessageTree' | 'Archive';
|
|
20
|
-
export declare const insertSideEffectsAndBuildBaseRollupHints: (tx: ProcessedTx, lastArchive: AppendOnlyTreeSnapshot, newL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, startSpongeBlob: SpongeBlob, proverId: Fr, db: MerkleTreeWriteOperations) => Promise<
|
|
21
|
-
export declare
|
|
20
|
+
export declare const insertSideEffectsAndBuildBaseRollupHints: (tx: ProcessedTx, lastArchive: AppendOnlyTreeSnapshot, newL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, startSpongeBlob: SpongeBlob, proverId: Fr, db: MerkleTreeWriteOperations) => Promise<PrivateBaseRollupHints | PublicBaseRollupHints>;
|
|
21
|
+
export declare const insertSideEffects: (tx: ProcessedTx, db: MerkleTreeWriteOperations) => Promise<{
|
|
22
|
+
nullifierInsertionResult: import("@aztec/stdlib/trees").BatchInsertionResult<number, number>;
|
|
23
|
+
publicDataInsertionResult: import("@aztec/stdlib/trees").SequentialInsertionResult<number>;
|
|
24
|
+
}>;
|
|
25
|
+
export declare function getChonkProofFromTx(tx: Tx | ProcessedTx): RecursiveProof<1221>;
|
|
22
26
|
export declare function getPublicChonkVerifierPrivateInputsFromTx(tx: Tx | ProcessedTx, proverId: Fr): PublicChonkVerifierPrivateInputs;
|
|
23
|
-
export declare const buildBlobHints: (blobFields: Fr[]) => {
|
|
24
|
-
blobCommitments: import("@aztec/foundation/
|
|
27
|
+
export declare const buildBlobHints: (blobFields: Fr[]) => Promise<{
|
|
28
|
+
blobCommitments: import("@aztec/foundation/curves/bls12").BLS12Point[];
|
|
25
29
|
blobs: import("@aztec/blob-lib").Blob[];
|
|
26
30
|
blobsHash: Fr;
|
|
27
|
-
};
|
|
28
|
-
export declare const buildBlobDataFromTxs: (txsPerCheckpoint: ProcessedTx[][]) => Promise<{
|
|
29
|
-
blobFieldsLengths: number[];
|
|
30
|
-
finalBlobChallenges: import("@aztec/blob-lib").FinalBlobBatchingChallenges;
|
|
31
31
|
}>;
|
|
32
32
|
export declare const buildFinalBlobChallenges: (blobFieldsPerCheckpoint: Fr[][]) => Promise<import("@aztec/blob-lib").FinalBlobBatchingChallenges>;
|
|
33
33
|
export declare const accumulateBlobs: (blobFields: Fr[], startBlobAccumulator: BatchedBlobAccumulator) => Promise<BatchedBlobAccumulator>;
|
|
34
34
|
export declare const buildHeaderFromCircuitOutputs: (blockRootRollupOutput: BlockRollupPublicInputs) => Promise<BlockHeader>;
|
|
35
|
-
export declare const buildHeaderAndBodyFromTxs: (txs: ProcessedTx[],
|
|
36
|
-
header:
|
|
35
|
+
export declare const buildHeaderAndBodyFromTxs: (txs: ProcessedTx[], lastArchive: AppendOnlyTreeSnapshot, endState: StateReference, globalVariables: GlobalVariables, startSpongeBlob: SpongeBlob, isFirstBlock: boolean) => Promise<{
|
|
36
|
+
header: BlockHeader;
|
|
37
37
|
body: Body;
|
|
38
|
+
blockBlobFields: Fr[];
|
|
38
39
|
}>;
|
|
39
|
-
export declare
|
|
40
|
-
/** Computes the inHash for a block's ContentCommitment given its l1 to l2 messages. */
|
|
41
|
-
export declare function computeInHashFromL1ToL2Messages(unpaddedL1ToL2Messages: Fr[]): Promise<Fr>;
|
|
42
|
-
export declare function getLastSiblingPath<TID extends MerkleTreeId>(treeId: TID, db: MerkleTreeReadOperations): Promise<Tuple<Fr, {
|
|
40
|
+
export declare function getLastSiblingPath<TID extends MerkleTreeId>(treeId: TID, db: MerkleTreeReadOperations): Promise<import("@aztec/foundation/serialize").Tuple<Fr, {
|
|
43
41
|
readonly 1: 42;
|
|
44
42
|
readonly 4: 30;
|
|
45
43
|
readonly 3: 36;
|
|
46
44
|
readonly 0: 42;
|
|
47
45
|
readonly 2: 40;
|
|
48
46
|
}[TID]>>;
|
|
49
|
-
export declare function getRootTreeSiblingPath<TID extends MerkleTreeId>(treeId: TID, db: MerkleTreeReadOperations): Promise<Tuple<Fr, {
|
|
47
|
+
export declare function getRootTreeSiblingPath<TID extends MerkleTreeId>(treeId: TID, db: MerkleTreeReadOperations): Promise<import("@aztec/foundation/serialize").Tuple<Fr, {
|
|
50
48
|
readonly 1: 42;
|
|
51
49
|
readonly 4: 30;
|
|
52
50
|
readonly 3: 36;
|
|
@@ -61,4 +59,4 @@ export declare function validatePartialState(partialState: PartialStateReference
|
|
|
61
59
|
export declare function validateTx(tx: ProcessedTx): void;
|
|
62
60
|
export declare function toProofData<T extends Bufferable, PROOF_LENGTH extends number>({ inputs, proof, verificationKey }: PublicInputsAndRecursiveProof<T, PROOF_LENGTH>, vkIndex?: number): ProofData<T, PROOF_LENGTH>;
|
|
63
61
|
export {};
|
|
64
|
-
//# sourceMappingURL=
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yY2hlc3RyYXRvci9ibG9jay1idWlsZGluZy1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsVUFBVSxFQUtYLE1BQU0saUJBQWlCLENBQUM7QUFpQnpCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQWdDLE1BQU0sNkJBQTZCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJNUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFaEgsT0FBTyxFQUFTLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsZ0NBQWdDLEVBRWpDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixZQUFZLEVBSWIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsS0FBSyxXQUFXLEVBQ2hCLGNBQWMsRUFDZCxFQUFFLEVBQ0gsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5FOztHQUVHO0FBQ0gsS0FBSyxhQUFhLEdBQUcsY0FBYyxHQUFHLGNBQWMsR0FBRyxlQUFlLEdBQUcsZ0JBQWdCLENBQUM7QUFDMUY7O0dBRUc7QUFDSCxNQUFNLE1BQU0sU0FBUyxHQUFHLGFBQWEsR0FBRyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7QUFHeEUsZUFBTyxNQUFNLHdDQUF3QyxtUEEwSHBELENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCOzs7RUFvQzdCLENBQUM7QUFFRix3QkFBZ0IsbUJBQW1CLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLHdCQVF2RDtBQUVELHdCQUFnQix5Q0FBeUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBRSxRQUFRLEVBQUUsRUFBRSxvQ0FPM0Y7QUFLRCxlQUFPLE1BQU0sY0FBYzs7OztFQUsxQixDQUFDO0FBRUYsZUFBTyxNQUFNLHdCQUF3QixxR0FFcEMsQ0FBQztBQUVGLGVBQU8sTUFBTSxlQUFlLHFHQU8zQixDQUFDO0FBRUYsZUFBTyxNQUFNLDZCQUE2QiwwRUEyQnpDLENBQUM7QUFFRixlQUFPLE1BQU0seUJBQXlCOzs7O0VBMERyQyxDQUFDO0FBRUYsd0JBQXNCLGtCQUFrQixDQUFDLEdBQUcsU0FBUyxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsd0JBQXdCOzs7Ozs7U0FJM0c7QUFFRCx3QkFBc0Isc0JBQXNCLENBQUMsR0FBRyxTQUFTLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSx3QkFBd0I7Ozs7OztTQUkvRztBQUVELHdCQUFzQixlQUFlLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsd0JBQXdCLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBR3JIO0FBRUQsd0JBQWdCLDBCQUEwQixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsd0JBTXJFO0FBRUQsd0JBQXNCLHFCQUFxQixDQUN6QyxNQUFNLEVBQUUsWUFBWSxFQUNwQixhQUFhLEVBQUUsTUFBTSxFQUNyQixFQUFFLEVBQUUsd0JBQXdCLEdBQzNCLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQU1mO0FBR0Qsd0JBQXNCLHVCQUF1QixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQzVELEtBQUssRUFBRSxFQUFFLEVBQ1QsTUFBTSxFQUFFLFlBQVksRUFDcEIsTUFBTSxFQUFFLENBQUMsRUFDVCxFQUFFLEVBQUUsd0JBQXdCLEdBQzNCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQVkvQjtBQUVELHdCQUFnQixvQkFBb0IsQ0FDbEMsWUFBWSxFQUFFLHFCQUFxQixFQUNuQyxhQUFhLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxRQVN6RDtBQXFCRCx3QkFBZ0IsVUFBVSxDQUFDLEVBQUUsRUFBRSxXQUFXLFFBY3pDO0FBRUQsd0JBQWdCLFdBQVcsQ0FBQyxDQUFDLFNBQVMsVUFBVSxFQUFFLFlBQVksU0FBUyxNQUFNLEVBQzNFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBQ2xGLE9BQU8sQ0FBQyxFQUFFLE1BQU0sOEJBS2pCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,UAAU,EAKX,MAAM,iBAAiB,CAAC;AAiBzB,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAgC,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI5D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhH,OAAO,EAAS,SAAS,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,gCAAgC,EAEjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,sBAAsB,EACtB,YAAY,EAIb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,KAAK,WAAW,EAChB,cAAc,EACd,EAAE,EACH,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;GAEG;AACH,KAAK,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAC1F;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAGxE,eAAO,MAAM,wCAAwC,mPA0HpD,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;EAoC7B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE,GAAG,WAAW,wBAQvD;AAED,wBAAgB,yCAAyC,CAAC,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,EAAE,oCAO3F;AAKD,eAAO,MAAM,cAAc;;;;EAK1B,CAAC;AAEF,eAAO,MAAM,wBAAwB,qGAEpC,CAAC;AAEF,eAAO,MAAM,eAAe,qGAO3B,CAAC;AAEF,eAAO,MAAM,6BAA6B,0EA2BzC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;EA0DrC,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,wBAAwB;;;;;;SAI3G;AAED,wBAAsB,sBAAsB,CAAC,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,wBAAwB;;;;;;SAI/G;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,wBAAwB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAGrH;AAED,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,wBAMrE;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,EAAE,EAAE,wBAAwB,GAC3B,OAAO,CAAC,EAAE,EAAE,CAAC,CAMf;AAGD,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAC5D,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,wBAAwB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAY/B;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,qBAAqB,EACnC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,QASzD;AAqBD,wBAAgB,UAAU,CAAC,EAAE,EAAE,WAAW,QAczC;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAAE,YAAY,SAAS,MAAM,EAC3E,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,6BAA6B,CAAC,CAAC,EAAE,YAAY,CAAC,EAClF,OAAO,CAAC,EAAE,MAAM,8BAKjB"}
|