@aztec/prover-node 0.0.1-commit.b2a5d0dd1 → 0.0.1-commit.b3d3157a
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/actions/rerun-epoch-proving-job.d.ts +1 -1
- package/dest/actions/rerun-epoch-proving-job.d.ts.map +1 -1
- package/dest/actions/rerun-epoch-proving-job.js +104 -25
- package/dest/bin/run-failed-epoch.js +1 -3
- package/dest/factory.js +1 -1
- package/dest/job/epoch-proving-job.d.ts +5 -1
- package/dest/job/epoch-proving-job.d.ts.map +1 -1
- package/dest/job/epoch-proving-job.js +172 -35
- package/dest/monitors/epoch-monitor.js +6 -2
- package/dest/prover-node-publisher.d.ts +5 -1
- package/dest/prover-node-publisher.d.ts.map +1 -1
- package/dest/prover-node-publisher.js +149 -3
- package/dest/prover-node.d.ts +6 -6
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +77 -32
- package/package.json +23 -23
- package/src/actions/rerun-epoch-proving-job.ts +10 -4
- package/src/bin/run-failed-epoch.ts +1 -2
- package/src/factory.ts +1 -1
- package/src/job/epoch-proving-job.ts +87 -34
- package/src/monitors/epoch-monitor.ts +2 -2
- package/src/prover-node-publisher.ts +161 -6
- package/src/prover-node.ts +81 -44
|
@@ -10,4 +10,4 @@ import type { GenesisData } from '@aztec/stdlib/world-state';
|
|
|
10
10
|
* Proving is done with a local proving broker and agents as specified by the config.
|
|
11
11
|
*/
|
|
12
12
|
export declare function rerunEpochProvingJob(localPath: string, log: Logger, config: DataStoreConfig & ProverBrokerConfig & ProverClientConfig & Pick<L1ContractsConfig, 'aztecEpochDuration'>, genesis?: GenesisData): Promise<"awaiting-prover" | "completed" | "failed" | "initialized" | "processing" | "publishing-proof" | "reorg" | "stopped" | "timed-out">;
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVydW4tZXBvY2gtcHJvdmluZy1qb2IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL3JlcnVuLWVwb2NoLXByb3Zpbmctam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQXNCLE1BQU0sc0JBQXNCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUErQixNQUFNLDZCQUE2QixDQUFDO0FBRTlGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBVTdEOzs7O0dBSUc7QUFDSCx3QkFBc0Isb0JBQW9CLENBQ3hDLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLEdBQUcsRUFBRSxNQUFNLEVBQ1gsTUFBTSxFQUFFLGVBQWUsR0FBRyxrQkFBa0IsR0FBRyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsb0JBQW9CLENBQUMsRUFDakgsT0FBTyxDQUFDLEVBQUUsV0FBVywrSUErQ3RCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rerun-epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/actions/rerun-epoch-proving-job.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAA+B,MAAM,6BAA6B,CAAC;AAE9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAU7D;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,eAAe,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,EACjH,OAAO,CAAC,EAAE,WAAW,+
|
|
1
|
+
{"version":3,"file":"rerun-epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/actions/rerun-epoch-proving-job.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAA+B,MAAM,6BAA6B,CAAC;AAE9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAU7D;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,eAAe,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,EACjH,OAAO,CAAC,EAAE,WAAW,+IA+CtB"}
|
|
@@ -1,4 +1,69 @@
|
|
|
1
|
-
|
|
1
|
+
function _ts_add_disposable_resource(env, value, async) {
|
|
2
|
+
if (value !== null && value !== void 0) {
|
|
3
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
+
var dispose, inner;
|
|
5
|
+
if (async) {
|
|
6
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
+
dispose = value[Symbol.asyncDispose];
|
|
8
|
+
}
|
|
9
|
+
if (dispose === void 0) {
|
|
10
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
+
dispose = value[Symbol.dispose];
|
|
12
|
+
if (async) inner = dispose;
|
|
13
|
+
}
|
|
14
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
+
if (inner) dispose = function() {
|
|
16
|
+
try {
|
|
17
|
+
inner.call(this);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
return Promise.reject(e);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
env.stack.push({
|
|
23
|
+
value: value,
|
|
24
|
+
dispose: dispose,
|
|
25
|
+
async: async
|
|
26
|
+
});
|
|
27
|
+
} else if (async) {
|
|
28
|
+
env.stack.push({
|
|
29
|
+
async: true
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
function _ts_dispose_resources(env) {
|
|
35
|
+
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
36
|
+
var e = new Error(message);
|
|
37
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
38
|
+
};
|
|
39
|
+
return (_ts_dispose_resources = function _ts_dispose_resources(env) {
|
|
40
|
+
function fail(e) {
|
|
41
|
+
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
42
|
+
env.hasError = true;
|
|
43
|
+
}
|
|
44
|
+
var r, s = 0;
|
|
45
|
+
function next() {
|
|
46
|
+
while(r = env.stack.pop()){
|
|
47
|
+
try {
|
|
48
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
49
|
+
if (r.dispose) {
|
|
50
|
+
var result = r.dispose.call(r.value);
|
|
51
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
|
|
52
|
+
fail(e);
|
|
53
|
+
return next();
|
|
54
|
+
});
|
|
55
|
+
} else s |= 1;
|
|
56
|
+
} catch (e) {
|
|
57
|
+
fail(e);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
61
|
+
if (env.hasError) throw env.error;
|
|
62
|
+
}
|
|
63
|
+
return next();
|
|
64
|
+
})(env);
|
|
65
|
+
}
|
|
66
|
+
import { createArchiverStore, createContractDataSource } from '@aztec/archiver';
|
|
2
67
|
import { createProverClient } from '@aztec/prover-client';
|
|
3
68
|
import { createAndStartProvingBroker } from '@aztec/prover-client/broker';
|
|
4
69
|
import { PublicProcessorFactory } from '@aztec/simulator/server';
|
|
@@ -13,29 +78,43 @@ import { ProverNodeJobMetrics } from '../metrics.js';
|
|
|
13
78
|
* using the state snapshots, and creates a new epoch proving job to prove the downloaded proving job.
|
|
14
79
|
* Proving is done with a local proving broker and agents as specified by the config.
|
|
15
80
|
*/ export async function rerunEpochProvingJob(localPath, log, config, genesis) {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const worldState = await createWorldState(config, genesis);
|
|
21
|
-
const archiver = await createArchiverStore(config);
|
|
22
|
-
const publicProcessorFactory = new PublicProcessorFactory(archiver, undefined, undefined, log.getBindings());
|
|
23
|
-
const publisher = {
|
|
24
|
-
submitEpochProof: ()=>Promise.resolve(true),
|
|
25
|
-
analyzeEpochProofSubmission: ()=>Promise.resolve()
|
|
81
|
+
const env = {
|
|
82
|
+
stack: [],
|
|
83
|
+
error: void 0,
|
|
84
|
+
hasError: false
|
|
26
85
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
86
|
+
try {
|
|
87
|
+
const jobData = deserializeEpochProvingJobData(readFileSync(localPath));
|
|
88
|
+
log.info(`Loaded proving job data for epoch ${jobData.epochNumber}`);
|
|
89
|
+
const telemetry = getTelemetryClient();
|
|
90
|
+
const metrics = new ProverNodeJobMetrics(telemetry.getMeter('prover-job'), telemetry.getTracer('prover-job'));
|
|
91
|
+
const worldState = _ts_add_disposable_resource(env, await createWorldState(config, genesis), true);
|
|
92
|
+
const initialBlockHash = await worldState.getInitialHeader().hash();
|
|
93
|
+
const archiver = await createArchiverStore(config, initialBlockHash);
|
|
94
|
+
const publicProcessorFactory = new PublicProcessorFactory(createContractDataSource(archiver), undefined, undefined, log.getBindings());
|
|
95
|
+
const publisher = {
|
|
96
|
+
submitEpochProof: ()=>Promise.resolve(true),
|
|
97
|
+
analyzeEpochProofSubmission: ()=>Promise.resolve()
|
|
98
|
+
};
|
|
99
|
+
const l2BlockSourceForReorgDetection = undefined;
|
|
100
|
+
const deadline = undefined;
|
|
101
|
+
// This starts a local proving broker that does not get exposed as a service. This should be good enough for
|
|
102
|
+
// smallish epochs to be proven if we run on a large machine, but as epochs grow larger, we may want to switch
|
|
103
|
+
// this out for a live proving broker with multiple agents that we can connect to.
|
|
104
|
+
const broker = await createAndStartProvingBroker(config, telemetry);
|
|
105
|
+
const prover = await createProverClient(config, worldState, broker, telemetry);
|
|
106
|
+
const provingJob = new EpochProvingJob(jobData, worldState, prover.createEpochProver(), publicProcessorFactory, publisher, l2BlockSourceForReorgDetection, metrics, deadline, {
|
|
107
|
+
skipEpochCheck: true
|
|
108
|
+
}, log.getBindings());
|
|
109
|
+
log.info(`Rerunning epoch proving job for epoch ${jobData.epochNumber}`);
|
|
110
|
+
await provingJob.run();
|
|
111
|
+
log.info(`Completed job for epoch ${jobData.epochNumber} with status ${provingJob.getState()}`);
|
|
112
|
+
return provingJob.getState();
|
|
113
|
+
} catch (e) {
|
|
114
|
+
env.error = e;
|
|
115
|
+
env.hasError = true;
|
|
116
|
+
} finally{
|
|
117
|
+
const result = _ts_dispose_resources(env);
|
|
118
|
+
if (result) await result;
|
|
119
|
+
}
|
|
41
120
|
}
|
|
@@ -41,9 +41,7 @@ async function rerunFailedEpoch(provingJobUrl, baseLocalDir) {
|
|
|
41
41
|
logger.info(`Rerunning proving job from ${jobPath} with state from ${dataDir}`, metadata);
|
|
42
42
|
const result = await rerunEpochProvingJob(jobPath, logger, {
|
|
43
43
|
...config,
|
|
44
|
-
|
|
45
|
-
rollupAddress: metadata.rollupAddress
|
|
46
|
-
},
|
|
44
|
+
rollupAddress: metadata.rollupAddress,
|
|
47
45
|
rollupVersion: metadata.rollupVersion
|
|
48
46
|
});
|
|
49
47
|
console.error(`Epoch proving job complete with result ${result}`);
|
package/dest/factory.js
CHANGED
|
@@ -52,7 +52,7 @@ import { ProverPublisherFactory } from './prover-publisher-factory.js';
|
|
|
52
52
|
}),
|
|
53
53
|
pollingInterval: config.viemPollingIntervalMS
|
|
54
54
|
});
|
|
55
|
-
const rollupContract = new RollupContract(publicClient, config.
|
|
55
|
+
const rollupContract = new RollupContract(publicClient, config.rollupAddress.toString());
|
|
56
56
|
const l1TxUtils = deps.l1TxUtils ? [
|
|
57
57
|
deps.l1TxUtils
|
|
58
58
|
] : config.proverPublisherForwarderAddress ? await createForwarderL1TxUtilsFromSigners(publicClient, proverSigners.signers, config.proverPublisherForwarderAddress, {
|
|
@@ -31,6 +31,7 @@ export declare class EpochProvingJob implements Traceable {
|
|
|
31
31
|
private log;
|
|
32
32
|
private uuid;
|
|
33
33
|
private runPromise;
|
|
34
|
+
private abortController;
|
|
34
35
|
private epochCheckPromise;
|
|
35
36
|
private deadlineTimeoutHandler;
|
|
36
37
|
readonly tracer: Tracer;
|
|
@@ -49,9 +50,12 @@ export declare class EpochProvingJob implements Traceable {
|
|
|
49
50
|
*/
|
|
50
51
|
run(): Promise<void>;
|
|
51
52
|
private createFork;
|
|
53
|
+
private processCheckpoints;
|
|
52
54
|
private progressState;
|
|
53
55
|
private checkState;
|
|
54
56
|
stop(state?: EpochProvingJobTerminalState): Promise<void>;
|
|
57
|
+
private failProcessing;
|
|
58
|
+
private interruptProcessing;
|
|
55
59
|
private scheduleDeadlineStop;
|
|
56
60
|
private scheduleEpochCheck;
|
|
57
61
|
private gatherPreviousBlockHeaders;
|
|
@@ -60,4 +64,4 @@ export declare class EpochProvingJob implements Traceable {
|
|
|
60
64
|
private processTxs;
|
|
61
65
|
}
|
|
62
66
|
export { type EpochProvingJobState };
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1qb2IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qb2IvZXBvY2gtcHJvdmluZy1qb2IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFlLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNFLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQU92RixPQUFPLEtBQUssRUFBbUIsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RixPQUFPLEtBQUssRUFBVyxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRSxPQUFPLEVBQ0wsS0FBSyxXQUFXLEVBQ2hCLEtBQUssb0JBQW9CLEVBQ3pCLDRCQUE0QixFQUM1QixLQUFLLHdCQUF3QixFQUM5QixNQUFNLGlDQUFpQyxDQUFDO0FBSXpDLE9BQU8sRUFBYyxLQUFLLFNBQVMsRUFBRSxLQUFLLE1BQU0sRUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBSTdGLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQStCLE1BQU0sNkJBQTZCLENBQUM7QUFFcEcsTUFBTSxNQUFNLHNCQUFzQixHQUFHO0lBQ25DLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzVCLGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUN6QixlQUFlLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDM0IsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxxQkFBYSxlQUFnQixZQUFXLFNBQVM7SUFhN0MsT0FBTyxDQUFDLElBQUk7SUFDWixPQUFPLENBQUMsVUFBVTtJQUNsQixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxzQkFBc0I7SUFDOUIsT0FBTyxDQUFDLFNBQVM7SUFDakIsT0FBTyxDQUFDLGFBQWE7SUFDckIsT0FBTyxDQUFDLE9BQU87SUFDZixPQUFPLENBQUMsUUFBUTtJQUNoQixPQUFPLENBQUMsTUFBTTtJQXBCaEIsT0FBTyxDQUFDLEtBQUssQ0FBdUM7SUFDcEQsT0FBTyxDQUFDLEdBQUcsQ0FBUztJQUNwQixPQUFPLENBQUMsSUFBSSxDQUFTO0lBRXJCLE9BQU8sQ0FBQyxVQUFVLENBQTRCO0lBQzlDLE9BQU8sQ0FBQyxlQUFlLENBQXlCO0lBQ2hELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBNkI7SUFDdEQsT0FBTyxDQUFDLHNCQUFzQixDQUE2QjtJQUUzRCxTQUFnQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBRS9CLFlBQ1UsSUFBSSxFQUFFLG1CQUFtQixFQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixFQUFFLE1BQU0sQ0FBQyxFQUNsRCxNQUFNLEVBQUUsV0FBVyxFQUNuQixzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxrQkFBa0IsR0FBRyw2QkFBNkIsQ0FBQyxFQUN4RixhQUFhLEVBQUUsYUFBYSxHQUFHLFNBQVMsRUFDeEMsT0FBTyxFQUFFLG9CQUFvQixFQUM3QixRQUFRLEVBQUUsSUFBSSxHQUFHLFNBQVMsRUFDMUIsTUFBTSxFQUFFLHNCQUFzQixFQUN0QyxRQUFRLENBQUMsRUFBRSxjQUFjLEVBUzFCO0lBRU0sS0FBSyxJQUFJLE1BQU0sQ0FFckI7SUFFTSxRQUFRLElBQUksb0JBQW9CLENBRXRDO0lBRU0sY0FBYyxJQUFJLFdBQVcsQ0FFbkM7SUFFTSxXQUFXLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FFckM7SUFFTSxjQUFjLElBQUksbUJBQW1CLENBRTNDO0lBRUQsT0FBTyxLQUFLLFdBQVcsR0FFdEI7SUFFRCxPQUFPLEtBQUssV0FBVyxHQUV0QjtJQUVELE9BQU8sS0FBSyxHQUFHLEdBRWQ7SUFFRCxPQUFPLEtBQUssWUFBWSxHQUV2QjtJQUVEOztPQUVHO0lBSVUsR0FBRyxrQkF5TmY7WUFRYSxVQUFVO1lBbUJWLGtCQUFrQjtJQWlDaEMsT0FBTyxDQUFDLGFBQWE7SUFLckIsT0FBTyxDQUFDLFVBQVU7SUFNTCxJQUFJLENBQUMsS0FBSyxHQUFFLDRCQUF3QyxpQkFNaEU7SUFFRCxPQUFPLENBQUMsY0FBYztJQU90QixPQUFPLENBQUMsbUJBQW1CO0lBSzNCLE9BQU8sQ0FBQyxvQkFBb0I7WUF3QmQsa0JBQWtCO0lBb0NoQyxPQUFPLENBQUMsMEJBQTBCO0lBS2xDLE9BQU8sQ0FBQyxNQUFNO0lBSWQsT0FBTyxDQUFDLGlCQUFpQjtZQUlYLFVBQVU7Q0F1QnpCO0FBU0QsT0FBTyxFQUFFLEtBQUssb0JBQW9CLEVBQUUsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAOvF,OAAO,KAAK,EAAmB,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,4BAA4B,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAI7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,KAAK,mBAAmB,EAA+B,MAAM,6BAA6B,CAAC;AAEpG,MAAM,MAAM,sBAAsB,GAAG;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAa7C,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IApBhB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,sBAAsB,CAA6B;IAE3D,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,YACU,IAAI,EAAE,mBAAmB,EACzB,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAClD,MAAM,EAAE,WAAW,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,GAAG,6BAA6B,CAAC,EACxF,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,IAAI,GAAG,SAAS,EAC1B,MAAM,EAAE,sBAAsB,EACtC,QAAQ,CAAC,EAAE,cAAc,EAS1B;IAEM,KAAK,IAAI,MAAM,CAErB;IAEM,QAAQ,IAAI,oBAAoB,CAEtC;IAEM,cAAc,IAAI,WAAW,CAEnC;IAEM,WAAW,IAAI,IAAI,GAAG,SAAS,CAErC;IAEM,cAAc,IAAI,mBAAmB,CAE3C;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,YAAY,GAEvB;IAED;;OAEG;IAIU,GAAG,kBAyNf;YAQa,UAAU;YAmBV,kBAAkB;IAiChC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAML,IAAI,CAAC,KAAK,GAAE,4BAAwC,iBAMhE;IAED,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,oBAAoB;YAwBd,kBAAkB;IAoChC,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,iBAAiB;YAIX,UAAU;CAuBzB;AASD,OAAO,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
|
|
@@ -1,3 +1,68 @@
|
|
|
1
|
+
function _ts_add_disposable_resource(env, value, async) {
|
|
2
|
+
if (value !== null && value !== void 0) {
|
|
3
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
+
var dispose, inner;
|
|
5
|
+
if (async) {
|
|
6
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
+
dispose = value[Symbol.asyncDispose];
|
|
8
|
+
}
|
|
9
|
+
if (dispose === void 0) {
|
|
10
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
+
dispose = value[Symbol.dispose];
|
|
12
|
+
if (async) inner = dispose;
|
|
13
|
+
}
|
|
14
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
+
if (inner) dispose = function() {
|
|
16
|
+
try {
|
|
17
|
+
inner.call(this);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
return Promise.reject(e);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
env.stack.push({
|
|
23
|
+
value: value,
|
|
24
|
+
dispose: dispose,
|
|
25
|
+
async: async
|
|
26
|
+
});
|
|
27
|
+
} else if (async) {
|
|
28
|
+
env.stack.push({
|
|
29
|
+
async: true
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
function _ts_dispose_resources(env) {
|
|
35
|
+
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
36
|
+
var e = new Error(message);
|
|
37
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
38
|
+
};
|
|
39
|
+
return (_ts_dispose_resources = function _ts_dispose_resources(env) {
|
|
40
|
+
function fail(e) {
|
|
41
|
+
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
42
|
+
env.hasError = true;
|
|
43
|
+
}
|
|
44
|
+
var r, s = 0;
|
|
45
|
+
function next() {
|
|
46
|
+
while(r = env.stack.pop()){
|
|
47
|
+
try {
|
|
48
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
49
|
+
if (r.dispose) {
|
|
50
|
+
var result = r.dispose.call(r.value);
|
|
51
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
|
|
52
|
+
fail(e);
|
|
53
|
+
return next();
|
|
54
|
+
});
|
|
55
|
+
} else s |= 1;
|
|
56
|
+
} catch (e) {
|
|
57
|
+
fail(e);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
61
|
+
if (env.hasError) throw env.error;
|
|
62
|
+
}
|
|
63
|
+
return next();
|
|
64
|
+
})(env);
|
|
65
|
+
}
|
|
1
66
|
function applyDecs2203RFactory() {
|
|
2
67
|
function createAddInitializerMethod(initializers, decoratorFinishedRef) {
|
|
3
68
|
return function addInitializer(initializer) {
|
|
@@ -371,11 +436,8 @@ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
|
|
|
371
436
|
return (_apply_decs_2203_r = applyDecs2203RFactory())(targetClass, memberDecs, classDecs, parentClass);
|
|
372
437
|
}
|
|
373
438
|
var _dec, _initProto;
|
|
374
|
-
import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
375
439
|
import { asyncPool } from '@aztec/foundation/async-pool';
|
|
376
440
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
377
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
378
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
379
441
|
import { createLogger } from '@aztec/foundation/log';
|
|
380
442
|
import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
|
|
381
443
|
import { Timer } from '@aztec/foundation/timer';
|
|
@@ -385,8 +447,8 @@ import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
|
385
447
|
import { buildFinalBlobChallenges } from '@aztec/prover-client/helpers';
|
|
386
448
|
import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
387
449
|
import { EpochProvingJobTerminalState } from '@aztec/stdlib/interfaces/server';
|
|
450
|
+
import { appendL1ToL2MessagesToTree } from '@aztec/stdlib/messaging';
|
|
388
451
|
import { CheckpointConstantData } from '@aztec/stdlib/rollup';
|
|
389
|
-
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
390
452
|
import { Attributes, trackSpan } from '@aztec/telemetry-client';
|
|
391
453
|
import * as crypto from 'node:crypto';
|
|
392
454
|
import { validateEpochProvingJobData } from './epoch-proving-job-data.js';
|
|
@@ -422,6 +484,7 @@ _dec = trackSpan('EpochProvingJob.run', function() {
|
|
|
422
484
|
log;
|
|
423
485
|
uuid;
|
|
424
486
|
runPromise;
|
|
487
|
+
abortController;
|
|
425
488
|
epochCheckPromise;
|
|
426
489
|
deadlineTimeoutHandler;
|
|
427
490
|
tracer;
|
|
@@ -436,6 +499,7 @@ _dec = trackSpan('EpochProvingJob.run', function() {
|
|
|
436
499
|
this.deadline = deadline;
|
|
437
500
|
this.config = config;
|
|
438
501
|
this.state = (_initProto(this), 'initialized');
|
|
502
|
+
this.abortController = new AbortController();
|
|
439
503
|
validateEpochProvingJobData(data);
|
|
440
504
|
this.uuid = crypto.randomUUID();
|
|
441
505
|
this.log = createLogger('prover-node:epoch-proving-job', {
|
|
@@ -512,7 +576,7 @@ _dec = trackSpan('EpochProvingJob.run', function() {
|
|
|
512
576
|
const previousBlockHeaders = this.gatherPreviousBlockHeaders();
|
|
513
577
|
const allCheckpointsTimer = new Timer();
|
|
514
578
|
const parallelism = this.config.parallelBlockLimit ? this.config.parallelBlockLimit : AVM_MAX_CONCURRENT_SIMULATIONS > 0 ? AVM_MAX_CONCURRENT_SIMULATIONS : this.checkpoints.length;
|
|
515
|
-
await
|
|
579
|
+
await this.processCheckpoints(parallelism, async (checkpoint)=>{
|
|
516
580
|
this.checkState();
|
|
517
581
|
const checkpointTimer = new Timer();
|
|
518
582
|
const checkpointIndex = checkpoint.number - fromCheckpoint;
|
|
@@ -529,11 +593,12 @@ _dec = trackSpan('EpochProvingJob.run', function() {
|
|
|
529
593
|
});
|
|
530
594
|
const previousHeader = previousBlockHeaders[checkpointIndex];
|
|
531
595
|
const l1ToL2Messages = this.getL1ToL2Messages(checkpoint);
|
|
532
|
-
this.log.
|
|
596
|
+
this.log.debug(`Starting processing checkpoint ${checkpoint.number}`, {
|
|
533
597
|
number: checkpoint.number,
|
|
534
598
|
checkpointHash: checkpoint.hash().toString(),
|
|
535
|
-
|
|
536
|
-
|
|
599
|
+
headerHash: checkpoint.header.hash().toString(),
|
|
600
|
+
numL1ToL2Messages: l1ToL2Messages.length,
|
|
601
|
+
previousBlockNumber: previousHeader.globalVariables.blockNumber,
|
|
537
602
|
uuid: this.uuid
|
|
538
603
|
});
|
|
539
604
|
await this.prover.startNewCheckpoint(checkpointIndex, checkpointConstants, l1ToL2Messages, checkpoint.blocks.length, previousHeader);
|
|
@@ -556,19 +621,36 @@ _dec = trackSpan('EpochProvingJob.run', function() {
|
|
|
556
621
|
await this.prover.startNewBlock(block.number, globalVariables.timestamp, txs.length);
|
|
557
622
|
// Process public fns. L1 to L2 messages are only inserted for the first block of a checkpoint,
|
|
558
623
|
// as the fork for subsequent blocks already includes them from the previous block's synced state.
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
624
|
+
{
|
|
625
|
+
const env = {
|
|
626
|
+
stack: [],
|
|
627
|
+
error: void 0,
|
|
628
|
+
hasError: false
|
|
629
|
+
};
|
|
630
|
+
try {
|
|
631
|
+
const db = _ts_add_disposable_resource(env, await this.createFork(BlockNumber(block.number - 1), blockIndex === 0 ? l1ToL2Messages : undefined), true);
|
|
632
|
+
this.checkState();
|
|
633
|
+
const config = PublicSimulatorConfig.from({
|
|
634
|
+
proverId: this.prover.getProverId().toField(),
|
|
635
|
+
skipFeeEnforcement: false,
|
|
636
|
+
collectDebugLogs: false,
|
|
637
|
+
collectHints: true,
|
|
638
|
+
collectPublicInputs: true,
|
|
639
|
+
collectStatistics: false
|
|
640
|
+
});
|
|
641
|
+
const publicProcessor = this.publicProcessorFactory.create(db, globalVariables, config);
|
|
642
|
+
const processed = await this.processTxs(publicProcessor, txs);
|
|
643
|
+
this.checkState();
|
|
644
|
+
await this.prover.addTxs(processed);
|
|
645
|
+
} catch (e) {
|
|
646
|
+
env.error = e;
|
|
647
|
+
env.hasError = true;
|
|
648
|
+
} finally{
|
|
649
|
+
const result = _ts_dispose_resources(env);
|
|
650
|
+
if (result) await result;
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
this.checkState();
|
|
572
654
|
this.log.verbose(`Processed all ${txs.length} txs for block ${block.number}`, {
|
|
573
655
|
blockNumber: block.number,
|
|
574
656
|
blockHash: (await block.hash()).toString(),
|
|
@@ -657,19 +739,59 @@ _dec = trackSpan('EpochProvingJob.run', function() {
|
|
|
657
739
|
* as subsequent blocks' synced state already includes them.
|
|
658
740
|
* REFACTOR: The prover already spawns a db fork of its own for each block, so we may be able to do away with just one fork.
|
|
659
741
|
*/ async createFork(blockNumber, l1ToL2Messages) {
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
742
|
+
const env = {
|
|
743
|
+
stack: [],
|
|
744
|
+
error: void 0,
|
|
745
|
+
hasError: false
|
|
746
|
+
};
|
|
747
|
+
try {
|
|
748
|
+
this.log.verbose(`Creating fork at ${blockNumber}`, {
|
|
749
|
+
blockNumber
|
|
668
750
|
});
|
|
669
|
-
const
|
|
670
|
-
|
|
751
|
+
const cleanup = _ts_add_disposable_resource(env, new AsyncDisposableStack(), true);
|
|
752
|
+
const db = cleanup.use(await this.dbProvider.fork(blockNumber));
|
|
753
|
+
if (l1ToL2Messages !== undefined) {
|
|
754
|
+
this.log.verbose(`Inserting ${l1ToL2Messages.length} L1 to L2 messages in fork`, {
|
|
755
|
+
blockNumber,
|
|
756
|
+
l1ToL2Messages: l1ToL2Messages.map((m)=>m.toString())
|
|
757
|
+
});
|
|
758
|
+
await appendL1ToL2MessagesToTree(db, l1ToL2Messages);
|
|
759
|
+
}
|
|
760
|
+
// everything run succesfully so we can release this stack and give control of the fork's lifetime to the caller
|
|
761
|
+
cleanup.move();
|
|
762
|
+
return db;
|
|
763
|
+
} catch (e) {
|
|
764
|
+
env.error = e;
|
|
765
|
+
env.hasError = true;
|
|
766
|
+
} finally{
|
|
767
|
+
const result = _ts_dispose_resources(env);
|
|
768
|
+
if (result) await result;
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
async processCheckpoints(parallelism, processCheckpoint) {
|
|
772
|
+
let hasError = false;
|
|
773
|
+
let firstError;
|
|
774
|
+
await asyncPool(Math.max(parallelism, 1), this.checkpoints, async (checkpoint)=>{
|
|
775
|
+
if (hasError || this.abortController.signal.aborted) {
|
|
776
|
+
return;
|
|
777
|
+
}
|
|
778
|
+
try {
|
|
779
|
+
this.checkState();
|
|
780
|
+
await processCheckpoint(checkpoint);
|
|
781
|
+
} catch (err) {
|
|
782
|
+
if (!hasError) {
|
|
783
|
+
hasError = true;
|
|
784
|
+
firstError = err;
|
|
785
|
+
this.failProcessing();
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
});
|
|
789
|
+
if (hasError) {
|
|
790
|
+
throw firstError;
|
|
791
|
+
}
|
|
792
|
+
if (this.abortController.signal.aborted) {
|
|
793
|
+
this.checkState();
|
|
671
794
|
}
|
|
672
|
-
return db;
|
|
673
795
|
}
|
|
674
796
|
progressState(state) {
|
|
675
797
|
this.checkState();
|
|
@@ -682,11 +804,21 @@ _dec = trackSpan('EpochProvingJob.run', function() {
|
|
|
682
804
|
}
|
|
683
805
|
async stop(state = 'stopped') {
|
|
684
806
|
this.state = state;
|
|
685
|
-
this.
|
|
807
|
+
this.interruptProcessing();
|
|
686
808
|
if (this.runPromise) {
|
|
687
809
|
await this.runPromise;
|
|
688
810
|
}
|
|
689
811
|
}
|
|
812
|
+
failProcessing() {
|
|
813
|
+
if (!EpochProvingJobTerminalState.includes(this.state)) {
|
|
814
|
+
this.state = 'failed';
|
|
815
|
+
}
|
|
816
|
+
this.interruptProcessing();
|
|
817
|
+
}
|
|
818
|
+
interruptProcessing() {
|
|
819
|
+
this.abortController.abort();
|
|
820
|
+
this.prover.cancel();
|
|
821
|
+
}
|
|
690
822
|
scheduleDeadlineStop() {
|
|
691
823
|
const deadline = this.deadline;
|
|
692
824
|
if (deadline) {
|
|
@@ -722,7 +854,10 @@ _dec = trackSpan('EpochProvingJob.run', function() {
|
|
|
722
854
|
}
|
|
723
855
|
const intervalMs = Math.ceil((await l2BlockSource.getL1Constants()).ethereumSlotDuration / 2) * 1000;
|
|
724
856
|
this.epochCheckPromise = new RunningPromise(async ()=>{
|
|
725
|
-
const blockHeaders = await l2BlockSource.
|
|
857
|
+
const blockHeaders = (await l2BlockSource.getBlocksData({
|
|
858
|
+
epoch: this.epochNumber,
|
|
859
|
+
onlyCheckpointed: true
|
|
860
|
+
})).map((d)=>d.header);
|
|
726
861
|
const blockHashes = await Promise.all(blockHeaders.map((header)=>header.hash()));
|
|
727
862
|
const thisBlocks = this.checkpoints.flatMap((checkpoint)=>checkpoint.blocks);
|
|
728
863
|
const thisBlockHashes = await Promise.all(thisBlocks.map((block)=>block.hash()));
|
|
@@ -754,8 +889,10 @@ _dec = trackSpan('EpochProvingJob.run', function() {
|
|
|
754
889
|
async processTxs(publicProcessor, txs) {
|
|
755
890
|
const { deadline } = this;
|
|
756
891
|
const [processedTxs, failedTxs] = await publicProcessor.process(txs, {
|
|
757
|
-
deadline
|
|
892
|
+
deadline,
|
|
893
|
+
signal: this.abortController.signal
|
|
758
894
|
});
|
|
895
|
+
this.checkState();
|
|
759
896
|
if (failedTxs.length) {
|
|
760
897
|
const failedTxHashes = await Promise.all(failedTxs.map(({ tx })=>tx.getTxHash()));
|
|
761
898
|
throw new Error(`Txs failed processing: ${failedTxs.map(({ error }, index)=>`${failedTxHashes[index]} (${error})`).join(', ')}`);
|
|
@@ -87,9 +87,13 @@ import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
async getEpochNumberToProve() {
|
|
90
|
-
const lastBlockProven = await this.l2BlockSource.
|
|
90
|
+
const lastBlockProven = await this.l2BlockSource.getBlockNumber({
|
|
91
|
+
tag: 'proven'
|
|
92
|
+
}) ?? BlockNumber.ZERO;
|
|
91
93
|
const firstBlockToProve = BlockNumber(lastBlockProven + 1);
|
|
92
|
-
const firstBlockHeaderToProve = await this.l2BlockSource.
|
|
94
|
+
const firstBlockHeaderToProve = (await this.l2BlockSource.getBlockData({
|
|
95
|
+
number: firstBlockToProve
|
|
96
|
+
}))?.header;
|
|
93
97
|
if (!firstBlockHeaderToProve) {
|
|
94
98
|
return {
|
|
95
99
|
epochToProve: undefined,
|
|
@@ -53,6 +53,10 @@ export declare class ProverNodePublisher {
|
|
|
53
53
|
batchedBlobInputs: BatchedBlob;
|
|
54
54
|
attestations: ViemCommitteeAttestation[];
|
|
55
55
|
}): Promise<boolean>;
|
|
56
|
+
private waitUntilStartBuildsOnProven;
|
|
57
|
+
private getProvenCheckpoint;
|
|
58
|
+
private isStartBuildingOnProven;
|
|
59
|
+
private getSecondsUntilProofSubmissionWindowEnd;
|
|
56
60
|
private validateEpochProofSubmission;
|
|
57
61
|
/**
|
|
58
62
|
* Estimates what submitting the epoch proof would have cost on L1 without actually sending it.
|
|
@@ -73,4 +77,4 @@ export declare class ProverNodePublisher {
|
|
|
73
77
|
private getEpochProofPublicInputsArgs;
|
|
74
78
|
private getSubmitEpochProofArgs;
|
|
75
79
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUtcHVibGlzaGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmVyLW5vZGUtcHVibGlzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQThCLE1BQU0saUJBQWlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUYsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXZGLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR3pELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUcvRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFPbkYsc0VBQXNFO0FBQ3RFLE1BQU0sTUFBTSxzQkFBc0IsR0FBRztJQUNuQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGVBQWUsRUFBRSxFQUFFLENBQUM7SUFDcEIsVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUNmLFlBQVksRUFBRSxFQUFFLENBQUM7SUFDakIsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUNaLFFBQVEsRUFBRSxFQUFFLENBQUM7SUFDYixJQUFJLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxPQUFPLHlCQUF5QixDQUFDLENBQUM7SUFDNUQsS0FBSyxFQUFFLEtBQUssQ0FBQztDQUNkLENBQUM7QUFFRixxQkFBYSxtQkFBbUI7SUFDOUIsT0FBTyxDQUFDLFdBQVcsQ0FBUztJQUM1QixPQUFPLENBQUMsT0FBTyxDQUE2QjtJQUU1QyxTQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUV0QixTQUFTLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQztJQUV6QyxTQUFnQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBRXJDLFlBQ0UsTUFBTSxFQUFFLGNBQWMsR0FBRyxlQUFlLEVBQ3hDLElBQUksRUFBRTtRQUNKLGNBQWMsRUFBRSxjQUFjLENBQUM7UUFDL0IsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUNyQixTQUFTLENBQUMsRUFBRSxlQUFlLENBQUM7S0FDN0IsRUFDRCxRQUFRLENBQUMsRUFBRSxjQUFjLEVBUzFCO0lBRU0saUJBQWlCLG1CQUV2QjtJQUVEOzs7OztPQUtHO0lBQ0ksU0FBUyxTQUdmO0lBRUQsd0RBQXdEO0lBQ2pELE9BQU8sU0FHYjtJQUVNLGdCQUFnQixlQUV0QjtJQUVZLGdCQUFnQixDQUFDLElBQUksRUFBRTtRQUNsQyxXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQ3pCLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQztRQUNqQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7UUFDL0IsWUFBWSxFQUFFLHNCQUFzQixDQUFDO1FBQ3JDLEtBQUssRUFBRSxLQUFLLENBQUM7UUFDYixpQkFBaUIsRUFBRSxXQUFXLENBQUM7UUFDL0IsWUFBWSxFQUFFLHdCQUF3QixFQUFFLENBQUM7S0FDMUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBc0RuQjtZQUVhLDRCQUE0QjtZQWlDNUIsbUJBQW1CO0lBSWpDLE9BQU8sQ0FBQyx1QkFBdUI7WUFJakIsdUNBQXVDO1lBTXZDLDRCQUE0QjtJQW1FMUM7Ozs7T0FJRztJQUNVLDJCQUEyQixDQUFDLElBQUksRUFBRTtRQUM3QyxXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQ3pCLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQztRQUNqQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7UUFDL0IsWUFBWSxFQUFFLHNCQUFzQixDQUFDO1FBQ3JDLEtBQUssRUFBRSxLQUFLLENBQUM7UUFDYixpQkFBaUIsRUFBRSxXQUFXLENBQUM7UUFDL0IsWUFBWSxFQUFFLHdCQUF3QixFQUFFLENBQUM7S0FDMUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBc0NoQjtJQUVELE9BQU8sQ0FBQyw4QkFBOEI7WUFleEIsc0JBQXNCO0lBNENwQyxPQUFPLENBQUMsNkJBQTZCO0lBMEJyQyxPQUFPLENBQUMsdUJBQXVCO0NBdUJoQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA8B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"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"}
|