@aztec/aztec-node 0.0.0-test.1 → 0.0.1-fake-ceab37513c
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/aztec-node/config.d.ts +14 -9
- package/dest/aztec-node/config.d.ts.map +1 -1
- package/dest/aztec-node/config.js +75 -14
- package/dest/aztec-node/server.d.ts +89 -50
- package/dest/aztec-node/server.d.ts.map +1 -1
- package/dest/aztec-node/server.js +514 -218
- package/dest/bin/index.js +4 -2
- package/dest/index.d.ts +0 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +0 -1
- package/dest/sentinel/config.d.ts +8 -0
- package/dest/sentinel/config.d.ts.map +1 -0
- package/dest/sentinel/config.js +29 -0
- package/dest/sentinel/factory.d.ts +9 -0
- package/dest/sentinel/factory.d.ts.map +1 -0
- package/dest/sentinel/factory.js +17 -0
- package/dest/sentinel/index.d.ts +3 -0
- package/dest/sentinel/index.d.ts.map +1 -0
- package/dest/sentinel/index.js +1 -0
- package/dest/sentinel/sentinel.d.ts +91 -0
- package/dest/sentinel/sentinel.d.ts.map +1 -0
- package/dest/sentinel/sentinel.js +391 -0
- package/dest/sentinel/store.d.ts +34 -0
- package/dest/sentinel/store.d.ts.map +1 -0
- package/dest/sentinel/store.js +169 -0
- package/dest/test/index.d.ts +31 -0
- package/dest/test/index.d.ts.map +1 -0
- package/dest/test/index.js +1 -0
- package/package.json +42 -32
- package/src/aztec-node/config.ts +128 -25
- package/src/aztec-node/server.ts +677 -277
- package/src/bin/index.ts +4 -2
- package/src/index.ts +0 -1
- package/src/sentinel/config.ts +37 -0
- package/src/sentinel/factory.ts +36 -0
- package/src/sentinel/index.ts +8 -0
- package/src/sentinel/sentinel.ts +489 -0
- package/src/sentinel/store.ts +184 -0
- package/src/test/index.ts +32 -0
- package/dest/aztec-node/http_rpc_server.d.ts +0 -8
- package/dest/aztec-node/http_rpc_server.d.ts.map +0 -1
- package/dest/aztec-node/http_rpc_server.js +0 -9
- package/src/aztec-node/http_rpc_server.ts +0 -11
|
@@ -1,20 +1,28 @@
|
|
|
1
1
|
import { type ArchiverConfig } from '@aztec/archiver/config';
|
|
2
|
+
import { type GenesisStateConfig, type L1ContractAddresses } from '@aztec/ethereum';
|
|
2
3
|
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
3
4
|
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
5
|
+
import { type KeyStore } from '@aztec/node-keystore';
|
|
6
|
+
import { type SharedNodeConfig } from '@aztec/node-lib/config';
|
|
4
7
|
import { type P2PConfig } from '@aztec/p2p/config';
|
|
5
|
-
import { type
|
|
6
|
-
import { type SequencerClientConfig, sequencerClientConfigMappings } from '@aztec/sequencer-client/config';
|
|
8
|
+
import { type ProverClientUserConfig } from '@aztec/prover-client/config';
|
|
9
|
+
import { type SequencerClientConfig, type TxSenderConfig, sequencerClientConfigMappings } from '@aztec/sequencer-client/config';
|
|
10
|
+
import { type NodeRPCConfig } from '@aztec/stdlib/config';
|
|
11
|
+
import type { SlasherConfig } from '@aztec/stdlib/interfaces/server';
|
|
7
12
|
import { type ValidatorClientConfig } from '@aztec/validator-client/config';
|
|
8
13
|
import { type WorldStateConfig } from '@aztec/world-state/config';
|
|
14
|
+
import { type SentinelConfig } from '../sentinel/config.js';
|
|
9
15
|
export { sequencerClientConfigMappings, type SequencerClientConfig };
|
|
10
16
|
/**
|
|
11
17
|
* The configuration the aztec node.
|
|
12
18
|
*/
|
|
13
|
-
export type AztecNodeConfig = ArchiverConfig & SequencerClientConfig & ValidatorClientConfig &
|
|
19
|
+
export type AztecNodeConfig = ArchiverConfig & SequencerClientConfig & ValidatorClientConfig & ProverClientUserConfig & WorldStateConfig & Pick<ProverClientUserConfig, 'bbBinaryPath' | 'bbWorkingDirectory' | 'realProofs'> & P2PConfig & DataStoreConfig & SentinelConfig & SharedNodeConfig & GenesisStateConfig & NodeRPCConfig & SlasherConfig & {
|
|
20
|
+
/** L1 contracts addresses */
|
|
21
|
+
l1Contracts: L1ContractAddresses;
|
|
14
22
|
/** Whether the validator is disabled for this node */
|
|
15
23
|
disableValidator: boolean;
|
|
16
|
-
/** Whether to
|
|
17
|
-
|
|
24
|
+
/** Whether to skip waiting for the archiver to be fully synced before starting other services */
|
|
25
|
+
skipArchiverInitialSync: boolean;
|
|
18
26
|
};
|
|
19
27
|
export declare const aztecNodeConfigMappings: ConfigMappingsType<AztecNodeConfig>;
|
|
20
28
|
/**
|
|
@@ -22,8 +30,5 @@ export declare const aztecNodeConfigMappings: ConfigMappingsType<AztecNodeConfig
|
|
|
22
30
|
* @returns A valid aztec node config.
|
|
23
31
|
*/
|
|
24
32
|
export declare function getConfigEnvVars(): AztecNodeConfig;
|
|
25
|
-
|
|
26
|
-
* Returns package version.
|
|
27
|
-
*/
|
|
28
|
-
export declare function getPackageVersion(): any;
|
|
33
|
+
export declare function createKeyStoreForValidator(config: TxSenderConfig & SequencerClientConfig & SharedNodeConfig): KeyStore | undefined;
|
|
29
34
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/aztec-node/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,EAA8C,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/aztec-node/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,wBAAwB,CAAC;AACrF,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAGzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,kBAAkB,EAA8C,MAAM,0BAA0B,CAAC;AAE/G,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EACL,KAAK,QAAQ,EAId,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,KAAK,sBAAsB,EAA8B,MAAM,6BAA6B,CAAC;AACtG,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,6BAA6B,EAC9B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,KAAK,qBAAqB,EAAiC,MAAM,gCAAgC,CAAC;AAC3G,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,2BAA2B,CAAC;AAI5F,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,uBAAuB,CAAC;AAEpF,OAAO,EAAE,6BAA6B,EAAE,KAAK,qBAAqB,EAAE,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,GAC1C,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,gBAAgB,GAChB,IAAI,CAAC,sBAAsB,EAAE,cAAc,GAAG,oBAAoB,GAAG,YAAY,CAAC,GAClF,SAAS,GACT,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,aAAa,GACb,aAAa,GAAG;IACd,6BAA6B;IAC7B,WAAW,EAAE,mBAAmB,CAAC;IACjC,sDAAsD;IACtD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iGAAiG;IACjG,uBAAuB,EAAE,OAAO,CAAC;CAClC,CAAC;AAEJ,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CAAC,eAAe,CA4BvE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,CAElD;AAoED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,cAAc,GAAG,qBAAqB,GAAG,gBAAgB,GAChE,QAAQ,GAAG,SAAS,CAMtB"}
|
|
@@ -1,32 +1,48 @@
|
|
|
1
1
|
import { archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
|
+
import { genesisStateConfigMappings, l1ContractAddressesMapping } from '@aztec/ethereum';
|
|
2
3
|
import { booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config';
|
|
4
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
5
|
import { dataConfigMappings } from '@aztec/kv-store/config';
|
|
6
|
+
import { ethPrivateKeySchema, keyStoreConfigMappings } from '@aztec/node-keystore';
|
|
7
|
+
import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
4
8
|
import { p2pConfigMappings } from '@aztec/p2p/config';
|
|
5
9
|
import { proverClientConfigMappings } from '@aztec/prover-client/config';
|
|
6
10
|
import { sequencerClientConfigMappings } from '@aztec/sequencer-client/config';
|
|
11
|
+
import { slasherConfigMappings } from '@aztec/slasher';
|
|
12
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
13
|
+
import { nodeRpcConfigMappings } from '@aztec/stdlib/config';
|
|
7
14
|
import { validatorClientConfigMappings } from '@aztec/validator-client/config';
|
|
8
15
|
import { worldStateConfigMappings } from '@aztec/world-state/config';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { fileURLToPath } from 'url';
|
|
16
|
+
import { privateKeyToAddress } from 'viem/accounts';
|
|
17
|
+
import { sentinelConfigMappings } from '../sentinel/config.js';
|
|
12
18
|
export { sequencerClientConfigMappings };
|
|
13
19
|
export const aztecNodeConfigMappings = {
|
|
20
|
+
...dataConfigMappings,
|
|
21
|
+
...keyStoreConfigMappings,
|
|
14
22
|
...archiverConfigMappings,
|
|
15
23
|
...sequencerClientConfigMappings,
|
|
16
24
|
...validatorClientConfigMappings,
|
|
17
25
|
...proverClientConfigMappings,
|
|
18
26
|
...worldStateConfigMappings,
|
|
19
27
|
...p2pConfigMappings,
|
|
20
|
-
...
|
|
28
|
+
...sentinelConfigMappings,
|
|
29
|
+
...sharedNodeConfigMappings,
|
|
30
|
+
...genesisStateConfigMappings,
|
|
31
|
+
...nodeRpcConfigMappings,
|
|
32
|
+
...slasherConfigMappings,
|
|
33
|
+
l1Contracts: {
|
|
34
|
+
description: 'The deployed L1 contract addresses',
|
|
35
|
+
nested: l1ContractAddressesMapping
|
|
36
|
+
},
|
|
21
37
|
disableValidator: {
|
|
22
38
|
env: 'VALIDATOR_DISABLED',
|
|
23
39
|
description: 'Whether the validator is disabled for this node.',
|
|
24
40
|
...booleanConfigHelper()
|
|
25
41
|
},
|
|
26
|
-
|
|
27
|
-
env: '
|
|
28
|
-
description: 'Whether to
|
|
29
|
-
...booleanConfigHelper()
|
|
42
|
+
skipArchiverInitialSync: {
|
|
43
|
+
env: 'SKIP_ARCHIVER_INITIAL_SYNC',
|
|
44
|
+
description: 'Whether to skip waiting for the archiver to be fully synced before starting other services.',
|
|
45
|
+
...booleanConfigHelper(false)
|
|
30
46
|
}
|
|
31
47
|
};
|
|
32
48
|
/**
|
|
@@ -35,10 +51,55 @@ export const aztecNodeConfigMappings = {
|
|
|
35
51
|
*/ export function getConfigEnvVars() {
|
|
36
52
|
return getConfigFromMappings(aztecNodeConfigMappings);
|
|
37
53
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
function createKeyStoreFromWeb3Signer(config) {
|
|
55
|
+
const validatorKeyStores = [];
|
|
56
|
+
if (config.web3SignerUrl === undefined || config.web3SignerUrl.length === 0 || config.validatorAddresses === undefined || config.validatorAddresses.length === 0) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
validatorKeyStores.push({
|
|
60
|
+
attester: config.validatorAddresses,
|
|
61
|
+
feeRecipient: config.feeRecipient ?? AztecAddress.ZERO,
|
|
62
|
+
coinbase: config.coinbase ?? config.validatorAddresses[0],
|
|
63
|
+
remoteSigner: config.web3SignerUrl,
|
|
64
|
+
publisher: config.publisherAddresses ?? []
|
|
65
|
+
});
|
|
66
|
+
const keyStore = {
|
|
67
|
+
schemaVersion: 1,
|
|
68
|
+
slasher: undefined,
|
|
69
|
+
prover: undefined,
|
|
70
|
+
remoteSigner: undefined,
|
|
71
|
+
validators: validatorKeyStores
|
|
72
|
+
};
|
|
73
|
+
return keyStore;
|
|
74
|
+
}
|
|
75
|
+
function createKeyStoreFromPrivateKeys(config) {
|
|
76
|
+
const validatorKeyStores = [];
|
|
77
|
+
const ethPrivateKeys = config.validatorPrivateKeys ? config.validatorPrivateKeys.getValue().map((x)=>ethPrivateKeySchema.parse(x)) : [];
|
|
78
|
+
if (!ethPrivateKeys.length) {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
const coinbase = config.coinbase ?? EthAddress.fromString(privateKeyToAddress(ethPrivateKeys[0]));
|
|
82
|
+
const feeRecipient = config.feeRecipient ?? AztecAddress.ZERO;
|
|
83
|
+
const publisherKeys = config.publisherPrivateKeys ? config.publisherPrivateKeys.map((k)=>ethPrivateKeySchema.parse(k.getValue())) : [];
|
|
84
|
+
validatorKeyStores.push({
|
|
85
|
+
attester: ethPrivateKeys,
|
|
86
|
+
feeRecipient: feeRecipient,
|
|
87
|
+
coinbase: coinbase,
|
|
88
|
+
remoteSigner: undefined,
|
|
89
|
+
publisher: publisherKeys
|
|
90
|
+
});
|
|
91
|
+
const keyStore = {
|
|
92
|
+
schemaVersion: 1,
|
|
93
|
+
slasher: undefined,
|
|
94
|
+
prover: undefined,
|
|
95
|
+
remoteSigner: undefined,
|
|
96
|
+
validators: validatorKeyStores
|
|
97
|
+
};
|
|
98
|
+
return keyStore;
|
|
99
|
+
}
|
|
100
|
+
export function createKeyStoreForValidator(config) {
|
|
101
|
+
if (config.web3SignerUrl !== undefined && config.web3SignerUrl.length > 0) {
|
|
102
|
+
return createKeyStoreFromWeb3Signer(config);
|
|
103
|
+
}
|
|
104
|
+
return createKeyStoreFromPrivateKeys(config);
|
|
44
105
|
}
|
|
@@ -1,29 +1,36 @@
|
|
|
1
1
|
import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
2
|
-
import {
|
|
2
|
+
import { ARCHIVE_HEIGHT, type L1_TO_L2_MSG_TREE_HEIGHT, type NOTE_HASH_TREE_HEIGHT, type NULLIFIER_TREE_HEIGHT, type PUBLIC_DATA_TREE_HEIGHT } from '@aztec/constants';
|
|
3
|
+
import { type EpochCacheInterface } from '@aztec/epoch-cache';
|
|
3
4
|
import { type L1ContractAddresses } from '@aztec/ethereum';
|
|
5
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
6
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
7
|
import { type Logger } from '@aztec/foundation/log';
|
|
6
8
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
7
|
-
import { SiblingPath } from '@aztec/foundation/trees';
|
|
8
|
-
import { type P2P } from '@aztec/p2p';
|
|
9
|
-
import {
|
|
9
|
+
import { MembershipWitness, SiblingPath } from '@aztec/foundation/trees';
|
|
10
|
+
import { type P2P, type P2PClientDeps } from '@aztec/p2p';
|
|
11
|
+
import { SequencerClient, type SequencerPublisher } from '@aztec/sequencer-client';
|
|
12
|
+
import { EpochPruneWatcher, type SlasherClientInterface } from '@aztec/slasher';
|
|
10
13
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
11
|
-
import type
|
|
14
|
+
import { type InBlock, type L2Block, type L2BlockNumber, type L2BlockSource, type PublishedL2Block } from '@aztec/stdlib/block';
|
|
12
15
|
import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress, NodeInfo, ProtocolContractAddresses } from '@aztec/stdlib/contract';
|
|
13
16
|
import type { GasFees } from '@aztec/stdlib/gas';
|
|
14
|
-
import type
|
|
15
|
-
import { type ClientProtocolCircuitVerifier, type L2LogsSource, type
|
|
17
|
+
import { type AztecNode, type AztecNodeAdmin, type AztecNodeAdminConfig, type GetContractClassLogsResponse, type GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
18
|
+
import { type ClientProtocolCircuitVerifier, type L2LogsSource, type Service, type WorldStateSyncStatus, type WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
16
19
|
import type { LogFilter, PrivateLog, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
17
|
-
import type
|
|
18
|
-
import {
|
|
20
|
+
import { type L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
21
|
+
import { P2PClientType } from '@aztec/stdlib/p2p';
|
|
22
|
+
import type { Offense, SlashPayloadRound } from '@aztec/stdlib/slashing';
|
|
19
23
|
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
20
|
-
import {
|
|
24
|
+
import { MerkleTreeId, NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
|
|
25
|
+
import { type BlockHeader, type GlobalVariableBuilder as GlobalVariableBuilderInterface, type IndexedTxEffect, PublicSimulationOutput, Tx, type TxHash, TxReceipt, type TxValidationResult } from '@aztec/stdlib/tx';
|
|
26
|
+
import type { SingleValidatorStats, ValidatorsStats } from '@aztec/stdlib/validators';
|
|
21
27
|
import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
28
|
+
import { Sentinel } from '../sentinel/sentinel.js';
|
|
22
29
|
import { type AztecNodeConfig } from './config.js';
|
|
23
30
|
/**
|
|
24
31
|
* The aztec node.
|
|
25
32
|
*/
|
|
26
|
-
export declare class AztecNodeService implements AztecNode, Traceable {
|
|
33
|
+
export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
|
|
27
34
|
#private;
|
|
28
35
|
protected config: AztecNodeConfig;
|
|
29
36
|
protected readonly p2pClient: P2P;
|
|
@@ -31,19 +38,24 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
31
38
|
protected readonly logsSource: L2LogsSource;
|
|
32
39
|
protected readonly contractDataSource: ContractDataSource;
|
|
33
40
|
protected readonly l1ToL2MessageSource: L1ToL2MessageSource;
|
|
34
|
-
protected readonly nullifierSource: NullifierWithBlockSource;
|
|
35
41
|
protected readonly worldStateSynchronizer: WorldStateSynchronizer;
|
|
36
42
|
protected readonly sequencer: SequencerClient | undefined;
|
|
43
|
+
protected readonly slasherClient: SlasherClientInterface | undefined;
|
|
44
|
+
protected readonly validatorsSentinel: Sentinel | undefined;
|
|
45
|
+
protected readonly epochPruneWatcher: EpochPruneWatcher | undefined;
|
|
37
46
|
protected readonly l1ChainId: number;
|
|
38
47
|
protected readonly version: number;
|
|
39
|
-
protected readonly globalVariableBuilder:
|
|
48
|
+
protected readonly globalVariableBuilder: GlobalVariableBuilderInterface;
|
|
49
|
+
protected readonly epochCache: EpochCacheInterface;
|
|
50
|
+
protected readonly packageVersion: string;
|
|
40
51
|
private proofVerifier;
|
|
41
52
|
private telemetry;
|
|
42
53
|
private log;
|
|
43
|
-
private packageVersion;
|
|
44
54
|
private metrics;
|
|
55
|
+
private isUploadingSnapshot;
|
|
56
|
+
private txQueue;
|
|
45
57
|
readonly tracer: Tracer;
|
|
46
|
-
constructor(config: AztecNodeConfig, p2pClient: P2P, blockSource: L2BlockSource & Partial<Service>, logsSource: L2LogsSource, contractDataSource: ContractDataSource, l1ToL2MessageSource: L1ToL2MessageSource,
|
|
58
|
+
constructor(config: AztecNodeConfig, p2pClient: P2P, blockSource: L2BlockSource & Partial<Service>, logsSource: L2LogsSource, contractDataSource: ContractDataSource, l1ToL2MessageSource: L1ToL2MessageSource, worldStateSynchronizer: WorldStateSynchronizer, sequencer: SequencerClient | undefined, slasherClient: SlasherClientInterface | undefined, validatorsSentinel: Sentinel | undefined, epochPruneWatcher: EpochPruneWatcher | undefined, l1ChainId: number, version: number, globalVariableBuilder: GlobalVariableBuilderInterface, epochCache: EpochCacheInterface, packageVersion: string, proofVerifier: ClientProtocolCircuitVerifier, telemetry?: TelemetryClient, log?: Logger);
|
|
47
59
|
getWorldStateSyncStatus(): Promise<WorldStateSyncStatus>;
|
|
48
60
|
getL2Tips(): Promise<import("@aztec/stdlib/block").L2Tips>;
|
|
49
61
|
/**
|
|
@@ -51,14 +63,16 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
51
63
|
* @param config - The configuration to be used by the aztec node.
|
|
52
64
|
* @returns - A fully synced Aztec Node for use in development/testing.
|
|
53
65
|
*/
|
|
54
|
-
static createAndSync(
|
|
66
|
+
static createAndSync(inputConfig: AztecNodeConfig, deps?: {
|
|
55
67
|
telemetry?: TelemetryClient;
|
|
56
68
|
logger?: Logger;
|
|
57
69
|
publisher?: SequencerPublisher;
|
|
58
70
|
dateProvider?: DateProvider;
|
|
59
71
|
blobSinkClient?: BlobSinkClientInterface;
|
|
72
|
+
p2pClientDeps?: P2PClientDeps<P2PClientType.Full>;
|
|
60
73
|
}, options?: {
|
|
61
74
|
prefilledPublicData?: PublicDataTreeLeaf[];
|
|
75
|
+
dontStartSequencer?: boolean;
|
|
62
76
|
}): Promise<AztecNodeService>;
|
|
63
77
|
/**
|
|
64
78
|
* Returns the sequencer client instance.
|
|
@@ -85,7 +99,19 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
85
99
|
* @param number - The block number being requested.
|
|
86
100
|
* @returns The requested block.
|
|
87
101
|
*/
|
|
88
|
-
getBlock(number:
|
|
102
|
+
getBlock(number: L2BlockNumber): Promise<L2Block | undefined>;
|
|
103
|
+
/**
|
|
104
|
+
* Get a block specified by its hash.
|
|
105
|
+
* @param blockHash - The block hash being requested.
|
|
106
|
+
* @returns The requested block.
|
|
107
|
+
*/
|
|
108
|
+
getBlockByHash(blockHash: Fr): Promise<L2Block | undefined>;
|
|
109
|
+
/**
|
|
110
|
+
* Get a block specified by its archive root.
|
|
111
|
+
* @param archive - The archive root being requested.
|
|
112
|
+
* @returns The requested block.
|
|
113
|
+
*/
|
|
114
|
+
getBlockByArchive(archive: Fr): Promise<L2Block | undefined>;
|
|
89
115
|
/**
|
|
90
116
|
* Method to request blocks. Will attempt to return all requested blocks but will return only those available.
|
|
91
117
|
* @param from - The start of the range of blocks to return.
|
|
@@ -93,13 +119,14 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
93
119
|
* @returns The blocks requested.
|
|
94
120
|
*/
|
|
95
121
|
getBlocks(from: number, limit: number): Promise<L2Block[]>;
|
|
122
|
+
getPublishedBlocks(from: number, limit: number): Promise<PublishedL2Block[]>;
|
|
96
123
|
/**
|
|
97
124
|
* Method to fetch the current base fees.
|
|
98
125
|
* @returns The current base fees.
|
|
99
126
|
*/
|
|
100
127
|
getCurrentBaseFees(): Promise<GasFees>;
|
|
101
128
|
/**
|
|
102
|
-
* Method to fetch the
|
|
129
|
+
* Method to fetch the latest block number synchronized by the node.
|
|
103
130
|
* @returns The block number.
|
|
104
131
|
*/
|
|
105
132
|
getBlockNumber(): Promise<number>;
|
|
@@ -131,10 +158,11 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
131
158
|
/**
|
|
132
159
|
* Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
|
|
133
160
|
* @param tags - The tags to filter the logs by.
|
|
161
|
+
* @param logsPerTag - The maximum number of logs to return for each tag. By default no limit is set
|
|
134
162
|
* @returns For each received tag, an array of matching logs is returned. An empty array implies no logs match
|
|
135
163
|
* that tag.
|
|
136
164
|
*/
|
|
137
|
-
getLogsByTags(tags: Fr[]): Promise<TxScopedL2Log[][]>;
|
|
165
|
+
getLogsByTags(tags: Fr[], logsPerTag?: number): Promise<TxScopedL2Log[][]>;
|
|
138
166
|
/**
|
|
139
167
|
* Gets public logs based on the provided filter.
|
|
140
168
|
* @param filter - The filter to apply to the logs.
|
|
@@ -153,46 +181,40 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
153
181
|
*/
|
|
154
182
|
sendTx(tx: Tx): Promise<void>;
|
|
155
183
|
getTxReceipt(txHash: TxHash): Promise<TxReceipt>;
|
|
156
|
-
getTxEffect(txHash: TxHash): Promise<
|
|
184
|
+
getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined>;
|
|
157
185
|
/**
|
|
158
186
|
* Method to stop the aztec node.
|
|
159
187
|
*/
|
|
160
188
|
stop(): Promise<void>;
|
|
161
189
|
/**
|
|
162
190
|
* Method to retrieve pending txs.
|
|
191
|
+
* @param limit - The number of items to returns
|
|
192
|
+
* @param after - The last known pending tx. Used for pagination
|
|
163
193
|
* @returns - The pending txs.
|
|
164
194
|
*/
|
|
165
|
-
getPendingTxs(): Promise<Tx[]>;
|
|
195
|
+
getPendingTxs(limit?: number, after?: TxHash): Promise<Tx[]>;
|
|
166
196
|
getPendingTxCount(): Promise<number>;
|
|
167
197
|
/**
|
|
168
|
-
* Method to retrieve a single tx from the mempool or
|
|
198
|
+
* Method to retrieve a single tx from the mempool or unfinalized chain.
|
|
169
199
|
* @param txHash - The transaction hash to return.
|
|
170
200
|
* @returns - The tx if it exists.
|
|
171
201
|
*/
|
|
172
202
|
getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
|
|
173
203
|
/**
|
|
174
|
-
* Method to retrieve txs from the mempool or
|
|
204
|
+
* Method to retrieve txs from the mempool or unfinalized chain.
|
|
175
205
|
* @param txHash - The transaction hash to return.
|
|
176
206
|
* @returns - The txs if it exists.
|
|
177
207
|
*/
|
|
178
208
|
getTxsByHash(txHashes: TxHash[]): Promise<Tx[]>;
|
|
179
209
|
/**
|
|
180
|
-
* Find the indexes of the given leaves in the given tree
|
|
181
|
-
*
|
|
210
|
+
* Find the indexes of the given leaves in the given tree along with a block metadata pointing to the block in which
|
|
211
|
+
* the leaves were inserted.
|
|
212
|
+
* @param blockNumber - The block number at which to get the data or 'latest' for latest data.
|
|
182
213
|
* @param treeId - The tree to search in.
|
|
183
|
-
* @param
|
|
184
|
-
* @returns The
|
|
214
|
+
* @param leafValues - The values to search for.
|
|
215
|
+
* @returns The indices of leaves and the block metadata of a block in which the leaves were inserted.
|
|
185
216
|
*/
|
|
186
|
-
findLeavesIndexes(blockNumber: L2BlockNumber, treeId: MerkleTreeId, leafValues: Fr[]): Promise<(bigint | undefined)[]>;
|
|
187
|
-
/**
|
|
188
|
-
* Find the block numbers of the given leaf indices in the given tree.
|
|
189
|
-
* @param blockNumber - The block number at which to get the data or 'latest' for latest data
|
|
190
|
-
* @param treeId - The tree to search in.
|
|
191
|
-
* @param leafIndices - The values to search for
|
|
192
|
-
* @returns The indexes of the given leaves in the given tree or undefined if not found.
|
|
193
|
-
*/
|
|
194
|
-
findBlockNumbersForIndexes(blockNumber: L2BlockNumber, treeId: MerkleTreeId, leafIndices: bigint[]): Promise<(bigint | undefined)[]>;
|
|
195
|
-
findNullifiersIndexesWithBlock(blockNumber: L2BlockNumber, nullifiers: Fr[]): Promise<(InBlock<bigint> | undefined)[]>;
|
|
217
|
+
findLeavesIndexes(blockNumber: L2BlockNumber, treeId: MerkleTreeId, leafValues: Fr[]): Promise<(InBlock<bigint> | undefined)[]>;
|
|
196
218
|
/**
|
|
197
219
|
* Returns a sibling path for the given index in the nullifier tree.
|
|
198
220
|
* @param blockNumber - The block number at which to get the data.
|
|
@@ -207,6 +229,8 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
207
229
|
* @returns The sibling path for the leaf index.
|
|
208
230
|
*/
|
|
209
231
|
getNoteHashSiblingPath(blockNumber: L2BlockNumber, leafIndex: bigint): Promise<SiblingPath<typeof NOTE_HASH_TREE_HEIGHT>>;
|
|
232
|
+
getArchiveMembershipWitness(blockNumber: L2BlockNumber, archive: Fr): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
|
|
233
|
+
getNoteHashMembershipWitness(blockNumber: L2BlockNumber, noteHash: Fr): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
|
|
210
234
|
/**
|
|
211
235
|
* Returns the index and a sibling path for a leaf in the committed l1 to l2 data tree.
|
|
212
236
|
* @param blockNumber - The block number at which to get the data.
|
|
@@ -214,6 +238,7 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
214
238
|
* @returns A tuple of the index and the sibling path of the L1ToL2Message (undefined if not found).
|
|
215
239
|
*/
|
|
216
240
|
getL1ToL2MessageMembershipWitness(blockNumber: L2BlockNumber, l1ToL2Message: Fr): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>] | undefined>;
|
|
241
|
+
getL1ToL2MessageBlock(l1ToL2Message: Fr): Promise<number | undefined>;
|
|
217
242
|
/**
|
|
218
243
|
* Returns whether an L1 to L2 message is synced by archiver and if it's ready to be included in a block.
|
|
219
244
|
* @param l1ToL2Message - The L1 to L2 message to check.
|
|
@@ -221,16 +246,11 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
221
246
|
*/
|
|
222
247
|
isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean>;
|
|
223
248
|
/**
|
|
224
|
-
* Returns the
|
|
225
|
-
* @remarks This tree is considered ephemeral because it is created on-demand by: taking all the l2ToL1 messages
|
|
226
|
-
* in a single block, and then using them to make a variable depth append-only tree with these messages as leaves.
|
|
227
|
-
* The tree is discarded immediately after calculating what we need from it.
|
|
228
|
-
* TODO: Handle the case where two messages in the same tx have the same hash.
|
|
249
|
+
* Returns all the L2 to L1 messages in a block.
|
|
229
250
|
* @param blockNumber - The block number at which to get the data.
|
|
230
|
-
* @
|
|
231
|
-
* @returns A tuple of the index and the sibling path of the L2ToL1Message.
|
|
251
|
+
* @returns The L2 to L1 messages (undefined if the block number is not found).
|
|
232
252
|
*/
|
|
233
|
-
|
|
253
|
+
getL2ToL1Messages(blockNumber: L2BlockNumber): Promise<Fr[][] | undefined>;
|
|
234
254
|
/**
|
|
235
255
|
* Returns a sibling path for a leaf in the committed blocks tree.
|
|
236
256
|
* @param blockNumber - The block number at which to get the data.
|
|
@@ -267,7 +287,7 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
267
287
|
* TODO: This is a confusing behavior and we should eventually address that.
|
|
268
288
|
*/
|
|
269
289
|
getLowNullifierMembershipWitness(blockNumber: L2BlockNumber, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
|
|
270
|
-
|
|
290
|
+
getPublicDataWitness(blockNumber: L2BlockNumber, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
|
|
271
291
|
/**
|
|
272
292
|
* Gets the storage value at the given contract storage slot.
|
|
273
293
|
*
|
|
@@ -285,6 +305,18 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
285
305
|
* @returns The current committed block header.
|
|
286
306
|
*/
|
|
287
307
|
getBlockHeader(blockNumber?: L2BlockNumber): Promise<BlockHeader | undefined>;
|
|
308
|
+
/**
|
|
309
|
+
* Get a block header specified by its hash.
|
|
310
|
+
* @param blockHash - The block hash being requested.
|
|
311
|
+
* @returns The requested block header.
|
|
312
|
+
*/
|
|
313
|
+
getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
|
|
314
|
+
/**
|
|
315
|
+
* Get a block header specified by its archive root.
|
|
316
|
+
* @param archive - The archive root being requested.
|
|
317
|
+
* @returns The requested block header.
|
|
318
|
+
*/
|
|
319
|
+
getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
|
|
288
320
|
/**
|
|
289
321
|
* Simulates the public part of a transaction with the current state.
|
|
290
322
|
* @param tx - The transaction to simulate.
|
|
@@ -294,10 +326,17 @@ export declare class AztecNodeService implements AztecNode, Traceable {
|
|
|
294
326
|
isSimulation?: boolean;
|
|
295
327
|
skipFeeEnforcement?: boolean;
|
|
296
328
|
}): Promise<TxValidationResult>;
|
|
297
|
-
|
|
329
|
+
getConfig(): Promise<AztecNodeAdminConfig>;
|
|
330
|
+
setConfig(config: Partial<AztecNodeAdminConfig>): Promise<void>;
|
|
298
331
|
getProtocolContractAddresses(): Promise<ProtocolContractAddresses>;
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
332
|
+
registerContractFunctionSignatures(signatures: string[]): Promise<void>;
|
|
333
|
+
getValidatorsStats(): Promise<ValidatorsStats>;
|
|
334
|
+
getValidatorStats(validatorAddress: EthAddress, fromSlot?: bigint, toSlot?: bigint): Promise<SingleValidatorStats | undefined>;
|
|
335
|
+
startSnapshotUpload(location: string): Promise<void>;
|
|
336
|
+
rollbackTo(targetBlock: number, force?: boolean): Promise<void>;
|
|
337
|
+
pauseSync(): Promise<void>;
|
|
338
|
+
resumeSync(): Promise<void>;
|
|
339
|
+
getSlashPayloads(): Promise<SlashPayloadRound[]>;
|
|
340
|
+
getSlashOffenses(round: bigint | 'all' | 'current'): Promise<Offense[]>;
|
|
302
341
|
}
|
|
303
342
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/aztec-node/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/aztec-node/server.ts"],"names":[],"mappings":"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"}
|