@aztec/end-to-end 0.0.1-commit.c80b6263 → 0.0.1-commit.cb6bed7c2
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/client_flows_benchmark.d.ts +2 -2
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +19 -11
- package/dest/bench/client_flows/config.d.ts +2 -2
- package/dest/bench/client_flows/config.d.ts.map +1 -1
- package/dest/bench/client_flows/config.js +18 -0
- package/dest/bench/utils.d.ts +1 -1
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +6 -3
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +4 -2
- 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 +22 -12
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +2 -2
- 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 +3 -2
- package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -2
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.d.ts +9 -7
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +58 -33
- package/dest/e2e_fees/fees_test.d.ts +2 -2
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +18 -11
- package/dest/e2e_l1_publisher/write_json.d.ts +3 -2
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +1 -7
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +4 -6
- package/dest/e2e_p2p/p2p_network.d.ts +5 -4
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +24 -7
- package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
- package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
- package/dest/e2e_p2p/reqresp/utils.js +177 -0
- package/dest/e2e_p2p/shared.d.ts +16 -2
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +30 -3
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
- package/dest/e2e_token_contract/token_contract_test.d.ts +4 -2
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +19 -9
- package/dest/fixtures/authwit_proxy.d.ts +15 -0
- package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
- package/dest/fixtures/authwit_proxy.js +30 -0
- package/dest/fixtures/e2e_prover_test.d.ts +4 -4
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +33 -40
- package/dest/fixtures/elu_monitor.d.ts +21 -0
- package/dest/fixtures/elu_monitor.d.ts.map +1 -0
- package/dest/fixtures/elu_monitor.js +102 -0
- package/dest/fixtures/fixtures.d.ts +5 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +6 -0
- package/dest/fixtures/ha_setup.d.ts +71 -0
- package/dest/fixtures/ha_setup.d.ts.map +1 -0
- package/dest/fixtures/ha_setup.js +116 -0
- package/dest/fixtures/index.d.ts +2 -1
- package/dest/fixtures/index.d.ts.map +1 -1
- package/dest/fixtures/index.js +1 -0
- package/dest/fixtures/setup.d.ts +39 -23
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +62 -152
- package/dest/fixtures/setup_p2p_test.d.ts +15 -7
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +18 -12
- package/dest/fixtures/token_utils.d.ts +2 -2
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +5 -4
- package/dest/shared/cross_chain_test_harness.d.ts +1 -1
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +13 -13
- package/dest/shared/gas_portal_test_harness.js +2 -2
- package/dest/shared/index.d.ts +2 -1
- package/dest/shared/index.d.ts.map +1 -1
- package/dest/shared/index.js +1 -0
- package/dest/shared/jest_setup.js +41 -1
- package/dest/shared/mock_state_view.d.ts +86 -0
- package/dest/shared/mock_state_view.d.ts.map +1 -0
- package/dest/shared/mock_state_view.js +186 -0
- package/dest/shared/submit-transactions.d.ts +2 -2
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +13 -11
- package/dest/simulators/lending_simulator.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +2 -2
- package/dest/simulators/token_simulator.d.ts +1 -1
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +3 -24
- package/dest/spartan/setup_test_wallets.d.ts +9 -2
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +35 -4
- package/dest/spartan/tx_metrics.js +1 -1
- package/dest/spartan/utils/bot.d.ts +3 -2
- package/dest/spartan/utils/bot.d.ts.map +1 -1
- package/dest/spartan/utils/bot.js +2 -1
- package/dest/spartan/utils/config.d.ts +7 -1
- package/dest/spartan/utils/config.d.ts.map +1 -1
- package/dest/spartan/utils/config.js +3 -1
- package/dest/spartan/utils/index.d.ts +5 -4
- package/dest/spartan/utils/index.d.ts.map +1 -1
- package/dest/spartan/utils/index.js +4 -2
- package/dest/spartan/utils/k8s.d.ts +31 -1
- package/dest/spartan/utils/k8s.d.ts.map +1 -1
- package/dest/spartan/utils/k8s.js +124 -0
- package/dest/spartan/utils/nodes.d.ts +14 -5
- package/dest/spartan/utils/nodes.d.ts.map +1 -1
- package/dest/spartan/utils/nodes.js +204 -33
- package/dest/spartan/utils/scripts.d.ts +18 -4
- package/dest/spartan/utils/scripts.d.ts.map +1 -1
- package/dest/spartan/utils/scripts.js +19 -4
- package/dest/test-wallet/test_wallet.d.ts +83 -0
- package/dest/test-wallet/test_wallet.d.ts.map +1 -0
- package/dest/test-wallet/test_wallet.js +214 -0
- package/dest/test-wallet/utils.d.ts +41 -0
- package/dest/test-wallet/utils.d.ts.map +1 -0
- package/dest/test-wallet/utils.js +71 -0
- package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
- package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
- package/dest/test-wallet/wallet_worker_script.js +48 -0
- package/dest/test-wallet/worker_wallet.d.ts +52 -0
- package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet.js +151 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts +274 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet_schema.js +10 -0
- package/package.json +46 -43
- package/src/bench/client_flows/client_flows_benchmark.ts +42 -38
- package/src/bench/client_flows/config.ts +9 -1
- package/src/bench/utils.ts +8 -3
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +28 -15
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +7 -8
- package/src/e2e_deploy_contract/deploy_test.ts +3 -3
- package/src/e2e_epochs/epochs_test.ts +73 -63
- package/src/e2e_fees/bridging_race.notest.ts +1 -1
- package/src/e2e_fees/fees_test.ts +20 -28
- package/src/e2e_l1_publisher/write_json.ts +1 -6
- package/src/e2e_nested_contract/nested_contract_test.ts +7 -5
- package/src/e2e_p2p/inactivity_slash_test.ts +4 -4
- package/src/e2e_p2p/p2p_network.ts +36 -10
- package/src/e2e_p2p/reqresp/utils.ts +235 -0
- package/src/e2e_p2p/shared.ts +48 -3
- package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
- package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
- package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
- package/src/e2e_token_contract/token_contract_test.ts +26 -9
- package/src/fixtures/authwit_proxy.ts +50 -0
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +39 -43
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +10 -0
- package/src/fixtures/ha_setup.ts +186 -0
- package/src/fixtures/index.ts +1 -0
- package/src/fixtures/setup.ts +94 -214
- package/src/fixtures/setup_p2p_test.ts +25 -24
- package/src/fixtures/token_utils.ts +6 -3
- package/src/guides/up_quick_start.sh +3 -3
- package/src/shared/cross_chain_test_harness.ts +13 -9
- package/src/shared/gas_portal_test_harness.ts +1 -1
- package/src/shared/index.ts +1 -0
- package/src/shared/jest_setup.ts +51 -1
- package/src/shared/mock_state_view.ts +188 -0
- package/src/shared/submit-transactions.ts +3 -2
- package/src/shared/uniswap_l1_l2.ts +15 -15
- package/src/simulators/lending_simulator.ts +4 -2
- package/src/simulators/token_simulator.ts +6 -30
- package/src/spartan/setup_test_wallets.ts +59 -12
- package/src/spartan/tx_metrics.ts +1 -1
- package/src/spartan/utils/bot.ts +4 -1
- package/src/spartan/utils/config.ts +2 -0
- package/src/spartan/utils/index.ts +7 -1
- package/src/spartan/utils/k8s.ts +160 -0
- package/src/spartan/utils/nodes.ts +251 -31
- package/src/spartan/utils/scripts.ts +43 -7
- package/src/test-wallet/test_wallet.ts +306 -0
- package/src/test-wallet/utils.ts +112 -0
- package/src/test-wallet/wallet_worker_script.ts +60 -0
- package/src/test-wallet/worker_wallet.ts +213 -0
- package/src/test-wallet/worker_wallet_schema.ts +13 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_simulator.d.ts","sourceRoot":"","sources":["../../src/simulators/token_simulator.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,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAIpE,qBAAa,cAAc;IAQvB,SAAS,CAAC,KAAK,EAAE,aAAa;IAC9B,SAAS,CAAC,aAAa,EAAE,MAAM;IAC/B,SAAS,CAAC,cAAc,EAAE,YAAY;IACtC,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE;IAXpC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAAkC;IAChD,WAAW,EAAE,MAAM,CAAM;IAEhC,OAAO,CAAC,cAAc,CAAkC;IAExD,YACY,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,YAAY,EAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EAAE,EAChC;IAEG,UAAU,CAAC,OAAO,EAAE,YAAY,QAEtC;IAEM,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAE7D;IAEM,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAGlD;IAEM,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAIjD;IAEM,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAOzE;IAEM,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAO1E;IAEM,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAM5E;IAEM,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAM3E;IAEM,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAMpD;IAEM,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAMnD;IAEM,eAAe,CAAC,OAAO,EAAE,YAAY,UAE3C;IAEM,gBAAgB,CAAC,OAAO,EAAE,YAAY,UAE5C;IAEK,WAAW,
|
|
1
|
+
{"version":3,"file":"token_simulator.d.ts","sourceRoot":"","sources":["../../src/simulators/token_simulator.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,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAIpE,qBAAa,cAAc;IAQvB,SAAS,CAAC,KAAK,EAAE,aAAa;IAC9B,SAAS,CAAC,aAAa,EAAE,MAAM;IAC/B,SAAS,CAAC,cAAc,EAAE,YAAY;IACtC,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE;IAXpC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAAkC;IAChD,WAAW,EAAE,MAAM,CAAM;IAEhC,OAAO,CAAC,cAAc,CAAkC;IAExD,YACY,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,YAAY,EAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EAAE,EAChC;IAEG,UAAU,CAAC,OAAO,EAAE,YAAY,QAEtC;IAEM,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAE7D;IAEM,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAGlD;IAEM,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAIjD;IAEM,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAOzE;IAEM,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAO1E;IAEM,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAM5E;IAEM,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAM3E;IAEM,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAMpD;IAEM,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAMnD;IAEM,eAAe,CAAC,OAAO,EAAE,YAAY,UAE3C;IAEM,gBAAgB,CAAC,OAAO,EAAE,YAAY,UAE5C;IAEK,WAAW,kBAoBhB;IAEK,YAAY,kBAUjB;IAEY,KAAK,kBAGjB;CACF"}
|
|
@@ -90,7 +90,7 @@ export class TokenSimulator {
|
|
|
90
90
|
];
|
|
91
91
|
const results = (await Promise.all(chunk(calls, 5).map((batch)=>new BatchCall(this.defaultWallet, batch).simulate({
|
|
92
92
|
from: this.defaultAddress
|
|
93
|
-
})))).flat();
|
|
93
|
+
})))).flat().map((r)=>r.result);
|
|
94
94
|
expect(results[0]).toEqual(this.totalSupply);
|
|
95
95
|
// Check that all our balances match
|
|
96
96
|
for(let i = 0; i < this.accounts.length; i++){
|
|
@@ -98,32 +98,11 @@ export class TokenSimulator {
|
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
async checkPrivate() {
|
|
101
|
-
// Private calls
|
|
102
|
-
const defaultLookups = [];
|
|
103
|
-
const nonDefaultLookups = [];
|
|
104
101
|
for (const address of this.accounts){
|
|
105
|
-
if (this.lookupProvider.has(address.toString())) {
|
|
106
|
-
nonDefaultLookups.push(address);
|
|
107
|
-
} else {
|
|
108
|
-
defaultLookups.push(address);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
const defaultCalls = defaultLookups.map((address)=>this.token.methods.balance_of_private(address));
|
|
112
|
-
const results = (await Promise.all(chunk(defaultCalls, 4).map((batch)=>new BatchCall(this.defaultWallet, batch).simulate({
|
|
113
|
-
from: this.defaultAddress
|
|
114
|
-
})))).flat();
|
|
115
|
-
for(let i = 0; i < defaultLookups.length; i++){
|
|
116
|
-
expect(results[i]).toEqual(this.balanceOfPrivate(defaultLookups[i]));
|
|
117
|
-
}
|
|
118
|
-
// We are just running individual calls for the non-default lookups
|
|
119
|
-
// @todo We should also batch these
|
|
120
|
-
for (const address of nonDefaultLookups){
|
|
121
102
|
const wallet = this.lookupProvider.get(address.toString());
|
|
122
103
|
const asset = wallet ? this.token.withWallet(wallet) : this.token;
|
|
123
|
-
const actualPrivateBalance = await asset.methods.balance_of_private({
|
|
124
|
-
address
|
|
125
|
-
}).simulate({
|
|
126
|
-
from: this.defaultAddress
|
|
104
|
+
const { result: actualPrivateBalance } = await asset.methods.balance_of_private(address).simulate({
|
|
105
|
+
from: address
|
|
127
106
|
});
|
|
128
107
|
expect(actualPrivateBalance).toEqual(this.balanceOfPrivate(address));
|
|
129
108
|
}
|
|
@@ -3,7 +3,8 @@ import { type FeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
|
3
3
|
import { type AztecNode } from '@aztec/aztec.js/node';
|
|
4
4
|
import type { Logger } from '@aztec/foundation/log';
|
|
5
5
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
6
|
-
import { TestWallet } from '
|
|
6
|
+
import { TestWallet } from '../test-wallet/test_wallet.js';
|
|
7
|
+
import { WorkerWallet } from '../test-wallet/worker_wallet.js';
|
|
7
8
|
export interface TestAccounts {
|
|
8
9
|
aztecNode: AztecNode;
|
|
9
10
|
wallet: TestWallet;
|
|
@@ -33,4 +34,10 @@ export type WalletWrapper = {
|
|
|
33
34
|
cleanup: () => Promise<void>;
|
|
34
35
|
};
|
|
35
36
|
export declare function createWalletAndAztecNodeClient(nodeUrl: string, proverEnabled: boolean, logger: Logger): Promise<WalletWrapper>;
|
|
36
|
-
|
|
37
|
+
export type WorkerWalletWrapper = {
|
|
38
|
+
wallet: WorkerWallet;
|
|
39
|
+
aztecNode: AztecNode;
|
|
40
|
+
cleanup: () => Promise<void>;
|
|
41
|
+
};
|
|
42
|
+
export declare function createWorkerWalletClient(nodeUrl: string, proverEnabled: boolean, logger: Logger): Promise<WorkerWalletWrapper>;
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfdGVzdF93YWxsZXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BhcnRhbi9zZXR1cF90ZXN0X3dhbGxldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXpELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE2QixNQUFNLHFCQUFxQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBb0MsTUFBTSxzQkFBc0IsQ0FBQztBQUl4RixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFPL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxNQUFNLFdBQVcsWUFBWTtJQUMzQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3pCLGFBQWEsRUFBRSxhQUFhLENBQUM7SUFDN0IsaUJBQWlCLEVBQUUsWUFBWSxDQUFDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQy9CLFlBQVksRUFBRSxZQUFZLENBQUM7Q0FDNUI7QUFFRCxNQUFNLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUMxQyxZQUFZLEVBQ1osY0FBYyxHQUFHLGVBQWUsR0FBRyxXQUFXLEdBQUcsbUJBQW1CLENBQ3JFLENBQUM7QUFNRix3QkFBc0IsMkJBQTJCLENBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQ2YsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUMsWUFBWSxDQUFDLENBeUJ2QjtBQUVELHdCQUFzQixxQ0FBcUMsQ0FDekQsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLENBK0N2QjtBQW9ERCx3QkFBc0IsMkJBQTJCLENBQy9DLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QscUJBQXFCLFNBQUksR0FDeEIsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBa0JwQztBQUVELHdCQUFzQiw0QkFBNEIsQ0FDaEQsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLEVBQUUsTUFBTSxFQUFFLEVBQ25CLG9CQUFvQixFQUFFLE1BQU0sRUFDNUIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLENBK0N2QjtBQTZFRCx3QkFBc0IsZ0JBQWdCLENBQUMsRUFDckMsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sY0FBYyxFQUNkLE1BQU0sRUFDTixnQkFBZ0IsRUFDakIsRUFBRTtJQUNELE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztDQUNyQyxpQkFxQkE7QUFFRCxNQUFNLE1BQU0sYUFBYSxHQUFHO0lBQzFCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsU0FBUyxFQUFFLFNBQVMsQ0FBQztJQUNyQixPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDOUIsQ0FBQztBQUVGLHdCQUFzQiw4QkFBOEIsQ0FDbEQsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsT0FBTyxFQUN0QixNQUFNLEVBQUUsTUFBTSxHQUNiLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FxQnhCO0FBRUQsTUFBTSxNQUFNLG1CQUFtQixHQUFHO0lBQ2hDLE1BQU0sRUFBRSxZQUFZLENBQUM7SUFDckIsU0FBUyxFQUFFLFNBQVMsQ0FBQztJQUNyQixPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDOUIsQ0FBQztBQUVGLHdCQUFzQix3QkFBd0IsQ0FDNUMsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsT0FBTyxFQUN0QixNQUFNLEVBQUUsTUFBTSxHQUNiLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQTJCOUIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,OAAO,EAAE,KAAK,gBAAgB,EAA6B,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAAE,KAAK,SAAS,EAAoC,MAAM,sBAAsB,CAAC;AAIxF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,10 +10,13 @@ import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
|
10
10
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
11
11
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
12
12
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
13
|
-
import {
|
|
13
|
+
import { registerInitialLocalNetworkAccountsInWallet } from '@aztec/wallets/testing';
|
|
14
14
|
import { getACVMConfig } from '../fixtures/get_acvm_config.js';
|
|
15
15
|
import { getBBConfig } from '../fixtures/get_bb_config.js';
|
|
16
16
|
import { getSponsoredFPCAddress, registerSponsoredFPC } from '../fixtures/utils.js';
|
|
17
|
+
import { TestWallet } from '../test-wallet/test_wallet.js';
|
|
18
|
+
import { proveInteraction } from '../test-wallet/utils.js';
|
|
19
|
+
import { WorkerWallet } from '../test-wallet/worker_wallet.js';
|
|
17
20
|
const TOKEN_NAME = 'USDC';
|
|
18
21
|
const TOKEN_SYMBOL = 'USD';
|
|
19
22
|
const TOKEN_DECIMALS = 18n;
|
|
@@ -83,13 +86,14 @@ async function deployAccountWithDiagnostics(account, paymentMethod, aztecNode, l
|
|
|
83
86
|
const deployMethod = await account.getDeployMethod();
|
|
84
87
|
let txHash;
|
|
85
88
|
try {
|
|
86
|
-
|
|
89
|
+
const deployResult = await deployMethod.send({
|
|
87
90
|
from: AztecAddress.ZERO,
|
|
88
91
|
fee: {
|
|
89
92
|
paymentMethod
|
|
90
93
|
},
|
|
91
94
|
wait: NO_WAIT
|
|
92
95
|
});
|
|
96
|
+
txHash = deployResult.txHash;
|
|
93
97
|
await waitForTx(aztecNode, txHash, {
|
|
94
98
|
timeout: 2400
|
|
95
99
|
});
|
|
@@ -174,7 +178,7 @@ async function bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, aztecNode, reci
|
|
|
174
178
|
const l1Client = createExtendedL1Client(chain.rpcUrls, mnemonicOrPrivateKey, chain.chainInfo);
|
|
175
179
|
const portal = await L1FeeJuicePortalManager.new(aztecNode, l1Client, log);
|
|
176
180
|
const claim = await portal.bridgeTokensPublic(recipient, amount, true);
|
|
177
|
-
const isSynced = async ()=>await aztecNode.
|
|
181
|
+
const isSynced = async ()=>await aztecNode.getL1ToL2MessageCheckpoint(Fr.fromHexString(claim.messageHash)) !== undefined;
|
|
178
182
|
await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 0.5);
|
|
179
183
|
log.info(`Created a claim for ${amount} L1 fee juice to ${recipient}.`, claim);
|
|
180
184
|
return claim;
|
|
@@ -197,7 +201,7 @@ async function advanceL2Block(aztecNode, nodeAdmin) {
|
|
|
197
201
|
}
|
|
198
202
|
async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMethod, logger) {
|
|
199
203
|
logger.verbose(`Deploying TokenContract...`);
|
|
200
|
-
const { contract: tokenContract } = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
|
|
204
|
+
const { receipt: { contract: tokenContract } } = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
|
|
201
205
|
from: admin,
|
|
202
206
|
fee: {
|
|
203
207
|
paymentMethod
|
|
@@ -268,3 +272,30 @@ export async function createWalletAndAztecNodeClient(nodeUrl, proverEnabled, log
|
|
|
268
272
|
}
|
|
269
273
|
};
|
|
270
274
|
}
|
|
275
|
+
export async function createWorkerWalletClient(nodeUrl, proverEnabled, logger) {
|
|
276
|
+
const aztecNode = createAztecNodeClient(nodeUrl);
|
|
277
|
+
const [bbConfig, acvmConfig] = await Promise.all([
|
|
278
|
+
getBBConfig(logger),
|
|
279
|
+
getACVMConfig(logger)
|
|
280
|
+
]);
|
|
281
|
+
// Strip cleanup functions — they can't be structured-cloned for worker transfer
|
|
282
|
+
const { cleanup: bbCleanup, ...bbPaths } = bbConfig ?? {};
|
|
283
|
+
const { cleanup: acvmCleanup, ...acvmPaths } = acvmConfig ?? {};
|
|
284
|
+
const pxeConfig = {
|
|
285
|
+
dataDirectory: undefined,
|
|
286
|
+
dataStoreMapSizeKb: 1024 * 1024,
|
|
287
|
+
...bbPaths,
|
|
288
|
+
...acvmPaths,
|
|
289
|
+
proverEnabled
|
|
290
|
+
};
|
|
291
|
+
const wallet = await WorkerWallet.create(nodeUrl, pxeConfig);
|
|
292
|
+
return {
|
|
293
|
+
wallet,
|
|
294
|
+
aztecNode,
|
|
295
|
+
async cleanup () {
|
|
296
|
+
await wallet.stop();
|
|
297
|
+
await bbCleanup?.();
|
|
298
|
+
await acvmCleanup?.();
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
}
|
|
@@ -4,13 +4,14 @@ export declare function restartBot(namespace: string, log: Logger): Promise<void
|
|
|
4
4
|
* Installs or upgrades the transfer bot Helm release for the given namespace.
|
|
5
5
|
* Intended for test setup to enable L2 traffic generation only when needed.
|
|
6
6
|
*/
|
|
7
|
-
export declare function installTransferBot({ namespace, spartanDir, logger: log, replicas, txIntervalSeconds, followChain, mnemonic, mnemonicStartIndex, botPrivateKey, nodeUrl, timeout, reuseValues, aztecSlotDuration }: {
|
|
7
|
+
export declare function installTransferBot({ namespace, spartanDir, logger: log, replicas, txIntervalSeconds, followChain, pxeSyncChainTip, mnemonic, mnemonicStartIndex, botPrivateKey, nodeUrl, timeout, reuseValues, aztecSlotDuration }: {
|
|
8
8
|
namespace: string;
|
|
9
9
|
spartanDir: string;
|
|
10
10
|
logger: Logger;
|
|
11
11
|
replicas?: number;
|
|
12
12
|
txIntervalSeconds?: number;
|
|
13
13
|
followChain?: string;
|
|
14
|
+
pxeSyncChainTip?: string;
|
|
14
15
|
mnemonic?: string;
|
|
15
16
|
mnemonicStartIndex?: number | string;
|
|
16
17
|
botPrivateKey?: string;
|
|
@@ -24,4 +25,4 @@ export declare function installTransferBot({ namespace, spartanDir, logger: log,
|
|
|
24
25
|
* Intended for test teardown to clean up bot resources.
|
|
25
26
|
*/
|
|
26
27
|
export declare function uninstallTransferBot(namespace: string, log: Logger): Promise<void>;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BhcnRhbi91dGlscy9ib3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFXcEQsd0JBQXNCLFVBQVUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGlCQWE5RDtBQUVEOzs7R0FHRztBQUNILHdCQUFzQixrQkFBa0IsQ0FBQyxFQUN2QyxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFBRSxHQUFHLEVBQ1gsUUFBWSxFQUNaLGlCQUFzQixFQUN0QixXQUE0QixFQUM1QixlQUE0QixFQUM1QixRQUEyRyxFQUMzRyxrQkFBa0IsRUFDbEIsYUFBc0UsRUFDdEUsT0FBTyxFQUNQLE9BQWUsRUFDZixXQUFrQixFQUNsQixpQkFBaUUsRUFDbEUsRUFBRTtJQUNELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzNCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixlQUFlLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDekIsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNyQyxhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNqQixXQUFXLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDdEIsaUJBQWlCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDNUIsaUJBaUhBO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQXNCLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBUXhFIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/bot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAWpD,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBAa9D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,SAAS,EACT,UAAU,EACV,MAAM,EAAE,GAAG,EACX,QAAY,EACZ,iBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/bot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAWpD,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBAa9D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,SAAS,EACT,UAAU,EACV,MAAM,EAAE,GAAG,EACX,QAAY,EACZ,iBAAsB,EACtB,WAA4B,EAC5B,eAA4B,EAC5B,QAA2G,EAC3G,kBAAkB,EAClB,aAAsE,EACtE,OAAO,EACP,OAAe,EACf,WAAkB,EAClB,iBAAiE,EAClE,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,iBAiHA;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBAQxE"}
|
|
@@ -25,7 +25,7 @@ export async function restartBot(namespace, log) {
|
|
|
25
25
|
/**
|
|
26
26
|
* Installs or upgrades the transfer bot Helm release for the given namespace.
|
|
27
27
|
* Intended for test setup to enable L2 traffic generation only when needed.
|
|
28
|
-
*/ export async function installTransferBot({ namespace, spartanDir, logger: log, replicas = 1, txIntervalSeconds = 10, followChain = '
|
|
28
|
+
*/ export async function installTransferBot({ namespace, spartanDir, logger: log, replicas = 1, txIntervalSeconds = 10, followChain = 'CHECKPOINTED', pxeSyncChainTip = 'proposed', mnemonic = process.env.LABS_INFRA_MNEMONIC ?? 'test test test test test test test test test test test junk', mnemonicStartIndex, botPrivateKey = process.env.BOT_TRANSFERS_L2_PRIVATE_KEY ?? '0xcafe01', nodeUrl, timeout = '15m', reuseValues = true, aztecSlotDuration = Number(process.env.AZTEC_SLOT_DURATION ?? 12) }) {
|
|
29
29
|
const instanceName = `${namespace}-bot-transfers`;
|
|
30
30
|
const helmChartDir = getChartDir(spartanDir, 'aztec-bot');
|
|
31
31
|
const resolvedNodeUrl = nodeUrl ?? `http://${namespace}-rpc-aztec-node.${namespace}.svc.cluster.local:8080`;
|
|
@@ -34,6 +34,7 @@ export async function restartBot(namespace, log) {
|
|
|
34
34
|
'bot.replicaCount': replicas,
|
|
35
35
|
'bot.txIntervalSeconds': txIntervalSeconds,
|
|
36
36
|
'bot.followChain': followChain,
|
|
37
|
+
'bot.pxeSyncChainTip': pxeSyncChainTip,
|
|
37
38
|
'bot.botPrivateKey': botPrivateKey,
|
|
38
39
|
'bot.nodeUrl': resolvedNodeUrl,
|
|
39
40
|
'bot.mnemonic': mnemonic,
|
|
@@ -9,6 +9,8 @@ declare const testConfigSchema: z.ZodObject<{
|
|
|
9
9
|
AZTEC_EPOCH_DURATION: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
10
10
|
AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
11
11
|
AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
12
|
+
FUNDING_PRIVATE_KEY: z.ZodOptional<z.ZodString>;
|
|
13
|
+
AZTEC_ADMIN_API_KEY: z.ZodOptional<z.ZodString>;
|
|
12
14
|
}, "strip", z.ZodTypeAny, {
|
|
13
15
|
NAMESPACE: string;
|
|
14
16
|
REAL_VERIFIER: boolean;
|
|
@@ -19,6 +21,8 @@ declare const testConfigSchema: z.ZodObject<{
|
|
|
19
21
|
AZTEC_EPOCH_DURATION: number;
|
|
20
22
|
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
21
23
|
AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: number;
|
|
24
|
+
FUNDING_PRIVATE_KEY?: string | undefined;
|
|
25
|
+
AZTEC_ADMIN_API_KEY?: string | undefined;
|
|
22
26
|
}, {
|
|
23
27
|
NAMESPACE?: string | undefined;
|
|
24
28
|
REAL_VERIFIER?: string | number | boolean | undefined;
|
|
@@ -29,8 +33,10 @@ declare const testConfigSchema: z.ZodObject<{
|
|
|
29
33
|
AZTEC_EPOCH_DURATION?: number | undefined;
|
|
30
34
|
AZTEC_PROOF_SUBMISSION_WINDOW?: number | undefined;
|
|
31
35
|
AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET?: number | undefined;
|
|
36
|
+
FUNDING_PRIVATE_KEY?: string | undefined;
|
|
37
|
+
AZTEC_ADMIN_API_KEY?: string | undefined;
|
|
32
38
|
}>;
|
|
33
39
|
export type TestConfig = z.infer<typeof testConfigSchema>;
|
|
34
40
|
export declare function setupEnvironment(env: unknown): TestConfig;
|
|
35
41
|
export {};
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BhcnRhbi91dGlscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl4QixRQUFBLE1BQU0sZ0JBQWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFZcEIsQ0FBQztBQUVILE1BQU0sTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLGdCQUFnQixDQUFDLENBQUM7QUFFMUQsd0JBQWdCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxPQUFPLEdBQUcsVUFBVSxDQUl6RCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYpB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAIzD"}
|
|
@@ -11,7 +11,9 @@ const testConfigSchema = z.object({
|
|
|
11
11
|
AZTEC_SLOT_DURATION: z.coerce.number().optional().default(24),
|
|
12
12
|
AZTEC_EPOCH_DURATION: z.coerce.number().optional().default(32),
|
|
13
13
|
AZTEC_PROOF_SUBMISSION_WINDOW: z.coerce.number().optional().default(5),
|
|
14
|
-
AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: z.coerce.number().optional().default(2)
|
|
14
|
+
AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: z.coerce.number().optional().default(2),
|
|
15
|
+
FUNDING_PRIVATE_KEY: z.string().optional(),
|
|
16
|
+
AZTEC_ADMIN_API_KEY: z.string().optional()
|
|
15
17
|
});
|
|
16
18
|
export function setupEnvironment(env) {
|
|
17
19
|
const config = testConfigSchema.parse(env);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export { type TestConfig, setupEnvironment } from './config.js';
|
|
2
|
-
export { getGitProjectRoot, getAztecBin, runAztecBin, runProjectScript } from './scripts.js';
|
|
3
|
-
export { startPortForward, getExternalIP, startPortForwardForPrometeheus, startPortForwardForRPC, startPortForwardForEthereum, deleteResourceByName, deleteResourceByLabel, waitForResourceByLabel, waitForResourceByName, waitForResourcesByName, getChartDir, type ServiceEndpoint, getServiceEndpoint, getRPCEndpoint, getEthereumEndpoint, } from './k8s.js';
|
|
2
|
+
export { type ScriptResult, getGitProjectRoot, getAztecBin, runAztecBin, runProjectScript } from './scripts.js';
|
|
3
|
+
export { startPortForward, getExternalIP, startPortForwardForPrometeheus, startPortForwardForRPC, startPortForwardForEthereum, deleteResourceByName, deleteResourceByLabel, waitForResourceByLabel, waitForResourceByName, waitForResourcesByName, getChartDir, type ServiceEndpoint, getServiceEndpoint, getRPCEndpoint, getEthereumEndpoint, createResilientPrometheusConnection, scaleProverAgents, } from './k8s.js';
|
|
4
4
|
export { uninstallChaosMesh, installChaosMeshChart, applyProverFailure, applyValidatorFailure, applyProverKill, applyProverBrokerKill, applyBootNodeFailure, applyValidatorKill, applyNetworkShaping, } from './chaos.js';
|
|
5
|
+
export { hasDeployedHelmRelease } from './helm.js';
|
|
5
6
|
export { restartBot, installTransferBot, uninstallTransferBot } from './bot.js';
|
|
6
|
-
export { awaitCheckpointNumber, getSequencers, updateSequencersConfig, getSequencersConfig, withSequencersAdmin, setValidatorTxDrop, restartValidators, enableValidatorDynamicBootNode, rollAztecPods, } from './nodes.js';
|
|
7
|
+
export { awaitCheckpointNumber, waitForProvenToAdvance, getSequencers, updateSequencersConfig, getSequencersConfig, withSequencersAdmin, setValidatorTxDrop, restartValidators, enableValidatorDynamicBootNode, rollAztecPods, } from './nodes.js';
|
|
7
8
|
export { getPublicViemClient, getL1DeploymentAddresses, getNodeClient } from './clients.js';
|
|
8
9
|
export { ChainHealth, type ChainHealthSnapshot } from './health.js';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcGFydGFuL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdoRSxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUdoSCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxLQUFLLGVBQWUsRUFDcEIsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsbUNBQW1DLEVBQ25DLGlCQUFpQixHQUNsQixNQUFNLFVBQVUsQ0FBQztBQUdsQixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixtQkFBbUIsR0FDcEIsTUFBTSxZQUFZLENBQUM7QUFHcEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHaEYsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsOEJBQThCLEVBQzlCLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUdwQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzVGLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,8BAA8B,EAC9B,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,KAAK,eAAe,EACpB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,mCAAmC,EACnC,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,8BAA8B,EAC9B,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG5F,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -5,13 +5,15 @@ export { setupEnvironment } from './config.js';
|
|
|
5
5
|
// Scripts
|
|
6
6
|
export { getGitProjectRoot, getAztecBin, runAztecBin, runProjectScript } from './scripts.js';
|
|
7
7
|
// K8s operations
|
|
8
|
-
export { startPortForward, getExternalIP, startPortForwardForPrometeheus, startPortForwardForRPC, startPortForwardForEthereum, deleteResourceByName, deleteResourceByLabel, waitForResourceByLabel, waitForResourceByName, waitForResourcesByName, getChartDir, getServiceEndpoint, getRPCEndpoint, getEthereumEndpoint } from './k8s.js';
|
|
8
|
+
export { startPortForward, getExternalIP, startPortForwardForPrometeheus, startPortForwardForRPC, startPortForwardForEthereum, deleteResourceByName, deleteResourceByLabel, waitForResourceByLabel, waitForResourceByName, waitForResourcesByName, getChartDir, getServiceEndpoint, getRPCEndpoint, getEthereumEndpoint, createResilientPrometheusConnection, scaleProverAgents } from './k8s.js';
|
|
9
9
|
// Chaos Mesh
|
|
10
10
|
export { uninstallChaosMesh, installChaosMeshChart, applyProverFailure, applyValidatorFailure, applyProverKill, applyProverBrokerKill, applyBootNodeFailure, applyValidatorKill, applyNetworkShaping } from './chaos.js';
|
|
11
|
+
// Helm
|
|
12
|
+
export { hasDeployedHelmRelease } from './helm.js';
|
|
11
13
|
// Bot management
|
|
12
14
|
export { restartBot, installTransferBot, uninstallTransferBot } from './bot.js';
|
|
13
15
|
// Node operations (sequencers, validators, pods)
|
|
14
|
-
export { awaitCheckpointNumber, getSequencers, updateSequencersConfig, getSequencersConfig, withSequencersAdmin, setValidatorTxDrop, restartValidators, enableValidatorDynamicBootNode, rollAztecPods } from './nodes.js';
|
|
16
|
+
export { awaitCheckpointNumber, waitForProvenToAdvance, getSequencers, updateSequencersConfig, getSequencersConfig, withSequencersAdmin, setValidatorTxDrop, restartValidators, enableValidatorDynamicBootNode, rollAztecPods } from './nodes.js';
|
|
15
17
|
// Client utilities
|
|
16
18
|
export { getPublicViemClient, getL1DeploymentAddresses, getNodeClient } from './clients.js';
|
|
17
19
|
// Health checks
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { Logger } from '@aztec/foundation/log';
|
|
1
2
|
import { type ChildProcess } from 'child_process';
|
|
3
|
+
import { GrafanaClient } from '../../quality_of_service/grafana_client.js';
|
|
2
4
|
/**
|
|
3
5
|
* Represents an endpoint to reach a K8s service.
|
|
4
6
|
* May be a LoadBalancer external IP or a port-forward.
|
|
@@ -94,5 +96,33 @@ export declare function waitForResourcesByName({ resource, names, namespace, con
|
|
|
94
96
|
condition?: string;
|
|
95
97
|
timeout?: string;
|
|
96
98
|
}): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Waits for all StatefulSets matching a label to have all their replicas ready.
|
|
101
|
+
*
|
|
102
|
+
* @param namespace - Kubernetes namespace
|
|
103
|
+
* @param label - Label selector for StatefulSets (e.g., "app.kubernetes.io/component=sequencer-node")
|
|
104
|
+
* @param timeoutSeconds - Maximum time to wait in seconds
|
|
105
|
+
* @param pollIntervalSeconds - How often to check status
|
|
106
|
+
*/
|
|
107
|
+
export declare function waitForStatefulSetsReady({ namespace, label, timeoutSeconds, pollIntervalSeconds }: {
|
|
108
|
+
namespace: string;
|
|
109
|
+
label: string;
|
|
110
|
+
timeoutSeconds?: number;
|
|
111
|
+
pollIntervalSeconds?: number;
|
|
112
|
+
}): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Creates a Prometheus connection that can re-establish port-forward on failure.
|
|
115
|
+
* Returns functions to connect and run alert checks that automatically reconnect if needed.
|
|
116
|
+
*
|
|
117
|
+
* @param namespace - K8s namespace to fall back to if metrics namespace doesn't have Prometheus
|
|
118
|
+
* @param endpoints - Array to track created endpoints for cleanup
|
|
119
|
+
* @param log - Logger instance
|
|
120
|
+
*/
|
|
121
|
+
export declare function createResilientPrometheusConnection(namespace: string, endpoints: ServiceEndpoint[], log: Logger): {
|
|
122
|
+
connect: () => Promise<GrafanaClient>;
|
|
123
|
+
runAlertCheck: (alerts: Parameters<GrafanaClient['runAlertCheck']>[0]) => Promise<void>;
|
|
124
|
+
};
|
|
125
|
+
/** Scales the prover-agent Deployment to the given number of replicas. */
|
|
126
|
+
export declare function scaleProverAgents(namespace: string, replicas: number, log: Logger): Promise<void>;
|
|
97
127
|
export declare function getChartDir(spartanDir: string, chartName: string): string;
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BhcnRhbi91dGlscy9rOHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJcEQsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBSS9ELE9BQU8sRUFBdUIsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFNaEc7OztHQUdHO0FBQ0gsTUFBTSxXQUFXLGVBQWU7SUFDOUIsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUNaLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQztDQUN4QjtBQUVELHdCQUFzQixnQkFBZ0IsQ0FBQyxFQUNyQyxRQUFRLEVBQ1IsU0FBUyxFQUNULGFBQWEsRUFDYixRQUFRLEVBQ1QsRUFBRTtJQUNELFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBRXRCLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNuQixHQUFHLE9BQU8sQ0FBQztJQUNWLE9BQU8sRUFBRSxZQUFZLENBQUM7SUFDdEIsSUFBSSxFQUFFLE1BQU0sQ0FBQztDQUNkLENBQUMsQ0F1RUQ7QUFFRCx3QkFBZ0IsYUFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBK0JyRjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLElBQUksRUFBRTtJQUM3QyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUM1QixHQUFHLE9BQU8sQ0FBQyxlQUFlLENB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"k8s.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/k8s.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"k8s.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/k8s.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { retryUntil } from '@aztec/foundation/retry';
|
|
|
4
4
|
import { exec, spawn } from 'child_process';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { promisify } from 'util';
|
|
7
|
+
import { AlertTriggeredError, GrafanaClient } from '../../quality_of_service/grafana_client.js';
|
|
7
8
|
const execAsync = promisify(exec);
|
|
8
9
|
const logger = createLogger('e2e:k8s-utils');
|
|
9
10
|
export async function startPortForward({ resource, namespace, containerPort, hostPort }) {
|
|
@@ -252,6 +253,129 @@ export async function waitForResourcesByName({ resource, names, namespace, condi
|
|
|
252
253
|
}
|
|
253
254
|
}));
|
|
254
255
|
}
|
|
256
|
+
/**
|
|
257
|
+
* Waits for all StatefulSets matching a label to have all their replicas ready.
|
|
258
|
+
*
|
|
259
|
+
* @param namespace - Kubernetes namespace
|
|
260
|
+
* @param label - Label selector for StatefulSets (e.g., "app.kubernetes.io/component=sequencer-node")
|
|
261
|
+
* @param timeoutSeconds - Maximum time to wait in seconds
|
|
262
|
+
* @param pollIntervalSeconds - How often to check status
|
|
263
|
+
*/ export async function waitForStatefulSetsReady({ namespace, label, timeoutSeconds = 600, pollIntervalSeconds = 5 }) {
|
|
264
|
+
logger.info(`Waiting for StatefulSets with label ${label} to have all replicas ready (timeout: ${timeoutSeconds}s)`);
|
|
265
|
+
await retryUntil(async ()=>{
|
|
266
|
+
// Get all StatefulSets matching the label
|
|
267
|
+
const getCmd = `kubectl get statefulset -l ${label} -n ${namespace} -o json`;
|
|
268
|
+
const { stdout } = await execAsync(getCmd);
|
|
269
|
+
const result = JSON.parse(stdout);
|
|
270
|
+
if (!result.items || result.items.length === 0) {
|
|
271
|
+
logger.verbose(`No StatefulSets found with label ${label}`);
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
// Check each StatefulSet
|
|
275
|
+
for (const sts of result.items){
|
|
276
|
+
const name = sts.metadata.name;
|
|
277
|
+
const desired = sts.spec.replicas ?? 0;
|
|
278
|
+
const ready = sts.status.readyReplicas ?? 0;
|
|
279
|
+
const updated = sts.status.updatedReplicas ?? 0;
|
|
280
|
+
if (ready < desired || updated < desired) {
|
|
281
|
+
logger.verbose(`StatefulSet ${name}: ${ready}/${desired} ready, ${updated}/${desired} updated`);
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
logger.info(`All StatefulSets with label ${label} are ready`);
|
|
286
|
+
return true;
|
|
287
|
+
}, `StatefulSets with label ${label} to be ready`, timeoutSeconds, pollIntervalSeconds);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Creates a Prometheus connection that can re-establish port-forward on failure.
|
|
291
|
+
* Returns functions to connect and run alert checks that automatically reconnect if needed.
|
|
292
|
+
*
|
|
293
|
+
* @param namespace - K8s namespace to fall back to if metrics namespace doesn't have Prometheus
|
|
294
|
+
* @param endpoints - Array to track created endpoints for cleanup
|
|
295
|
+
* @param log - Logger instance
|
|
296
|
+
*/ export function createResilientPrometheusConnection(namespace, endpoints, log) {
|
|
297
|
+
let alertChecker;
|
|
298
|
+
let currentEndpoint;
|
|
299
|
+
const connect = async ()=>{
|
|
300
|
+
// Kill existing connection if any
|
|
301
|
+
if (currentEndpoint?.process) {
|
|
302
|
+
currentEndpoint.process.kill();
|
|
303
|
+
}
|
|
304
|
+
// Try metrics namespace first, then network namespace
|
|
305
|
+
let promPort = 0;
|
|
306
|
+
let promUrl = '';
|
|
307
|
+
let promProc;
|
|
308
|
+
try {
|
|
309
|
+
const metricsResult = await startPortForward({
|
|
310
|
+
resource: `svc/metrics-prometheus-server`,
|
|
311
|
+
namespace: 'metrics',
|
|
312
|
+
containerPort: 80
|
|
313
|
+
});
|
|
314
|
+
promProc = metricsResult.process;
|
|
315
|
+
promPort = metricsResult.port;
|
|
316
|
+
promUrl = `http://127.0.0.1:${promPort}/api/v1`;
|
|
317
|
+
} catch {
|
|
318
|
+
// Metrics namespace might not have Prometheus, try network namespace
|
|
319
|
+
log.verbose('Metrics namespace Prometheus not available, trying network namespace');
|
|
320
|
+
}
|
|
321
|
+
if (promPort === 0) {
|
|
322
|
+
const nsResult = await startPortForward({
|
|
323
|
+
resource: `svc/prometheus-server`,
|
|
324
|
+
namespace,
|
|
325
|
+
containerPort: 80
|
|
326
|
+
});
|
|
327
|
+
promProc = nsResult.process;
|
|
328
|
+
promPort = nsResult.port;
|
|
329
|
+
promUrl = `http://127.0.0.1:${promPort}/api/v1`;
|
|
330
|
+
}
|
|
331
|
+
if (!promProc || promPort === 0) {
|
|
332
|
+
throw new Error('Unable to port-forward to Prometheus');
|
|
333
|
+
}
|
|
334
|
+
currentEndpoint = {
|
|
335
|
+
url: promUrl,
|
|
336
|
+
process: promProc
|
|
337
|
+
};
|
|
338
|
+
endpoints.push(currentEndpoint);
|
|
339
|
+
alertChecker = new GrafanaClient(log, {
|
|
340
|
+
grafanaEndpoint: promUrl,
|
|
341
|
+
grafanaCredentials: ''
|
|
342
|
+
});
|
|
343
|
+
log.info(`Established Prometheus connection at ${promUrl}`);
|
|
344
|
+
return alertChecker;
|
|
345
|
+
};
|
|
346
|
+
const runAlertCheck = async (alerts)=>{
|
|
347
|
+
if (!alertChecker) {
|
|
348
|
+
alertChecker = await connect();
|
|
349
|
+
}
|
|
350
|
+
try {
|
|
351
|
+
await alertChecker.runAlertCheck(alerts);
|
|
352
|
+
} catch (err) {
|
|
353
|
+
// If it's an AlertTriggeredError (expected behavior)
|
|
354
|
+
if (err instanceof AlertTriggeredError) {
|
|
355
|
+
throw err;
|
|
356
|
+
}
|
|
357
|
+
// Check if it's a connection error (port-forward died)
|
|
358
|
+
const errorStr = String(err);
|
|
359
|
+
if (errorStr.includes('fetch failed') || errorStr.includes('ECONNREFUSED') || errorStr.includes('ECONNRESET')) {
|
|
360
|
+
log.warn(`Prometheus connection lost, re-establishing port-forward...`);
|
|
361
|
+
alertChecker = await connect();
|
|
362
|
+
await alertChecker.runAlertCheck(alerts);
|
|
363
|
+
} else {
|
|
364
|
+
throw err;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
return {
|
|
369
|
+
connect,
|
|
370
|
+
runAlertCheck
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
/** Scales the prover-agent Deployment to the given number of replicas. */ export async function scaleProverAgents(namespace, replicas, log) {
|
|
374
|
+
const label = 'app.kubernetes.io/component=prover-agent';
|
|
375
|
+
const command = `kubectl scale deployment -l ${label} -n ${namespace} --replicas=${replicas} --timeout=2m`;
|
|
376
|
+
log.info(`Scaling prover agents to ${replicas}: ${command}`);
|
|
377
|
+
await execAsync(command);
|
|
378
|
+
}
|
|
255
379
|
export function getChartDir(spartanDir, chartName) {
|
|
256
380
|
return path.join(spartanDir.trim(), chartName);
|
|
257
381
|
}
|
|
@@ -4,17 +4,26 @@ import type { Logger } from '@aztec/foundation/log';
|
|
|
4
4
|
import { type AztecNodeAdmin, type AztecNodeAdminConfig } from '@aztec/stdlib/interfaces/client';
|
|
5
5
|
import type { TestConfig } from './config.js';
|
|
6
6
|
export declare function awaitCheckpointNumber(rollupCheatCodes: RollupCheatCodes, checkpointNumber: CheckpointNumber, timeoutSeconds: number, log: Logger): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Waits until the proven block number increases.
|
|
9
|
+
*
|
|
10
|
+
* @param rpcUrl - URL of an Aztec RPC node to query
|
|
11
|
+
* @param log - Logger instance
|
|
12
|
+
* @param timeoutSeconds - Maximum time to wait
|
|
13
|
+
* @param pollIntervalSeconds - How often to check
|
|
14
|
+
*/
|
|
15
|
+
export declare function waitForProvenToAdvance(rpcUrl: string, log: Logger, timeoutSeconds?: number, pollIntervalSeconds?: number): Promise<void>;
|
|
7
16
|
export declare function getSequencers(namespace: string): Promise<string[]>;
|
|
8
17
|
export declare function updateSequencersConfig(env: TestConfig, config: Partial<AztecNodeAdminConfig>): Promise<AztecNodeAdminConfig[]>;
|
|
9
18
|
export declare function getSequencersConfig(env: TestConfig): Promise<AztecNodeAdminConfig[]>;
|
|
10
19
|
export declare function withSequencersAdmin<T>(env: TestConfig, fn: (node: AztecNodeAdmin) => Promise<T>): Promise<T[]>;
|
|
20
|
+
export declare function initHADb(namespace: string): Promise<void>;
|
|
11
21
|
/**
|
|
12
|
-
*
|
|
13
|
-
* Wired to env
|
|
22
|
+
* Sets probabilistic transaction dropping on validators and waits for rollout.
|
|
23
|
+
* Use probability=0 to disable. Wired to env var P2P_DROP_TX_CHANCE via Helm values.
|
|
14
24
|
*/
|
|
15
|
-
export declare function setValidatorTxDrop({ namespace,
|
|
25
|
+
export declare function setValidatorTxDrop({ namespace, probability, logger: log }: {
|
|
16
26
|
namespace: string;
|
|
17
|
-
enabled: boolean;
|
|
18
27
|
probability: number;
|
|
19
28
|
logger: Logger;
|
|
20
29
|
}): Promise<void>;
|
|
@@ -28,4 +37,4 @@ export declare function enableValidatorDynamicBootNode(instanceName: string, nam
|
|
|
28
37
|
* Defaults to false, which preserves the existing storage.
|
|
29
38
|
*/
|
|
30
39
|
export declare function rollAztecPods(namespace: string, clearState?: boolean): Promise<void>;
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcGFydGFuL3V0aWxzL25vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdwRCxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBQ25CLEtBQUssb0JBQW9CLEVBRTFCLE1BQU0saUNBQWlDLENBQUM7QUFLekMsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBZTlDLHdCQUFzQixxQkFBcUIsQ0FDekMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxjQUFjLEVBQUUsTUFBTSxFQUN0QixHQUFHLEVBQUUsTUFBTSxpQkFlWjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0Isc0JBQXNCLENBQzFDLE1BQU0sRUFBRSxNQUFNLEVBQ2QsR0FBRyxFQUFFLE1BQU0sRUFDWCxjQUFjLEdBQUUsTUFBWSxFQUM1QixtQkFBbUIsR0FBRSxNQUFXLEdBQy9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0EwQ2Y7QUFFRCx3QkFBc0IsYUFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLHFCQTRCcEQ7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLG1DQUs1RjtBQUVELHdCQUFnQixtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsVUFBVSxtQ0FFbEQ7QUFFRCx3QkFBc0IsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLGNBQWMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBNENwSDtBQWtDRCx3QkFBc0IsUUFBUSxDQUFDLFNBQVMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQTBCL0Q7QUFFRDs7O0dBR0c7QUFDSCx3QkFBc0Isa0JBQWtCLENBQUMsRUFDdkMsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQUUsR0FBRyxFQUNaLEVBQUU7SUFDRCxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNoQixpQkErQkE7QUFFRCx3QkFBc0IsaUJBQWlCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxpQkErQnJFO0FBRUQsd0JBQXNCLDhCQUE4QixDQUNsRCxZQUFZLEVBQUUsTUFBTSxFQUNwQixTQUFTLEVBQUUsTUFBTSxFQUNqQixVQUFVLEVBQUUsTUFBTSxFQUNsQixHQUFHLEVBQUUsTUFBTSxpQkFnQlo7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBc0IsYUFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxHQUFFLE9BQWUsaUJBbUxqRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/nodes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/nodes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAE1B,MAAM,iCAAiC,CAAC;AAKzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAe9C,wBAAsB,qBAAqB,CACzC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,iBAeZ;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,cAAc,GAAE,MAAY,EAC5B,mBAAmB,GAAE,MAAW,GAC/B,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,qBA4BpD;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,mCAK5F;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,mCAElD;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CA4CpH;AAkCD,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B/D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,SAAS,EACT,WAAW,EACX,MAAM,EAAE,GAAG,EACZ,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,iBA+BA;AAED,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBA+BrE;AAED,wBAAsB,8BAA8B,CAClD,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,iBAgBZ;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,iBAmLjF"}
|