@aztec/sequencer-client 0.1.0-alpha23 → 0.1.0-alpha40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.tsbuildinfo +1 -1
- package/dest/block_builder/index.d.ts +2 -2
- package/dest/block_builder/index.d.ts.map +1 -1
- package/dest/block_builder/solo_block_builder.d.ts +7 -7
- package/dest/block_builder/solo_block_builder.d.ts.map +1 -1
- package/dest/block_builder/solo_block_builder.js +49 -53
- package/dest/block_builder/solo_block_builder.test.d.ts +2 -2
- package/dest/block_builder/solo_block_builder.test.d.ts.map +1 -1
- package/dest/block_builder/solo_block_builder.test.js +27 -26
- package/dest/block_builder/types.d.ts +1 -1
- package/dest/block_builder/types.d.ts.map +1 -1
- package/dest/client/sequencer-client.d.ts +1 -1
- package/dest/client/sequencer-client.d.ts.map +1 -1
- package/dest/client/sequencer-client.js +3 -3
- package/dest/config.d.ts +2 -2
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +8 -5
- package/dest/global_variable_builder/global_builder.d.ts +17 -0
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/global_variable_builder/global_builder.js +1 -1
- package/dest/global_variable_builder/viem-reader.d.ts +0 -12
- package/dest/global_variable_builder/viem-reader.d.ts.map +1 -1
- package/dest/global_variable_builder/viem-reader.js +2 -14
- package/dest/prover/empty.d.ts.map +1 -1
- package/dest/prover/empty.js +1 -1
- package/dest/prover/index.d.ts +23 -0
- package/dest/prover/index.d.ts.map +1 -1
- package/dest/publisher/config.d.ts +3 -3
- package/dest/publisher/config.d.ts.map +1 -1
- package/dest/publisher/l1-publisher.d.ts +3 -3
- package/dest/publisher/l1-publisher.d.ts.map +1 -1
- package/dest/publisher/l1-publisher.js +5 -3
- package/dest/publisher/l1-publisher.test.js +2 -2
- package/dest/publisher/viem-tx-sender.d.ts +4 -4
- package/dest/publisher/viem-tx-sender.d.ts.map +1 -1
- package/dest/publisher/viem-tx-sender.js +11 -11
- package/dest/sequencer/config.d.ts +1 -1
- package/dest/sequencer/config.d.ts.map +1 -1
- package/dest/sequencer/processed_tx.d.ts +2 -2
- package/dest/sequencer/processed_tx.d.ts.map +1 -1
- package/dest/sequencer/processed_tx.js +3 -3
- package/dest/sequencer/public_processor.d.ts +11 -10
- package/dest/sequencer/public_processor.d.ts.map +1 -1
- package/dest/sequencer/public_processor.js +24 -22
- package/dest/sequencer/public_processor.test.js +15 -17
- package/dest/sequencer/sequencer.d.ts +4 -4
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +18 -15
- package/dest/sequencer/sequencer.test.js +5 -5
- package/dest/sequencer/utils.d.ts +2 -2
- package/dest/sequencer/utils.d.ts.map +1 -1
- package/dest/sequencer/utils.js +8 -5
- package/dest/simulator/index.d.ts +2 -2
- package/dest/simulator/public_executor.d.ts +3 -20
- package/dest/simulator/public_executor.d.ts.map +1 -1
- package/dest/simulator/public_executor.js +16 -35
- package/dest/simulator/public_kernel.d.ts.map +1 -1
- package/dest/simulator/public_kernel.js +1 -1
- package/dest/simulator/rollup.d.ts.map +1 -1
- package/dest/simulator/rollup.js +1 -1
- package/package.json +10 -10
- package/src/block_builder/index.ts +3 -2
- package/src/block_builder/solo_block_builder.test.ts +46 -38
- package/src/block_builder/solo_block_builder.ts +79 -88
- package/src/block_builder/types.ts +1 -1
- package/src/client/sequencer-client.ts +3 -3
- package/src/config.ts +11 -7
- package/src/global_variable_builder/global_builder.ts +17 -0
- package/src/global_variable_builder/viem-reader.ts +5 -15
- package/src/prover/empty.ts +1 -0
- package/src/prover/index.ts +26 -0
- package/src/publisher/config.ts +3 -2
- package/src/publisher/l1-publisher.test.ts +3 -2
- package/src/publisher/l1-publisher.ts +18 -8
- package/src/publisher/viem-tx-sender.ts +14 -13
- package/src/sequencer/config.ts +1 -1
- package/src/sequencer/processed_tx.ts +3 -3
- package/src/sequencer/public_processor.test.ts +38 -18
- package/src/sequencer/public_processor.ts +33 -25
- package/src/sequencer/sequencer.test.ts +7 -5
- package/src/sequencer/sequencer.ts +20 -16
- package/src/sequencer/utils.ts +19 -11
- package/src/simulator/index.ts +2 -2
- package/src/simulator/public_executor.ts +15 -34
- package/src/simulator/public_kernel.ts +1 -0
- package/src/simulator/rollup.ts +1 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { AppendOnlyTreeSnapshot, BaseRollupInputs, CircuitsWasm, Fr, GlobalVariables, MAX_NEW_COMMITMENTS_PER_TX, MAX_NEW_L2_TO_L1_MSGS_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
2
|
-
import { computeContractLeaf } from '@aztec/circuits.js/abis';
|
|
1
|
+
import { AppendOnlyTreeSnapshot, BaseRollupInputs, CircuitsWasm, Fr, GlobalVariables, KernelCircuitPublicInputs, MAX_NEW_COMMITMENTS_PER_TX, MAX_NEW_L2_TO_L1_MSGS_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, Proof, PublicDataUpdateRequest, makeTuple, range, } from '@aztec/circuits.js';
|
|
2
|
+
import { computeBlockHashWithGlobals, computeContractLeaf } from '@aztec/circuits.js/abis';
|
|
3
3
|
import { fr, makeBaseOrMergeRollupPublicInputs, makeKernelPublicInputs, makeNewContractData, makeProof, makePublicCallRequest, makeRootRollupPublicInputs, } from '@aztec/circuits.js/factories';
|
|
4
4
|
import { toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
5
|
-
import {
|
|
5
|
+
import { to2Fields } from '@aztec/foundation/serialize';
|
|
6
|
+
import { ContractData, L2Block, L2BlockL2Logs, MerkleTreeId, PublicDataWrite, Tx, TxL2Logs, makeEmptyLogs, mockTx, } from '@aztec/types';
|
|
6
7
|
import { MerkleTrees } from '@aztec/world-state';
|
|
7
8
|
import { mock } from 'jest-mock-extended';
|
|
8
9
|
import { default as levelup } from 'levelup';
|
|
@@ -12,10 +13,9 @@ import { default as memdown } from 'memdown';
|
|
|
12
13
|
import { getVerificationKeys } from '../mocks/verification_keys.js';
|
|
13
14
|
import { EmptyRollupProver } from '../prover/empty.js';
|
|
14
15
|
import { makeEmptyProcessedTx as makeEmptyProcessedTxFromHistoricTreeRoots, makeProcessedTx, } from '../sequencer/processed_tx.js';
|
|
15
|
-
import {
|
|
16
|
+
import { getHistoricBlockData } from '../sequencer/utils.js';
|
|
16
17
|
import { WasmRollupCircuitSimulator } from '../simulator/rollup.js';
|
|
17
18
|
import { SoloBlockBuilder } from './solo_block_builder.js';
|
|
18
|
-
import { to2Fields } from '@aztec/foundation/serialize';
|
|
19
19
|
export const createMemDown = () => memdown();
|
|
20
20
|
describe('sequencer/solo_block_builder', () => {
|
|
21
21
|
let builder;
|
|
@@ -49,9 +49,9 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
49
49
|
// Create mock l1 to L2 messages
|
|
50
50
|
mockL1ToL2Messages = new Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(new Fr(0n));
|
|
51
51
|
// Create mock outputs for simulator
|
|
52
|
-
baseRollupOutputLeft = makeBaseOrMergeRollupPublicInputs();
|
|
53
|
-
baseRollupOutputRight = makeBaseOrMergeRollupPublicInputs();
|
|
54
|
-
rootRollupOutput = makeRootRollupPublicInputs();
|
|
52
|
+
baseRollupOutputLeft = makeBaseOrMergeRollupPublicInputs(0, globalVariables);
|
|
53
|
+
baseRollupOutputRight = makeBaseOrMergeRollupPublicInputs(0, globalVariables);
|
|
54
|
+
rootRollupOutput = makeRootRollupPublicInputs(0, globalVariables);
|
|
55
55
|
// Set up mocks
|
|
56
56
|
prover.getBaseRollupProof.mockResolvedValue(emptyProof);
|
|
57
57
|
prover.getRootRollupProof.mockResolvedValue(emptyProof);
|
|
@@ -61,7 +61,7 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
61
61
|
simulator.rootRollupCircuit.mockResolvedValue(rootRollupOutput);
|
|
62
62
|
}, 20000);
|
|
63
63
|
const makeEmptyProcessedTx = async () => {
|
|
64
|
-
const historicTreeRoots = await
|
|
64
|
+
const historicTreeRoots = await getHistoricBlockData(builderDb);
|
|
65
65
|
return makeEmptyProcessedTxFromHistoricTreeRoots(historicTreeRoots, chainId, version);
|
|
66
66
|
};
|
|
67
67
|
// Updates the expectedDb trees based on the new commitments, contracts, and nullifiers from these txs
|
|
@@ -82,13 +82,17 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
82
82
|
const asBuffer = l1ToL2Messages.map(m => m.toBuffer());
|
|
83
83
|
await expectsDb.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGES_TREE, asBuffer);
|
|
84
84
|
};
|
|
85
|
+
const updateHistoricBlocksTree = async () => {
|
|
86
|
+
const blockHash = computeBlockHashWithGlobals(wasm, globalVariables, rootRollupOutput.endPrivateDataTreeSnapshot.root, rootRollupOutput.endNullifierTreeSnapshot.root, rootRollupOutput.endContractTreeSnapshot.root, rootRollupOutput.endL1ToL2MessageTreeSnapshot.root, rootRollupOutput.endPublicDataTreeRoot);
|
|
87
|
+
await expectsDb.appendLeaves(MerkleTreeId.BLOCKS_TREE, [blockHash.toBuffer()]);
|
|
88
|
+
};
|
|
85
89
|
const getTreeSnapshot = async (tree) => {
|
|
86
90
|
const treeInfo = await expectsDb.getTreeInfo(tree);
|
|
87
91
|
return new AppendOnlyTreeSnapshot(Fr.fromBuffer(treeInfo.root), Number(treeInfo.size));
|
|
88
92
|
};
|
|
89
93
|
const buildMockSimulatorInputs = async () => {
|
|
90
94
|
const kernelOutput = makeKernelPublicInputs();
|
|
91
|
-
kernelOutput.constants.
|
|
95
|
+
kernelOutput.constants.blockData = await getHistoricBlockData(expectsDb);
|
|
92
96
|
const tx = await makeProcessedTx(new Tx(kernelOutput, emptyProof, makeEmptyLogs(), makeEmptyLogs(), [], times(MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, makePublicCallRequest)));
|
|
93
97
|
const txsLeft = [tx, await makeEmptyProcessedTx()];
|
|
94
98
|
const txsRight = [await makeEmptyProcessedTx(), await makeEmptyProcessedTx()];
|
|
@@ -107,15 +111,15 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
107
111
|
// Update l1 to l2 data tree
|
|
108
112
|
// And update the root trees now to create proper output to the root rollup circuit
|
|
109
113
|
await updateL1ToL2MessagesTree(mockL1ToL2Messages);
|
|
110
|
-
await expectsDb.updateHistoricRootsTrees();
|
|
111
114
|
rootRollupOutput.endContractTreeSnapshot = await getTreeSnapshot(MerkleTreeId.CONTRACT_TREE);
|
|
112
115
|
rootRollupOutput.endNullifierTreeSnapshot = await getTreeSnapshot(MerkleTreeId.NULLIFIER_TREE);
|
|
113
116
|
rootRollupOutput.endPrivateDataTreeSnapshot = await getTreeSnapshot(MerkleTreeId.PRIVATE_DATA_TREE);
|
|
114
117
|
rootRollupOutput.endPublicDataTreeRoot = (await getTreeSnapshot(MerkleTreeId.PUBLIC_DATA_TREE)).root;
|
|
115
|
-
rootRollupOutput.endTreeOfHistoricContractTreeRootsSnapshot = await getTreeSnapshot(MerkleTreeId.CONTRACT_TREE_ROOTS_TREE);
|
|
116
|
-
rootRollupOutput.endTreeOfHistoricPrivateDataTreeRootsSnapshot = await getTreeSnapshot(MerkleTreeId.PRIVATE_DATA_TREE_ROOTS_TREE);
|
|
117
118
|
rootRollupOutput.endL1ToL2MessageTreeSnapshot = await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGES_TREE);
|
|
118
|
-
|
|
119
|
+
// Calculate block hash
|
|
120
|
+
rootRollupOutput.globalVariables = globalVariables;
|
|
121
|
+
await updateHistoricBlocksTree();
|
|
122
|
+
rootRollupOutput.endHistoricBlocksTreeSnapshot = await getTreeSnapshot(MerkleTreeId.BLOCKS_TREE);
|
|
119
123
|
const txs = [...txsLeft, ...txsRight];
|
|
120
124
|
const newNullifiers = flatMap(txs, tx => tx.data.end.newNullifiers);
|
|
121
125
|
const newCommitments = flatMap(txs, tx => tx.data.end.newCommitments);
|
|
@@ -127,7 +131,7 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
127
131
|
const newUnencryptedLogs = new L2BlockL2Logs(txs.map(tx => tx.unencryptedLogs || new TxL2Logs([])));
|
|
128
132
|
const l2Block = L2Block.fromFields({
|
|
129
133
|
number: blockNumber,
|
|
130
|
-
globalVariables
|
|
134
|
+
globalVariables,
|
|
131
135
|
startPrivateDataTreeSnapshot: rootRollupOutput.startPrivateDataTreeSnapshot,
|
|
132
136
|
endPrivateDataTreeSnapshot: rootRollupOutput.endPrivateDataTreeSnapshot,
|
|
133
137
|
startNullifierTreeSnapshot: rootRollupOutput.startNullifierTreeSnapshot,
|
|
@@ -136,14 +140,10 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
136
140
|
endContractTreeSnapshot: rootRollupOutput.endContractTreeSnapshot,
|
|
137
141
|
startPublicDataTreeRoot: rootRollupOutput.startPublicDataTreeRoot,
|
|
138
142
|
endPublicDataTreeRoot: rootRollupOutput.endPublicDataTreeRoot,
|
|
139
|
-
startTreeOfHistoricPrivateDataTreeRootsSnapshot: rootRollupOutput.startTreeOfHistoricPrivateDataTreeRootsSnapshot,
|
|
140
|
-
endTreeOfHistoricPrivateDataTreeRootsSnapshot: rootRollupOutput.endTreeOfHistoricPrivateDataTreeRootsSnapshot,
|
|
141
|
-
startTreeOfHistoricContractTreeRootsSnapshot: rootRollupOutput.startTreeOfHistoricContractTreeRootsSnapshot,
|
|
142
|
-
endTreeOfHistoricContractTreeRootsSnapshot: rootRollupOutput.endTreeOfHistoricContractTreeRootsSnapshot,
|
|
143
143
|
startL1ToL2MessageTreeSnapshot: rootRollupOutput.startL1ToL2MessageTreeSnapshot,
|
|
144
144
|
endL1ToL2MessageTreeSnapshot: rootRollupOutput.endL1ToL2MessageTreeSnapshot,
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
startHistoricBlocksTreeSnapshot: rootRollupOutput.startHistoricBlocksTreeSnapshot,
|
|
146
|
+
endHistoricBlocksTreeSnapshot: rootRollupOutput.endHistoricBlocksTreeSnapshot,
|
|
147
147
|
newCommitments,
|
|
148
148
|
newNullifiers,
|
|
149
149
|
newContracts,
|
|
@@ -194,7 +194,7 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
194
194
|
const makeBloatedProcessedTx = async (seed = 0x1) => {
|
|
195
195
|
const tx = mockTx(seed);
|
|
196
196
|
const kernelOutput = KernelCircuitPublicInputs.empty();
|
|
197
|
-
kernelOutput.constants.
|
|
197
|
+
kernelOutput.constants.blockData = await getHistoricBlockData(builderDb);
|
|
198
198
|
kernelOutput.end.publicDataUpdateRequests = makeTuple(MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, i => new PublicDataUpdateRequest(fr(i), fr(0), fr(i + 10)), seed + 0x500);
|
|
199
199
|
const processedTx = await makeProcessedTx(tx, kernelOutput, makeProof());
|
|
200
200
|
processedTx.data.end.newCommitments = makeTuple(MAX_NEW_COMMITMENTS_PER_TX, fr, seed + 0x100);
|
|
@@ -250,8 +250,8 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
250
250
|
const [l2Block] = await builder.buildL2Block(globalVariables, txs, l1ToL2Messages);
|
|
251
251
|
expect(l2Block.number).toEqual(blockNumber);
|
|
252
252
|
}, 20000);
|
|
253
|
-
// This test specifically tests nullifier values which previously caused
|
|
254
|
-
it('
|
|
253
|
+
// This test specifically tests nullifier values which previously caused e2e_private_token test to fail
|
|
254
|
+
it('e2e_private_token edge case regression test on nullifier values', async () => {
|
|
255
255
|
const simulator = await WasmRollupCircuitSimulator.new();
|
|
256
256
|
const prover = new EmptyRollupProver();
|
|
257
257
|
builder = new SoloBlockBuilder(builderDb, vks, simulator, prover);
|
|
@@ -259,12 +259,13 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
259
259
|
const updateVals = Array(4 * MAX_NEW_NULLIFIERS_PER_TX).fill(0n);
|
|
260
260
|
updateVals[0] = 19777494491628650244807463906174285795660759352776418619064841306523677458742n;
|
|
261
261
|
updateVals[1] = 10246291467305176436335175657884940686778521321101740385288169037814567547848n;
|
|
262
|
-
await builderDb.batchInsert(MerkleTreeId.NULLIFIER_TREE, updateVals.map(v => toBufferBE(v, 32)), BaseRollupInputs.NULLIFIER_SUBTREE_HEIGHT);
|
|
263
262
|
// new added values
|
|
264
263
|
const tx = await makeEmptyProcessedTx();
|
|
265
264
|
tx.data.end.newNullifiers[0] = new Fr(10336601644835972678500657502133589897705389664587188571002640950065546264856n);
|
|
266
265
|
tx.data.end.newNullifiers[1] = new Fr(17490072961923661940560522096125238013953043065748521735636170028491723851741n);
|
|
267
266
|
const txs = [tx, await makeEmptyProcessedTx(), await makeEmptyProcessedTx(), await makeEmptyProcessedTx()];
|
|
267
|
+
// Must be built after the txs are created
|
|
268
|
+
await builderDb.batchInsert(MerkleTreeId.NULLIFIER_TREE, updateVals.map(v => toBufferBE(v, 32)), BaseRollupInputs.NULLIFIER_SUBTREE_HEIGHT);
|
|
268
269
|
const [l2Block] = await builder.buildL2Block(globalVariables, txs, mockL1ToL2Messages);
|
|
269
270
|
expect(l2Block.number).toEqual(blockNumber);
|
|
270
271
|
}, 10000);
|
|
@@ -272,4 +273,4 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
272
273
|
// describe("Input guard tests", () => {
|
|
273
274
|
// })
|
|
274
275
|
});
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sb19ibG9ja19idWlsZGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2tfYnVpbGRlci9zb2xvX2Jsb2NrX2J1aWxkZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEVBRXRCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osRUFBRSxFQUNGLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsNEJBQTRCLEVBQzVCLHlCQUF5QixFQUN6QixtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLHlCQUF5QixFQUN6QixtQ0FBbUMsRUFDbkMsS0FBSyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLEVBQUUsRUFDRixpQ0FBaUMsRUFDakMsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLE9BQU8sRUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLE1BQU0sRUFDTixlQUFlLEVBQ2YsRUFBRSxFQUNGLFFBQVEsRUFDUixhQUFhLEdBQ2QsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUF3QixXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBQWEsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sSUFBSSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDN0MsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxLQUFLLE1BQU0sY0FBYyxD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
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sb19ibG9ja19idWlsZGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2tfYnVpbGRlci9zb2xvX2Jsb2NrX2J1aWxkZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEVBRXRCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osRUFBRSxFQUNGLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDekIsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0QyxtQ0FBbUMsRUFDbkMsS0FBSyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0YsT0FBTyxFQUNMLEVBQUUsRUFDRixpQ0FBaUMsRUFDakMsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUNMLFlBQVksRUFDWixPQUFPLEVBQ1AsYUFBYSxFQUNiLFlBQVksRUFDWixlQUFlLEVBQ2YsRUFBRSxFQUNGLFFBQVEsRUFDUixhQUFhLEVBQ2IsTUFBTSxHQUNQLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkUsT0FBTyxFQUFhLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzdD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
|
|
@@ -2,7 +2,7 @@ import { AppendOnlyTreeSnapshot, BaseOrMergeRollupPublicInputs, RootRollupPublic
|
|
|
2
2
|
/**
|
|
3
3
|
* Type to assert that only the correct trees are checked when validating rollup tree outputs.
|
|
4
4
|
*/
|
|
5
|
-
export type AllowedTreeNames<T extends BaseOrMergeRollupPublicInputs | RootRollupPublicInputs> = T extends RootRollupPublicInputs ? 'PrivateData' | 'Contract' | 'Nullifier' | 'L1ToL2Message' : 'PrivateData' | 'Contract' | 'Nullifier';
|
|
5
|
+
export type AllowedTreeNames<T extends BaseOrMergeRollupPublicInputs | RootRollupPublicInputs> = T extends RootRollupPublicInputs ? 'PrivateData' | 'Contract' | 'Nullifier' | 'L1ToL2Message' | 'HistoricBlocks' : 'PrivateData' | 'Contract' | 'Nullifier';
|
|
6
6
|
/**
|
|
7
7
|
* Type to assert the correct object field is indexed when validating rollup tree outputs.
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/block_builder/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEnH;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,6BAA6B,GAAG,sBAAsB,IAC3F,CAAC,SAAS,sBAAsB,GAC5B,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/block_builder/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEnH;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,6BAA6B,GAAG,sBAAsB,IAC3F,CAAC,SAAS,sBAAsB,GAC5B,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,eAAe,GAAG,gBAAgB,GAC7E,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,6BAA6B,GAAG,sBAAsB,IAAI;KACpG,CAAC,IAAI,MAAM,gBAAgB,CAAC,CAAC,CAAC,cAAc,GAAG,sBAAsB;CACvE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { P2P } from '@aztec/p2p';
|
|
2
|
-
import { WorldStateSynchroniser } from '@aztec/world-state';
|
|
3
2
|
import { ContractDataSource, L1ToL2MessageSource, L2BlockSource } from '@aztec/types';
|
|
3
|
+
import { WorldStateSynchroniser } from '@aztec/world-state';
|
|
4
4
|
import { SequencerClientConfig } from '../config.js';
|
|
5
5
|
import { Sequencer } from '../index.js';
|
|
6
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sequencer-client.d.ts","sourceRoot":"","sources":["../../src/client/sequencer-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,SAAS,EAAuC,MAAM,aAAa,CAAC;AAK7E;;GAEG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAExC;;;;;;;;;OASG;WACiB,GAAG,CACrB,MAAM,EAAE,qBAAqB,EAC7B,SAAS,EAAE,GAAG,EACd,sBAAsB,EAAE,sBAAsB,EAC9C,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB;IA+B1C;;OAEG;IACU,IAAI;IAIjB;;OAEG;IACI,OAAO;CAGf"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SoloBlockBuilder } from '../block_builder/solo_block_builder.js';
|
|
2
|
-
import {
|
|
2
|
+
import { getGlobalVariableBuilder } from '../global_variable_builder/index.js';
|
|
3
|
+
import { Sequencer, getL1Publisher, getVerificationKeys } from '../index.js';
|
|
3
4
|
import { EmptyRollupProver } from '../prover/empty.js';
|
|
4
5
|
import { PublicProcessorFactory } from '../sequencer/public_processor.js';
|
|
5
6
|
import { WasmRollupCircuitSimulator } from '../simulator/rollup.js';
|
|
6
|
-
import { getGlobalVariableBuilder } from '../global_variable_builder/index.js';
|
|
7
7
|
/**
|
|
8
8
|
* Encapsulates the full sequencer and publisher.
|
|
9
9
|
*/
|
|
@@ -44,4 +44,4 @@ export class SequencerClient {
|
|
|
44
44
|
this.sequencer.restart();
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvc2VxdWVuY2VyLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQW9CLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBRyxDQUFDO0lBRTVDOzs7Ozs7Ozs7T0FTRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUNyQixNQUE2QixFQUM3QixTQUFjLEVBQ2Qsc0JBQThDLEVBQzlDLGtCQUFzQyxFQUN0QyxhQUE0QixFQUM1QixtQkFBd0M7UUFFeEMsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELE1BQU0sWUFBWSxHQUFHLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRXhELE1BQU0sWUFBWSxHQUFHLElBQUksZ0JBQWdCLENBQ3ZDLFlBQVksRUFDWixtQkFBbUIsRUFBRSxFQUNyQixNQUFNLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxFQUN0QyxJQUFJLGlCQUFpQixFQUFFLENBQ3hCLENBQUM7UUFFRixNQUFNLHNCQUFzQixHQUFHLElBQUksc0JBQXNCLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFakgsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQzdCLFNBQVMsRUFDVCxjQUFjLEVBQ2QsU0FBUyxFQUNULHNCQUFzQixFQUN0QixZQUFZLEVBQ1osYUFBYSxFQUNiLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsTUFBTSxDQUNQLENBQUM7UUFFRixNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QixPQUFPLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDRiJ9
|
package/dest/config.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SequencerConfig } from './sequencer/config.js';
|
|
2
|
-
import { PublisherConfig, TxSenderConfig } from './publisher/config.js';
|
|
3
1
|
import { GlobalReaderConfig } from './global_variable_builder/index.js';
|
|
2
|
+
import { PublisherConfig, TxSenderConfig } from './publisher/config.js';
|
|
3
|
+
import { SequencerConfig } from './sequencer/config.js';
|
|
4
4
|
/**
|
|
5
5
|
* Configuration settings for the SequencerClient.
|
|
6
6
|
*/
|
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,eAAe,GAAG,cAAc,GAAG,eAAe,GAAG,kBAAkB,CAAC;AAE5G;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,qBAAqB,CAoCxD"}
|
package/dest/config.js
CHANGED
|
@@ -1,25 +1,28 @@
|
|
|
1
|
+
import { PrivateKey } from '@aztec/circuits.js';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
3
|
/**
|
|
3
4
|
* Creates an instance of SequencerClientConfig out of environment variables using sensible defaults for integration testing if not set.
|
|
4
5
|
*/
|
|
5
6
|
export function getConfigEnvVars() {
|
|
6
|
-
const { SEQ_PUBLISHER_PRIVATE_KEY, ETHEREUM_HOST, CHAIN_ID, VERSION, API_KEY, SEQ_REQUIRED_CONFS,
|
|
7
|
+
const { SEQ_PUBLISHER_PRIVATE_KEY, ETHEREUM_HOST, CHAIN_ID, VERSION, API_KEY, SEQ_REQUIRED_CONFS, SEQ_PUBLISH_RETRY_INTERVAL_MS, SEQ_TX_POLLING_INTERVAL_MS, SEQ_MAX_TX_PER_BLOCK, SEQ_MIN_TX_PER_BLOCK, ROLLUP_CONTRACT_ADDRESS, INBOX_CONTRACT_ADDRESS, CONTRACT_DEPLOYMENT_EMITTER_ADDRESS, } = process.env;
|
|
7
8
|
return {
|
|
8
9
|
rpcUrl: ETHEREUM_HOST ? ETHEREUM_HOST : '',
|
|
9
10
|
chainId: CHAIN_ID ? +CHAIN_ID : 31337,
|
|
10
11
|
version: VERSION ? +VERSION : 1,
|
|
11
12
|
apiKey: API_KEY,
|
|
12
13
|
requiredConfirmations: SEQ_REQUIRED_CONFS ? +SEQ_REQUIRED_CONFS : 1,
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
l1BlockPublishRetryIntervalMS: SEQ_PUBLISH_RETRY_INTERVAL_MS ? +SEQ_PUBLISH_RETRY_INTERVAL_MS : 1000,
|
|
15
|
+
transactionPollingIntervalMS: SEQ_TX_POLLING_INTERVAL_MS ? +SEQ_TX_POLLING_INTERVAL_MS : 1000,
|
|
15
16
|
rollupContract: ROLLUP_CONTRACT_ADDRESS ? EthAddress.fromString(ROLLUP_CONTRACT_ADDRESS) : EthAddress.ZERO,
|
|
16
17
|
inboxContract: INBOX_CONTRACT_ADDRESS ? EthAddress.fromString(INBOX_CONTRACT_ADDRESS) : EthAddress.ZERO,
|
|
17
18
|
contractDeploymentEmitterContract: CONTRACT_DEPLOYMENT_EMITTER_ADDRESS
|
|
18
19
|
? EthAddress.fromString(CONTRACT_DEPLOYMENT_EMITTER_ADDRESS)
|
|
19
20
|
: EthAddress.ZERO,
|
|
20
|
-
publisherPrivateKey:
|
|
21
|
+
publisherPrivateKey: SEQ_PUBLISHER_PRIVATE_KEY
|
|
22
|
+
? PrivateKey.fromString(SEQ_PUBLISHER_PRIVATE_KEY)
|
|
23
|
+
: new PrivateKey(Buffer.alloc(32)),
|
|
21
24
|
maxTxsPerBlock: SEQ_MAX_TX_PER_BLOCK ? +SEQ_MAX_TX_PER_BLOCK : 32,
|
|
22
25
|
minTxsPerBlock: SEQ_MIN_TX_PER_BLOCK ? +SEQ_MIN_TX_PER_BLOCK : 1,
|
|
23
26
|
};
|
|
24
27
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBVzNEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixNQUFNLEVBQ0oseUJBQXlCLEVBQ3pCLGFBQWEsRUFDYixRQUFRLEVBQ1IsT0FBTyxFQUNQLE9BQU8sRUFDUCxrQkFBa0IsRUFDbEIsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsbUNBQW1DLEdBQ3BDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUVoQixPQUFPO1FBQ0wsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLO1FBQ3JDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sRUFBRSxPQUFPO1FBQ2YscUJBQXFCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsNkJBQTZCLEVBQUUsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUs7UUFDckcsNEJBQTRCLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLElBQUs7UUFDOUYsY0FBYyxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQzFHLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSTtRQUN2RyxpQ0FBaUMsRUFBRSxtQ0FBbUM7WUFDcEUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsbUNBQW1DLENBQUM7WUFDNUQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ25CLG1CQUFtQixFQUFFLHlCQUF5QjtZQUM1QyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQztZQUNsRCxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxjQUFjLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDakUsY0FBYyxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pFLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -3,14 +3,31 @@ import { Fr, GlobalVariables } from '@aztec/circuits.js';
|
|
|
3
3
|
* Reads values from L1 state that is used for the global values.
|
|
4
4
|
*/
|
|
5
5
|
export interface L1GlobalReader {
|
|
6
|
+
/**
|
|
7
|
+
* Fetches the last timestamp that a block was processed by the contract.
|
|
8
|
+
* @returns The last timestamp that a block was processed by the contract.
|
|
9
|
+
*/
|
|
6
10
|
getLastTimestamp(): Promise<bigint>;
|
|
11
|
+
/**
|
|
12
|
+
* Fetches the version of the rollup contract.
|
|
13
|
+
* @returns The version of the rollup contract.
|
|
14
|
+
*/
|
|
7
15
|
getVersion(): Promise<bigint>;
|
|
16
|
+
/**
|
|
17
|
+
* Gets the chain id.
|
|
18
|
+
* @returns The chain id.
|
|
19
|
+
*/
|
|
8
20
|
getChainId(): Promise<bigint>;
|
|
9
21
|
}
|
|
10
22
|
/**
|
|
11
23
|
* Builds global variables from L1 state.
|
|
12
24
|
*/
|
|
13
25
|
export interface GlobalVariableBuilder {
|
|
26
|
+
/**
|
|
27
|
+
* Builds global variables.
|
|
28
|
+
* @param blockNumber - The block number to build global variables for.
|
|
29
|
+
* @returns The global variables for the given block number.
|
|
30
|
+
*/
|
|
14
31
|
buildGlobalVariables(blockNumber: Fr): Promise<GlobalVariables>;
|
|
15
32
|
}
|
|
16
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global_builder.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/global_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGzD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACjE;AAED;;GAEG;AACH,qBAAa,2BAA4B,YAAW,qBAAqB;IAE3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IADnC,OAAO,CAAC,GAAG,CAAuE;gBACrD,MAAM,EAAE,cAAc;IAEnD;;;;OAIG;IACU,oBAAoB,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;CAW7E"}
|
|
1
|
+
{"version":3,"file":"global_builder.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/global_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGzD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,oBAAoB,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACjE;AAED;;GAEG;AACH,qBAAa,2BAA4B,YAAW,qBAAqB;IAE3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IADnC,OAAO,CAAC,GAAG,CAAuE;gBACrD,MAAM,EAAE,cAAc;IAEnD;;;;OAIG;IACU,oBAAoB,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;CAW7E"}
|
|
@@ -21,4 +21,4 @@ export class SimpleGlobalVariableBuilder {
|
|
|
21
21
|
return new GlobalVariables(chainId, version, blockNumber, lastTimestamp);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX2J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIvZ2xvYmFsX2J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQW1DMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMkJBQTJCO0lBRXRDLFlBQTZCLE1BQXNCO1FBQXRCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBRDNDLFFBQUcsR0FBRyxpQkFBaUIsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFdkQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxXQUFlO1FBQy9DLE1BQU0sYUFBYSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDbkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLEdBQUcsQ0FDTixvQ0FBb0MsV0FBVyxNQUFNLE9BQU8sS0FBSyxPQUFPLEtBQUssV0FBVyxLQUFLLGFBQWEsR0FBRyxDQUM5RyxDQUFDO1FBRUYsT0FBTyxJQUFJLGVBQWUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMzRSxDQUFDO0NBQ0YifQ==
|
|
@@ -7,20 +7,8 @@ export declare class ViemReader implements L1GlobalReader {
|
|
|
7
7
|
private rollupContract;
|
|
8
8
|
private publicClient;
|
|
9
9
|
constructor(config: GlobalReaderConfig);
|
|
10
|
-
/**
|
|
11
|
-
* Fetches the last timestamp that a block was processed by the contract.
|
|
12
|
-
* @returns The last timestamp that a block was processed by the contract.
|
|
13
|
-
*/
|
|
14
10
|
getLastTimestamp(): Promise<bigint>;
|
|
15
|
-
/**
|
|
16
|
-
* Fetches the version of the rollup contract.
|
|
17
|
-
* @returns The version of the rollup contract.
|
|
18
|
-
*/
|
|
19
11
|
getVersion(): Promise<bigint>;
|
|
20
|
-
/**
|
|
21
|
-
* Gets the chain id.
|
|
22
|
-
* @returns The chain id.
|
|
23
|
-
*/
|
|
24
12
|
getChainId(): Promise<bigint>;
|
|
25
13
|
}
|
|
26
14
|
//# sourceMappingURL=viem-reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viem-reader.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/viem-reader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"viem-reader.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/viem-reader.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC/C,OAAO,CAAC,cAAc,CAAqF;IAC3G,OAAO,CAAC,YAAY,CAA4C;gBAEpD,MAAM,EAAE,kBAAkB;IAiBzB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAG3C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createEthereumChain } from '@aztec/ethereum';
|
|
2
2
|
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
3
|
-
import { createPublicClient,
|
|
3
|
+
import { createPublicClient, getAddress, getContract, http, } from 'viem';
|
|
4
4
|
/**
|
|
5
5
|
* Reads values from L1 state using viem.
|
|
6
6
|
*/
|
|
@@ -18,26 +18,14 @@ export class ViemReader {
|
|
|
18
18
|
publicClient: this.publicClient,
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Fetches the last timestamp that a block was processed by the contract.
|
|
23
|
-
* @returns The last timestamp that a block was processed by the contract.
|
|
24
|
-
*/
|
|
25
21
|
async getLastTimestamp() {
|
|
26
22
|
return BigInt(await this.rollupContract.read.lastBlockTs());
|
|
27
23
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Fetches the version of the rollup contract.
|
|
30
|
-
* @returns The version of the rollup contract.
|
|
31
|
-
*/
|
|
32
24
|
async getVersion() {
|
|
33
25
|
return BigInt(await this.rollupContract.read.VERSION());
|
|
34
26
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Gets the chain id.
|
|
37
|
-
* @returns The chain id.
|
|
38
|
-
*/
|
|
39
27
|
async getChainId() {
|
|
40
28
|
return await Promise.resolve(BigInt(this.publicClient.chain.id));
|
|
41
29
|
}
|
|
42
30
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmllbS1yZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIvdmllbS1yZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFJTCxrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLFdBQVcsRUFDWCxJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFNZDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBSXJCLFlBQVksTUFBMEI7UUFDcEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRXpFLE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUFDO1lBQ3JDLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztZQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7WUFDaEMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyRCxHQUFHLEVBQUUsU0FBUztZQUNkLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQjtRQUMzQixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVU7UUFDckIsT0FBTyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../src/prover/empty.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,EACL,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../src/prover/empty.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,EACL,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAOxD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,6BAA6B,GAAG,OAAO,CAAC,KAAK,CAAC;IAK/G;;;;OAIG;IACG,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,6BAA6B,GAAG,OAAO,CAAC,KAAK,CAAC;IAIjH;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC;CAIzG;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD;;;OAGG;IACG,qBAAqB,CAAC,aAAa,EAAE,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC;IAIrF;;;OAGG;IACG,2BAA2B,CAAC,aAAa,EAAE,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC;CAG3F"}
|
package/dest/prover/empty.js
CHANGED
|
@@ -54,4 +54,4 @@ export class EmptyPublicProver {
|
|
|
54
54
|
return new Proof(Buffer.alloc(EMPTY_PROOF_SIZE, 0));
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyL2VtcHR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEVBQ0wsaUJBQWlCLEVBSWpCLEtBQUssR0FLTixNQUFNLG9CQUFvQixDQUFDO0FBSTVCLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0FBRTVCLDJGQUEyRjtBQUMzRixzQ0FBc0M7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBd0IsRUFBRSxZQUEyQztRQUM1RixZQUFZLENBQUMsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakUsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQUMsTUFBeUIsRUFBRSxZQUEyQztRQUM5RixZQUFZLENBQUMsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakUsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBd0IsRUFBRSxZQUFvQztRQUNyRixZQUFZLENBQUMsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakUsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCOzs7T0FHRztJQUNILEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxhQUF3QztRQUNsRSxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLDJCQUEyQixDQUFDLGFBQXVDO1FBQ3ZFLE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRiJ9
|
package/dest/prover/index.d.ts
CHANGED
|
@@ -3,15 +3,38 @@ import { BaseOrMergeRollupPublicInputs, BaseRollupInputs, MergeRollupInputs, Pro
|
|
|
3
3
|
* Generates proofs for the base, merge, and root rollup circuits.
|
|
4
4
|
*/
|
|
5
5
|
export interface RollupProver {
|
|
6
|
+
/**
|
|
7
|
+
* Creates a proof for the given input.
|
|
8
|
+
* @param input - Input to the circuit.
|
|
9
|
+
* @param publicInputs - Public inputs of the circuit obtained via simulation, modified by this call.
|
|
10
|
+
*/
|
|
6
11
|
getBaseRollupProof(input: BaseRollupInputs, publicInputs: BaseOrMergeRollupPublicInputs): Promise<Proof>;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a proof for the given input.
|
|
14
|
+
* @param input - Input to the circuit.
|
|
15
|
+
* @param publicInputs - Public inputs of the circuit obtained via simulation, modified by this call.
|
|
16
|
+
*/
|
|
7
17
|
getMergeRollupProof(input: MergeRollupInputs, publicInputs: BaseOrMergeRollupPublicInputs): Promise<Proof>;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a proof for the given input.
|
|
20
|
+
* @param input - Input to the circuit.
|
|
21
|
+
* @param publicInputs - Public inputs of the circuit obtained via simulation, modified by this call.
|
|
22
|
+
*/
|
|
8
23
|
getRootRollupProof(input: RootRollupInputs, publicInputs: RootRollupPublicInputs): Promise<Proof>;
|
|
9
24
|
}
|
|
10
25
|
/**
|
|
11
26
|
* Generates proofs for the public and public kernel circuits.
|
|
12
27
|
*/
|
|
13
28
|
export interface PublicProver {
|
|
29
|
+
/**
|
|
30
|
+
* Creates a proof for the given input.
|
|
31
|
+
* @param publicInputs - Public inputs obtained via simulation.
|
|
32
|
+
*/
|
|
14
33
|
getPublicCircuitProof(publicInputs: PublicCircuitPublicInputs): Promise<Proof>;
|
|
34
|
+
/**
|
|
35
|
+
* Creates a proof for the given input.
|
|
36
|
+
* @param publicInputs - Public inputs obtained via simulation.
|
|
37
|
+
*/
|
|
15
38
|
getPublicKernelCircuitProof(publicInputs: PublicKernelPublicInputs): Promise<Proof>;
|
|
16
39
|
}
|
|
17
40
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,EACL,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,6BAA6B,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,EACL,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,6BAA6B,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAEzG;;;;OAIG;IACH,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,6BAA6B,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAE3G;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CACnG;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,qBAAqB,CAAC,YAAY,EAAE,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAE/E;;;OAGG;IACH,2BAA2B,CAAC,YAAY,EAAE,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CACrF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { PrivateKey } from '@aztec/circuits.js';
|
|
2
2
|
import { L1Addresses } from '@aztec/types';
|
|
3
3
|
/**
|
|
4
4
|
* The configuration of the rollup transaction publisher.
|
|
@@ -7,7 +7,7 @@ export interface TxSenderConfig extends L1Addresses {
|
|
|
7
7
|
/**
|
|
8
8
|
* The private key to be used by the publisher.
|
|
9
9
|
*/
|
|
10
|
-
publisherPrivateKey:
|
|
10
|
+
publisherPrivateKey: PrivateKey;
|
|
11
11
|
/**
|
|
12
12
|
* The RPC Url of the ethereum host.
|
|
13
13
|
*/
|
|
@@ -28,6 +28,6 @@ export interface PublisherConfig {
|
|
|
28
28
|
/**
|
|
29
29
|
* The interval to wait between publish retries.
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
l1BlockPublishRetryIntervalMS: number;
|
|
32
32
|
}
|
|
33
33
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/publisher/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/publisher/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD;;OAEG;IACH,mBAAmB,EAAE,UAAU,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,6BAA6B,EAAE,MAAM,CAAC;CACvC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import {
|
|
2
|
+
import { ContractDataAndBytecode, L2Block } from '@aztec/types';
|
|
3
3
|
import { L2BlockReceiver } from '../receiver.js';
|
|
4
4
|
import { PublisherConfig } from './config.js';
|
|
5
5
|
/**
|
|
@@ -32,7 +32,7 @@ export interface L1PublisherTxSender {
|
|
|
32
32
|
* @param contractData - Data to publish.
|
|
33
33
|
* @returns The hash of the mined tx.
|
|
34
34
|
*/
|
|
35
|
-
sendEmitContractDeploymentTx(l2BlockNum: number, l2BlockHash: Buffer, contractData:
|
|
35
|
+
sendEmitContractDeploymentTx(l2BlockNum: number, l2BlockHash: Buffer, contractData: ContractDataAndBytecode[]): Promise<(string | undefined)[]>;
|
|
36
36
|
/**
|
|
37
37
|
* Returns a tx receipt if the tx has been mined.
|
|
38
38
|
* @param txHash - Hash of the tx to look for.
|
|
@@ -81,7 +81,7 @@ export declare class L1Publisher implements L2BlockReceiver {
|
|
|
81
81
|
* @param contractData - The new contract data to publish.
|
|
82
82
|
* @returns True once the tx has been confirmed and is successful, false on revert or interrupt, blocks otherwise.
|
|
83
83
|
*/
|
|
84
|
-
processNewContractData(l2BlockNum: number, l2BlockHash: Buffer, contractData:
|
|
84
|
+
processNewContractData(l2BlockNum: number, l2BlockHash: Buffer, contractData: ContractDataAndBytecode[]): Promise<boolean>;
|
|
85
85
|
/**
|
|
86
86
|
* Calling `interrupt` will cause any in progress call to `publishRollup` to return `false` asap.
|
|
87
87
|
* Be warned, the call may return false even if the tx subsequently gets successfully mined.
|