@aztec/sequencer-client 0.1.0-alpha20 → 0.1.0-alpha21
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/solo_block_builder.js +4 -4
- package/dest/block_builder/solo_block_builder.test.d.ts.map +1 -1
- package/dest/block_builder/solo_block_builder.test.js +10 -11
- package/dest/index.d.ts +0 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -2
- package/dest/sequencer/public_processor.d.ts +2 -2
- package/dest/sequencer/public_processor.d.ts.map +1 -1
- package/dest/sequencer/public_processor.js +10 -10
- package/dest/sequencer/public_processor.test.js +10 -11
- package/dest/sequencer/sequencer.test.js +4 -5
- package/package.json +10 -10
- package/src/block_builder/solo_block_builder.test.ts +23 -14
- package/src/block_builder/solo_block_builder.ts +4 -4
- package/src/index.ts +0 -1
- package/src/sequencer/public_processor.test.ts +10 -10
- package/src/sequencer/public_processor.ts +17 -15
- package/src/sequencer/sequencer.test.ts +4 -4
- package/dest/mocks/tx.d.ts +0 -10
- package/dest/mocks/tx.d.ts.map +0 -1
- package/dest/mocks/tx.js +0 -18
- package/src/mocks/tx.ts +0 -26
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { CombinedHistoricTreeRoots, Fr, GlobalVariables, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, makeEmptyProof, } from '@aztec/circuits.js';
|
|
2
2
|
import { P2PClientState } from '@aztec/p2p';
|
|
3
|
-
import { L2Block, MerkleTreeId, Tx, TxHash } from '@aztec/types';
|
|
3
|
+
import { L2Block, MerkleTreeId, mockTx, Tx, TxHash } from '@aztec/types';
|
|
4
4
|
import { WorldStateRunningState } from '@aztec/world-state';
|
|
5
5
|
import { mock } from 'jest-mock-extended';
|
|
6
6
|
import times from 'lodash.times';
|
|
7
|
-
import { makeTx } from '../index.js';
|
|
8
7
|
import { makeEmptyProcessedTx, makeProcessedTx } from './processed_tx.js';
|
|
9
8
|
import { Sequencer } from './sequencer.js';
|
|
10
9
|
describe('sequencer', () => {
|
|
@@ -54,7 +53,7 @@ describe('sequencer', () => {
|
|
|
54
53
|
});
|
|
55
54
|
});
|
|
56
55
|
it('builds a block out of a single tx', async () => {
|
|
57
|
-
const tx =
|
|
56
|
+
const tx = mockTx();
|
|
58
57
|
const block = L2Block.random(lastBlockNumber + 1);
|
|
59
58
|
const proof = makeEmptyProof();
|
|
60
59
|
p2p.getTxs.mockResolvedValueOnce([tx]);
|
|
@@ -68,7 +67,7 @@ describe('sequencer', () => {
|
|
|
68
67
|
expect(publisher.processL2Block).toHaveBeenCalledWith(block);
|
|
69
68
|
});
|
|
70
69
|
it('builds a block out of several txs rejecting double spends', async () => {
|
|
71
|
-
const txs = [
|
|
70
|
+
const txs = [mockTx(0x10000), mockTx(0x20000), mockTx(0x30000)];
|
|
72
71
|
const doubleSpendTx = txs[1];
|
|
73
72
|
const block = L2Block.random(lastBlockNumber + 1);
|
|
74
73
|
const proof = makeEmptyProof();
|
|
@@ -97,4 +96,4 @@ class TestSubject extends Sequencer {
|
|
|
97
96
|
return super.initialSync();
|
|
98
97
|
}
|
|
99
98
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VxdWVuY2VyL3NlcXVlbmNlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsRUFBRSxFQUNGLGVBQWUsRUFDZixtQ0FBbUMsRUFDbkMsY0FBYyxHQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFPLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQXVCLE9BQU8sRUFBaUIsWUFBWSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdHLE9BQU8sRUFBd0Isc0JBQXNCLEVBQTBCLE1BQU0sb0JBQW9CLENBQUM7QUFDMUcsT0FBTyxFQUFhLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUdqQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO0lBQ3pCLElBQUksU0FBaUMsQ0FBQztJQUN0QyxJQUFJLHFCQUF1RCxDQUFDO0lBQzVELElBQUksR0FBbUIsQ0FBQztJQUN4QixJQUFJLFVBQTZDLENBQUM7SUFDbEQsSUFBSSxZQUFxQyxDQUFDO0lBQzFDLElBQUksYUFBOEMsQ0FBQztJQUNuRCxJQUFJLGVBQTJDLENBQUM7SUFDaEQsSUFBSSxhQUF1QyxDQUFDO0lBQzVDLElBQUksbUJBQW1ELENBQUM7SUFDeEQsSUFBSSxzQkFBeUQsQ0FBQztJQUU5RCxJQUFJLGVBQXVCLENBQUM7SUFFNUIsSUFBSSxTQUFzQixDQUFDO0lBRTNCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxJQUFJ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
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/sequencer-client",
|
|
3
|
-
"version": "0.1.0-
|
|
3
|
+
"version": "0.1.0-alpha21",
|
|
4
4
|
"exports": "./dest/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@aztec/acir-simulator": "0.1.0-
|
|
8
|
-
"@aztec/circuits.js": "0.1.0-
|
|
9
|
-
"@aztec/ethereum": "0.1.0-
|
|
10
|
-
"@aztec/foundation": "0.1.0-
|
|
11
|
-
"@aztec/l1-artifacts": "0.1.0-
|
|
12
|
-
"@aztec/merkle-tree": "0.1.0-
|
|
13
|
-
"@aztec/p2p": "0.1.0-
|
|
14
|
-
"@aztec/types": "0.1.0-
|
|
15
|
-
"@aztec/world-state": "0.1.0-
|
|
7
|
+
"@aztec/acir-simulator": "0.1.0-alpha21",
|
|
8
|
+
"@aztec/circuits.js": "0.1.0-alpha21",
|
|
9
|
+
"@aztec/ethereum": "0.1.0-alpha21",
|
|
10
|
+
"@aztec/foundation": "0.1.0-alpha21",
|
|
11
|
+
"@aztec/l1-artifacts": "0.1.0-alpha21",
|
|
12
|
+
"@aztec/merkle-tree": "0.1.0-alpha21",
|
|
13
|
+
"@aztec/p2p": "0.1.0-alpha21",
|
|
14
|
+
"@aztec/types": "0.1.0-alpha21",
|
|
15
|
+
"@aztec/world-state": "0.1.0-alpha21",
|
|
16
16
|
"lodash.chunk": "^4.2.0",
|
|
17
17
|
"lodash.flatmap": "^4.5.0",
|
|
18
18
|
"lodash.pick": "^4.4.0",
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
CircuitsWasm,
|
|
6
6
|
Fr,
|
|
7
7
|
GlobalVariables,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
MAX_NEW_COMMITMENTS_PER_TX,
|
|
9
|
+
MAX_NEW_L2_TO_L1_MSGS_PER_TX,
|
|
10
|
+
MAX_NEW_NULLIFIERS_PER_TX,
|
|
11
|
+
MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX,
|
|
12
|
+
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
13
13
|
KernelCircuitPublicInputs,
|
|
14
14
|
NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP,
|
|
15
15
|
Proof,
|
|
@@ -29,14 +29,23 @@ import {
|
|
|
29
29
|
makeRootRollupPublicInputs,
|
|
30
30
|
} from '@aztec/circuits.js/factories';
|
|
31
31
|
import { toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
32
|
-
import {
|
|
32
|
+
import {
|
|
33
|
+
ContractData,
|
|
34
|
+
L2Block,
|
|
35
|
+
L2BlockL2Logs,
|
|
36
|
+
MerkleTreeId,
|
|
37
|
+
mockTx,
|
|
38
|
+
PublicDataWrite,
|
|
39
|
+
Tx,
|
|
40
|
+
TxL2Logs,
|
|
41
|
+
makeEmptyLogs,
|
|
42
|
+
} from '@aztec/types';
|
|
33
43
|
import { MerkleTreeOperations, MerkleTrees } from '@aztec/world-state';
|
|
34
44
|
import { MockProxy, mock } from 'jest-mock-extended';
|
|
35
45
|
import { default as levelup } from 'levelup';
|
|
36
46
|
import flatMap from 'lodash.flatmap';
|
|
37
47
|
import times from 'lodash.times';
|
|
38
48
|
import { default as memdown, type MemDown } from 'memdown';
|
|
39
|
-
import { makeEmptyLogs, makeTx } from '../mocks/tx.js';
|
|
40
49
|
import { VerificationKeys, getVerificationKeys } from '../mocks/verification_keys.js';
|
|
41
50
|
import { EmptyRollupProver } from '../prover/empty.js';
|
|
42
51
|
import { RollupProver } from '../prover/index.js';
|
|
@@ -154,7 +163,7 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
154
163
|
makeEmptyLogs(),
|
|
155
164
|
makeEmptyLogs(),
|
|
156
165
|
[],
|
|
157
|
-
times(
|
|
166
|
+
times(MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, makePublicCallRequest),
|
|
158
167
|
),
|
|
159
168
|
);
|
|
160
169
|
|
|
@@ -288,21 +297,21 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
288
297
|
};
|
|
289
298
|
|
|
290
299
|
const makeBloatedProcessedTx = async (seed = 0x1) => {
|
|
291
|
-
const tx =
|
|
300
|
+
const tx = mockTx(seed);
|
|
292
301
|
const kernelOutput = KernelCircuitPublicInputs.empty();
|
|
293
302
|
kernelOutput.constants.historicTreeRoots = await getCombinedHistoricTreeRoots(builderDb);
|
|
294
303
|
kernelOutput.end.publicDataUpdateRequests = makeTuple(
|
|
295
|
-
|
|
304
|
+
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
296
305
|
i => new PublicDataUpdateRequest(fr(i), fr(0), fr(i + 10)),
|
|
297
306
|
seed + 0x500,
|
|
298
307
|
);
|
|
299
308
|
|
|
300
309
|
const processedTx = await makeProcessedTx(tx, kernelOutput, makeProof());
|
|
301
310
|
|
|
302
|
-
processedTx.data.end.newCommitments = makeTuple(
|
|
303
|
-
processedTx.data.end.newNullifiers = makeTuple(
|
|
311
|
+
processedTx.data.end.newCommitments = makeTuple(MAX_NEW_COMMITMENTS_PER_TX, fr, seed + 0x100);
|
|
312
|
+
processedTx.data.end.newNullifiers = makeTuple(MAX_NEW_NULLIFIERS_PER_TX, fr, seed + 0x200);
|
|
304
313
|
processedTx.data.end.newNullifiers[tx.data.end.newNullifiers.length - 1] = Fr.ZERO;
|
|
305
|
-
processedTx.data.end.newL2ToL1Msgs = makeTuple(
|
|
314
|
+
processedTx.data.end.newL2ToL1Msgs = makeTuple(MAX_NEW_L2_TO_L1_MSGS_PER_TX, fr, seed + 0x300);
|
|
306
315
|
processedTx.data.end.newContracts = [makeNewContractData(seed + 0x1000)];
|
|
307
316
|
processedTx.data.end.encryptedLogsHash = to2Fields(L2Block.computeKernelLogsHash(processedTx.encryptedLogs));
|
|
308
317
|
processedTx.data.end.unencryptedLogsHash = to2Fields(L2Block.computeKernelLogsHash(processedTx.unencryptedLogs));
|
|
@@ -375,7 +384,7 @@ describe('sequencer/solo_block_builder', () => {
|
|
|
375
384
|
const prover = new EmptyRollupProver();
|
|
376
385
|
builder = new SoloBlockBuilder(builderDb, vks, simulator, prover);
|
|
377
386
|
// update the starting tree
|
|
378
|
-
const updateVals = Array(4 *
|
|
387
|
+
const updateVals = Array(4 * MAX_NEW_NULLIFIERS_PER_TX).fill(0n);
|
|
379
388
|
updateVals[0] = 19777494491628650244807463906174285795660759352776418619064841306523677458742n;
|
|
380
389
|
updateVals[1] = 10246291467305176436335175657884940686778521321101740385288169037814567547848n;
|
|
381
390
|
|
|
@@ -6,8 +6,8 @@ import {
|
|
|
6
6
|
CircuitsWasm,
|
|
7
7
|
ConstantBaseRollupData,
|
|
8
8
|
GlobalVariables,
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
L1_TO_L2_MSG_ROOTS_TREE_HEIGHT,
|
|
10
|
+
L1_TO_L2_MSG_SUBTREE_HEIGHT,
|
|
11
11
|
MembershipWitness,
|
|
12
12
|
MergeRollupInputs,
|
|
13
13
|
NULLIFIER_TREE_HEIGHT,
|
|
@@ -426,7 +426,7 @@ export class SoloBlockBuilder implements BlockBuilder {
|
|
|
426
426
|
);
|
|
427
427
|
const newL1ToL2MessageTreeRootSiblingPath = await this.getSubtreeSiblingPath(
|
|
428
428
|
MerkleTreeId.L1_TO_L2_MESSAGES_TREE,
|
|
429
|
-
|
|
429
|
+
L1_TO_L2_MSG_SUBTREE_HEIGHT,
|
|
430
430
|
);
|
|
431
431
|
|
|
432
432
|
// Get tree snapshots
|
|
@@ -518,7 +518,7 @@ export class SoloBlockBuilder implements BlockBuilder {
|
|
|
518
518
|
return this.getMembershipWitnessFor(
|
|
519
519
|
tx.data.constants.historicTreeRoots.privateHistoricTreeRoots.l1ToL2MessagesTreeRoot,
|
|
520
520
|
MerkleTreeId.L1_TO_L2_MESSAGES_ROOTS_TREE,
|
|
521
|
-
|
|
521
|
+
L1_TO_L2_MSG_ROOTS_TREE_HEIGHT,
|
|
522
522
|
);
|
|
523
523
|
}
|
|
524
524
|
|
package/src/index.ts
CHANGED
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
Fr,
|
|
8
8
|
FunctionData,
|
|
9
9
|
GlobalVariables,
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX,
|
|
11
|
+
MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX,
|
|
12
12
|
PUBLIC_DATA_TREE_HEIGHT,
|
|
13
13
|
Proof,
|
|
14
14
|
PublicCallRequest,
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
EncodedContractFunction,
|
|
31
31
|
ExecutionRequest,
|
|
32
32
|
FunctionL2Logs,
|
|
33
|
+
mockTx,
|
|
33
34
|
Tx,
|
|
34
35
|
TxL2Logs,
|
|
35
36
|
} from '@aztec/types';
|
|
@@ -37,7 +38,6 @@ import { MerkleTreeOperations, TreeInfo } from '@aztec/world-state';
|
|
|
37
38
|
import { MockProxy, mock } from 'jest-mock-extended';
|
|
38
39
|
import pick from 'lodash.pick';
|
|
39
40
|
import times from 'lodash.times';
|
|
40
|
-
import { makeTx } from '../index.js';
|
|
41
41
|
import { PublicProver } from '../prover/index.js';
|
|
42
42
|
import { PublicKernelCircuitSimulator } from '../simulator/index.js';
|
|
43
43
|
import { WasmPublicKernelCircuitSimulator } from '../simulator/public_kernel.js';
|
|
@@ -83,8 +83,8 @@ describe('public_processor', () => {
|
|
|
83
83
|
});
|
|
84
84
|
|
|
85
85
|
it('skips txs without public execution requests', async function () {
|
|
86
|
-
const tx =
|
|
87
|
-
tx.data.end.publicCallStack = makeTuple(
|
|
86
|
+
const tx = mockTx();
|
|
87
|
+
tx.data.end.publicCallStack = makeTuple(MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, Fr.zero);
|
|
88
88
|
const hash = await tx.getTxHash();
|
|
89
89
|
const [processed, failed] = await processor.process([tx], GlobalVariables.empty());
|
|
90
90
|
|
|
@@ -97,7 +97,7 @@ describe('public_processor', () => {
|
|
|
97
97
|
it('returns failed txs without aborting entire operation', async function () {
|
|
98
98
|
publicExecutor.execute.mockRejectedValue(new Error(`Failed`));
|
|
99
99
|
|
|
100
|
-
const tx =
|
|
100
|
+
const tx = mockTx();
|
|
101
101
|
const [processed, failed] = await processor.process([tx], GlobalVariables.empty());
|
|
102
102
|
|
|
103
103
|
expect(processed).toEqual([]);
|
|
@@ -132,8 +132,8 @@ describe('public_processor', () => {
|
|
|
132
132
|
const callStackHashes = callStackItems.map(call => computeCallStackItemHash(wasm, call));
|
|
133
133
|
|
|
134
134
|
const kernelOutput = makeKernelPublicInputs(0x10);
|
|
135
|
-
kernelOutput.end.publicCallStack = padArrayEnd(callStackHashes, Fr.ZERO,
|
|
136
|
-
kernelOutput.end.privateCallStack = padArrayEnd([], Fr.ZERO,
|
|
135
|
+
kernelOutput.end.publicCallStack = padArrayEnd(callStackHashes, Fr.ZERO, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX);
|
|
136
|
+
kernelOutput.end.privateCallStack = padArrayEnd([], Fr.ZERO, MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX);
|
|
137
137
|
|
|
138
138
|
const tx = new Tx(kernelOutput, proof, TxL2Logs.random(2, 3), TxL2Logs.random(3, 2), [], callRequests);
|
|
139
139
|
|
|
@@ -160,8 +160,8 @@ describe('public_processor', () => {
|
|
|
160
160
|
const callStackHash = computeCallStackItemHash(wasm, callStackItem);
|
|
161
161
|
|
|
162
162
|
const kernelOutput = makeKernelPublicInputs(0x10);
|
|
163
|
-
kernelOutput.end.publicCallStack = padArrayEnd([callStackHash], Fr.ZERO,
|
|
164
|
-
kernelOutput.end.privateCallStack = padArrayEnd([], Fr.ZERO,
|
|
163
|
+
kernelOutput.end.publicCallStack = padArrayEnd([callStackHash], Fr.ZERO, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX);
|
|
164
|
+
kernelOutput.end.privateCallStack = padArrayEnd([], Fr.ZERO, MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX);
|
|
165
165
|
|
|
166
166
|
const tx = new Tx(kernelOutput, proof, TxL2Logs.random(2, 3), TxL2Logs.random(3, 2), [], [callRequest]);
|
|
167
167
|
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
ContractStorageUpdateRequest,
|
|
7
7
|
Fr,
|
|
8
8
|
GlobalVariables,
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
MAX_PUBLIC_DATA_READS_PER_CALL,
|
|
10
|
+
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,
|
|
11
11
|
KernelCircuitPublicInputs,
|
|
12
12
|
MembershipWitness,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
MAX_NEW_COMMITMENTS_PER_CALL,
|
|
14
|
+
MAX_NEW_L2_TO_L1_MSGS_PER_CALL,
|
|
15
|
+
MAX_NEW_NULLIFIERS_PER_CALL,
|
|
16
|
+
MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,
|
|
17
17
|
PreviousKernelData,
|
|
18
18
|
Proof,
|
|
19
19
|
PublicCallData,
|
|
@@ -210,19 +210,19 @@ export class PublicProcessor {
|
|
|
210
210
|
callContext: result.execution.callContext,
|
|
211
211
|
proverAddress: AztecAddress.random(),
|
|
212
212
|
argsHash: await computeVarArgsHash(wasm, result.execution.args),
|
|
213
|
-
newCommitments: padArrayEnd(result.newCommitments, Fr.ZERO,
|
|
214
|
-
newNullifiers: padArrayEnd(result.newNullifiers, Fr.ZERO,
|
|
215
|
-
newL2ToL1Msgs: padArrayEnd(result.newL2ToL1Messages, Fr.ZERO,
|
|
213
|
+
newCommitments: padArrayEnd(result.newCommitments, Fr.ZERO, MAX_NEW_COMMITMENTS_PER_CALL),
|
|
214
|
+
newNullifiers: padArrayEnd(result.newNullifiers, Fr.ZERO, MAX_NEW_NULLIFIERS_PER_CALL),
|
|
215
|
+
newL2ToL1Msgs: padArrayEnd(result.newL2ToL1Messages, Fr.ZERO, MAX_NEW_L2_TO_L1_MSGS_PER_CALL),
|
|
216
216
|
returnValues: padArrayEnd(result.returnValues, Fr.ZERO, RETURN_VALUES_LENGTH),
|
|
217
217
|
contractStorageReads: padArrayEnd(
|
|
218
218
|
result.contractStorageReads,
|
|
219
219
|
ContractStorageRead.empty(),
|
|
220
|
-
|
|
220
|
+
MAX_PUBLIC_DATA_READS_PER_CALL,
|
|
221
221
|
),
|
|
222
222
|
contractStorageUpdateRequests: padArrayEnd(
|
|
223
223
|
result.contractStorageUpdateRequests,
|
|
224
224
|
ContractStorageUpdateRequest.empty(),
|
|
225
|
-
|
|
225
|
+
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,
|
|
226
226
|
),
|
|
227
227
|
publicCallStack,
|
|
228
228
|
unencryptedLogsHash,
|
|
@@ -243,12 +243,14 @@ export class PublicProcessor {
|
|
|
243
243
|
protected async getPublicCallStackPreimages(result: PublicExecutionResult) {
|
|
244
244
|
const nested = result.nestedExecutions;
|
|
245
245
|
const preimages: PublicCallStackItem[] = await Promise.all(nested.map(n => this.getPublicCallStackItem(n)));
|
|
246
|
-
if (preimages.length >
|
|
247
|
-
throw new Error(
|
|
246
|
+
if (preimages.length > MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL) {
|
|
247
|
+
throw new Error(
|
|
248
|
+
`Public call stack size exceeded (max ${MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL}, got ${preimages.length})`,
|
|
249
|
+
);
|
|
248
250
|
}
|
|
249
251
|
|
|
250
252
|
// Top of the stack is at the end of the array, so we padStart
|
|
251
|
-
return padArrayStart(preimages, PublicCallStackItem.empty(),
|
|
253
|
+
return padArrayStart(preimages, PublicCallStackItem.empty(), MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL);
|
|
252
254
|
}
|
|
253
255
|
|
|
254
256
|
protected getBytecodeHash(_result: PublicExecutionResult) {
|
|
@@ -268,7 +270,7 @@ export class PublicProcessor {
|
|
|
268
270
|
*/
|
|
269
271
|
protected async getPublicCallData(
|
|
270
272
|
result: PublicExecutionResult,
|
|
271
|
-
preimages: Tuple<PublicCallStackItem, typeof
|
|
273
|
+
preimages: Tuple<PublicCallStackItem, typeof MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,
|
|
272
274
|
isExecutionRequest = false,
|
|
273
275
|
) {
|
|
274
276
|
const bytecodeHash = await this.getBytecodeHash(result);
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
makeEmptyProof,
|
|
7
7
|
} from '@aztec/circuits.js';
|
|
8
8
|
import { P2P, P2PClientState } from '@aztec/p2p';
|
|
9
|
-
import { L1ToL2MessageSource, L2Block, L2BlockSource, MerkleTreeId, Tx, TxHash } from '@aztec/types';
|
|
9
|
+
import { L1ToL2MessageSource, L2Block, L2BlockSource, MerkleTreeId, mockTx, Tx, TxHash } from '@aztec/types';
|
|
10
10
|
import { MerkleTreeOperations, WorldStateRunningState, WorldStateSynchroniser } from '@aztec/world-state';
|
|
11
11
|
import { MockProxy, mock } from 'jest-mock-extended';
|
|
12
12
|
import times from 'lodash.times';
|
|
13
13
|
import { BlockBuilder } from '../block_builder/index.js';
|
|
14
|
-
import { L1Publisher
|
|
14
|
+
import { L1Publisher } from '../index.js';
|
|
15
15
|
import { makeEmptyProcessedTx, makeProcessedTx } from './processed_tx.js';
|
|
16
16
|
import { PublicProcessor, PublicProcessorFactory } from './public_processor.js';
|
|
17
17
|
import { Sequencer } from './sequencer.js';
|
|
@@ -87,7 +87,7 @@ describe('sequencer', () => {
|
|
|
87
87
|
});
|
|
88
88
|
|
|
89
89
|
it('builds a block out of a single tx', async () => {
|
|
90
|
-
const tx =
|
|
90
|
+
const tx = mockTx();
|
|
91
91
|
const block = L2Block.random(lastBlockNumber + 1);
|
|
92
92
|
const proof = makeEmptyProof();
|
|
93
93
|
|
|
@@ -112,7 +112,7 @@ describe('sequencer', () => {
|
|
|
112
112
|
});
|
|
113
113
|
|
|
114
114
|
it('builds a block out of several txs rejecting double spends', async () => {
|
|
115
|
-
const txs = [
|
|
115
|
+
const txs = [mockTx(0x10000), mockTx(0x20000), mockTx(0x30000)];
|
|
116
116
|
const doubleSpendTx = txs[1];
|
|
117
117
|
const block = L2Block.random(lastBlockNumber + 1);
|
|
118
118
|
const proof = makeEmptyProof();
|
package/dest/mocks/tx.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Tx, TxL2Logs } from '@aztec/types';
|
|
2
|
-
/**
|
|
3
|
-
* Testing utility to create empty logs composed from a single empty log.
|
|
4
|
-
*/
|
|
5
|
-
export declare function makeEmptyLogs(): TxL2Logs;
|
|
6
|
-
/**
|
|
7
|
-
* Testing utility to create a tx with gibberish kernel circuit output, random logs, and an empty proof.
|
|
8
|
-
*/
|
|
9
|
-
export declare function makeTx(seed?: number): Tx;
|
|
10
|
-
//# sourceMappingURL=tx.d.ts.map
|
package/dest/mocks/tx.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/mocks/tx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,EAAE,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG5D;;GAEG;AACH,wBAAgB,aAAa,IAAI,QAAQ,CAGxC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,SAAI,MAS9B"}
|
package/dest/mocks/tx.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { KERNEL_PUBLIC_CALL_STACK_LENGTH, makeEmptyProof } from '@aztec/circuits.js';
|
|
2
|
-
import { makeKernelPublicInputs, makePublicCallRequest } from '@aztec/circuits.js/factories';
|
|
3
|
-
import { FunctionL2Logs, Tx, TxL2Logs } from '@aztec/types';
|
|
4
|
-
import times from 'lodash.times';
|
|
5
|
-
/**
|
|
6
|
-
* Testing utility to create empty logs composed from a single empty log.
|
|
7
|
-
*/
|
|
8
|
-
export function makeEmptyLogs() {
|
|
9
|
-
const functionLogs = [new FunctionL2Logs([Buffer.alloc(0)])];
|
|
10
|
-
return new TxL2Logs(functionLogs);
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Testing utility to create a tx with gibberish kernel circuit output, random logs, and an empty proof.
|
|
14
|
-
*/
|
|
15
|
-
export function makeTx(seed = 0) {
|
|
16
|
-
return new Tx(makeKernelPublicInputs(seed), makeEmptyProof(), TxL2Logs.random(2, 3), TxL2Logs.random(3, 0), [], times(KERNEL_PUBLIC_CALL_STACK_LENGTH, makePublicCallRequest));
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvdHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLCtCQUErQixFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1RCxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFFakM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYTtJQUMzQixNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxPQUFPLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDN0IsT0FBTyxJQUFJLEVBQUUsQ0FDWCxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFDNUIsY0FBYyxFQUFFLEVBQ2hCLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNyQixRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDckIsRUFBRSxFQUNGLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUM5RCxDQUFDO0FBQ0osQ0FBQyJ9
|
package/src/mocks/tx.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { KERNEL_PUBLIC_CALL_STACK_LENGTH, makeEmptyProof } from '@aztec/circuits.js';
|
|
2
|
-
import { makeKernelPublicInputs, makePublicCallRequest } from '@aztec/circuits.js/factories';
|
|
3
|
-
import { FunctionL2Logs, Tx, TxL2Logs } from '@aztec/types';
|
|
4
|
-
import times from 'lodash.times';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Testing utility to create empty logs composed from a single empty log.
|
|
8
|
-
*/
|
|
9
|
-
export function makeEmptyLogs(): TxL2Logs {
|
|
10
|
-
const functionLogs = [new FunctionL2Logs([Buffer.alloc(0)])];
|
|
11
|
-
return new TxL2Logs(functionLogs);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Testing utility to create a tx with gibberish kernel circuit output, random logs, and an empty proof.
|
|
16
|
-
*/
|
|
17
|
-
export function makeTx(seed = 0) {
|
|
18
|
-
return new Tx(
|
|
19
|
-
makeKernelPublicInputs(seed),
|
|
20
|
-
makeEmptyProof(),
|
|
21
|
-
TxL2Logs.random(2, 3),
|
|
22
|
-
TxL2Logs.random(3, 0),
|
|
23
|
-
[],
|
|
24
|
-
times(KERNEL_PUBLIC_CALL_STACK_LENGTH, makePublicCallRequest),
|
|
25
|
-
);
|
|
26
|
-
}
|