@aztec/end-to-end 0.0.0-test.1 → 0.0.1-commit.0b941701
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/bench/client_flows/benchmark.d.ts +62 -0
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -0
- package/dest/bench/client_flows/benchmark.js +281 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +79 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -0
- package/dest/bench/client_flows/client_flows_benchmark.js +321 -0
- package/dest/bench/client_flows/config.d.ts +14 -0
- package/dest/bench/client_flows/config.d.ts.map +1 -0
- package/dest/bench/client_flows/config.js +106 -0
- package/dest/bench/client_flows/data_extractor.d.ts +2 -0
- package/dest/bench/client_flows/data_extractor.d.ts.map +1 -0
- package/dest/bench/client_flows/data_extractor.js +79 -0
- package/dest/bench/utils.d.ts +16 -41
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +41 -72
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +26 -19
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +114 -102
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +32 -32
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +104 -104
- package/dest/e2e_deploy_contract/deploy_test.d.ts +19 -10
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +26 -27
- package/dest/e2e_epochs/epochs_test.d.ts +65 -22
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +236 -49
- package/dest/e2e_fees/bridging_race.notest.d.ts +2 -0
- package/dest/e2e_fees/bridging_race.notest.d.ts.map +1 -0
- package/dest/e2e_fees/bridging_race.notest.js +61 -0
- package/dest/e2e_fees/fees_test.d.ts +38 -23
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +162 -183
- package/dest/e2e_l1_publisher/write_json.d.ts +10 -0
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -0
- package/dest/e2e_l1_publisher/write_json.js +62 -0
- package/dest/e2e_multi_validator/utils.d.ts +12 -0
- package/dest/e2e_multi_validator/utils.d.ts.map +1 -0
- package/dest/e2e_multi_validator/utils.js +214 -0
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +15 -15
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +37 -41
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +31 -0
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -0
- package/dest/e2e_p2p/inactivity_slash_test.js +136 -0
- package/dest/e2e_p2p/p2p_network.d.ts +281 -27
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +237 -175
- package/dest/e2e_p2p/shared.d.ts +44 -8
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +165 -27
- package/dest/e2e_token_contract/token_contract_test.d.ts +27 -14
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +96 -74
- package/dest/fixtures/e2e_prover_test.d.ts +55 -0
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -0
- package/dest/fixtures/e2e_prover_test.js +278 -0
- package/dest/fixtures/fixtures.d.ts +6 -8
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +5 -5
- package/dest/fixtures/get_acvm_config.d.ts +2 -2
- package/dest/fixtures/get_acvm_config.d.ts.map +1 -1
- package/dest/fixtures/get_acvm_config.js +3 -15
- package/dest/fixtures/get_bb_config.d.ts +2 -2
- package/dest/fixtures/get_bb_config.d.ts.map +1 -1
- package/dest/fixtures/get_bb_config.js +10 -17
- package/dest/fixtures/index.d.ts +1 -1
- package/dest/fixtures/l1_to_l2_messaging.d.ts +11 -7
- package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
- package/dest/fixtures/l1_to_l2_messaging.js +45 -19
- package/dest/fixtures/logging.d.ts +1 -1
- package/dest/fixtures/setup.d.ts +218 -0
- package/dest/fixtures/setup.d.ts.map +1 -0
- package/dest/fixtures/setup.js +690 -0
- package/dest/fixtures/setup_p2p_test.d.ts +15 -14
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +82 -22
- package/dest/fixtures/token_utils.d.ts +10 -4
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +31 -12
- package/dest/fixtures/utils.d.ts +5 -153
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +4 -552
- package/dest/fixtures/web3signer.d.ts +5 -0
- package/dest/fixtures/web3signer.d.ts.map +1 -0
- package/dest/fixtures/web3signer.js +53 -0
- package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
- package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
- package/dest/fixtures/with_telemetry_utils.js +2 -2
- package/dest/index.d.ts +1 -1
- package/dest/quality_of_service/grafana_client.d.ts +41 -0
- package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
- package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
- package/dest/quality_of_service/prometheus_client.d.ts +38 -0
- package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
- package/dest/quality_of_service/prometheus_client.js +67 -0
- package/dest/shared/cross_chain_test_harness.d.ts +44 -27
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +105 -51
- package/dest/shared/gas_portal_test_harness.d.ts +33 -25
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +51 -30
- package/dest/shared/index.d.ts +2 -2
- package/dest/shared/index.d.ts.map +1 -1
- package/dest/shared/jest_setup.d.ts +1 -1
- package/dest/shared/jest_setup.js +1 -1
- package/dest/shared/submit-transactions.d.ts +6 -4
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +15 -16
- package/dest/shared/uniswap_l1_l2.d.ts +3 -25
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +176 -126
- package/dest/simulators/index.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts +7 -7
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +17 -18
- package/dest/simulators/token_simulator.d.ts +6 -3
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +16 -13
- package/dest/spartan/setup_test_wallets.d.ts +27 -11
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +233 -62
- package/dest/spartan/tx_metrics.d.ts +54 -0
- package/dest/spartan/tx_metrics.d.ts.map +1 -0
- package/dest/spartan/tx_metrics.js +272 -0
- package/dest/spartan/utils/bot.d.ts +27 -0
- package/dest/spartan/utils/bot.d.ts.map +1 -0
- package/dest/spartan/utils/bot.js +141 -0
- package/dest/spartan/utils/chaos.d.ts +79 -0
- package/dest/spartan/utils/chaos.d.ts.map +1 -0
- package/dest/spartan/utils/chaos.js +142 -0
- package/dest/spartan/utils/clients.d.ts +39 -0
- package/dest/spartan/utils/clients.d.ts.map +1 -0
- package/dest/spartan/utils/clients.js +90 -0
- package/dest/spartan/utils/config.d.ts +36 -0
- package/dest/spartan/utils/config.d.ts.map +1 -0
- package/dest/spartan/utils/config.js +20 -0
- package/dest/spartan/utils/health.d.ts +63 -0
- package/dest/spartan/utils/health.d.ts.map +1 -0
- package/dest/spartan/utils/health.js +202 -0
- package/dest/spartan/utils/helm.d.ts +15 -0
- package/dest/spartan/utils/helm.d.ts.map +1 -0
- package/dest/spartan/utils/helm.js +47 -0
- package/dest/spartan/utils/index.d.ts +9 -0
- package/dest/spartan/utils/index.d.ts.map +1 -0
- package/dest/spartan/utils/index.js +18 -0
- package/dest/spartan/utils/k8s.d.ts +98 -0
- package/dest/spartan/utils/k8s.d.ts.map +1 -0
- package/dest/spartan/utils/k8s.js +257 -0
- package/dest/spartan/utils/nodes.d.ts +31 -0
- package/dest/spartan/utils/nodes.d.ts.map +1 -0
- package/dest/spartan/utils/nodes.js +290 -0
- package/dest/spartan/utils/scripts.d.ts +16 -0
- package/dest/spartan/utils/scripts.d.ts.map +1 -0
- package/dest/spartan/utils/scripts.js +66 -0
- package/dest/spartan/utils.d.ts +2 -415
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +1 -445
- package/package.json +66 -58
- package/src/bench/client_flows/benchmark.ts +363 -0
- package/src/bench/client_flows/client_flows_benchmark.ts +384 -0
- package/src/bench/client_flows/config.ts +61 -0
- package/src/bench/client_flows/data_extractor.ts +89 -0
- package/src/bench/utils.ts +41 -85
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +134 -169
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +156 -182
- package/src/e2e_deploy_contract/deploy_test.ts +40 -48
- package/src/e2e_epochs/epochs_test.ts +315 -76
- package/src/e2e_fees/bridging_race.notest.ts +74 -0
- package/src/e2e_fees/fees_test.ts +220 -258
- package/src/e2e_l1_publisher/write_json.ts +82 -0
- package/src/e2e_multi_validator/utils.ts +258 -0
- package/src/e2e_nested_contract/nested_contract_test.ts +46 -59
- package/src/e2e_p2p/inactivity_slash_test.ts +179 -0
- package/src/e2e_p2p/p2p_network.ts +341 -234
- package/src/e2e_p2p/shared.ts +253 -40
- package/src/e2e_token_contract/token_contract_test.ts +115 -126
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +336 -0
- package/src/fixtures/fixtures.ts +5 -7
- package/src/fixtures/get_acvm_config.ts +4 -12
- package/src/fixtures/get_bb_config.ts +18 -13
- package/src/fixtures/l1_to_l2_messaging.ts +56 -24
- package/src/fixtures/setup.ts +1017 -0
- package/src/fixtures/setup_p2p_test.ts +127 -39
- package/src/fixtures/token_utils.ts +33 -15
- package/src/fixtures/utils.ts +27 -820
- package/src/fixtures/web3signer.ts +63 -0
- package/src/fixtures/with_telemetry_utils.ts +2 -2
- package/src/guides/up_quick_start.sh +7 -15
- package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +2 -2
- package/src/quality_of_service/prometheus_client.ts +113 -0
- package/src/shared/cross_chain_test_harness.ts +103 -91
- package/src/shared/gas_portal_test_harness.ts +59 -50
- package/src/shared/index.ts +1 -1
- package/src/shared/jest_setup.ts +1 -1
- package/src/shared/submit-transactions.ts +18 -20
- package/src/shared/uniswap_l1_l2.ts +197 -221
- package/src/simulators/lending_simulator.ts +16 -17
- package/src/simulators/token_simulator.ts +21 -13
- package/src/spartan/DEVELOP.md +128 -0
- package/src/spartan/setup_test_wallets.ts +308 -95
- package/src/spartan/tx_metrics.ts +250 -0
- package/src/spartan/utils/bot.ts +185 -0
- package/src/spartan/utils/chaos.ts +253 -0
- package/src/spartan/utils/clients.ts +100 -0
- package/src/spartan/utils/config.ts +26 -0
- package/src/spartan/utils/health.ts +255 -0
- package/src/spartan/utils/helm.ts +84 -0
- package/src/spartan/utils/index.ts +62 -0
- package/src/spartan/utils/k8s.ts +375 -0
- package/src/spartan/utils/nodes.ts +323 -0
- package/src/spartan/utils/scripts.ts +63 -0
- package/src/spartan/utils.ts +1 -582
- package/dest/e2e_prover/e2e_prover_test.d.ts +0 -56
- package/dest/e2e_prover/e2e_prover_test.d.ts.map +0 -1
- package/dest/e2e_prover/e2e_prover_test.js +0 -291
- package/dest/fixtures/setup_l1_contracts.d.ts +0 -6
- package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
- package/dest/fixtures/setup_l1_contracts.js +0 -17
- package/dest/fixtures/snapshot_manager.d.ts +0 -87
- package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
- package/dest/fixtures/snapshot_manager.js +0 -479
- package/dest/quality_of_service/alert_checker.d.ts +0 -41
- package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
- package/dest/sample-dapp/connect.js +0 -12
- package/dest/sample-dapp/contracts.js +0 -10
- package/dest/sample-dapp/deploy.js +0 -35
- package/dest/sample-dapp/index.js +0 -98
- package/src/e2e_prover/e2e_prover_test.ts +0 -418
- package/src/fixtures/setup_l1_contracts.ts +0 -27
- package/src/fixtures/snapshot_manager.ts +0 -617
- package/src/sample-dapp/connect.mjs +0 -16
- package/src/sample-dapp/contracts.mjs +0 -14
- package/src/sample-dapp/deploy.mjs +0 -40
- package/src/sample-dapp/index.mjs +0 -128
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
/**
|
|
3
2
|
* Test fixtures and utilities to set up and run a test using multiple validators
|
|
4
3
|
*/
|
|
5
4
|
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
6
|
-
import type { SentTx } from '@aztec/aztec.js';
|
|
7
5
|
import type { DateProvider } from '@aztec/foundation/timer';
|
|
8
|
-
import type {
|
|
6
|
+
import type { ProverNodeDeps } from '@aztec/prover-node';
|
|
9
7
|
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
10
8
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const ATTESTER_PRIVATE_KEYS_START_INDEX = 1001;
|
|
13
|
-
export interface NodeContext {
|
|
14
|
-
node: AztecNodeService;
|
|
15
|
-
pxeService: PXEService;
|
|
16
|
-
txs: SentTx[];
|
|
17
|
-
}
|
|
9
|
+
export declare const ATTESTER_PRIVATE_KEYS_START_INDEX = 3;
|
|
18
10
|
export declare function generatePrivateKeys(startIndex: number, numberOfKeys: number): `0x${string}`[];
|
|
19
|
-
export declare function createNodes(config: AztecNodeConfig
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
export declare function createNodes(config: AztecNodeConfig & {
|
|
12
|
+
dontStartSequencer?: boolean;
|
|
13
|
+
}, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, indexOffset?: number, validatorsPerNode?: number): Promise<AztecNodeService[]>;
|
|
14
|
+
/** Creates a P2P enabled instance of Aztec Node Service with a validator */
|
|
15
|
+
export declare function createNode(config: AztecNodeConfig & {
|
|
16
|
+
dontStartSequencer?: boolean;
|
|
17
|
+
}, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number | number[], prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<AztecNodeService>;
|
|
18
|
+
/** Creates a P2P enabled instance of Aztec Node Service without a validator */
|
|
19
|
+
export declare function createNonValidatorNode(baseConfig: AztecNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<AztecNodeService>;
|
|
20
|
+
export declare function createProverNode(config: AztecNodeConfig, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, proverNodeDeps: ProverNodeDeps & Required<Pick<ProverNodeDeps, 'dateProvider'>>, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<import("@aztec/prover-node").ProverNode>;
|
|
21
|
+
export declare function createP2PConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, dataDirectory?: string): Promise<AztecNodeConfig>;
|
|
22
|
+
export declare function createValidatorConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, addressIndex?: number | number[], dataDirectory?: string): Promise<AztecNodeConfig>;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfcDJwX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9zZXR1cF9wMnBfdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSzNFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFvQixjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBU3JELGVBQU8sTUFBTSxpQ0FBaUMsSUFBSSxDQUFDO0FBRW5ELHdCQUFnQixtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEdBQUcsS0FBSyxNQUFNLEVBQUUsRUFBRSxDQU83RjtBQUVELHdCQUFzQixXQUFXLENBQy9CLE1BQU0sRUFBRSxlQUFlLEdBQUc7SUFBRSxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUFFLEVBQzFELFlBQVksRUFBRSxZQUFZLEVBQzFCLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsWUFBWSxFQUFFLE1BQU0sRUFDcEIsbUJBQW1CLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxFQUMxQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFDcEIsV0FBVyxTQUFJLEVBQ2YsaUJBQWlCLFNBQUksR0FDcEIsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0F5QzdCO0FBRUQsNEVBQTRFO0FBQzVFLHdCQUFzQixVQUFVLENBQzlCLE1BQU0sRUFBRSxlQUFlLEdBQUc7SUFBRSxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUFFLEVBQzFELFlBQVksRUFBRSxZQUFZLEVBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ2pDLFlBQVksRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLEVBQy9CLG1CQUFtQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsRUFDMUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLEVBQ3BCLGVBQWUsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyw2QkFZNUM7QUFFRCwrRUFBK0U7QUFDL0Usd0JBQXNCLHNCQUFzQixDQUMxQyxVQUFVLEVBQUUsZUFBZSxFQUMzQixZQUFZLEVBQUUsWUFBWSxFQUMxQixPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUNqQyxtQkFBbUIsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLEVBQzFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFDdEIsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUNwQixlQUFlLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsNkJBYzVDO0FBRUQsd0JBQXNCLGdCQUFnQixDQUNwQyxNQUFNLEVBQUUsZUFBZSxFQUN2QixPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUNqQyxZQUFZLEVBQUUsTUFBTSxFQUNwQixjQUFjLEVBQUUsY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLEVBQy9FLG1CQUFtQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsRUFDMUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLEVBQ3BCLGVBQWUsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxvREF3QjVDO0FBRUQsd0JBQXNCLGVBQWUsQ0FDbkMsTUFBTSxFQUFFLGVBQWUsRUFDdkIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQ3pCLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFDYixhQUFhLENBQUMsRUFBRSxNQUFNLDRCQWdCdkI7QUFFRCx3QkFBc0IscUJBQXFCLENBQ3pDLE1BQU0sRUFBRSxlQUFlLEVBQ3ZCLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxFQUN6QixJQUFJLENBQUMsRUFBRSxNQUFNLEVBQ2IsWUFBWSxHQUFFLE1BQU0sR0FBRyxNQUFNLEVBQU0sRUFDbkMsYUFBYSxDQUFDLEVBQUUsTUFBTSw0QkFtQnZCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASrD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,EAAE,CAO7F;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,SAAI,EACf,iBAAiB,SAAI,GACpB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyC7B;AAED,4EAA4E;AAC5E,wBAAsB,UAAU,CAC9B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,EAC/B,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,6BAY5C;AAED,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAC3B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,6BAc5C;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,EAC/E,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,oDAwB5C;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,4BAgBvB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,GAAE,MAAM,GAAG,MAAM,EAAM,EACnC,aAAa,CAAC,EAAE,MAAM,4BAmBvB"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Test fixtures and utilities to set up and run a test using multiple validators
|
|
3
3
|
*/ import { AztecNodeService } from '@aztec/aztec-node';
|
|
4
|
+
import { range } from '@aztec/foundation/array';
|
|
5
|
+
import { SecretValue } from '@aztec/foundation/config';
|
|
4
6
|
import { addLogNameHandler, removeLogNameHandler } from '@aztec/foundation/log';
|
|
7
|
+
import { bufferToHex } from '@aztec/foundation/string';
|
|
5
8
|
import getPort from 'get-port';
|
|
6
9
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
7
10
|
import { TEST_PEER_CHECK_INTERVAL_MS } from './fixtures.js';
|
|
8
|
-
import { getPrivateKeyFromIndex } from './utils.js';
|
|
11
|
+
import { createAndSyncProverNode, getPrivateKeyFromIndex } from './utils.js';
|
|
9
12
|
import { getEndToEndTestTelemetryClient } from './with_telemetry_utils.js';
|
|
10
|
-
// Setup snapshots will create a node with index 0,
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
export const ATTESTER_PRIVATE_KEYS_START_INDEX =
|
|
13
|
+
// Setup snapshots will create a node with index 0, and run extra bootstrap with
|
|
14
|
+
// index 1, and prover node with index 2, so all of our loops here need to start from 3
|
|
15
|
+
// to avoid running validators with the same key
|
|
16
|
+
export const ATTESTER_PRIVATE_KEYS_START_INDEX = 3;
|
|
14
17
|
export function generatePrivateKeys(startIndex, numberOfKeys) {
|
|
15
18
|
const privateKeys = [];
|
|
16
19
|
// Do not start from 0 as it is used during setup
|
|
@@ -19,48 +22,86 @@ export function generatePrivateKeys(startIndex, numberOfKeys) {
|
|
|
19
22
|
}
|
|
20
23
|
return privateKeys;
|
|
21
24
|
}
|
|
22
|
-
export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNodes, bootNodePort, prefilledPublicData, dataDirectory, metricsPort) {
|
|
25
|
+
export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNodes, bootNodePort, prefilledPublicData, dataDirectory, metricsPort, indexOffset = 0, validatorsPerNode = 1) {
|
|
23
26
|
const nodePromises = [];
|
|
24
27
|
const loggerIdStorage = new AsyncLocalStorage();
|
|
25
28
|
const logNameHandler = (module)=>loggerIdStorage.getStore() ? `${module}:${loggerIdStorage.getStore()}` : module;
|
|
26
29
|
addLogNameHandler(logNameHandler);
|
|
27
30
|
for(let i = 0; i < numNodes; i++){
|
|
31
|
+
const index = indexOffset + i;
|
|
28
32
|
// We run on ports from the bootnode upwards
|
|
29
|
-
const port = bootNodePort +
|
|
30
|
-
|
|
31
|
-
const
|
|
33
|
+
const port = bootNodePort + 1 + index;
|
|
34
|
+
// Determine validator indices for this node
|
|
35
|
+
const validatorIndices = validatorsPerNode === 1 ? index : range(validatorsPerNode, validatorsPerNode * index);
|
|
36
|
+
// Assign data directory
|
|
37
|
+
const dataDir = dataDirectory ? `${dataDirectory}-${index}` : undefined;
|
|
38
|
+
const nodePromise = createNode(config, dateProvider, port, bootstrapNodeEnr, validatorIndices, prefilledPublicData, dataDir, metricsPort, loggerIdStorage);
|
|
32
39
|
nodePromises.push(nodePromise);
|
|
33
40
|
}
|
|
34
41
|
const nodes = await Promise.all(nodePromises);
|
|
42
|
+
// Sanity check that we have a sequencer if required
|
|
43
|
+
const seqClient = nodes[0].getSequencer();
|
|
44
|
+
if (!seqClient && config.disableValidator === false) {
|
|
45
|
+
throw new Error('Sequencer not found');
|
|
46
|
+
}
|
|
35
47
|
removeLogNameHandler(logNameHandler);
|
|
36
48
|
return nodes;
|
|
37
49
|
}
|
|
38
|
-
|
|
39
|
-
export async function createNode(config, dateProvider, tcpPort, bootstrapNode, accountIndex, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
|
|
50
|
+
/** Creates a P2P enabled instance of Aztec Node Service with a validator */ export async function createNode(config, dateProvider, tcpPort, bootstrapNode, addressIndex, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
|
|
40
51
|
const createNode = async ()=>{
|
|
41
|
-
const validatorConfig = await createValidatorConfig(config, bootstrapNode, tcpPort,
|
|
42
|
-
const telemetry = getEndToEndTestTelemetryClient(metricsPort);
|
|
52
|
+
const validatorConfig = await createValidatorConfig(config, bootstrapNode, tcpPort, addressIndex, dataDirectory);
|
|
53
|
+
const telemetry = await getEndToEndTestTelemetryClient(metricsPort);
|
|
43
54
|
return await AztecNodeService.createAndSync(validatorConfig, {
|
|
44
55
|
telemetry,
|
|
45
56
|
dateProvider
|
|
57
|
+
}, {
|
|
58
|
+
prefilledPublicData,
|
|
59
|
+
dontStartSequencer: config.dontStartSequencer
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createNode) : createNode();
|
|
63
|
+
}
|
|
64
|
+
/** Creates a P2P enabled instance of Aztec Node Service without a validator */ export async function createNonValidatorNode(baseConfig, dateProvider, tcpPort, bootstrapNode, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
|
|
65
|
+
const createNode = async ()=>{
|
|
66
|
+
const p2pConfig = await createP2PConfig(baseConfig, bootstrapNode, tcpPort, dataDirectory);
|
|
67
|
+
const config = {
|
|
68
|
+
...p2pConfig,
|
|
69
|
+
disableValidator: true,
|
|
70
|
+
validatorPrivateKeys: undefined,
|
|
71
|
+
publisherPrivateKeys: []
|
|
72
|
+
};
|
|
73
|
+
const telemetry = await getEndToEndTestTelemetryClient(metricsPort);
|
|
74
|
+
return await AztecNodeService.createAndSync(config, {
|
|
75
|
+
telemetry,
|
|
76
|
+
dateProvider
|
|
46
77
|
}, {
|
|
47
78
|
prefilledPublicData
|
|
48
79
|
});
|
|
49
80
|
};
|
|
50
81
|
return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createNode) : createNode();
|
|
51
82
|
}
|
|
52
|
-
export async function
|
|
83
|
+
export async function createProverNode(config, tcpPort, bootstrapNode, addressIndex, proverNodeDeps, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
|
|
84
|
+
const createProverNode = async ()=>{
|
|
85
|
+
const proverNodePrivateKey = getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + addressIndex);
|
|
86
|
+
const telemetry = await getEndToEndTestTelemetryClient(metricsPort);
|
|
87
|
+
const proverConfig = await createP2PConfig(config, bootstrapNode, tcpPort, dataDirectory);
|
|
88
|
+
const aztecNodeRpcTxProvider = undefined;
|
|
89
|
+
return await createAndSyncProverNode(bufferToHex(proverNodePrivateKey), config, {
|
|
90
|
+
...proverConfig,
|
|
91
|
+
dataDirectory
|
|
92
|
+
}, aztecNodeRpcTxProvider, prefilledPublicData, {
|
|
93
|
+
...proverNodeDeps,
|
|
94
|
+
telemetry
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createProverNode) : createProverNode();
|
|
98
|
+
}
|
|
99
|
+
export async function createP2PConfig(config, bootstrapNodeEnr, port, dataDirectory) {
|
|
53
100
|
port = port ?? await getPort();
|
|
54
|
-
const attesterPrivateKey = `0x${getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + accountIndex).toString('hex')}`;
|
|
55
|
-
const proposerPrivateKey = `0x${getPrivateKeyFromIndex(PROPOSER_PRIVATE_KEYS_START_INDEX + accountIndex).toString('hex')}`;
|
|
56
|
-
config.validatorPrivateKey = attesterPrivateKey;
|
|
57
|
-
config.publisherPrivateKey = proposerPrivateKey;
|
|
58
101
|
const nodeConfig = {
|
|
59
102
|
...config,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
tcpAnnounceAddress: `127.0.0.1:${port}`,
|
|
63
|
-
udpAnnounceAddress: `127.0.0.1:${port}`,
|
|
103
|
+
p2pIp: `127.0.0.1`,
|
|
104
|
+
p2pPort: port,
|
|
64
105
|
p2pEnabled: true,
|
|
65
106
|
peerCheckIntervalMS: TEST_PEER_CHECK_INTERVAL_MS,
|
|
66
107
|
blockCheckIntervalMS: 1000,
|
|
@@ -71,3 +112,22 @@ export async function createValidatorConfig(config, bootstrapNodeEnr, port, acco
|
|
|
71
112
|
};
|
|
72
113
|
return nodeConfig;
|
|
73
114
|
}
|
|
115
|
+
export async function createValidatorConfig(config, bootstrapNodeEnr, port, addressIndex = 1, dataDirectory) {
|
|
116
|
+
const addressIndices = Array.isArray(addressIndex) ? addressIndex : [
|
|
117
|
+
addressIndex
|
|
118
|
+
];
|
|
119
|
+
if (addressIndices.length === 0) {
|
|
120
|
+
throw new Error('At least one address index must be provided to create a validator config');
|
|
121
|
+
}
|
|
122
|
+
const attesterPrivateKeys = addressIndices.map((index)=>bufferToHex(getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + index)));
|
|
123
|
+
const p2pConfig = await createP2PConfig(config, bootstrapNodeEnr, port, dataDirectory);
|
|
124
|
+
const nodeConfig = {
|
|
125
|
+
...config,
|
|
126
|
+
...p2pConfig,
|
|
127
|
+
validatorPrivateKeys: new SecretValue(attesterPrivateKeys),
|
|
128
|
+
publisherPrivateKeys: [
|
|
129
|
+
new SecretValue(attesterPrivateKeys[0])
|
|
130
|
+
]
|
|
131
|
+
};
|
|
132
|
+
return nodeConfig;
|
|
133
|
+
}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import type { AztecAddress
|
|
1
|
+
import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import type { Logger } from '@aztec/aztec.js/log';
|
|
3
|
+
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
2
4
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
|
-
export declare function deployToken(
|
|
4
|
-
|
|
5
|
+
export declare function deployToken(wallet: Wallet, admin: AztecAddress, initialAdminBalance: bigint, logger: Logger): Promise<{
|
|
6
|
+
contract: TokenContract;
|
|
7
|
+
instance: import("@aztec/aztec.js/contracts").ContractInstanceWithAddress;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function mintTokensToPrivate(token: TokenContract, minter: AztecAddress, recipient: AztecAddress, amount: bigint): Promise<void>;
|
|
5
10
|
export declare function expectTokenBalance(wallet: Wallet, token: TokenContract, owner: AztecAddress, expectedBalance: bigint, logger: Logger): Promise<void>;
|
|
6
|
-
|
|
11
|
+
export declare function mintNotes(wallet: Wallet, minter: AztecAddress, recipient: AztecAddress, asset: TokenContract, noteAmounts: bigint[]): Promise<bigint>;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy90b2tlbl91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0Qsd0JBQXNCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNOzs7R0Fjakg7QUFFRCx3QkFBc0IsbUJBQW1CLENBQ3ZDLEtBQUssRUFBRSxhQUFhLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLFNBQVMsRUFBRSxZQUFZLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLGlCQUdmO0FBRUQsd0JBQXNCLGtCQUFrQixDQUN0QyxNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxhQUFhLEVBQ3BCLEtBQUssRUFBRSxZQUFZLEVBQ25CLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLGlCQU9mO0FBRUQsd0JBQXNCLFNBQVMsQ0FDN0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsWUFBWSxFQUNwQixTQUFTLEVBQUUsWUFBWSxFQUN2QixLQUFLLEVBQUUsYUFBYSxFQUNwQixXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FXakIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;GAcjH;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,iBAGf;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,iBAOf;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
|
|
@@ -1,27 +1,46 @@
|
|
|
1
|
-
|
|
1
|
+
import { BatchCall } from '@aztec/aztec.js/contracts';
|
|
2
2
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
|
-
export async function deployToken(
|
|
3
|
+
export async function deployToken(wallet, admin, initialAdminBalance, logger) {
|
|
4
4
|
logger.info(`Deploying Token contract...`);
|
|
5
|
-
const contract = await TokenContract.deploy(
|
|
5
|
+
const { contract, instance } = await TokenContract.deploy(wallet, admin, 'TokenName', 'TokenSymbol', 18).send({
|
|
6
|
+
from: admin,
|
|
7
|
+
wait: {
|
|
8
|
+
returnReceipt: true
|
|
9
|
+
}
|
|
10
|
+
});
|
|
6
11
|
if (initialAdminBalance > 0n) {
|
|
7
|
-
|
|
8
|
-
await mintTokensToPrivate(contract, adminWallet, adminWallet.getAddress(), initialAdminBalance);
|
|
12
|
+
await mintTokensToPrivate(contract, admin, admin, initialAdminBalance);
|
|
9
13
|
}
|
|
10
14
|
logger.info('L2 contract deployed');
|
|
11
|
-
return
|
|
15
|
+
return {
|
|
16
|
+
contract,
|
|
17
|
+
instance
|
|
18
|
+
};
|
|
12
19
|
}
|
|
13
|
-
export async function mintTokensToPrivate(token,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
export async function mintTokensToPrivate(token, minter, recipient, amount) {
|
|
21
|
+
await token.methods.mint_to_private(recipient, amount).send({
|
|
22
|
+
from: minter
|
|
23
|
+
});
|
|
17
24
|
}
|
|
18
|
-
// docs:end:token_utils
|
|
19
25
|
export async function expectTokenBalance(wallet, token, owner, expectedBalance, logger) {
|
|
20
26
|
// Then check the balance
|
|
21
|
-
const contractWithWallet =
|
|
27
|
+
const contractWithWallet = TokenContract.at(token.address, wallet);
|
|
22
28
|
const balance = await contractWithWallet.methods.balance_of_private(owner).simulate({
|
|
23
29
|
from: owner
|
|
24
30
|
});
|
|
25
31
|
logger.info(`Account ${owner} balance: ${balance}`);
|
|
26
32
|
expect(balance).toBe(expectedBalance);
|
|
27
33
|
}
|
|
34
|
+
export async function mintNotes(wallet, minter, recipient, asset, noteAmounts) {
|
|
35
|
+
// We can only mint 5 notes at a time, since that's the maximum number of calls our entrypoints allow
|
|
36
|
+
// TODO(#13024): mint as many notes as possible in a single tx
|
|
37
|
+
const notesPerIteration = 5;
|
|
38
|
+
for(let mintedNotes = 0; mintedNotes < noteAmounts.length; mintedNotes += notesPerIteration){
|
|
39
|
+
const toMint = noteAmounts.slice(mintedNotes, mintedNotes + notesPerIteration);
|
|
40
|
+
const actions = toMint.map((amt)=>asset.methods.mint_to_private(recipient, amt));
|
|
41
|
+
await new BatchCall(wallet, actions).send({
|
|
42
|
+
from: minter
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return noteAmounts.reduce((prev, curr)=>prev + curr, 0n);
|
|
46
|
+
}
|
package/dest/fixtures/utils.d.ts
CHANGED
|
@@ -1,155 +1,7 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
import { type InitialAccountData } from '@aztec/accounts/testing';
|
|
4
|
-
import { type AztecNodeConfig } from '@aztec/aztec-node';
|
|
5
|
-
import { type AccountWalletWithSecretKey, AnvilTestWatcher, type AztecAddress, type AztecNode, CheatCodes, type ContractMethod, type DeployL1ContractsReturnType, type Logger, type PXE, type Wallet } from '@aztec/aztec.js';
|
|
6
|
-
import type { BBNativePrivateKernelProver } from '@aztec/bb-prover';
|
|
7
|
-
import { type BlobSinkServer } from '@aztec/blob-sink/server';
|
|
8
|
-
import { type DeployL1ContractsArgs, ForwarderContract } from '@aztec/ethereum';
|
|
9
|
-
import { startAnvil } from '@aztec/ethereum/test';
|
|
10
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
11
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
12
|
-
import { TestDateProvider } from '@aztec/foundation/timer';
|
|
13
|
-
import { type ProverNode } from '@aztec/prover-node';
|
|
14
|
-
import { type PXEService, type PXEServiceConfig } from '@aztec/pxe/server';
|
|
15
|
-
import type { SequencerClient } from '@aztec/sequencer-client';
|
|
16
|
-
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
17
|
-
import { type TelemetryClient, type TelemetryClientConfig } from '@aztec/telemetry-client';
|
|
18
|
-
import { type Chain, type HDAccount, type Hex, type PrivateKeyAccount } from 'viem';
|
|
19
|
-
export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
|
|
20
|
-
export { startAnvil };
|
|
21
|
-
export declare const getPrivateKeyFromIndex: (index: number) => Buffer | null;
|
|
22
|
-
export declare const setupL1Contracts: (l1RpcUrls: string[], account: HDAccount | PrivateKeyAccount, logger: Logger, args?: Partial<DeployL1ContractsArgs>, chain?: Chain) => Promise<DeployL1ContractsReturnType>;
|
|
23
|
-
/**
|
|
24
|
-
* Sets up Private eXecution Environment (PXE).
|
|
25
|
-
* @param aztecNode - An instance of Aztec Node.
|
|
26
|
-
* @param opts - Partial configuration for the PXE service.
|
|
27
|
-
* @param firstPrivKey - The private key of the first account to be created.
|
|
28
|
-
* @param logger - The logger to be used.
|
|
29
|
-
* @param useLogSuffix - Whether to add a randomly generated suffix to the PXE debug logs.
|
|
30
|
-
* @param proofCreator - An optional proof creator to use
|
|
31
|
-
* @returns Private eXecution Environment (PXE), accounts, wallets and logger.
|
|
32
|
-
*/
|
|
33
|
-
export declare function setupPXEService(aztecNode: AztecNode, opts?: Partial<PXEServiceConfig>, logger?: Logger, useLogSuffix?: boolean, proofCreator?: BBNativePrivateKernelProver): Promise<{
|
|
34
|
-
/**
|
|
35
|
-
* The PXE instance.
|
|
36
|
-
*/
|
|
37
|
-
pxe: PXEService;
|
|
38
|
-
/**
|
|
39
|
-
* Logger instance named as the current test.
|
|
40
|
-
*/
|
|
41
|
-
logger: Logger;
|
|
42
|
-
/**
|
|
43
|
-
* Teardown function
|
|
44
|
-
*/
|
|
45
|
-
teardown: () => Promise<void>;
|
|
46
|
-
}>;
|
|
47
|
-
/** Options for the e2e tests setup */
|
|
48
|
-
export type SetupOptions = {
|
|
49
|
-
/** State load */
|
|
50
|
-
stateLoad?: string;
|
|
51
|
-
/** Whether to enable metrics collection, if undefined, metrics collection is disabled */
|
|
52
|
-
metricsPort?: number | undefined;
|
|
53
|
-
/** Previously deployed contracts on L1 */
|
|
54
|
-
deployL1ContractsValues?: DeployL1ContractsReturnType;
|
|
55
|
-
/** Whether to skip deployment of protocol contracts (auth registry, etc) */
|
|
56
|
-
skipProtocolContracts?: boolean;
|
|
57
|
-
/** Initial fee juice for default accounts */
|
|
58
|
-
initialAccountFeeJuice?: Fr;
|
|
59
|
-
/** Number of initial accounts funded with fee juice */
|
|
60
|
-
numberOfInitialFundedAccounts?: number;
|
|
61
|
-
/** Data of the initial funded accounts */
|
|
62
|
-
initialFundedAccounts?: InitialAccountData[];
|
|
63
|
-
/** Salt to use in L1 contract deployment */
|
|
64
|
-
salt?: number;
|
|
65
|
-
/** An initial set of validators */
|
|
66
|
-
initialValidators?: EthAddress[];
|
|
67
|
-
/** Anvil Start time */
|
|
68
|
-
l1StartTime?: number;
|
|
69
|
-
/** The anvil time where we should at the earliest be seeing L2 blocks */
|
|
70
|
-
l2StartTime?: number;
|
|
71
|
-
/** Whether to start a prover node */
|
|
72
|
-
startProverNode?: boolean;
|
|
73
|
-
/** Whether to fund the rewardDistributor */
|
|
74
|
-
fundRewardDistributor?: boolean;
|
|
75
|
-
/** Manual config for the telemetry client */
|
|
76
|
-
telemetryConfig?: Partial<TelemetryClientConfig> & {
|
|
77
|
-
benchmark?: boolean;
|
|
78
|
-
};
|
|
79
|
-
/** Public data that will be inserted in the tree in genesis */
|
|
80
|
-
genesisPublicData?: PublicDataTreeLeaf[];
|
|
81
|
-
} & Partial<AztecNodeConfig>;
|
|
82
|
-
/** Context for an end-to-end test as returned by the `setup` function */
|
|
83
|
-
export type EndToEndContext = {
|
|
84
|
-
/** The Aztec Node service or client a connected to it. */
|
|
85
|
-
aztecNode: AztecNode;
|
|
86
|
-
/** The prover node service (only set if startProverNode is true) */
|
|
87
|
-
proverNode: ProverNode | undefined;
|
|
88
|
-
/** A client to the sequencer service (undefined if connected to remote environment) */
|
|
89
|
-
sequencer: SequencerClient | undefined;
|
|
90
|
-
/** The Private eXecution Environment (PXE). */
|
|
91
|
-
pxe: PXE;
|
|
92
|
-
/** Return values from deployL1Contracts function. */
|
|
93
|
-
deployL1ContractsValues: DeployL1ContractsReturnType;
|
|
94
|
-
/** The Aztec Node configuration. */
|
|
95
|
-
config: AztecNodeConfig;
|
|
96
|
-
/** The data for the initial funded accounts. */
|
|
97
|
-
initialFundedAccounts: InitialAccountData[];
|
|
98
|
-
/** The first wallet to be used. */
|
|
99
|
-
wallet: AccountWalletWithSecretKey;
|
|
100
|
-
/** The wallets to be used. */
|
|
101
|
-
wallets: AccountWalletWithSecretKey[];
|
|
102
|
-
/** Logger instance named as the current test. */
|
|
103
|
-
logger: Logger;
|
|
104
|
-
/** The cheat codes. */
|
|
105
|
-
cheatCodes: CheatCodes;
|
|
106
|
-
/** The anvil test watcher (undefined if connected to remote environment) */
|
|
107
|
-
watcher: AnvilTestWatcher | undefined;
|
|
108
|
-
/** Allows tweaking current system time, used by the epoch cache only (undefined if connected to remote environment) */
|
|
109
|
-
dateProvider: TestDateProvider | undefined;
|
|
110
|
-
/** The blob sink (undefined if connected to remote environment) */
|
|
111
|
-
blobSink: BlobSinkServer | undefined;
|
|
112
|
-
/** Telemetry client */
|
|
113
|
-
telemetryClient: TelemetryClient | undefined;
|
|
114
|
-
/** Function to stop the started services. */
|
|
115
|
-
teardown: () => Promise<void>;
|
|
116
|
-
};
|
|
117
|
-
/**
|
|
118
|
-
* Sets up the environment for the end-to-end tests.
|
|
119
|
-
* @param numberOfAccounts - The number of new accounts to be created once the PXE is initiated.
|
|
120
|
-
* @param opts - Options to pass to the node initialization and to the setup script.
|
|
121
|
-
* @param pxeOpts - Options to pass to the PXE initialization.
|
|
122
|
-
*/
|
|
123
|
-
export declare function setup(numberOfAccounts?: number, opts?: SetupOptions, pxeOpts?: Partial<PXEServiceConfig>, chain?: Chain): Promise<EndToEndContext>;
|
|
124
|
-
/**
|
|
125
|
-
* Registers the contract class used for test accounts and publicly deploys the instances requested.
|
|
126
|
-
* Use this when you need to make a public call to an account contract, such as for requesting a public authwit.
|
|
127
|
-
* @param sender - Wallet to send the deployment tx.
|
|
128
|
-
* @param accountsToDeploy - Which accounts to publicly deploy.
|
|
129
|
-
*/
|
|
130
|
-
export declare function ensureAccountsPubliclyDeployed(sender: Wallet, accountsToDeploy: Wallet[]): Promise<void>;
|
|
131
|
-
/**
|
|
132
|
-
* Sets the timestamp of the next block.
|
|
133
|
-
* @param rpcUrl - rpc url of the blockchain instance to connect to
|
|
134
|
-
* @param timestamp - the timestamp for the next block
|
|
135
|
-
*/
|
|
136
|
-
export declare function setNextBlockTimestamp(rpcUrl: string, timestamp: number): Promise<void>;
|
|
137
1
|
/**
|
|
138
|
-
*
|
|
139
|
-
*
|
|
2
|
+
* Re-exports from the unified setup module for backward compatibility.
|
|
3
|
+
* Tests that previously used utils.ts should continue to work.
|
|
140
4
|
*/
|
|
141
|
-
export
|
|
142
|
-
export
|
|
143
|
-
|
|
144
|
-
address: AztecAddress;
|
|
145
|
-
})[]) => Promise<bigint[]>;
|
|
146
|
-
export declare function expectMapping<K, V>(fn: (...k: K[]) => Promise<V[]>, inputs: K[], expectedOutputs: V[]): Promise<void>;
|
|
147
|
-
export declare function expectMappingDelta<K, V extends number | bigint>(initialValues: V[], fn: (...k: K[]) => Promise<V[]>, inputs: K[], expectedDiffs: V[]): Promise<void>;
|
|
148
|
-
/**
|
|
149
|
-
* Deploy the protocol contracts to a running instance.
|
|
150
|
-
*/
|
|
151
|
-
export declare function setupCanonicalFeeJuice(pxe: PXE): Promise<void>;
|
|
152
|
-
export declare function waitForProvenChain(node: AztecNode, targetBlock?: number, timeoutSec?: number, intervalSec?: number): Promise<void>;
|
|
153
|
-
export declare function createAndSyncProverNode(proverNodePrivateKey: `0x${string}`, aztecNodeConfig: AztecNodeConfig, aztecNode: AztecNode, dataDirectory: string, prefilledPublicData?: PublicDataTreeLeaf[]): Promise<ProverNode>;
|
|
154
|
-
export declare function createForwarderContract(aztecNodeConfig: AztecNodeConfig, privateKey: `0x${string}`, rollupAddress: Hex): Promise<ForwarderContract>;
|
|
155
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
5
|
+
export { type BalancesFn, type EndToEndContext, type SetupOptions, createAndSyncProverNode, deployAccounts, ensureAccountContractsPublished, expectMapping, expectMappingDelta, getBalancesFn, getLogger, getPrivateKeyFromIndex, getSponsoredFPCAddress, getSponsoredFPCInstance, publicDeployAccounts, registerSponsoredFPC, setup, setupPXEAndGetWallet, setupSharedBlobStorage, setupSponsoredFPC, startAnvil, teardown, waitForProvenChain, } from './setup.js';
|
|
6
|
+
export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxPQUFPLEVBQ0wsS0FBSyxVQUFVLEVBQ2YsS0FBSyxlQUFlLEVBQ3BCLEtBQUssWUFBWSxFQUNqQix1QkFBdUIsRUFDdkIsY0FBYyxFQUNkLCtCQUErQixFQUMvQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixLQUFLLEVBQ0wsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLFFBQVEsRUFDUixrQkFBa0IsR0FDbkIsTUFBTSxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sdUNBQXVDLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,uBAAuB,EACvB,cAAc,EACd,+BAA+B,EAC/B,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,0CAA0C,EAAE,MAAM,uCAAuC,CAAC"}
|