@aztec/txe 0.0.1-commit.d3ec352c → 0.0.1-commit.d58ff9d0
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/AuthRegistry-QVGDDH5X.js +3 -0
- package/dest/AuthRegistry-QVGDDH5X.js.map +7 -0
- package/dest/ContractClassRegistry-VWR3F42P.js +3 -0
- package/dest/ContractClassRegistry-VWR3F42P.js.map +7 -0
- package/dest/ContractInstanceRegistry-FHIWE33X.js +3 -0
- package/dest/ContractInstanceRegistry-FHIWE33X.js.map +7 -0
- package/dest/FeeJuice-SAOWVGG7.js +3 -0
- package/dest/FeeJuice-SAOWVGG7.js.map +7 -0
- package/dest/HandshakeRegistry-GY5CPEPS.js +3 -0
- package/dest/HandshakeRegistry-GY5CPEPS.js.map +7 -0
- package/dest/MultiCallEntrypoint-QG5H33ZZ.js +3 -0
- package/dest/MultiCallEntrypoint-QG5H33ZZ.js.map +7 -0
- package/dest/SchnorrAccount-NME3E45O.js +3 -0
- package/dest/SchnorrAccount-NME3E45O.js.map +7 -0
- package/dest/SchnorrInitializerlessAccount-WTGXU6SW.js +3 -0
- package/dest/SchnorrInitializerlessAccount-WTGXU6SW.js.map +7 -0
- package/dest/bin/check_txe_oracle_version.d.ts +2 -0
- package/dest/bin/check_txe_oracle_version.d.ts.map +1 -0
- package/dest/bin/check_txe_oracle_version.js +53 -0
- package/dest/bin/index.js +3 -30
- package/dest/bin/index.js.map +7 -0
- package/dest/bin/oracle_test_server.d.ts +3 -0
- package/dest/bin/oracle_test_server.d.ts.map +1 -0
- package/dest/bin/oracle_test_server.js +41 -0
- package/dest/chunk-32UHX7YY.js +3 -0
- package/dest/chunk-32UHX7YY.js.map +7 -0
- package/dest/chunk-GSUKUCKV.js +260 -0
- package/dest/chunk-GSUKUCKV.js.map +7 -0
- package/dest/chunk-UP4KKUVA.js +304 -0
- package/dest/chunk-UP4KKUVA.js.map +7 -0
- package/dest/constants.d.ts +7 -0
- package/dest/constants.d.ts.map +1 -0
- package/dest/constants.js +10 -0
- package/dest/dispatcher_pool.d.ts +67 -0
- package/dest/dispatcher_pool.d.ts.map +1 -0
- package/dest/dispatcher_pool.js +286 -0
- package/dest/index.d.ts +51 -7
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +75 -158
- package/dest/metafile.json +38759 -0
- package/dest/msgpackr_fr_extension.d.ts +2 -0
- package/dest/msgpackr_fr_extension.d.ts.map +1 -0
- package/dest/msgpackr_fr_extension.js +21 -0
- package/dest/oracle/interfaces.d.ts +71 -30
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/tagging_secret_strategy.d.ts +12 -0
- package/dest/oracle/tagging_secret_strategy.d.ts.map +1 -0
- package/dest/oracle/tagging_secret_strategy.js +12 -0
- package/dest/oracle/test-resolver/default_fixtures.d.ts +16 -0
- package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -0
- package/dest/oracle/test-resolver/default_fixtures.js +200 -0
- package/dest/oracle/test-resolver/index.d.ts +9 -0
- package/dest/oracle/test-resolver/index.d.ts.map +1 -0
- package/dest/oracle/test-resolver/index.js +32 -0
- package/dest/oracle/test-resolver/resolver.d.ts +48 -0
- package/dest/oracle/test-resolver/resolver.d.ts.map +1 -0
- package/dest/oracle/test-resolver/resolver.js +181 -0
- package/dest/oracle/txe_oracle_public_context.d.ts +40 -16
- package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_public_context.js +69 -23
- package/dest/oracle/txe_oracle_registry.d.ts +172 -0
- package/dest/oracle/txe_oracle_registry.d.ts.map +1 -0
- package/dest/oracle/txe_oracle_registry.js +767 -0
- package/dest/oracle/txe_oracle_top_level_context.d.ts +79 -30
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +653 -285
- package/dest/oracle/txe_oracle_version.d.ts +17 -0
- package/dest/oracle/txe_oracle_version.d.ts.map +1 -0
- package/dest/oracle/txe_oracle_version.js +14 -0
- package/dest/oracle/txe_private_execution_oracle.d.ts +17 -0
- package/dest/oracle/txe_private_execution_oracle.d.ts.map +1 -0
- package/dest/oracle/txe_private_execution_oracle.js +15 -0
- package/dest/rpc_server.d.ts +14 -0
- package/dest/rpc_server.d.ts.map +1 -0
- package/dest/rpc_server.js +78 -0
- package/dest/rpc_translator.d.ts +115 -216
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +901 -560
- package/dest/server.bundle.js +3 -0
- package/dest/server.bundle.js.map +7 -0
- package/dest/state_machine/archiver.d.ts +23 -58
- package/dest/state_machine/archiver.d.ts.map +1 -1
- package/dest/state_machine/archiver.js +76 -112
- package/dest/state_machine/dummy_p2p_client.d.ts +31 -17
- package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
- package/dest/state_machine/dummy_p2p_client.js +63 -25
- package/dest/state_machine/global_variable_builder.d.ts +10 -5
- package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
- package/dest/state_machine/global_variable_builder.js +20 -5
- package/dest/state_machine/index.d.ts +14 -8
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +84 -27
- package/dest/state_machine/mock_epoch_cache.d.ts +24 -8
- package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
- package/dest/state_machine/mock_epoch_cache.js +43 -9
- package/dest/state_machine/synchronizer.d.ts +14 -6
- package/dest/state_machine/synchronizer.d.ts.map +1 -1
- package/dest/state_machine/synchronizer.js +23 -10
- package/dest/txe_session.d.ts +102 -20
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +442 -75
- package/dest/utils/block_creation.d.ts +20 -6
- package/dest/utils/block_creation.d.ts.map +1 -1
- package/dest/utils/block_creation.js +40 -6
- package/dest/utils/encoding.d.ts +192 -0
- package/dest/utils/encoding.d.ts.map +1 -0
- package/dest/{util → utils}/encoding.js +8 -3
- package/dest/{util → utils}/expected_failure_error.d.ts +1 -1
- package/dest/utils/expected_failure_error.d.ts.map +1 -0
- package/dest/utils/tx_effect_creation.d.ts +2 -3
- package/dest/utils/tx_effect_creation.d.ts.map +1 -1
- package/dest/utils/tx_effect_creation.js +3 -7
- package/dest/utils/txe_account_store.d.ts +10 -0
- package/dest/utils/txe_account_store.d.ts.map +1 -0
- package/dest/{util/txe_account_data_provider.js → utils/txe_account_store.js} +1 -1
- package/dest/utils/txe_artifact_resolver.d.ts +37 -0
- package/dest/utils/txe_artifact_resolver.d.ts.map +1 -0
- package/dest/utils/txe_artifact_resolver.js +161 -0
- package/dest/utils/txe_public_contract_data_source.d.ts +20 -0
- package/dest/utils/txe_public_contract_data_source.d.ts.map +1 -0
- package/dest/utils/txe_public_contract_data_source.js +51 -0
- package/dest/worker.bundle.js +3 -0
- package/dest/worker.bundle.js.map +7 -0
- package/dest/worker.d.ts +2 -0
- package/dest/worker.d.ts.map +1 -0
- package/dest/worker.js +92 -0
- package/package.json +39 -22
- package/src/bin/check_txe_oracle_version.ts +67 -0
- package/src/bin/index.ts +11 -2
- package/src/bin/oracle_test_server.ts +51 -0
- package/src/constants.ts +13 -0
- package/src/dispatcher_pool.ts +317 -0
- package/src/index.ts +113 -201
- package/src/msgpackr_fr_extension.ts +23 -0
- package/src/oracle/interfaces.ts +77 -35
- package/src/oracle/tagging_secret_strategy.ts +25 -0
- package/src/oracle/test-resolver/default_fixtures.ts +271 -0
- package/src/oracle/test-resolver/index.ts +44 -0
- package/src/oracle/test-resolver/resolver.ts +245 -0
- package/src/oracle/txe_oracle_public_context.ts +82 -27
- package/src/oracle/txe_oracle_registry.ts +556 -0
- package/src/oracle/txe_oracle_top_level_context.ts +555 -189
- package/src/oracle/txe_oracle_version.ts +17 -0
- package/src/oracle/txe_private_execution_oracle.ts +30 -0
- package/src/rpc_server.ts +87 -0
- package/src/rpc_translator.ts +1115 -923
- package/src/state_machine/archiver.ts +81 -132
- package/src/state_machine/dummy_p2p_client.ts +96 -38
- package/src/state_machine/global_variable_builder.ts +28 -10
- package/src/state_machine/index.ts +118 -44
- package/src/state_machine/mock_epoch_cache.ts +53 -14
- package/src/state_machine/synchronizer.ts +32 -12
- package/src/txe_session.ts +727 -123
- package/src/utils/block_creation.ts +50 -16
- package/src/{util → utils}/encoding.ts +9 -3
- package/src/utils/tx_effect_creation.ts +3 -13
- package/src/{util/txe_account_data_provider.ts → utils/txe_account_store.ts} +1 -1
- package/src/utils/txe_artifact_resolver.ts +217 -0
- package/src/utils/txe_public_contract_data_source.ts +60 -0
- package/src/worker.ts +98 -0
- package/dest/util/encoding.d.ts +0 -121
- package/dest/util/encoding.d.ts.map +0 -1
- package/dest/util/expected_failure_error.d.ts.map +0 -1
- package/dest/util/txe_account_data_provider.d.ts +0 -10
- package/dest/util/txe_account_data_provider.d.ts.map +0 -1
- package/dest/util/txe_contract_data_provider.d.ts +0 -12
- package/dest/util/txe_contract_data_provider.d.ts.map +0 -1
- package/dest/util/txe_contract_data_provider.js +0 -22
- package/dest/util/txe_public_contract_data_source.d.ts +0 -21
- package/dest/util/txe_public_contract_data_source.d.ts.map +0 -1
- package/dest/util/txe_public_contract_data_source.js +0 -67
- package/src/util/txe_contract_data_provider.ts +0 -36
- package/src/util/txe_public_contract_data_source.ts +0 -86
- /package/dest/{util → utils}/expected_failure_error.js +0 -0
- /package/src/{util → utils}/expected_failure_error.ts +0 -0
|
@@ -1,67 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ArchiverDataSourceBase } from '@aztec/archiver';
|
|
2
|
+
import { type EpochNumber, type SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
6
|
-
import type
|
|
7
|
-
import type {
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
import { type L2Tips, type ValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
7
|
+
import type { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
8
|
+
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
9
|
+
/**
|
|
10
|
+
* TXE Archiver implementation.
|
|
11
|
+
* Provides most of the endpoints needed by the node for reading from and writing to state,
|
|
12
|
+
* without needing any of the extra overhead that the Archiver itself requires (i.e. an L1 client).
|
|
13
|
+
*/
|
|
14
|
+
export declare class TXEArchiver extends ArchiverDataSourceBase {
|
|
15
|
+
private readonly updater;
|
|
14
16
|
constructor(db: AztecAsyncKVStore);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
* @returns The number of the latest L2 block processed by the block source implementation.
|
|
19
|
-
*/
|
|
20
|
-
getBlockNumber(): Promise<BlockNumber>;
|
|
21
|
-
/**
|
|
22
|
-
* Gets the number of the latest L2 block proven seen by the block source implementation.
|
|
23
|
-
* @returns The number of the latest L2 block proven seen by the block source implementation.
|
|
24
|
-
*/
|
|
25
|
-
getProvenBlockNumber(): Promise<BlockNumber>;
|
|
26
|
-
/**
|
|
27
|
-
* Gets a published l2 block. If a negative number is passed, the block returned is the most recent.
|
|
28
|
-
* @param number - The block number to return (inclusive).
|
|
29
|
-
* @returns The requested L2 block.
|
|
30
|
-
*/
|
|
31
|
-
getPublishedBlock(number: number): Promise<PublishedL2Block | undefined>;
|
|
32
|
-
/**
|
|
33
|
-
* Gets an l2 block. If a negative number is passed, the block returned is the most recent.
|
|
34
|
-
* @param number - The block number to return (inclusive).
|
|
35
|
-
* @returns The requested L2 block.
|
|
36
|
-
*/
|
|
37
|
-
getBlock(number: number | 'latest'): Promise<L2Block | undefined>;
|
|
38
|
-
/**
|
|
39
|
-
* Gets an l2 block header.
|
|
40
|
-
* @param number - The block number to return or 'latest' for the most recent one.
|
|
41
|
-
* @returns The requested L2 block header.
|
|
42
|
-
*/
|
|
43
|
-
getBlockHeader(number: number | 'latest'): Promise<BlockHeader | undefined>;
|
|
44
|
-
getBlocks(from: number, limit: number, _proven?: boolean): Promise<L2Block[]>;
|
|
45
|
-
getPublishedCheckpoints(_from: CheckpointNumber, _limit: number): Promise<PublishedCheckpoint[]>;
|
|
46
|
-
getCheckpointByArchive(_archive: Fr): Promise<Checkpoint | undefined>;
|
|
47
|
-
getL2SlotNumber(): Promise<SlotNumber | undefined>;
|
|
48
|
-
getL2EpochNumber(): Promise<EpochNumber>;
|
|
49
|
-
getCheckpointsForEpoch(_epochNumber: EpochNumber): Promise<Checkpoint[]>;
|
|
50
|
-
getBlocksForEpoch(_epochNumber: EpochNumber): Promise<L2Block[]>;
|
|
51
|
-
getBlockHeadersForEpoch(_epochNumber: EpochNumber): Promise<BlockHeader[]>;
|
|
52
|
-
getL1ToL2MessagesForCheckpoint(_checkpointNumber: CheckpointNumber): Promise<Fr[]>;
|
|
53
|
-
isEpochComplete(_epochNumber: EpochNumber): Promise<boolean>;
|
|
54
|
-
getL2Tips(): Promise<L2Tips>;
|
|
17
|
+
addCheckpoints(checkpoints: PublishedCheckpoint[], result?: ValidateCheckpointResult): Promise<void>;
|
|
18
|
+
getRollupAddress(): Promise<EthAddress>;
|
|
19
|
+
getRegistryAddress(): Promise<EthAddress>;
|
|
55
20
|
getL1Constants(): Promise<L1RollupConstants>;
|
|
56
21
|
getGenesisValues(): Promise<{
|
|
57
22
|
genesisArchiveRoot: Fr;
|
|
58
23
|
}>;
|
|
24
|
+
getL1Timestamp(): Promise<bigint | undefined>;
|
|
25
|
+
getL2Tips(): Promise<L2Tips>;
|
|
26
|
+
getSyncedL2SlotNumber(): Promise<SlotNumber | undefined>;
|
|
27
|
+
getSyncedL2EpochNumber(): Promise<EpochNumber | undefined>;
|
|
28
|
+
isEpochComplete(_epochNumber: EpochNumber): Promise<boolean>;
|
|
59
29
|
syncImmediate(): Promise<void>;
|
|
60
|
-
|
|
61
|
-
getRollupAddress(): Promise<EthAddress>;
|
|
62
|
-
getRegistryAddress(): Promise<EthAddress>;
|
|
63
|
-
getL1Timestamp(): Promise<bigint>;
|
|
64
|
-
isPendingChainInvalid(): Promise<boolean>;
|
|
65
|
-
getPendingChainValidationStatus(): Promise<ValidateBlockResult>;
|
|
30
|
+
getL2ToL1MembershipWitness(): Promise<undefined>;
|
|
66
31
|
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZV9tYWNoaW5lL2FyY2hpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBc0QsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RyxPQUFPLEVBQW9CLEtBQUssV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUtMLEtBQUssTUFBTSxFQUNYLEtBQUssd0JBQXdCLEVBQzlCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQTBCLEtBQUssaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUc3Rjs7OztHQUlHO0FBQ0gscUJBQWEsV0FBWSxTQUFRLHNCQUFzQjtJQUNyRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBNkM7SUFFckUsWUFBWSxFQUFFLEVBQUUsaUJBQWlCLEVBUWhDO0lBRVksY0FBYyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFaEg7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBRTdDO0lBRU0sa0JBQWtCLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUUvQztJQUVNLGNBQWMsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FJbEQ7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUM7UUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUE7S0FBRSxDQUFDLENBRTdEO0lBRU0sY0FBYyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRW5EO0lBRVksU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FpQ3hDO0lBRU0scUJBQXFCLElBQUksT0FBTyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsQ0FFOUQ7SUFFTSxzQkFBc0IsSUFBSSxPQUFPLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUVoRTtJQUVNLGVBQWUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFbEU7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVwQztJQUVNLDBCQUEwQixJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FHdEQ7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/state_machine/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAsD,MAAM,iBAAiB,CAAC;AAE7G,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACtG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAKL,KAAK,MAAM,EACX,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAG7F;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,sBAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IAErE,YAAY,EAAE,EAAE,iBAAiB,EAQhC;IAEY,cAAc,CAAC,WAAW,EAAE,mBAAmB,EAAE,EAAE,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhH;IAEM,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAE7C;IAEM,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CAE/C;IAEM,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAIlD;IAEM,gBAAgB,IAAI,OAAO,CAAC;QAAE,kBAAkB,EAAE,EAAE,CAAA;KAAE,CAAC,CAE7D;IAEM,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEnD;IAEY,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAiCxC;IAEM,qBAAqB,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAE9D;IAEM,sBAAsB,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAEhE;IAEM,eAAe,CAAC,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAElE;IAEM,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpC;IAEM,0BAA0B,IAAI,OAAO,CAAC,SAAS,CAAC,CAGtD;CACF"}
|
|
@@ -1,131 +1,95 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ArchiverDataSourceBase, ArchiverDataStoreUpdater, createArchiverDataStores } from '@aztec/archiver';
|
|
2
2
|
import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
|
|
3
|
-
import {
|
|
4
|
-
import { Fr } from '@aztec/foundation/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
|
+
import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/stdlib/block';
|
|
6
|
+
import { EmptyL1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
7
|
+
import { BlockHeader } from '@aztec/stdlib/tx';
|
|
8
|
+
/**
|
|
9
|
+
* TXE Archiver implementation.
|
|
10
|
+
* Provides most of the endpoints needed by the node for reading from and writing to state,
|
|
11
|
+
* without needing any of the extra overhead that the Archiver itself requires (i.e. an L1 client).
|
|
12
|
+
*/ export class TXEArchiver extends ArchiverDataSourceBase {
|
|
13
|
+
updater = new ArchiverDataStoreUpdater(this.stores);
|
|
9
14
|
constructor(db){
|
|
10
|
-
super(
|
|
15
|
+
super(createArchiverDataStores(db, GENESIS_BLOCK_HEADER_HASH), undefined, BlockHeader.empty(), GENESIS_BLOCK_HEADER_HASH, new Fr(GENESIS_ARCHIVE_ROOT));
|
|
11
16
|
}
|
|
12
|
-
async
|
|
13
|
-
|
|
14
|
-
this.store.addLogs(blocks.map((block)=>block.block)),
|
|
15
|
-
this.store.addBlocks(blocks)
|
|
16
|
-
]);
|
|
17
|
-
return opResults.every(Boolean);
|
|
17
|
+
async addCheckpoints(checkpoints, result) {
|
|
18
|
+
await this.updater.addCheckpoints(checkpoints, result);
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
* @returns The number of the latest L2 block processed by the block source implementation.
|
|
22
|
-
*/ getBlockNumber() {
|
|
23
|
-
return this.store.getSynchedL2BlockNumber();
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Gets the number of the latest L2 block proven seen by the block source implementation.
|
|
27
|
-
* @returns The number of the latest L2 block proven seen by the block source implementation.
|
|
28
|
-
*/ getProvenBlockNumber() {
|
|
29
|
-
return this.store.getSynchedL2BlockNumber();
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Gets a published l2 block. If a negative number is passed, the block returned is the most recent.
|
|
33
|
-
* @param number - The block number to return (inclusive).
|
|
34
|
-
* @returns The requested L2 block.
|
|
35
|
-
*/ async getPublishedBlock(number) {
|
|
36
|
-
// If the number provided is -ve, then return the latest block.
|
|
37
|
-
if (number < 0) {
|
|
38
|
-
number = await this.store.getSynchedL2BlockNumber();
|
|
39
|
-
}
|
|
40
|
-
if (number == 0) {
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
const blocks = await this.store.getPublishedBlocks(BlockNumber(number), 1);
|
|
44
|
-
return blocks.length === 0 ? undefined : blocks[0];
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Gets an l2 block. If a negative number is passed, the block returned is the most recent.
|
|
48
|
-
* @param number - The block number to return (inclusive).
|
|
49
|
-
* @returns The requested L2 block.
|
|
50
|
-
*/ getBlock(number) {
|
|
51
|
-
return this.getPublishedBlock(number != 'latest' ? number : -1).then((block)=>block?.block);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Gets an l2 block header.
|
|
55
|
-
* @param number - The block number to return or 'latest' for the most recent one.
|
|
56
|
-
* @returns The requested L2 block header.
|
|
57
|
-
*/ async getBlockHeader(number) {
|
|
58
|
-
if (number === 'latest') {
|
|
59
|
-
number = await this.store.getSynchedL2BlockNumber();
|
|
60
|
-
}
|
|
61
|
-
if (number === 0) {
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
const headers = await this.store.getBlockHeaders(BlockNumber(number), 1);
|
|
65
|
-
return headers.length === 0 ? undefined : headers[0];
|
|
66
|
-
}
|
|
67
|
-
getBlocks(from, limit, _proven) {
|
|
68
|
-
return this.getPublishedBlocks(BlockNumber(from), limit).then((blocks)=>blocks.map((b)=>b.block));
|
|
69
|
-
}
|
|
70
|
-
getPublishedCheckpoints(_from, _limit) {
|
|
71
|
-
throw new Error('TXE Archiver does not implement "getPublishedCheckpoints"');
|
|
72
|
-
}
|
|
73
|
-
getCheckpointByArchive(_archive) {
|
|
74
|
-
throw new Error('TXE Archiver does not implement "getCheckpointByArchive"');
|
|
75
|
-
}
|
|
76
|
-
getL2SlotNumber() {
|
|
77
|
-
throw new Error('TXE Archiver does not implement "getL2SlotNumber"');
|
|
78
|
-
}
|
|
79
|
-
getL2EpochNumber() {
|
|
80
|
-
throw new Error('TXE Archiver does not implement "getL2EpochNumber"');
|
|
81
|
-
}
|
|
82
|
-
getCheckpointsForEpoch(_epochNumber) {
|
|
83
|
-
throw new Error('TXE Archiver does not implement "getCheckpointsForEpoch"');
|
|
84
|
-
}
|
|
85
|
-
getBlocksForEpoch(_epochNumber) {
|
|
86
|
-
throw new Error('TXE Archiver does not implement "getBlocksForEpoch"');
|
|
87
|
-
}
|
|
88
|
-
getBlockHeadersForEpoch(_epochNumber) {
|
|
89
|
-
throw new Error('TXE Archiver does not implement "getBlockHeadersForEpoch"');
|
|
90
|
-
}
|
|
91
|
-
getL1ToL2MessagesForCheckpoint(_checkpointNumber) {
|
|
92
|
-
throw new Error('TXE Archiver does not implement "getL1ToL2MessagesForCheckpoint"');
|
|
93
|
-
}
|
|
94
|
-
isEpochComplete(_epochNumber) {
|
|
95
|
-
throw new Error('TXE Archiver does not implement "isEpochComplete"');
|
|
20
|
+
getRollupAddress() {
|
|
21
|
+
throw new Error('TXE Archiver does not implement "getRollupAddress"');
|
|
96
22
|
}
|
|
97
|
-
|
|
98
|
-
throw new Error('TXE Archiver does not implement "
|
|
23
|
+
getRegistryAddress() {
|
|
24
|
+
throw new Error('TXE Archiver does not implement "getRegistryAddress"');
|
|
99
25
|
}
|
|
100
26
|
getL1Constants() {
|
|
101
|
-
|
|
27
|
+
// The TXE has no L1, so it serves the empty constants (epochDuration=1) used throughout the TXE state machine
|
|
28
|
+
// (see mock_epoch_cache). The node calls this when assembling a mined tx receipt to derive the epoch number.
|
|
29
|
+
return Promise.resolve(EmptyL1RollupConstants);
|
|
102
30
|
}
|
|
103
31
|
getGenesisValues() {
|
|
104
32
|
return Promise.resolve({
|
|
105
33
|
genesisArchiveRoot: new Fr(GENESIS_ARCHIVE_ROOT)
|
|
106
34
|
});
|
|
107
35
|
}
|
|
108
|
-
syncImmediate() {
|
|
109
|
-
throw new Error('TXE Archiver does not implement "syncImmediate"');
|
|
110
|
-
}
|
|
111
|
-
getContract(_address, _timestamp) {
|
|
112
|
-
throw new Error('TXE Archiver does not implement "getContract"');
|
|
113
|
-
}
|
|
114
|
-
getRollupAddress() {
|
|
115
|
-
throw new Error('TXE Archiver does not implement "getRollupAddress"');
|
|
116
|
-
}
|
|
117
|
-
getRegistryAddress() {
|
|
118
|
-
throw new Error('TXE Archiver does not implement "getRegistryAddress"');
|
|
119
|
-
}
|
|
120
36
|
getL1Timestamp() {
|
|
121
37
|
throw new Error('TXE Archiver does not implement "getL1Timestamp"');
|
|
122
38
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
39
|
+
async getL2Tips() {
|
|
40
|
+
// In TXE there is no possibility of reorgs and no blocks are ever getting proven so we just set 'latest', 'proven'
|
|
41
|
+
// and 'finalized' to the latest block.
|
|
42
|
+
const latestBlockNumber = await this.stores.blocks.getLatestL2BlockNumber();
|
|
43
|
+
if (latestBlockNumber === 0) {
|
|
44
|
+
throw new Error('L2Tips requested from TXE Archiver but no block found');
|
|
45
|
+
}
|
|
46
|
+
const latestBlockData = await this.stores.blocks.getBlockData({
|
|
47
|
+
number: latestBlockNumber
|
|
129
48
|
});
|
|
49
|
+
if (!latestBlockData) {
|
|
50
|
+
throw new Error('L2Tips requested from TXE Archiver but no block header found');
|
|
51
|
+
}
|
|
52
|
+
const number = latestBlockData.header.globalVariables.blockNumber;
|
|
53
|
+
const hash = latestBlockData.blockHash.toString();
|
|
54
|
+
// TXE uses 1-block-per-checkpoint for testing simplicity, so we can use block number as checkpoint number.
|
|
55
|
+
// This uses the deprecated fromBlockNumber method intentionally for the TXE testing environment.
|
|
56
|
+
const checkpoint = await this.stores.blocks.getRangeOfCheckpoints(CheckpointNumber.fromBlockNumber(number), 1);
|
|
57
|
+
if (checkpoint.length === 0) {
|
|
58
|
+
throw new Error(`L2Tips requested from TXE Archiver but no checkpoint found for block number ${number}`);
|
|
59
|
+
}
|
|
60
|
+
const blockId = {
|
|
61
|
+
number,
|
|
62
|
+
hash
|
|
63
|
+
};
|
|
64
|
+
const checkpointId = {
|
|
65
|
+
number: checkpoint[0].checkpointNumber,
|
|
66
|
+
hash: checkpoint[0].header.hash().toString()
|
|
67
|
+
};
|
|
68
|
+
const tipId = {
|
|
69
|
+
block: blockId,
|
|
70
|
+
checkpoint: checkpointId
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
proposed: blockId,
|
|
74
|
+
proven: tipId,
|
|
75
|
+
finalized: tipId,
|
|
76
|
+
checkpointed: tipId
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
getSyncedL2SlotNumber() {
|
|
80
|
+
throw new Error('TXE Archiver does not implement "getSyncedL2SlotNumber"');
|
|
81
|
+
}
|
|
82
|
+
getSyncedL2EpochNumber() {
|
|
83
|
+
throw new Error('TXE Archiver does not implement "getSyncedL2EpochNumber"');
|
|
84
|
+
}
|
|
85
|
+
isEpochComplete(_epochNumber) {
|
|
86
|
+
throw new Error('TXE Archiver does not implement "isEpochComplete"');
|
|
87
|
+
}
|
|
88
|
+
syncImmediate() {
|
|
89
|
+
throw new Error('TXE Archiver does not implement "syncImmediate"');
|
|
90
|
+
}
|
|
91
|
+
getL2ToL1MembershipWitness() {
|
|
92
|
+
// TXE doesn't drive the L2-to-L1 message flow through this archiver.
|
|
93
|
+
return Promise.resolve(undefined);
|
|
130
94
|
}
|
|
131
95
|
}
|
|
@@ -1,54 +1,68 @@
|
|
|
1
|
-
import type { SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import type { AuthRequest, ENR, P2P, P2PBlockReceivedCallback, P2PConfig, P2PSyncState, PeerId, ReqRespSubProtocol, ReqRespSubProtocolHandler,
|
|
1
|
+
import type { CheckpointProposalHash, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import type { AuthRequest, ENR, P2P, P2PBlockReceivedCallback, P2PCheckpointAttestationCallback, P2PCheckpointReceivedCallback, P2PConfig, P2PDuplicateAttestationCallback, P2PDuplicateProposalCallback, P2POversizedProposalCallback, P2PSyncState, PeerId, ReqRespSubProtocol, ReqRespSubProtocolHandler, StatusMessage } from '@aztec/p2p';
|
|
3
3
|
import type { EthAddress, L2BlockStreamEvent, L2Tips } from '@aztec/stdlib/block';
|
|
4
|
-
import type { PeerInfo } from '@aztec/stdlib/interfaces/server';
|
|
5
|
-
import type {
|
|
6
|
-
import type { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
4
|
+
import type { ITxProvider, PeerInfo } from '@aztec/stdlib/interfaces/server';
|
|
5
|
+
import type { BlockProposal, CheckpointAttestation, CheckpointProposal, CheckpointProposalCore, TopicType } from '@aztec/stdlib/p2p';
|
|
6
|
+
import type { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
|
|
7
7
|
export declare class DummyP2P implements P2P {
|
|
8
|
-
|
|
9
|
-
validate(_txs: Tx[]): Promise<void>;
|
|
8
|
+
validateTxsReceivedInBlockProposal(_txs: Tx[]): Promise<void>;
|
|
10
9
|
clear(): Promise<void>;
|
|
11
10
|
getPendingTxs(): Promise<Tx[]>;
|
|
12
11
|
getEncodedEnr(): Promise<string | undefined>;
|
|
13
12
|
getPeers(_includePending?: boolean): Promise<PeerInfo[]>;
|
|
13
|
+
getGossipMeshPeerCount(_topicType: TopicType): Promise<number>;
|
|
14
14
|
broadcastProposal(_proposal: BlockProposal): Promise<void>;
|
|
15
|
+
broadcastCheckpointProposal(_proposal: CheckpointProposal): Promise<void>;
|
|
16
|
+
broadcastCheckpointAttestations(_attestations: CheckpointAttestation[]): Promise<void>;
|
|
15
17
|
registerBlockProposalHandler(_handler: P2PBlockReceivedCallback): void;
|
|
18
|
+
registerValidatorCheckpointProposalHandler(_handler: P2PCheckpointReceivedCallback): void;
|
|
19
|
+
registerAllNodesCheckpointProposalHandler(_handler: P2PCheckpointReceivedCallback): void;
|
|
16
20
|
requestTxs(_txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
|
|
17
21
|
requestTxByHash(_txHash: TxHash): Promise<Tx | undefined>;
|
|
18
22
|
sendTx(_tx: Tx): Promise<void>;
|
|
19
|
-
|
|
23
|
+
handleFailedExecution(_txHashes: TxHash[]): Promise<void>;
|
|
20
24
|
getTxByHashFromPool(_txHash: TxHash): Promise<Tx | undefined>;
|
|
21
25
|
getTxByHash(_txHash: TxHash): Promise<Tx | undefined>;
|
|
22
26
|
getArchivedTxByHash(_txHash: TxHash): Promise<Tx | undefined>;
|
|
23
27
|
getTxStatus(_txHash: TxHash): Promise<'pending' | 'mined' | undefined>;
|
|
24
28
|
iteratePendingTxs(): AsyncIterableIterator<Tx>;
|
|
29
|
+
iterateEligiblePendingTxs(): AsyncIterableIterator<Tx>;
|
|
25
30
|
getPendingTxCount(): Promise<number>;
|
|
31
|
+
hasEligiblePendingTxs(_minCount: number): Promise<boolean>;
|
|
26
32
|
start(): Promise<void>;
|
|
27
33
|
stop(): Promise<void>;
|
|
28
34
|
isReady(): boolean;
|
|
29
35
|
getStatus(): Promise<P2PSyncState>;
|
|
30
36
|
getEnr(): ENR | undefined;
|
|
31
37
|
isP2PClient(): true;
|
|
38
|
+
getTxProvider(): ITxProvider;
|
|
32
39
|
getTxsByHash(_txHashes: TxHash[]): Promise<Tx[]>;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
getCheckpointAttestationsForSlot(_slot: SlotNumber, _proposalPayloadHash?: CheckpointProposalHash): Promise<CheckpointAttestation[]>;
|
|
41
|
+
addOwnCheckpointAttestations(_attestations: CheckpointAttestation[]): Promise<void>;
|
|
42
|
+
getProposalsForSlot(_slot: SlotNumber): Promise<{
|
|
43
|
+
blockProposals: BlockProposal[];
|
|
44
|
+
checkpointProposals: CheckpointProposalCore[];
|
|
45
|
+
}>;
|
|
46
|
+
hasCheckpointProposalForSlot(_slot: SlotNumber): Promise<boolean>;
|
|
36
47
|
getL2BlockHash(_number: number): Promise<string | undefined>;
|
|
37
48
|
updateP2PConfig(_config: Partial<P2PConfig>): Promise<void>;
|
|
38
49
|
getL2Tips(): Promise<L2Tips>;
|
|
39
50
|
handleBlockStreamEvent(_event: L2BlockStreamEvent): Promise<void>;
|
|
40
51
|
sync(): void;
|
|
41
|
-
requestTxsByHash(_txHashes: TxHash[]): Promise<Tx[]>;
|
|
42
|
-
getTxs(_filter: 'all' | 'pending' | 'mined'): Promise<Tx[]>;
|
|
43
52
|
getTxsByHashFromPool(_txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
|
|
44
53
|
hasTxsInPool(_txHashes: TxHash[]): Promise<boolean[]>;
|
|
45
|
-
addTxsToPool(_txs: Tx[]): Promise<number>;
|
|
46
54
|
getSyncedLatestBlockNum(): Promise<number>;
|
|
47
55
|
getSyncedProvenBlockNum(): Promise<number>;
|
|
48
56
|
getSyncedLatestSlot(): Promise<bigint>;
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
protectTxs(_txHashes: TxHash[], _blockHeader: BlockHeader): Promise<TxHash[]>;
|
|
58
|
+
prepareForSlot(_slotNumber: SlotNumber): Promise<void>;
|
|
59
|
+
addReqRespSubProtocol(_subProtocol: ReqRespSubProtocol, _handler: ReqRespSubProtocolHandler): Promise<void>;
|
|
51
60
|
handleAuthRequestFromPeer(_authRequest: AuthRequest, _peerId: PeerId): Promise<StatusMessage>;
|
|
52
61
|
registerThisValidatorAddresses(_address: EthAddress[]): void;
|
|
62
|
+
registerDuplicateProposalCallback(_callback: P2PDuplicateProposalCallback): void;
|
|
63
|
+
registerOversizedProposalCallback(_callback: P2POversizedProposalCallback): void;
|
|
64
|
+
registerDuplicateAttestationCallback(_callback: P2PDuplicateAttestationCallback): void;
|
|
65
|
+
registerCheckpointAttestationCallback(_callback: P2PCheckpointAttestationCallback): void;
|
|
66
|
+
hasBlockProposalsForSlot(_slot: SlotNumber): Promise<boolean>;
|
|
53
67
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtbXlfcDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXRlX21hY2hpbmUvZHVtbXlfcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRixPQUFPLEtBQUssRUFDVixXQUFXLEVBQ1gsR0FBRyxFQUNILEdBQUcsRUFDSCx3QkFBd0IsRUFDeEIsZ0NBQWdDLEVBQ2hDLDZCQUE2QixFQUM3QixTQUFTLEVBQ1QsK0JBQStCLEVBQy9CLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsWUFBWSxFQUNaLE1BQU0sRUFDTixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLGFBQWEsRUFDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEYsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sS0FBSyxFQUNWLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixTQUFTLEVBQ1YsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLHFCQUFhLFFBQVMsWUFBVyxHQUFHO0lBQzNCLGtDQUFrQyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRW5FO0lBRU0sS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFNUI7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBRXBDO0lBRU0sYUFBYSxJQUFJ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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dummy_p2p_client.d.ts","sourceRoot":"","sources":["../../src/state_machine/dummy_p2p_client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"dummy_p2p_client.d.ts","sourceRoot":"","sources":["../../src/state_machine/dummy_p2p_client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,KAAK,EACV,WAAW,EACX,GAAG,EACH,GAAG,EACH,wBAAwB,EACxB,gCAAgC,EAChC,6BAA6B,EAC7B,SAAS,EACT,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,EAC5B,YAAY,EACZ,MAAM,EACN,kBAAkB,EAClB,yBAAyB,EACzB,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEhE,qBAAa,QAAS,YAAW,GAAG;IAC3B,kCAAkC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;IAEM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5B;IAEM,aAAa,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAEpC;IAEM,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAElD;IAEM,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAE9D;IAEM,sBAAsB,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAEpE;IAEM,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE;IAEM,2BAA2B,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;IAEM,+BAA+B,CAAC,aAAa,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5F;IAEM,4BAA4B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAE5E;IAEM,0CAA0C,CAAC,QAAQ,EAAE,6BAA6B,GAAG,IAAI,CAE/F;IAEM,yCAAyC,CAAC,QAAQ,EAAE,6BAA6B,GAAG,IAAI,CAE9F;IAEM,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAElE;IAEM,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAE/D;IAEM,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpC;IAEM,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/D;IAEM,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAEnE;IAEM,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAE3D;IAEM,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAEnE;IAEM,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC,CAI5E;IAEM,iBAAiB,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAEpD;IAEM,yBAAyB,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAE5D;IAEM,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAE1C;IAEM,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhE;IAEM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5B;IAEM,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAEM,OAAO,IAAI,OAAO,CAExB;IAEM,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,CAExC;IAEM,MAAM,IAAI,GAAG,GAAG,SAAS,CAE/B;IAEM,WAAW,IAAI,IAAI,CAEzB;IAEM,aAAa,IAAI,WAAW,CAElC;IAEM,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAEtD;IAEM,gCAAgC,CACrC,KAAK,EAAE,UAAU,EACjB,oBAAoB,CAAC,EAAE,sBAAsB,GAC5C,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAElC;IAEM,4BAA4B,CAAC,aAAa,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF;IAEM,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;QACrD,cAAc,EAAE,aAAa,EAAE,CAAC;QAChC,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;KAC/C,CAAC,CAED;IAEM,4BAA4B,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAEvE;IAEM,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAElE;IAEM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;IAEM,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAElC;IAEM,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;IAEM,IAAI,SAEV;IAEM,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAE5E;IAEM,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAE3D;IAEM,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhD;IAEM,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhD;IAEM,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAE5C;IAED,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE5E;IAED,cAAc,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD;IAED,qBAAqB,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1G;IACD,yBAAyB,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAE5F;IAGM,8BAA8B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAG;IAE/D,iCAAiC,CAAC,SAAS,EAAE,4BAA4B,GAAG,IAAI,CAEtF;IAEM,iCAAiC,CAAC,SAAS,EAAE,4BAA4B,GAAG,IAAI,CAEtF;IAEM,oCAAoC,CAAC,SAAS,EAAE,+BAA+B,GAAG,IAAI,CAE5F;IAEM,qCAAqC,CAAC,SAAS,EAAE,gCAAgC,GAAG,IAAI,CAE9F;IAEM,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAEnE;CACF"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
export class DummyP2P {
|
|
2
|
-
|
|
3
|
-
return Promise.resolve();
|
|
4
|
-
}
|
|
5
|
-
validate(_txs) {
|
|
2
|
+
validateTxsReceivedInBlockProposal(_txs) {
|
|
6
3
|
return Promise.resolve();
|
|
7
4
|
}
|
|
8
5
|
clear() {
|
|
@@ -17,12 +14,27 @@ export class DummyP2P {
|
|
|
17
14
|
getPeers(_includePending) {
|
|
18
15
|
throw new Error('DummyP2P does not implement "getPeers"');
|
|
19
16
|
}
|
|
17
|
+
getGossipMeshPeerCount(_topicType) {
|
|
18
|
+
return Promise.resolve(0);
|
|
19
|
+
}
|
|
20
20
|
broadcastProposal(_proposal) {
|
|
21
21
|
throw new Error('DummyP2P does not implement "broadcastProposal"');
|
|
22
22
|
}
|
|
23
|
+
broadcastCheckpointProposal(_proposal) {
|
|
24
|
+
throw new Error('DummyP2P does not implement "broadcastCheckpointProposal"');
|
|
25
|
+
}
|
|
26
|
+
broadcastCheckpointAttestations(_attestations) {
|
|
27
|
+
throw new Error('DummyP2P does not implement "broadcastCheckpointAttestations"');
|
|
28
|
+
}
|
|
23
29
|
registerBlockProposalHandler(_handler) {
|
|
24
30
|
throw new Error('DummyP2P does not implement "registerBlockProposalHandler"');
|
|
25
31
|
}
|
|
32
|
+
registerValidatorCheckpointProposalHandler(_handler) {
|
|
33
|
+
throw new Error('DummyP2P does not implement "registerValidatorCheckpointProposalHandler"');
|
|
34
|
+
}
|
|
35
|
+
registerAllNodesCheckpointProposalHandler(_handler) {
|
|
36
|
+
throw new Error('DummyP2P does not implement "registerAllNodesCheckpointProposalHandler"');
|
|
37
|
+
}
|
|
26
38
|
requestTxs(_txHashes) {
|
|
27
39
|
throw new Error('DummyP2P does not implement "requestTxs"');
|
|
28
40
|
}
|
|
@@ -32,8 +44,8 @@ export class DummyP2P {
|
|
|
32
44
|
sendTx(_tx) {
|
|
33
45
|
throw new Error('DummyP2P does not implement "sendTx"');
|
|
34
46
|
}
|
|
35
|
-
|
|
36
|
-
throw new Error('DummyP2P does not implement "
|
|
47
|
+
handleFailedExecution(_txHashes) {
|
|
48
|
+
throw new Error('DummyP2P does not implement "handleFailedExecution"');
|
|
37
49
|
}
|
|
38
50
|
getTxByHashFromPool(_txHash) {
|
|
39
51
|
throw new Error('DummyP2P does not implement "getTxByHashFromPool"');
|
|
@@ -45,14 +57,22 @@ export class DummyP2P {
|
|
|
45
57
|
throw new Error('DummyP2P does not implement "getArchivedTxByHash"');
|
|
46
58
|
}
|
|
47
59
|
getTxStatus(_txHash) {
|
|
48
|
-
|
|
60
|
+
// In TXE there is no concept of transactions but we need to implement this because of tagging. We return 'mined'
|
|
61
|
+
// tx status for any tx hash.
|
|
62
|
+
return Promise.resolve('mined');
|
|
49
63
|
}
|
|
50
64
|
iteratePendingTxs() {
|
|
51
65
|
throw new Error('DummyP2P does not implement "iteratePendingTxs"');
|
|
52
66
|
}
|
|
67
|
+
iterateEligiblePendingTxs() {
|
|
68
|
+
throw new Error('DummyP2P does not implement "iterateEligiblePendingTxs"');
|
|
69
|
+
}
|
|
53
70
|
getPendingTxCount() {
|
|
54
71
|
throw new Error('DummyP2P does not implement "getPendingTxCount"');
|
|
55
72
|
}
|
|
73
|
+
hasEligiblePendingTxs(_minCount) {
|
|
74
|
+
throw new Error('DummyP2P does not implement "hasEligiblePendingTxs"');
|
|
75
|
+
}
|
|
56
76
|
start() {
|
|
57
77
|
throw new Error('DummyP2P does not implement "start"');
|
|
58
78
|
}
|
|
@@ -71,17 +91,26 @@ export class DummyP2P {
|
|
|
71
91
|
isP2PClient() {
|
|
72
92
|
throw new Error('DummyP2P does not implement "isP2PClient"');
|
|
73
93
|
}
|
|
94
|
+
getTxProvider() {
|
|
95
|
+
throw new Error('DummyP2P does not implement "getTxProvider"');
|
|
96
|
+
}
|
|
74
97
|
getTxsByHash(_txHashes) {
|
|
75
98
|
throw new Error('DummyP2P does not implement "getTxsByHash"');
|
|
76
99
|
}
|
|
77
|
-
|
|
78
|
-
throw new Error('DummyP2P does not implement "
|
|
100
|
+
getCheckpointAttestationsForSlot(_slot, _proposalPayloadHash) {
|
|
101
|
+
throw new Error('DummyP2P does not implement "getCheckpointAttestationsForSlot"');
|
|
79
102
|
}
|
|
80
|
-
|
|
81
|
-
|
|
103
|
+
addOwnCheckpointAttestations(_attestations) {
|
|
104
|
+
throw new Error('DummyP2P does not implement "addOwnCheckpointAttestations"');
|
|
82
105
|
}
|
|
83
|
-
|
|
84
|
-
|
|
106
|
+
getProposalsForSlot(_slot) {
|
|
107
|
+
return Promise.resolve({
|
|
108
|
+
blockProposals: [],
|
|
109
|
+
checkpointProposals: []
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
hasCheckpointProposalForSlot(_slot) {
|
|
113
|
+
return Promise.resolve(false);
|
|
85
114
|
}
|
|
86
115
|
getL2BlockHash(_number) {
|
|
87
116
|
throw new Error('DummyP2P does not implement "getL2BlockHash"');
|
|
@@ -98,21 +127,12 @@ export class DummyP2P {
|
|
|
98
127
|
sync() {
|
|
99
128
|
throw new Error('DummyP2P does not implement "sync"');
|
|
100
129
|
}
|
|
101
|
-
requestTxsByHash(_txHashes) {
|
|
102
|
-
throw new Error('DummyP2P does not implement "requestTxsByHash"');
|
|
103
|
-
}
|
|
104
|
-
getTxs(_filter) {
|
|
105
|
-
throw new Error('DummyP2P does not implement "getTxs"');
|
|
106
|
-
}
|
|
107
130
|
getTxsByHashFromPool(_txHashes) {
|
|
108
131
|
throw new Error('DummyP2P does not implement "getTxsByHashFromPool"');
|
|
109
132
|
}
|
|
110
133
|
hasTxsInPool(_txHashes) {
|
|
111
134
|
throw new Error('DummyP2P does not implement "hasTxsInPool"');
|
|
112
135
|
}
|
|
113
|
-
addTxsToPool(_txs) {
|
|
114
|
-
throw new Error('DummyP2P does not implement "addTxs"');
|
|
115
|
-
}
|
|
116
136
|
getSyncedLatestBlockNum() {
|
|
117
137
|
throw new Error('DummyP2P does not implement "getSyncedLatestBlockNum"');
|
|
118
138
|
}
|
|
@@ -122,10 +142,13 @@ export class DummyP2P {
|
|
|
122
142
|
getSyncedLatestSlot() {
|
|
123
143
|
throw new Error('DummyP2P does not implement "getSyncedLatestSlot"');
|
|
124
144
|
}
|
|
125
|
-
|
|
126
|
-
throw new Error('DummyP2P does not implement "
|
|
145
|
+
protectTxs(_txHashes, _blockHeader) {
|
|
146
|
+
throw new Error('DummyP2P does not implement "protectTxs".');
|
|
147
|
+
}
|
|
148
|
+
prepareForSlot(_slotNumber) {
|
|
149
|
+
return Promise.resolve();
|
|
127
150
|
}
|
|
128
|
-
addReqRespSubProtocol(_subProtocol, _handler
|
|
151
|
+
addReqRespSubProtocol(_subProtocol, _handler) {
|
|
129
152
|
throw new Error('DummyP2P does not implement "addReqRespSubProtocol".');
|
|
130
153
|
}
|
|
131
154
|
handleAuthRequestFromPeer(_authRequest, _peerId) {
|
|
@@ -133,4 +156,19 @@ export class DummyP2P {
|
|
|
133
156
|
}
|
|
134
157
|
//This is no-op
|
|
135
158
|
registerThisValidatorAddresses(_address) {}
|
|
159
|
+
registerDuplicateProposalCallback(_callback) {
|
|
160
|
+
throw new Error('DummyP2P does not implement "registerDuplicateProposalCallback"');
|
|
161
|
+
}
|
|
162
|
+
registerOversizedProposalCallback(_callback) {
|
|
163
|
+
throw new Error('DummyP2P does not implement "registerOversizedProposalCallback"');
|
|
164
|
+
}
|
|
165
|
+
registerDuplicateAttestationCallback(_callback) {
|
|
166
|
+
throw new Error('DummyP2P does not implement "registerDuplicateAttestationCallback"');
|
|
167
|
+
}
|
|
168
|
+
registerCheckpointAttestationCallback(_callback) {
|
|
169
|
+
throw new Error('DummyP2P does not implement "registerCheckpointAttestationCallback"');
|
|
170
|
+
}
|
|
171
|
+
hasBlockProposalsForSlot(_slot) {
|
|
172
|
+
throw new Error('DummyP2P does not implement "hasBlockProposalsForSlot"');
|
|
173
|
+
}
|
|
136
174
|
}
|