@aztec/end-to-end 0.0.0-test.1 → 0.0.1-commit.1142ef1
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 +61 -0
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -0
- package/dest/bench/client_flows/benchmark.js +261 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +80 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -0
- package/dest/bench/client_flows/client_flows_benchmark.js +336 -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 +14 -40
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +37 -70
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +21 -13
- 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 +85 -57
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +29 -28
- 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 +79 -82
- package/dest/e2e_deploy_contract/deploy_test.d.ts +16 -8
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +13 -19
- 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 +233 -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 +63 -0
- package/dest/e2e_fees/fees_test.d.ts +27 -12
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +107 -110
- 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 +55 -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 +10 -7
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +24 -20
- 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 +276 -23
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +188 -133
- package/dest/e2e_p2p/shared.d.ts +43 -7
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +164 -19
- package/dest/e2e_token_contract/token_contract_test.d.ts +12 -6
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +50 -26
- package/dest/fixtures/e2e_prover_test.d.ts +61 -0
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -0
- package/dest/{e2e_prover → fixtures}/e2e_prover_test.js +108 -113
- 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_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/snapshot_manager.d.ts +20 -14
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +147 -138
- 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 +28 -12
- package/dest/fixtures/utils.d.ts +92 -54
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +452 -389
- 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/shared/cross_chain_test_harness.d.ts +42 -35
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +106 -52
- package/dest/shared/gas_portal_test_harness.d.ts +29 -31
- 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 +8 -7
- 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 +170 -120
- package/dest/simulators/index.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts +7 -11
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +16 -17
- 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 +202 -58
- package/dest/spartan/tx_metrics.d.ts +39 -0
- package/dest/spartan/tx_metrics.d.ts.map +1 -0
- package/dest/spartan/tx_metrics.js +95 -0
- package/dest/spartan/utils.d.ts +151 -313
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +598 -151
- package/package.json +65 -58
- package/src/bench/client_flows/benchmark.ts +341 -0
- package/src/bench/client_flows/client_flows_benchmark.ts +450 -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 +35 -81
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +80 -77
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +103 -122
- package/src/e2e_deploy_contract/deploy_test.ts +24 -39
- package/src/e2e_epochs/epochs_test.ts +299 -65
- package/src/e2e_fees/bridging_race.notest.ts +80 -0
- package/src/e2e_fees/fees_test.ts +150 -142
- package/src/e2e_l1_publisher/write_json.ts +74 -0
- package/src/e2e_multi_validator/utils.ts +258 -0
- package/src/e2e_nested_contract/nested_contract_test.ts +29 -19
- package/src/e2e_p2p/inactivity_slash_test.ts +179 -0
- package/src/e2e_p2p/p2p_network.ts +274 -171
- package/src/e2e_p2p/shared.ts +252 -29
- package/src/e2e_token_contract/token_contract_test.ts +43 -39
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/{e2e_prover → fixtures}/e2e_prover_test.ts +112 -160
- 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_p2p_test.ts +127 -39
- package/src/fixtures/snapshot_manager.ts +189 -160
- package/src/fixtures/token_utils.ts +32 -15
- package/src/fixtures/utils.ts +556 -475
- 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/shared/cross_chain_test_harness.ts +113 -87
- 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 +12 -8
- package/src/shared/uniswap_l1_l2.ts +194 -211
- package/src/simulators/lending_simulator.ts +15 -16
- package/src/simulators/token_simulator.ts +21 -13
- package/src/spartan/DEVELOP.md +128 -0
- package/src/spartan/setup_test_wallets.ts +258 -93
- package/src/spartan/tx_metrics.ts +130 -0
- package/src/spartan/utils.ts +722 -146
- 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/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/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/fixtures/setup_l1_contracts.ts +0 -27
- 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
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { TxStatus } from '@aztec/stdlib/tx';
|
|
2
|
+
import { createHistogram } from 'perf_hooks';
|
|
3
|
+
export class TxInclusionMetrics {
|
|
4
|
+
aztecNode;
|
|
5
|
+
data;
|
|
6
|
+
groups;
|
|
7
|
+
blocks;
|
|
8
|
+
constructor(aztecNode){
|
|
9
|
+
this.aztecNode = aztecNode;
|
|
10
|
+
this.data = new Map();
|
|
11
|
+
this.groups = new Set();
|
|
12
|
+
this.blocks = new Map();
|
|
13
|
+
}
|
|
14
|
+
recordSentTx(tx, group) {
|
|
15
|
+
const txHash = tx.getTxHash().toString();
|
|
16
|
+
const priorityFees = tx.getGasSettings().maxPriorityFeesPerGas;
|
|
17
|
+
this.data.set(txHash, {
|
|
18
|
+
txHash,
|
|
19
|
+
sentAt: Math.trunc(Date.now() / 1000),
|
|
20
|
+
minedAt: -1,
|
|
21
|
+
attestedAt: -1,
|
|
22
|
+
blocknumber: -1,
|
|
23
|
+
priorityFee: Number(priorityFees.feePerDaGas + priorityFees.feePerL2Gas),
|
|
24
|
+
totalFee: -1,
|
|
25
|
+
positionInBlock: -1,
|
|
26
|
+
group
|
|
27
|
+
});
|
|
28
|
+
this.groups.add(group);
|
|
29
|
+
}
|
|
30
|
+
async recordMinedTx(txReceipt) {
|
|
31
|
+
const { status, txHash, blockNumber } = txReceipt;
|
|
32
|
+
if (status !== TxStatus.SUCCESS || !blockNumber) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (!this.blocks.has(blockNumber)) {
|
|
36
|
+
this.blocks.set(blockNumber, this.aztecNode.getBlock(blockNumber));
|
|
37
|
+
}
|
|
38
|
+
const block = await this.blocks.get(blockNumber);
|
|
39
|
+
const data = this.data.get(txHash.toString());
|
|
40
|
+
data.blocknumber = blockNumber;
|
|
41
|
+
data.minedAt = Number(block.header.globalVariables.timestamp);
|
|
42
|
+
data.attestedAt = -1;
|
|
43
|
+
data.totalFee = Number(txReceipt.transactionFee ?? 0n);
|
|
44
|
+
data.positionInBlock = block.body.txEffects.findIndex((txEffect)=>txEffect.txHash.equals(txHash));
|
|
45
|
+
}
|
|
46
|
+
inclusionTimeInSeconds(group) {
|
|
47
|
+
const histogram = createHistogram({});
|
|
48
|
+
for (const tx of this.data.values()){
|
|
49
|
+
if (!tx.blocknumber || tx.group !== group) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
histogram.record(tx.minedAt - tx.sentAt);
|
|
53
|
+
}
|
|
54
|
+
if (histogram.count === 0) {
|
|
55
|
+
return {
|
|
56
|
+
group,
|
|
57
|
+
count: 0,
|
|
58
|
+
mean: 0,
|
|
59
|
+
max: 0,
|
|
60
|
+
median: 0,
|
|
61
|
+
min: 0,
|
|
62
|
+
p99: 0
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
group,
|
|
67
|
+
count: histogram.count,
|
|
68
|
+
mean: histogram.mean,
|
|
69
|
+
max: histogram.max,
|
|
70
|
+
median: histogram.percentile(50),
|
|
71
|
+
min: histogram.min,
|
|
72
|
+
p99: histogram.percentile(99)
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
toGithubActionBenchmarkJSON() {
|
|
76
|
+
const data = [];
|
|
77
|
+
for (const group of this.groups){
|
|
78
|
+
const stats = this.inclusionTimeInSeconds(group);
|
|
79
|
+
data.push({
|
|
80
|
+
name: `${group}/avg_inclusion`,
|
|
81
|
+
unit: 's',
|
|
82
|
+
value: stats.mean
|
|
83
|
+
}, {
|
|
84
|
+
name: `${group}/median_inclusion`,
|
|
85
|
+
unit: 's',
|
|
86
|
+
value: stats.median
|
|
87
|
+
}, {
|
|
88
|
+
name: `${group}/p99_inclusion`,
|
|
89
|
+
unit: 's',
|
|
90
|
+
value: stats.p99
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return data;
|
|
94
|
+
}
|
|
95
|
+
}
|
package/dest/spartan/utils.d.ts
CHANGED
|
@@ -1,308 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
import type {
|
|
1
|
+
import type { RollupCheatCodes } from '@aztec/aztec/testing';
|
|
2
|
+
import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
|
|
3
|
+
import type { ViemPublicClient } from '@aztec/ethereum/types';
|
|
4
|
+
import type { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
3
5
|
import type { Logger } from '@aztec/foundation/log';
|
|
4
|
-
import type
|
|
6
|
+
import { type AztecNodeAdmin, type AztecNodeAdminConfig, createAztecNodeClient } from '@aztec/stdlib/interfaces/client';
|
|
5
7
|
import { ChildProcess } from 'child_process';
|
|
6
8
|
import { z } from 'zod';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
CONTAINER_SEQUENCER_PORT: z.ZodDefault<z.ZodNumber>;
|
|
17
|
-
CONTAINER_PROVER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
18
|
-
CONTAINER_PXE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
19
|
-
CONTAINER_ETHEREUM_PORT: z.ZodDefault<z.ZodNumber>;
|
|
20
|
-
CONTAINER_METRICS_PORT: z.ZodDefault<z.ZodNumber>;
|
|
21
|
-
GRAFANA_PASSWORD: z.ZodOptional<z.ZodString>;
|
|
22
|
-
METRICS_API_PATH: z.ZodDefault<z.ZodString>;
|
|
23
|
-
SPARTAN_DIR: z.ZodString;
|
|
24
|
-
ETHEREUM_HOSTS: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
25
|
-
L1_ACCOUNT_MNEMONIC: z.ZodDefault<z.ZodString>;
|
|
26
|
-
SEPOLIA_RUN: z.ZodDefault<z.ZodString>;
|
|
27
|
-
K8S: z.ZodLiteral<"local">;
|
|
9
|
+
declare const testConfigSchema: z.ZodObject<{
|
|
10
|
+
NAMESPACE: z.ZodDefault<z.ZodString>;
|
|
11
|
+
REAL_VERIFIER: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodEffects<z.ZodNumber, 0 | 1, number>, boolean, number>, z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, boolean, string>]>>>;
|
|
12
|
+
CREATE_ETH_DEVNET: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodEffects<z.ZodNumber, 0 | 1, number>, boolean, number>, z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, boolean, string>]>>>;
|
|
13
|
+
L1_RPC_URLS_JSON: z.ZodOptional<z.ZodString>;
|
|
14
|
+
L1_ACCOUNT_MNEMONIC: z.ZodOptional<z.ZodString>;
|
|
15
|
+
AZTEC_SLOT_DURATION: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
16
|
+
AZTEC_EPOCH_DURATION: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
17
|
+
AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
28
18
|
}, "strip", z.ZodTypeAny, {
|
|
29
|
-
ETHEREUM_SLOT_DURATION: number;
|
|
30
|
-
AZTEC_SLOT_DURATION: number;
|
|
31
|
-
AZTEC_EPOCH_DURATION: number;
|
|
32
|
-
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
33
|
-
INSTANCE_NAME: string;
|
|
34
19
|
NAMESPACE: string;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
CONTAINER_PXE_PORT: number;
|
|
39
|
-
CONTAINER_ETHEREUM_PORT: number;
|
|
40
|
-
CONTAINER_METRICS_PORT: number;
|
|
41
|
-
METRICS_API_PATH: string;
|
|
42
|
-
SPARTAN_DIR: string;
|
|
43
|
-
L1_ACCOUNT_MNEMONIC: string;
|
|
44
|
-
SEPOLIA_RUN: string;
|
|
45
|
-
K8S: "local";
|
|
46
|
-
ETHEREUM_HOSTS?: string | undefined;
|
|
47
|
-
GRAFANA_PASSWORD?: string | undefined;
|
|
48
|
-
}, {
|
|
49
|
-
ETHEREUM_SLOT_DURATION: number;
|
|
50
|
-
AZTEC_SLOT_DURATION: number;
|
|
51
|
-
AZTEC_EPOCH_DURATION: number;
|
|
52
|
-
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
53
|
-
INSTANCE_NAME: string;
|
|
54
|
-
NAMESPACE: string;
|
|
55
|
-
SPARTAN_DIR: string;
|
|
56
|
-
K8S: "local";
|
|
57
|
-
ETHEREUM_HOSTS?: string | undefined;
|
|
58
|
-
CONTAINER_NODE_PORT?: number | undefined;
|
|
59
|
-
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
60
|
-
CONTAINER_PROVER_NODE_PORT?: number | undefined;
|
|
61
|
-
CONTAINER_PXE_PORT?: number | undefined;
|
|
62
|
-
CONTAINER_ETHEREUM_PORT?: number | undefined;
|
|
63
|
-
CONTAINER_METRICS_PORT?: number | undefined;
|
|
64
|
-
GRAFANA_PASSWORD?: string | undefined;
|
|
65
|
-
METRICS_API_PATH?: string | undefined;
|
|
20
|
+
REAL_VERIFIER: boolean;
|
|
21
|
+
CREATE_ETH_DEVNET: boolean;
|
|
22
|
+
L1_RPC_URLS_JSON?: string | undefined;
|
|
66
23
|
L1_ACCOUNT_MNEMONIC?: string | undefined;
|
|
67
|
-
SEPOLIA_RUN?: string | undefined;
|
|
68
|
-
}>;
|
|
69
|
-
declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
70
|
-
ETHEREUM_SLOT_DURATION: z.ZodNumber;
|
|
71
|
-
AZTEC_SLOT_DURATION: z.ZodNumber;
|
|
72
|
-
AZTEC_EPOCH_DURATION: z.ZodNumber;
|
|
73
|
-
AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodNumber;
|
|
74
|
-
INSTANCE_NAME: z.ZodString;
|
|
75
|
-
NAMESPACE: z.ZodString;
|
|
76
|
-
CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
77
|
-
CONTAINER_SEQUENCER_PORT: z.ZodDefault<z.ZodNumber>;
|
|
78
|
-
CONTAINER_PROVER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
79
|
-
CONTAINER_PXE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
80
|
-
CONTAINER_ETHEREUM_PORT: z.ZodDefault<z.ZodNumber>;
|
|
81
|
-
CONTAINER_METRICS_PORT: z.ZodDefault<z.ZodNumber>;
|
|
82
|
-
GRAFANA_PASSWORD: z.ZodOptional<z.ZodString>;
|
|
83
|
-
METRICS_API_PATH: z.ZodDefault<z.ZodString>;
|
|
84
|
-
SPARTAN_DIR: z.ZodString;
|
|
85
|
-
ETHEREUM_HOSTS: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
86
|
-
L1_ACCOUNT_MNEMONIC: z.ZodDefault<z.ZodString>;
|
|
87
|
-
SEPOLIA_RUN: z.ZodDefault<z.ZodString>;
|
|
88
|
-
K8S: z.ZodLiteral<"local">;
|
|
89
|
-
}, {
|
|
90
|
-
K8S: z.ZodLiteral<"gcloud">;
|
|
91
|
-
CLUSTER_NAME: z.ZodString;
|
|
92
|
-
REGION: z.ZodString;
|
|
93
|
-
}>, "strip", z.ZodTypeAny, {
|
|
94
|
-
ETHEREUM_SLOT_DURATION: number;
|
|
95
24
|
AZTEC_SLOT_DURATION: number;
|
|
96
25
|
AZTEC_EPOCH_DURATION: number;
|
|
97
26
|
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
98
|
-
INSTANCE_NAME: string;
|
|
99
|
-
NAMESPACE: string;
|
|
100
|
-
CONTAINER_NODE_PORT: number;
|
|
101
|
-
CONTAINER_SEQUENCER_PORT: number;
|
|
102
|
-
CONTAINER_PROVER_NODE_PORT: number;
|
|
103
|
-
CONTAINER_PXE_PORT: number;
|
|
104
|
-
CONTAINER_ETHEREUM_PORT: number;
|
|
105
|
-
CONTAINER_METRICS_PORT: number;
|
|
106
|
-
METRICS_API_PATH: string;
|
|
107
|
-
SPARTAN_DIR: string;
|
|
108
|
-
L1_ACCOUNT_MNEMONIC: string;
|
|
109
|
-
SEPOLIA_RUN: string;
|
|
110
|
-
K8S: "gcloud";
|
|
111
|
-
CLUSTER_NAME: string;
|
|
112
|
-
REGION: string;
|
|
113
|
-
ETHEREUM_HOSTS?: string | undefined;
|
|
114
|
-
GRAFANA_PASSWORD?: string | undefined;
|
|
115
27
|
}, {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
INSTANCE_NAME: string;
|
|
121
|
-
NAMESPACE: string;
|
|
122
|
-
SPARTAN_DIR: string;
|
|
123
|
-
K8S: "gcloud";
|
|
124
|
-
CLUSTER_NAME: string;
|
|
125
|
-
REGION: string;
|
|
126
|
-
ETHEREUM_HOSTS?: string | undefined;
|
|
127
|
-
CONTAINER_NODE_PORT?: number | undefined;
|
|
128
|
-
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
129
|
-
CONTAINER_PROVER_NODE_PORT?: number | undefined;
|
|
130
|
-
CONTAINER_PXE_PORT?: number | undefined;
|
|
131
|
-
CONTAINER_ETHEREUM_PORT?: number | undefined;
|
|
132
|
-
CONTAINER_METRICS_PORT?: number | undefined;
|
|
133
|
-
GRAFANA_PASSWORD?: string | undefined;
|
|
134
|
-
METRICS_API_PATH?: string | undefined;
|
|
28
|
+
NAMESPACE?: string | undefined;
|
|
29
|
+
REAL_VERIFIER?: string | number | boolean | undefined;
|
|
30
|
+
CREATE_ETH_DEVNET?: string | number | boolean | undefined;
|
|
31
|
+
L1_RPC_URLS_JSON?: string | undefined;
|
|
135
32
|
L1_ACCOUNT_MNEMONIC?: string | undefined;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
PXE_URL: z.ZodString;
|
|
140
|
-
NODE_URL: z.ZodString;
|
|
141
|
-
ETHEREUM_HOSTS: z.ZodEffects<z.ZodString, string, string>;
|
|
142
|
-
K8S: z.ZodLiteral<"false">;
|
|
143
|
-
}, "strip", z.ZodTypeAny, {
|
|
144
|
-
PXE_URL: string;
|
|
145
|
-
ETHEREUM_HOSTS: string;
|
|
146
|
-
K8S: "false";
|
|
147
|
-
NODE_URL: string;
|
|
148
|
-
}, {
|
|
149
|
-
PXE_URL: string;
|
|
150
|
-
ETHEREUM_HOSTS: string;
|
|
151
|
-
K8S: "false";
|
|
152
|
-
NODE_URL: string;
|
|
33
|
+
AZTEC_SLOT_DURATION?: number | undefined;
|
|
34
|
+
AZTEC_EPOCH_DURATION?: number | undefined;
|
|
35
|
+
AZTEC_PROOF_SUBMISSION_WINDOW?: number | undefined;
|
|
153
36
|
}>;
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
GRAFANA_PASSWORD: z.ZodOptional<z.ZodString>;
|
|
168
|
-
METRICS_API_PATH: z.ZodDefault<z.ZodString>;
|
|
169
|
-
SPARTAN_DIR: z.ZodString;
|
|
170
|
-
ETHEREUM_HOSTS: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
171
|
-
L1_ACCOUNT_MNEMONIC: z.ZodDefault<z.ZodString>;
|
|
172
|
-
SEPOLIA_RUN: z.ZodDefault<z.ZodString>;
|
|
173
|
-
K8S: z.ZodLiteral<"local">;
|
|
174
|
-
}, "strip", z.ZodTypeAny, {
|
|
175
|
-
ETHEREUM_SLOT_DURATION: number;
|
|
176
|
-
AZTEC_SLOT_DURATION: number;
|
|
177
|
-
AZTEC_EPOCH_DURATION: number;
|
|
178
|
-
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
179
|
-
INSTANCE_NAME: string;
|
|
180
|
-
NAMESPACE: string;
|
|
181
|
-
CONTAINER_NODE_PORT: number;
|
|
182
|
-
CONTAINER_SEQUENCER_PORT: number;
|
|
183
|
-
CONTAINER_PROVER_NODE_PORT: number;
|
|
184
|
-
CONTAINER_PXE_PORT: number;
|
|
185
|
-
CONTAINER_ETHEREUM_PORT: number;
|
|
186
|
-
CONTAINER_METRICS_PORT: number;
|
|
187
|
-
METRICS_API_PATH: string;
|
|
188
|
-
SPARTAN_DIR: string;
|
|
189
|
-
L1_ACCOUNT_MNEMONIC: string;
|
|
190
|
-
SEPOLIA_RUN: string;
|
|
191
|
-
K8S: "local";
|
|
192
|
-
ETHEREUM_HOSTS?: string | undefined;
|
|
193
|
-
GRAFANA_PASSWORD?: string | undefined;
|
|
194
|
-
}, {
|
|
195
|
-
ETHEREUM_SLOT_DURATION: number;
|
|
196
|
-
AZTEC_SLOT_DURATION: number;
|
|
197
|
-
AZTEC_EPOCH_DURATION: number;
|
|
198
|
-
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
199
|
-
INSTANCE_NAME: string;
|
|
200
|
-
NAMESPACE: string;
|
|
201
|
-
SPARTAN_DIR: string;
|
|
202
|
-
K8S: "local";
|
|
203
|
-
ETHEREUM_HOSTS?: string | undefined;
|
|
204
|
-
CONTAINER_NODE_PORT?: number | undefined;
|
|
205
|
-
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
206
|
-
CONTAINER_PROVER_NODE_PORT?: number | undefined;
|
|
207
|
-
CONTAINER_PXE_PORT?: number | undefined;
|
|
208
|
-
CONTAINER_ETHEREUM_PORT?: number | undefined;
|
|
209
|
-
CONTAINER_METRICS_PORT?: number | undefined;
|
|
210
|
-
GRAFANA_PASSWORD?: string | undefined;
|
|
211
|
-
METRICS_API_PATH?: string | undefined;
|
|
212
|
-
L1_ACCOUNT_MNEMONIC?: string | undefined;
|
|
213
|
-
SEPOLIA_RUN?: string | undefined;
|
|
214
|
-
}>, z.ZodObject<z.objectUtil.extendShape<{
|
|
215
|
-
ETHEREUM_SLOT_DURATION: z.ZodNumber;
|
|
216
|
-
AZTEC_SLOT_DURATION: z.ZodNumber;
|
|
217
|
-
AZTEC_EPOCH_DURATION: z.ZodNumber;
|
|
218
|
-
AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodNumber;
|
|
219
|
-
INSTANCE_NAME: z.ZodString;
|
|
220
|
-
NAMESPACE: z.ZodString;
|
|
221
|
-
CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
222
|
-
CONTAINER_SEQUENCER_PORT: z.ZodDefault<z.ZodNumber>;
|
|
223
|
-
CONTAINER_PROVER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
224
|
-
CONTAINER_PXE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
225
|
-
CONTAINER_ETHEREUM_PORT: z.ZodDefault<z.ZodNumber>;
|
|
226
|
-
CONTAINER_METRICS_PORT: z.ZodDefault<z.ZodNumber>;
|
|
227
|
-
GRAFANA_PASSWORD: z.ZodOptional<z.ZodString>;
|
|
228
|
-
METRICS_API_PATH: z.ZodDefault<z.ZodString>;
|
|
229
|
-
SPARTAN_DIR: z.ZodString;
|
|
230
|
-
ETHEREUM_HOSTS: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
231
|
-
L1_ACCOUNT_MNEMONIC: z.ZodDefault<z.ZodString>;
|
|
232
|
-
SEPOLIA_RUN: z.ZodDefault<z.ZodString>;
|
|
233
|
-
K8S: z.ZodLiteral<"local">;
|
|
234
|
-
}, {
|
|
235
|
-
K8S: z.ZodLiteral<"gcloud">;
|
|
236
|
-
CLUSTER_NAME: z.ZodString;
|
|
237
|
-
REGION: z.ZodString;
|
|
238
|
-
}>, "strip", z.ZodTypeAny, {
|
|
239
|
-
ETHEREUM_SLOT_DURATION: number;
|
|
240
|
-
AZTEC_SLOT_DURATION: number;
|
|
241
|
-
AZTEC_EPOCH_DURATION: number;
|
|
242
|
-
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
243
|
-
INSTANCE_NAME: string;
|
|
244
|
-
NAMESPACE: string;
|
|
245
|
-
CONTAINER_NODE_PORT: number;
|
|
246
|
-
CONTAINER_SEQUENCER_PORT: number;
|
|
247
|
-
CONTAINER_PROVER_NODE_PORT: number;
|
|
248
|
-
CONTAINER_PXE_PORT: number;
|
|
249
|
-
CONTAINER_ETHEREUM_PORT: number;
|
|
250
|
-
CONTAINER_METRICS_PORT: number;
|
|
251
|
-
METRICS_API_PATH: string;
|
|
252
|
-
SPARTAN_DIR: string;
|
|
253
|
-
L1_ACCOUNT_MNEMONIC: string;
|
|
254
|
-
SEPOLIA_RUN: string;
|
|
255
|
-
K8S: "gcloud";
|
|
256
|
-
CLUSTER_NAME: string;
|
|
257
|
-
REGION: string;
|
|
258
|
-
ETHEREUM_HOSTS?: string | undefined;
|
|
259
|
-
GRAFANA_PASSWORD?: string | undefined;
|
|
260
|
-
}, {
|
|
261
|
-
ETHEREUM_SLOT_DURATION: number;
|
|
262
|
-
AZTEC_SLOT_DURATION: number;
|
|
263
|
-
AZTEC_EPOCH_DURATION: number;
|
|
264
|
-
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
265
|
-
INSTANCE_NAME: string;
|
|
266
|
-
NAMESPACE: string;
|
|
267
|
-
SPARTAN_DIR: string;
|
|
268
|
-
K8S: "gcloud";
|
|
269
|
-
CLUSTER_NAME: string;
|
|
270
|
-
REGION: string;
|
|
271
|
-
ETHEREUM_HOSTS?: string | undefined;
|
|
272
|
-
CONTAINER_NODE_PORT?: number | undefined;
|
|
273
|
-
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
274
|
-
CONTAINER_PROVER_NODE_PORT?: number | undefined;
|
|
275
|
-
CONTAINER_PXE_PORT?: number | undefined;
|
|
276
|
-
CONTAINER_ETHEREUM_PORT?: number | undefined;
|
|
277
|
-
CONTAINER_METRICS_PORT?: number | undefined;
|
|
278
|
-
GRAFANA_PASSWORD?: string | undefined;
|
|
279
|
-
METRICS_API_PATH?: string | undefined;
|
|
280
|
-
L1_ACCOUNT_MNEMONIC?: string | undefined;
|
|
281
|
-
SEPOLIA_RUN?: string | undefined;
|
|
282
|
-
}>, z.ZodObject<{
|
|
283
|
-
PXE_URL: z.ZodString;
|
|
284
|
-
NODE_URL: z.ZodString;
|
|
285
|
-
ETHEREUM_HOSTS: z.ZodEffects<z.ZodString, string, string>;
|
|
286
|
-
K8S: z.ZodLiteral<"false">;
|
|
287
|
-
}, "strip", z.ZodTypeAny, {
|
|
288
|
-
PXE_URL: string;
|
|
289
|
-
ETHEREUM_HOSTS: string;
|
|
290
|
-
K8S: "false";
|
|
291
|
-
NODE_URL: string;
|
|
292
|
-
}, {
|
|
293
|
-
PXE_URL: string;
|
|
294
|
-
ETHEREUM_HOSTS: string;
|
|
295
|
-
K8S: "false";
|
|
296
|
-
NODE_URL: string;
|
|
297
|
-
}>]>;
|
|
298
|
-
export type K8sLocalConfig = z.infer<typeof k8sLocalConfigSchema>;
|
|
299
|
-
export type K8sGCloudConfig = z.infer<typeof k8sGCloudConfigSchema>;
|
|
300
|
-
export type DirectConfig = z.infer<typeof directConfigSchema>;
|
|
301
|
-
export type EnvConfig = z.infer<typeof envSchema>;
|
|
302
|
-
export declare function isK8sConfig(config: EnvConfig): config is K8sLocalConfig | K8sGCloudConfig;
|
|
303
|
-
export declare function isGCloudConfig(config: EnvConfig): config is K8sGCloudConfig;
|
|
304
|
-
export declare function setupEnvironment(env: unknown): EnvConfig;
|
|
305
|
-
export declare function startPortForward({ resource, namespace, containerPort, hostPort, }: {
|
|
37
|
+
export type TestConfig = z.infer<typeof testConfigSchema>;
|
|
38
|
+
export declare function setupEnvironment(env: unknown): TestConfig;
|
|
39
|
+
export declare function getAztecBin(): string;
|
|
40
|
+
/**
|
|
41
|
+
* Runs the Aztec binary
|
|
42
|
+
* @param args - The arguments to pass to the Aztec binary
|
|
43
|
+
* @param logger - The logger to use
|
|
44
|
+
* @param env - Optional environment variables to set for the process
|
|
45
|
+
* @returns The exit code of the Aztec binary
|
|
46
|
+
*/
|
|
47
|
+
export declare function runAztecBin(args: string[], logger: Logger, env?: Record<string, string>): Promise<number>;
|
|
48
|
+
export declare function runProjectScript(script: string, args: string[], logger: Logger, env?: Record<string, string>): Promise<number>;
|
|
49
|
+
export declare function startPortForward({ resource, namespace, containerPort, hostPort }: {
|
|
306
50
|
resource: string;
|
|
307
51
|
namespace: string;
|
|
308
52
|
containerPort: number;
|
|
@@ -311,25 +55,51 @@ export declare function startPortForward({ resource, namespace, containerPort, h
|
|
|
311
55
|
process: ChildProcess;
|
|
312
56
|
port: number;
|
|
313
57
|
}>;
|
|
314
|
-
export declare function
|
|
58
|
+
export declare function getExternalIP(namespace: string, serviceName: string): Promise<string>;
|
|
59
|
+
export declare function startPortForwardForRPC(namespace: string, index?: number): Promise<{
|
|
60
|
+
process: ChildProcess;
|
|
61
|
+
port: number;
|
|
62
|
+
}>;
|
|
63
|
+
export declare function startPortForwardForEthereum(namespace: string): Promise<{
|
|
64
|
+
process: ChildProcess;
|
|
65
|
+
port: number;
|
|
66
|
+
}>;
|
|
67
|
+
export declare function deleteResourceByName({ resource, namespace, name, force }: {
|
|
315
68
|
resource: string;
|
|
316
69
|
namespace: string;
|
|
317
70
|
name: string;
|
|
318
71
|
force?: boolean;
|
|
319
72
|
}): Promise<string>;
|
|
320
|
-
export declare function deleteResourceByLabel({ resource, namespace, label, }: {
|
|
73
|
+
export declare function deleteResourceByLabel({ resource, namespace, label, timeout, force }: {
|
|
321
74
|
resource: string;
|
|
322
75
|
namespace: string;
|
|
323
76
|
label: string;
|
|
77
|
+
timeout?: string;
|
|
78
|
+
force?: boolean;
|
|
324
79
|
}): Promise<string>;
|
|
325
|
-
export declare function waitForResourceByLabel({ resource, label, namespace, condition, timeout
|
|
80
|
+
export declare function waitForResourceByLabel({ resource, label, namespace, condition, timeout }: {
|
|
326
81
|
resource: string;
|
|
327
82
|
label: string;
|
|
328
83
|
namespace: string;
|
|
329
84
|
condition?: string;
|
|
330
85
|
timeout?: string;
|
|
331
86
|
}): Promise<string>;
|
|
87
|
+
export declare function waitForResourceByName({ resource, name, namespace, condition, timeout }: {
|
|
88
|
+
resource: string;
|
|
89
|
+
name: string;
|
|
90
|
+
namespace: string;
|
|
91
|
+
condition?: string;
|
|
92
|
+
timeout?: string;
|
|
93
|
+
}): Promise<string>;
|
|
94
|
+
export declare function waitForResourcesByName({ resource, names, namespace, condition, timeout }: {
|
|
95
|
+
resource: string;
|
|
96
|
+
names: string[];
|
|
97
|
+
namespace: string;
|
|
98
|
+
condition?: string;
|
|
99
|
+
timeout?: string;
|
|
100
|
+
}): Promise<void>;
|
|
332
101
|
export declare function getChartDir(spartanDir: string, chartName: string): string;
|
|
102
|
+
export declare function uninstallChaosMesh(instanceName: string, namespace: string, logger: Logger): Promise<void>;
|
|
333
103
|
/**
|
|
334
104
|
* Installs a Helm chart with the given parameters.
|
|
335
105
|
* @param instanceName - The name of the Helm chart instance.
|
|
@@ -347,7 +117,7 @@ export declare function getChartDir(spartanDir: string, chartName: string): stri
|
|
|
347
117
|
* console.log(stdout);
|
|
348
118
|
* ```
|
|
349
119
|
*/
|
|
350
|
-
export declare function installChaosMeshChart({ instanceName, targetNamespace, valuesFile, helmChartDir,
|
|
120
|
+
export declare function installChaosMeshChart({ instanceName, targetNamespace, valuesFile, helmChartDir, timeout, clean, values, logger }: {
|
|
351
121
|
instanceName: string;
|
|
352
122
|
targetNamespace: string;
|
|
353
123
|
valuesFile: string;
|
|
@@ -358,51 +128,109 @@ export declare function installChaosMeshChart({ instanceName, targetNamespace, v
|
|
|
358
128
|
values?: Record<string, string | number>;
|
|
359
129
|
logger: Logger;
|
|
360
130
|
}): Promise<string>;
|
|
361
|
-
export declare function applyProverFailure({ namespace, spartanDir, durationSeconds, logger
|
|
131
|
+
export declare function applyProverFailure({ namespace, spartanDir, durationSeconds, logger }: {
|
|
362
132
|
namespace: string;
|
|
363
133
|
spartanDir: string;
|
|
364
134
|
durationSeconds: number;
|
|
365
135
|
logger: Logger;
|
|
366
136
|
}): Promise<string>;
|
|
367
|
-
export declare function
|
|
137
|
+
export declare function applyValidatorFailure({ namespace, spartanDir, logger, values, instanceName }: {
|
|
138
|
+
namespace: string;
|
|
139
|
+
spartanDir: string;
|
|
140
|
+
logger: Logger;
|
|
141
|
+
values?: Record<string, string | number>;
|
|
142
|
+
instanceName?: string;
|
|
143
|
+
}): Promise<string>;
|
|
144
|
+
export declare function applyProverKill({ namespace, spartanDir, logger, values }: {
|
|
368
145
|
namespace: string;
|
|
369
146
|
spartanDir: string;
|
|
370
147
|
logger: Logger;
|
|
148
|
+
values?: Record<string, string | number>;
|
|
371
149
|
}): Promise<string>;
|
|
372
|
-
export declare function applyProverBrokerKill({ namespace, spartanDir, logger, }: {
|
|
150
|
+
export declare function applyProverBrokerKill({ namespace, spartanDir, logger, values }: {
|
|
373
151
|
namespace: string;
|
|
374
152
|
spartanDir: string;
|
|
375
153
|
logger: Logger;
|
|
154
|
+
values?: Record<string, string | number>;
|
|
376
155
|
}): Promise<string>;
|
|
377
|
-
export declare function applyBootNodeFailure({ namespace, spartanDir, durationSeconds, logger, }: {
|
|
156
|
+
export declare function applyBootNodeFailure({ instanceName, namespace, spartanDir, durationSeconds, logger, values }: {
|
|
157
|
+
instanceName?: string;
|
|
378
158
|
namespace: string;
|
|
379
159
|
spartanDir: string;
|
|
380
160
|
durationSeconds: number;
|
|
381
161
|
logger: Logger;
|
|
162
|
+
values?: Record<string, string | number>;
|
|
382
163
|
}): Promise<string>;
|
|
383
|
-
export declare function applyValidatorKill({ namespace, spartanDir, logger, }: {
|
|
164
|
+
export declare function applyValidatorKill({ instanceName, namespace, spartanDir, logger, values, clean }: {
|
|
165
|
+
instanceName?: string;
|
|
384
166
|
namespace: string;
|
|
385
167
|
spartanDir: string;
|
|
386
168
|
logger: Logger;
|
|
169
|
+
values?: Record<string, string | number>;
|
|
170
|
+
clean?: boolean;
|
|
387
171
|
}): Promise<string>;
|
|
388
|
-
export declare function applyNetworkShaping({ valuesFile, namespace, spartanDir, logger
|
|
172
|
+
export declare function applyNetworkShaping({ instanceName, valuesFile, namespace, spartanDir, logger }: {
|
|
173
|
+
instanceName?: string;
|
|
389
174
|
valuesFile: string;
|
|
390
175
|
namespace: string;
|
|
391
176
|
spartanDir: string;
|
|
392
177
|
logger: Logger;
|
|
393
178
|
}): Promise<string>;
|
|
394
|
-
export declare function
|
|
179
|
+
export declare function awaitCheckpointNumber(rollupCheatCodes: RollupCheatCodes, checkpointNumber: CheckpointNumber, timeoutSeconds: number, logger: Logger): Promise<void>;
|
|
395
180
|
export declare function restartBot(namespace: string, logger: Logger): Promise<void>;
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
export declare function
|
|
401
|
-
|
|
181
|
+
/**
|
|
182
|
+
* Installs or upgrades the transfer bot Helm release for the given namespace.
|
|
183
|
+
* Intended for test setup to enable L2 traffic generation only when needed.
|
|
184
|
+
*/
|
|
185
|
+
export declare function installTransferBot({ namespace, spartanDir, logger, replicas, txIntervalSeconds, followChain, mnemonic, mnemonicStartIndex, botPrivateKey, nodeUrl, timeout, reuseValues, aztecSlotDuration }: {
|
|
186
|
+
namespace: string;
|
|
187
|
+
spartanDir: string;
|
|
188
|
+
logger: Logger;
|
|
189
|
+
replicas?: number;
|
|
190
|
+
txIntervalSeconds?: number;
|
|
191
|
+
followChain?: string;
|
|
192
|
+
mnemonic?: string;
|
|
193
|
+
mnemonicStartIndex?: number | string;
|
|
194
|
+
botPrivateKey?: string;
|
|
195
|
+
nodeUrl?: string;
|
|
196
|
+
timeout?: string;
|
|
197
|
+
reuseValues?: boolean;
|
|
198
|
+
aztecSlotDuration?: number;
|
|
199
|
+
}): Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* Uninstalls the transfer bot Helm release from the given namespace.
|
|
202
|
+
* Intended for test teardown to clean up bot resources.
|
|
203
|
+
*/
|
|
204
|
+
export declare function uninstallTransferBot(namespace: string, logger: Logger): Promise<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Enables or disables probabilistic transaction dropping on validators and waits for rollout.
|
|
207
|
+
* Wired to env vars P2P_DROP_TX and P2P_DROP_TX_CHANCE via Helm values.
|
|
208
|
+
*/
|
|
209
|
+
export declare function setValidatorTxDrop({ namespace, enabled, probability, logger }: {
|
|
402
210
|
namespace: string;
|
|
403
|
-
|
|
211
|
+
enabled: boolean;
|
|
212
|
+
probability: number;
|
|
213
|
+
logger: Logger;
|
|
404
214
|
}): Promise<void>;
|
|
405
|
-
export declare function
|
|
215
|
+
export declare function restartValidators(namespace: string, logger: Logger): Promise<void>;
|
|
216
|
+
export declare function enableValidatorDynamicBootNode(instanceName: string, namespace: string, spartanDir: string, logger: Logger): Promise<void>;
|
|
217
|
+
export declare function getSequencers(namespace: string): Promise<string[]>;
|
|
218
|
+
export declare function updateSequencersConfig(env: TestConfig, config: Partial<AztecNodeAdminConfig>): Promise<AztecNodeAdminConfig[]>;
|
|
219
|
+
export declare function getSequencersConfig(env: TestConfig): Promise<AztecNodeAdminConfig[]>;
|
|
220
|
+
export declare function withSequencersAdmin<T>(env: TestConfig, fn: (node: AztecNodeAdmin) => Promise<T>): Promise<T[]>;
|
|
221
|
+
/**
|
|
222
|
+
* Returns a public viem client to the eth execution node. If it was part of a local eth devnet,
|
|
223
|
+
* it first port-forwards the service and points to it. Otherwise, just uses the external RPC url.
|
|
224
|
+
*/
|
|
225
|
+
export declare function getPublicViemClient(env: TestConfig,
|
|
226
|
+
/** If set, will push the new process into it */
|
|
227
|
+
processes?: ChildProcess[]): Promise<{
|
|
228
|
+
url: string;
|
|
229
|
+
client: ViemPublicClient;
|
|
230
|
+
process?: ChildProcess;
|
|
231
|
+
}>;
|
|
232
|
+
/** Queries an Aztec node for the L1 deployment addresses */
|
|
233
|
+
export declare function getL1DeploymentAddresses(env: TestConfig): Promise<L1ContractAddresses>;
|
|
406
234
|
/**
|
|
407
235
|
* Rolls the Aztec pods in the given namespace.
|
|
408
236
|
* @param namespace - The namespace to roll the Aztec pods in.
|
|
@@ -411,5 +239,15 @@ export declare function updateSequencersConfig(env: EnvConfig, config: Partial<S
|
|
|
411
239
|
* This is useful for testing, but you should be aware of the implications.
|
|
412
240
|
*/
|
|
413
241
|
export declare function rollAztecPods(namespace: string): Promise<void>;
|
|
242
|
+
/**
|
|
243
|
+
* Returns the absolute path to the git repository root
|
|
244
|
+
*/
|
|
245
|
+
export declare function getGitProjectRoot(): string;
|
|
246
|
+
/** Returns a client to the RPC of the given sequencer (defaults to first) */
|
|
247
|
+
export declare function getNodeClient(env: TestConfig, index?: number): Promise<{
|
|
248
|
+
node: ReturnType<typeof createAztecNodeClient>;
|
|
249
|
+
port: number;
|
|
250
|
+
process: ChildProcess;
|
|
251
|
+
}>;
|
|
414
252
|
export {};
|
|
415
|
-
//# sourceMappingURL=
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGFydGFuL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLcEQsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUNuQixLQUFLLG9CQUFvQixFQUV6QixxQkFBcUIsRUFDdEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUlwRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBTXhCLFFBQUEsTUFBTSxnQkFBZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQVNwQixDQUFDO0FBRUgsTUFBTSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQztBQUUxRCx3QkFBZ0IsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE9BQU8sR0FBRyxVQUFVLENBSXpEO0FBeUJELHdCQUFnQixXQUFXLFdBRTFCO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxtQkFFdkY7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1B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
|