@aztec/sequencer-client 2.1.0-rc.2 → 2.1.0-rc.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,KAAK,qBAAqB,EAAiC,MAAM,yBAAyB,CAAC;AAEpG,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,eAAe,GACjD,cAAc,GACd,qBAAqB,GACrB,cAAc,GACd,eAAe,GACf,cAAc,GACd,WAAW,GACX,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,GACzC,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,oBAAoB,CAAC,CAAC;AAE/F,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,KAAK,qBAAqB,EAAiC,MAAM,yBAAyB,CAAC;AAEpG,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,eAAe,GACjD,cAAc,GACd,qBAAqB,GACrB,cAAc,GACd,eAAe,GACf,cAAc,GACd,WAAW,GACX,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,GACzC,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,oBAAoB,CAAC,CAAC;AAE/F,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,CA2GvE,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,kBAAkB,CAAC,qBAAqB,CASnF,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,qBAAqB,CAExD"}
|
package/dest/config.js
CHANGED
|
@@ -106,6 +106,10 @@ export const sequencerConfigMappings = {
|
|
|
106
106
|
description: 'Do not invalidate the previous block if invalid when we are the proposer (for testing only)',
|
|
107
107
|
...booleanConfigHelper(false)
|
|
108
108
|
},
|
|
109
|
+
injectFakeAttestation: {
|
|
110
|
+
description: 'Inject a fake attestation (for testing only)',
|
|
111
|
+
...booleanConfigHelper(false)
|
|
112
|
+
},
|
|
109
113
|
...pickConfigMappings(p2pConfigMappings, [
|
|
110
114
|
'txPublicSetupAllowList'
|
|
111
115
|
])
|
|
@@ -5,10 +5,10 @@ import { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
5
5
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
6
6
|
import { Fr } from '@aztec/foundation/fields';
|
|
7
7
|
import { type DateProvider } from '@aztec/foundation/timer';
|
|
8
|
-
import type
|
|
8
|
+
import { type TypedEventEmitter } from '@aztec/foundation/types';
|
|
9
9
|
import type { P2P } from '@aztec/p2p';
|
|
10
10
|
import type { SlasherClientInterface } from '@aztec/slasher';
|
|
11
|
-
import {
|
|
11
|
+
import { CommitteeAttestation, CommitteeAttestationsAndSigners, type L2BlockSource, type ValidateBlockResult } from '@aztec/stdlib/block';
|
|
12
12
|
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
13
13
|
import { type IFullNodeBlockBuilder, type PublicProcessorLimits, type WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
14
14
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer.d.ts","sourceRoot":"","sources":["../../src/sequencer/sequencer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"sequencer.d.ts","sourceRoot":"","sources":["../../src/sequencer/sequencer.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,12 +7,14 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
7
7
|
import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB, INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
8
8
|
import { FormattedViemError, NoCommitteeError } from '@aztec/ethereum';
|
|
9
9
|
import { omit, pick } from '@aztec/foundation/collection';
|
|
10
|
+
import { randomInt } from '@aztec/foundation/crypto';
|
|
10
11
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
11
12
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
12
13
|
import { Fr } from '@aztec/foundation/fields';
|
|
13
14
|
import { createLogger } from '@aztec/foundation/log';
|
|
14
15
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
15
16
|
import { Timer } from '@aztec/foundation/timer';
|
|
17
|
+
import { unfreeze } from '@aztec/foundation/types';
|
|
16
18
|
import { CommitteeAttestationsAndSigners } from '@aztec/stdlib/block';
|
|
17
19
|
import { getSlotAtTimestamp, getSlotStartBuildTimestamp } from '@aztec/stdlib/epoch-helpers';
|
|
18
20
|
import { Gas } from '@aztec/stdlib/gas';
|
|
@@ -573,7 +575,14 @@ export { SequencerState };
|
|
|
573
575
|
const attestations = await this.validatorClient.collectAttestations(proposal, numberOfRequiredAttestations, attestationDeadline);
|
|
574
576
|
collectedAttestationsCount = attestations.length;
|
|
575
577
|
// note: the smart contract requires that the signatures are provided in the order of the committee
|
|
576
|
-
|
|
578
|
+
const sorted = orderAttestations(attestations, committee);
|
|
579
|
+
if (this.config.injectFakeAttestation) {
|
|
580
|
+
const nonEmpty = sorted.filter((a)=>!a.signature.isEmpty());
|
|
581
|
+
const randomIndex = randomInt(nonEmpty.length);
|
|
582
|
+
this.log.warn(`Injecting fake attestation in block ${block.number}`);
|
|
583
|
+
unfreeze(nonEmpty[randomIndex]).signature = Signature.random();
|
|
584
|
+
}
|
|
585
|
+
return sorted;
|
|
577
586
|
} catch (err) {
|
|
578
587
|
if (err && err instanceof AttestationTimeoutError) {
|
|
579
588
|
collectedAttestationsCount = err.collectedCount;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/sequencer-client",
|
|
3
|
-
"version": "2.1.0-rc.
|
|
3
|
+
"version": "2.1.0-rc.20",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -26,37 +26,37 @@
|
|
|
26
26
|
"test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@aztec/aztec.js": "2.1.0-rc.
|
|
30
|
-
"@aztec/bb-prover": "2.1.0-rc.
|
|
31
|
-
"@aztec/blob-lib": "2.1.0-rc.
|
|
32
|
-
"@aztec/blob-sink": "2.1.0-rc.
|
|
33
|
-
"@aztec/constants": "2.1.0-rc.
|
|
34
|
-
"@aztec/epoch-cache": "2.1.0-rc.
|
|
35
|
-
"@aztec/ethereum": "2.1.0-rc.
|
|
36
|
-
"@aztec/foundation": "2.1.0-rc.
|
|
37
|
-
"@aztec/l1-artifacts": "2.1.0-rc.
|
|
38
|
-
"@aztec/merkle-tree": "2.1.0-rc.
|
|
39
|
-
"@aztec/node-keystore": "2.1.0-rc.
|
|
40
|
-
"@aztec/noir-acvm_js": "2.1.0-rc.
|
|
41
|
-
"@aztec/noir-contracts.js": "2.1.0-rc.
|
|
42
|
-
"@aztec/noir-protocol-circuits-types": "2.1.0-rc.
|
|
43
|
-
"@aztec/noir-types": "2.1.0-rc.
|
|
44
|
-
"@aztec/p2p": "2.1.0-rc.
|
|
45
|
-
"@aztec/protocol-contracts": "2.1.0-rc.
|
|
46
|
-
"@aztec/prover-client": "2.1.0-rc.
|
|
47
|
-
"@aztec/simulator": "2.1.0-rc.
|
|
48
|
-
"@aztec/slasher": "2.1.0-rc.
|
|
49
|
-
"@aztec/stdlib": "2.1.0-rc.
|
|
50
|
-
"@aztec/telemetry-client": "2.1.0-rc.
|
|
51
|
-
"@aztec/validator-client": "2.1.0-rc.
|
|
52
|
-
"@aztec/world-state": "2.1.0-rc.
|
|
29
|
+
"@aztec/aztec.js": "2.1.0-rc.20",
|
|
30
|
+
"@aztec/bb-prover": "2.1.0-rc.20",
|
|
31
|
+
"@aztec/blob-lib": "2.1.0-rc.20",
|
|
32
|
+
"@aztec/blob-sink": "2.1.0-rc.20",
|
|
33
|
+
"@aztec/constants": "2.1.0-rc.20",
|
|
34
|
+
"@aztec/epoch-cache": "2.1.0-rc.20",
|
|
35
|
+
"@aztec/ethereum": "2.1.0-rc.20",
|
|
36
|
+
"@aztec/foundation": "2.1.0-rc.20",
|
|
37
|
+
"@aztec/l1-artifacts": "2.1.0-rc.20",
|
|
38
|
+
"@aztec/merkle-tree": "2.1.0-rc.20",
|
|
39
|
+
"@aztec/node-keystore": "2.1.0-rc.20",
|
|
40
|
+
"@aztec/noir-acvm_js": "2.1.0-rc.20",
|
|
41
|
+
"@aztec/noir-contracts.js": "2.1.0-rc.20",
|
|
42
|
+
"@aztec/noir-protocol-circuits-types": "2.1.0-rc.20",
|
|
43
|
+
"@aztec/noir-types": "2.1.0-rc.20",
|
|
44
|
+
"@aztec/p2p": "2.1.0-rc.20",
|
|
45
|
+
"@aztec/protocol-contracts": "2.1.0-rc.20",
|
|
46
|
+
"@aztec/prover-client": "2.1.0-rc.20",
|
|
47
|
+
"@aztec/simulator": "2.1.0-rc.20",
|
|
48
|
+
"@aztec/slasher": "2.1.0-rc.20",
|
|
49
|
+
"@aztec/stdlib": "2.1.0-rc.20",
|
|
50
|
+
"@aztec/telemetry-client": "2.1.0-rc.20",
|
|
51
|
+
"@aztec/validator-client": "2.1.0-rc.20",
|
|
52
|
+
"@aztec/world-state": "2.1.0-rc.20",
|
|
53
53
|
"lodash.chunk": "^4.2.0",
|
|
54
54
|
"tslib": "^2.4.0",
|
|
55
|
-
"viem": "2.
|
|
55
|
+
"viem": "npm:@spalladino/viem@2.38.2-eip7594.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@aztec/archiver": "2.1.0-rc.
|
|
59
|
-
"@aztec/kv-store": "2.1.0-rc.
|
|
58
|
+
"@aztec/archiver": "2.1.0-rc.20",
|
|
59
|
+
"@aztec/kv-store": "2.1.0-rc.20",
|
|
60
60
|
"@jest/globals": "^30.0.0",
|
|
61
61
|
"@types/jest": "^30.0.0",
|
|
62
62
|
"@types/lodash.chunk": "^4.2.7",
|
package/src/config.ts
CHANGED
|
@@ -145,6 +145,10 @@ export const sequencerConfigMappings: ConfigMappingsType<SequencerConfig> = {
|
|
|
145
145
|
description: 'Do not invalidate the previous block if invalid when we are the proposer (for testing only)',
|
|
146
146
|
...booleanConfigHelper(false),
|
|
147
147
|
},
|
|
148
|
+
injectFakeAttestation: {
|
|
149
|
+
description: 'Inject a fake attestation (for testing only)',
|
|
150
|
+
...booleanConfigHelper(false),
|
|
151
|
+
},
|
|
148
152
|
...pickConfigMappings(p2pConfigMappings, ['txPublicSetupAllowList']),
|
|
149
153
|
};
|
|
150
154
|
|
|
@@ -3,17 +3,18 @@ import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB, INITIAL_L2_BLOCK_NUM } from '@aztec/c
|
|
|
3
3
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
4
4
|
import { FormattedViemError, NoCommitteeError, type RollupContract } from '@aztec/ethereum';
|
|
5
5
|
import { omit, pick } from '@aztec/foundation/collection';
|
|
6
|
+
import { randomInt } from '@aztec/foundation/crypto';
|
|
6
7
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
7
8
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
8
9
|
import { Fr } from '@aztec/foundation/fields';
|
|
9
10
|
import { createLogger } from '@aztec/foundation/log';
|
|
10
11
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
11
12
|
import { type DateProvider, Timer } from '@aztec/foundation/timer';
|
|
12
|
-
import type
|
|
13
|
+
import { type TypedEventEmitter, unfreeze } from '@aztec/foundation/types';
|
|
13
14
|
import type { P2P } from '@aztec/p2p';
|
|
14
15
|
import type { SlasherClientInterface } from '@aztec/slasher';
|
|
15
16
|
import {
|
|
16
|
-
|
|
17
|
+
CommitteeAttestation,
|
|
17
18
|
CommitteeAttestationsAndSigners,
|
|
18
19
|
type L2BlockSource,
|
|
19
20
|
type ValidateBlockResult,
|
|
@@ -767,7 +768,14 @@ export class Sequencer extends (EventEmitter as new () => TypedEventEmitter<Sequ
|
|
|
767
768
|
collectedAttestationsCount = attestations.length;
|
|
768
769
|
|
|
769
770
|
// note: the smart contract requires that the signatures are provided in the order of the committee
|
|
770
|
-
|
|
771
|
+
const sorted = orderAttestations(attestations, committee);
|
|
772
|
+
if (this.config.injectFakeAttestation) {
|
|
773
|
+
const nonEmpty = sorted.filter(a => !a.signature.isEmpty());
|
|
774
|
+
const randomIndex = randomInt(nonEmpty.length);
|
|
775
|
+
this.log.warn(`Injecting fake attestation in block ${block.number}`);
|
|
776
|
+
unfreeze(nonEmpty[randomIndex]).signature = Signature.random();
|
|
777
|
+
}
|
|
778
|
+
return sorted;
|
|
771
779
|
} catch (err) {
|
|
772
780
|
if (err && err instanceof AttestationTimeoutError) {
|
|
773
781
|
collectedAttestationsCount = err.collectedCount;
|