@aztec/end-to-end 0.0.1-commit.03f7ef2 → 0.0.1-commit.04d373f
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/README.md +27 -0
- package/dest/bench/client_flows/benchmark.d.ts +17 -2
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +38 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +14 -15
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +132 -150
- 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/client_flows/data_extractor.js +3 -1
- package/dest/bench/utils.d.ts +9 -8
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +33 -19
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +12 -10
- 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 +120 -117
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +30 -14
- 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 +122 -70
- package/dest/e2e_deploy_contract/deploy_test.d.ts +6 -5
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +20 -14
- package/dest/e2e_epochs/epochs_test.d.ts +39 -8
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +172 -51
- package/dest/e2e_fees/bridging_race.notest.js +3 -5
- package/dest/e2e_fees/fees_test.d.ts +18 -15
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +158 -143
- package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +14 -16
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +7 -10
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +32 -41
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +3 -3
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.js +8 -6
- package/dest/e2e_p2p/p2p_network.d.ts +20 -17
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +167 -124
- 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 +206 -0
- package/dest/e2e_p2p/shared.d.ts +30 -12
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +88 -68
- 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 +20 -11
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +103 -93
- 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 +34 -0
- package/dest/fixtures/e2e_prover_test.d.ts +15 -20
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +115 -135
- 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 +78 -2
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +75 -1
- package/dest/fixtures/get_bb_config.d.ts +1 -1
- package/dest/fixtures/get_bb_config.d.ts.map +1 -1
- package/dest/fixtures/get_bb_config.js +5 -5
- 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/schnorr_hardcoded_account_contract.d.ts +25 -0
- package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts.map +1 -0
- package/dest/fixtures/schnorr_hardcoded_account_contract.js +37 -0
- package/dest/fixtures/setup.d.ts +266 -0
- package/dest/fixtures/setup.d.ts.map +1 -0
- package/dest/fixtures/setup.js +714 -0
- package/dest/fixtures/setup_p2p_test.d.ts +22 -11
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +43 -32
- 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 +7 -6
- package/dest/fixtures/utils.d.ts +5 -194
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +4 -619
- package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
- package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
- package/dest/forward-compatibility/wallet_service.d.ts +3 -0
- package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_service.js +109 -0
- package/dest/install_legacy_contracts.d.cts +10 -0
- package/dest/install_legacy_contracts.d.cts.map +1 -0
- package/dest/legacy-jest-resolver.d.cts +3 -0
- package/dest/legacy-jest-resolver.d.cts.map +1 -0
- package/dest/quality_of_service/grafana_client.d.ts +41 -0
- package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
- package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
- package/dest/quality_of_service/prometheus_client.d.ts +38 -0
- package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
- package/dest/quality_of_service/prometheus_client.js +67 -0
- package/dest/shared/cross_chain_test_harness.d.ts +18 -6
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +33 -29
- package/dest/shared/gas_portal_test_harness.d.ts +18 -5
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +20 -11
- package/dest/shared/index.d.ts +3 -2
- 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 +4 -4
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +9 -11
- package/dest/shared/uniswap_l1_l2.d.ts +3 -28
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +88 -47
- package/dest/shared/wait_for_l1_to_l2_message.d.ts +13 -0
- package/dest/shared/wait_for_l1_to_l2_message.d.ts.map +1 -0
- package/dest/shared/wait_for_l1_to_l2_message.js +10 -0
- package/dest/simulators/lending_simulator.d.ts +14 -3
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +28 -16
- 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 +15 -5
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +133 -43
- package/dest/spartan/tx_metrics.d.ts +68 -5
- package/dest/spartan/tx_metrics.d.ts.map +1 -1
- package/dest/spartan/tx_metrics.js +399 -19
- package/dest/spartan/utils/bot.d.ts +28 -0
- package/dest/spartan/utils/bot.d.ts.map +1 -0
- package/dest/spartan/utils/bot.js +142 -0
- package/dest/spartan/utils/chaos.d.ts +79 -0
- package/dest/spartan/utils/chaos.d.ts.map +1 -0
- package/dest/spartan/utils/chaos.js +142 -0
- package/dest/spartan/utils/clients.d.ts +39 -0
- package/dest/spartan/utils/clients.d.ts.map +1 -0
- package/dest/spartan/utils/clients.js +90 -0
- package/dest/spartan/utils/config.d.ts +19 -0
- package/dest/spartan/utils/config.d.ts.map +1 -0
- package/dest/spartan/utils/config.js +23 -0
- package/dest/spartan/utils/health.d.ts +63 -0
- package/dest/spartan/utils/health.d.ts.map +1 -0
- package/dest/spartan/utils/health.js +202 -0
- package/dest/spartan/utils/helm.d.ts +15 -0
- package/dest/spartan/utils/helm.d.ts.map +1 -0
- package/dest/spartan/utils/helm.js +47 -0
- package/dest/spartan/utils/index.d.ts +11 -0
- package/dest/spartan/utils/index.d.ts.map +1 -0
- package/dest/spartan/utils/index.js +22 -0
- package/dest/spartan/utils/k8s.d.ts +128 -0
- package/dest/spartan/utils/k8s.d.ts.map +1 -0
- package/dest/spartan/utils/k8s.js +381 -0
- package/dest/spartan/utils/nodes.d.ts +40 -0
- package/dest/spartan/utils/nodes.d.ts.map +1 -0
- package/dest/spartan/utils/nodes.js +461 -0
- package/dest/spartan/utils/pod_logs.d.ts +25 -0
- package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
- package/dest/spartan/utils/pod_logs.js +74 -0
- package/dest/spartan/utils/scripts.d.ts +30 -0
- package/dest/spartan/utils/scripts.d.ts.map +1 -0
- package/dest/spartan/utils/scripts.js +81 -0
- package/dest/spartan/utils.d.ts +2 -231
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +1 -853
- package/dest/test-wallet/test_wallet.d.ts +85 -0
- package/dest/test-wallet/test_wallet.d.ts.map +1 -0
- package/dest/test-wallet/test_wallet.js +273 -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 +66 -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 +53 -0
- package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet.js +155 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts +160 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet_schema.js +22 -0
- package/package.json +53 -45
- package/src/bench/client_flows/benchmark.ts +43 -2
- package/src/bench/client_flows/client_flows_benchmark.ts +189 -240
- package/src/bench/client_flows/config.ts +9 -1
- package/src/bench/client_flows/data_extractor.ts +1 -1
- package/src/bench/utils.ts +38 -22
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +141 -152
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +166 -118
- package/src/e2e_deploy_contract/deploy_test.ts +24 -16
- package/src/e2e_epochs/epochs_test.ts +218 -94
- package/src/e2e_fees/bridging_race.notest.ts +4 -10
- package/src/e2e_fees/fees_test.ts +207 -230
- package/src/e2e_l1_publisher/write_json.ts +16 -16
- package/src/e2e_nested_contract/nested_contract_test.ts +38 -57
- package/src/e2e_p2p/inactivity_slash_test.ts +8 -6
- package/src/e2e_p2p/p2p_network.ts +239 -191
- package/src/e2e_p2p/reqresp/utils.ts +274 -0
- package/src/e2e_p2p/shared.ts +115 -86
- 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 +129 -117
- package/src/fixtures/authwit_proxy.ts +54 -0
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +143 -185
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +97 -1
- package/src/fixtures/get_bb_config.ts +7 -6
- package/src/fixtures/ha_setup.ts +188 -0
- package/src/fixtures/index.ts +1 -0
- package/src/fixtures/schnorr_hardcoded_account_contract.ts +49 -0
- package/src/fixtures/setup.ts +1037 -0
- package/src/fixtures/setup_p2p_test.ts +52 -52
- package/src/fixtures/token_utils.ts +7 -6
- package/src/fixtures/utils.ts +29 -907
- package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
- package/src/forward-compatibility/wallet_service.ts +104 -0
- package/src/guides/up_quick_start.sh +3 -5
- package/src/install_legacy_contracts.cjs +75 -0
- package/src/legacy-jest-resolver.cjs +112 -0
- package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
- package/src/quality_of_service/prometheus_client.ts +113 -0
- package/src/shared/cross_chain_test_harness.ts +34 -40
- package/src/shared/gas_portal_test_harness.ts +22 -12
- package/src/shared/index.ts +2 -1
- package/src/shared/jest_setup.ts +51 -1
- package/src/shared/mock_state_view.ts +188 -0
- package/src/shared/submit-transactions.ts +11 -16
- package/src/shared/uniswap_l1_l2.ts +114 -108
- package/src/shared/wait_for_l1_to_l2_message.ts +23 -0
- package/src/simulators/lending_simulator.ts +34 -16
- package/src/simulators/token_simulator.ts +6 -30
- package/src/spartan/setup_test_wallets.ts +191 -29
- package/src/spartan/tx_metrics.ts +329 -25
- package/src/spartan/utils/bot.ts +188 -0
- package/src/spartan/utils/chaos.ts +253 -0
- package/src/spartan/utils/clients.ts +100 -0
- package/src/spartan/utils/config.ts +29 -0
- package/src/spartan/utils/health.ts +255 -0
- package/src/spartan/utils/helm.ts +84 -0
- package/src/spartan/utils/index.ts +71 -0
- package/src/spartan/utils/k8s.ts +535 -0
- package/src/spartan/utils/nodes.ts +543 -0
- package/src/spartan/utils/pod_logs.ts +99 -0
- package/src/spartan/utils/scripts.ts +99 -0
- package/src/spartan/utils.ts +1 -1077
- package/src/test-wallet/test_wallet.ts +376 -0
- package/src/test-wallet/utils.ts +108 -0
- package/src/test-wallet/wallet_worker_script.ts +60 -0
- package/src/test-wallet/worker_wallet.ts +218 -0
- package/src/test-wallet/worker_wallet_schema.ts +13 -0
- package/dest/fixtures/snapshot_manager.d.ts +0 -93
- package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
- package/dest/fixtures/snapshot_manager.js +0 -493
- package/dest/quality_of_service/alert_checker.d.ts +0 -41
- package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
- package/src/fixtures/snapshot_manager.ts +0 -651
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
import { generateSchnorrAccounts } from '@aztec/accounts/testing';
|
|
2
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
2
3
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
4
|
+
import { NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
3
5
|
import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
|
|
4
6
|
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
5
7
|
import { type FeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
6
8
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
7
|
-
import {
|
|
9
|
+
import { waitForL1ToL2MessageReady } from '@aztec/aztec.js/messaging';
|
|
10
|
+
import { type AztecNode, createAztecNodeClient, waitForTx } from '@aztec/aztec.js/node';
|
|
8
11
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
9
12
|
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
10
13
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
11
14
|
import type { Logger } from '@aztec/foundation/log';
|
|
12
|
-
import { retryUntil } from '@aztec/foundation/retry';
|
|
15
|
+
import { makeBackoff, retry, retryUntil } from '@aztec/foundation/retry';
|
|
13
16
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
14
17
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
15
|
-
import {
|
|
18
|
+
import { registerInitialLocalNetworkAccountsInWallet } from '@aztec/wallets/testing';
|
|
16
19
|
|
|
17
20
|
import { getACVMConfig } from '../fixtures/get_acvm_config.js';
|
|
18
21
|
import { getBBConfig } from '../fixtures/get_bb_config.js';
|
|
19
22
|
import { getSponsoredFPCAddress, registerSponsoredFPC } from '../fixtures/utils.js';
|
|
23
|
+
import { TestWallet } from '../test-wallet/test_wallet.js';
|
|
24
|
+
import { proveInteraction } from '../test-wallet/utils.js';
|
|
25
|
+
import { WorkerWallet } from '../test-wallet/worker_wallet.js';
|
|
20
26
|
|
|
21
27
|
export interface TestAccounts {
|
|
22
28
|
aztecNode: AztecNode;
|
|
@@ -84,11 +90,19 @@ export async function deploySponsoredTestAccountsWithTokens(
|
|
|
84
90
|
|
|
85
91
|
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
86
92
|
const recipientDeployMethod = await recipientAccount.getDeployMethod();
|
|
87
|
-
await recipientDeployMethod.send({
|
|
93
|
+
await recipientDeployMethod.send({
|
|
94
|
+
from: NO_FROM,
|
|
95
|
+
fee: { paymentMethod },
|
|
96
|
+
wait: { timeout: 2400 },
|
|
97
|
+
});
|
|
88
98
|
await Promise.all(
|
|
89
99
|
fundedAccounts.map(async a => {
|
|
90
100
|
const deployMethod = await a.getDeployMethod();
|
|
91
|
-
await deployMethod.send({
|
|
101
|
+
await deployMethod.send({
|
|
102
|
+
from: NO_FROM,
|
|
103
|
+
fee: { paymentMethod },
|
|
104
|
+
wait: { timeout: 2400 },
|
|
105
|
+
}); // increase timeout on purpose in order to account for two empty epochs
|
|
92
106
|
logger.info(`Account deployed at ${a.address}`);
|
|
93
107
|
}),
|
|
94
108
|
);
|
|
@@ -116,11 +130,103 @@ export async function deploySponsoredTestAccountsWithTokens(
|
|
|
116
130
|
};
|
|
117
131
|
}
|
|
118
132
|
|
|
133
|
+
async function deployAccountWithDiagnostics(
|
|
134
|
+
account: { getDeployMethod: () => Promise<{ simulate: (opts: any) => any; send: (opts: any) => any }>; address: any },
|
|
135
|
+
paymentMethod: SponsoredFeePaymentMethod,
|
|
136
|
+
aztecNode: AztecNode,
|
|
137
|
+
logger: Logger,
|
|
138
|
+
accountLabel: string,
|
|
139
|
+
estimateGas?: boolean,
|
|
140
|
+
): Promise<void> {
|
|
141
|
+
const deployMethod = await account.getDeployMethod();
|
|
142
|
+
let gasSettings: any;
|
|
143
|
+
if (estimateGas) {
|
|
144
|
+
const sim = await deployMethod.simulate({ from: NO_FROM, fee: { paymentMethod } });
|
|
145
|
+
gasSettings = sim.estimatedGas;
|
|
146
|
+
logger.info(`${accountLabel} estimated gas: DA=${gasSettings.gasLimits.daGas} L2=${gasSettings.gasLimits.l2Gas}`);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Track the tx hash across retries so we don't re-send when the previous tx is still pending.
|
|
150
|
+
let sentTxHash: { txHash: any } | undefined;
|
|
151
|
+
|
|
152
|
+
await retry(
|
|
153
|
+
async () => {
|
|
154
|
+
// Check if already deployed (handles case where previous attempt succeeded but waitForTx timed out)
|
|
155
|
+
const existing = await aztecNode.getContract(account.address);
|
|
156
|
+
if (existing) {
|
|
157
|
+
logger.info(`${accountLabel} already deployed at ${account.address}, skipping`);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// If we already sent a tx, check if it was dropped before deciding to re-send.
|
|
162
|
+
if (sentTxHash) {
|
|
163
|
+
const prevReceipt = await aztecNode.getTxReceipt(sentTxHash.txHash);
|
|
164
|
+
if (prevReceipt.isDropped()) {
|
|
165
|
+
logger.info(`${accountLabel} previous tx ${sentTxHash.txHash} was dropped, re-sending`);
|
|
166
|
+
sentTxHash = undefined;
|
|
167
|
+
} else {
|
|
168
|
+
logger.info(`${accountLabel} previous tx ${sentTxHash.txHash} still pending, waiting again...`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
if (!sentTxHash) {
|
|
173
|
+
const deployResult = await deployMethod.send({
|
|
174
|
+
from: NO_FROM,
|
|
175
|
+
fee: { paymentMethod, gasSettings },
|
|
176
|
+
wait: NO_WAIT,
|
|
177
|
+
});
|
|
178
|
+
sentTxHash = { txHash: deployResult.txHash };
|
|
179
|
+
logger.info(`${accountLabel} tx sent`, { txHash: sentTxHash.txHash.toString() });
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const receipt = await waitForTx(aztecNode, sentTxHash.txHash, { timeout: 600 });
|
|
183
|
+
if (receipt.isDropped()) {
|
|
184
|
+
sentTxHash = undefined;
|
|
185
|
+
throw new Error(`${accountLabel} tx was dropped, retrying...`);
|
|
186
|
+
}
|
|
187
|
+
logger.info(`${accountLabel} deployed at ${account.address}`);
|
|
188
|
+
},
|
|
189
|
+
`deploy ${accountLabel}`,
|
|
190
|
+
makeBackoff([1, 2, 4, 8, 16]),
|
|
191
|
+
logger,
|
|
192
|
+
);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
async function deployAccountsInBatches(
|
|
196
|
+
accounts: {
|
|
197
|
+
getDeployMethod: () => Promise<{ simulate: (opts: any) => any; send: (opts: any) => any }>;
|
|
198
|
+
address: any;
|
|
199
|
+
}[],
|
|
200
|
+
paymentMethod: SponsoredFeePaymentMethod,
|
|
201
|
+
aztecNode: AztecNode,
|
|
202
|
+
logger: Logger,
|
|
203
|
+
labelPrefix: string,
|
|
204
|
+
batchSize = 2,
|
|
205
|
+
estimateGas?: boolean,
|
|
206
|
+
): Promise<void> {
|
|
207
|
+
for (let i = 0; i < accounts.length; i += batchSize) {
|
|
208
|
+
const batch = accounts.slice(i, i + batchSize);
|
|
209
|
+
await Promise.all(
|
|
210
|
+
batch.map((account, idx) =>
|
|
211
|
+
deployAccountWithDiagnostics(
|
|
212
|
+
account,
|
|
213
|
+
paymentMethod,
|
|
214
|
+
aztecNode,
|
|
215
|
+
logger,
|
|
216
|
+
`${labelPrefix}${i + idx + 1}`,
|
|
217
|
+
estimateGas,
|
|
218
|
+
),
|
|
219
|
+
),
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
119
224
|
export async function deploySponsoredTestAccounts(
|
|
120
225
|
wallet: TestWallet,
|
|
121
226
|
aztecNode: AztecNode,
|
|
122
227
|
logger: Logger,
|
|
123
228
|
numberOfFundedWallets = 1,
|
|
229
|
+
opts?: { estimateGas?: boolean },
|
|
124
230
|
): Promise<TestAccountsWithoutTokens> {
|
|
125
231
|
const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
|
|
126
232
|
const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
|
|
@@ -129,14 +235,23 @@ export async function deploySponsoredTestAccounts(
|
|
|
129
235
|
await registerSponsoredFPC(wallet);
|
|
130
236
|
|
|
131
237
|
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
132
|
-
|
|
133
|
-
await
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
238
|
+
|
|
239
|
+
await deployAccountWithDiagnostics(
|
|
240
|
+
recipientAccount,
|
|
241
|
+
paymentMethod,
|
|
242
|
+
aztecNode,
|
|
243
|
+
logger,
|
|
244
|
+
'Recipient account',
|
|
245
|
+
opts?.estimateGas,
|
|
246
|
+
);
|
|
247
|
+
await deployAccountsInBatches(
|
|
248
|
+
fundedAccounts,
|
|
249
|
+
paymentMethod,
|
|
250
|
+
aztecNode,
|
|
251
|
+
logger,
|
|
252
|
+
'Funded account ',
|
|
253
|
+
2,
|
|
254
|
+
opts?.estimateGas,
|
|
140
255
|
);
|
|
141
256
|
|
|
142
257
|
return {
|
|
@@ -175,7 +290,7 @@ export async function deployTestAccountsWithTokens(
|
|
|
175
290
|
fundedAccounts.map(async (a, i) => {
|
|
176
291
|
const paymentMethod = new FeeJuicePaymentMethodWithClaim(a.address, claims[i]);
|
|
177
292
|
const deployMethod = await a.getDeployMethod();
|
|
178
|
-
await deployMethod.send({ from:
|
|
293
|
+
await deployMethod.send({ from: NO_FROM, fee: { paymentMethod } });
|
|
179
294
|
logger.info(`Account deployed at ${a.address}`);
|
|
180
295
|
}),
|
|
181
296
|
);
|
|
@@ -218,9 +333,7 @@ async function bridgeL1FeeJuice(
|
|
|
218
333
|
const portal = await L1FeeJuicePortalManager.new(aztecNode, l1Client, log);
|
|
219
334
|
const claim = await portal.bridgeTokensPublic(recipient, amount, true /* mint */);
|
|
220
335
|
|
|
221
|
-
|
|
222
|
-
(await aztecNode.getL1ToL2MessageBlock(Fr.fromHexString(claim.messageHash))) !== undefined;
|
|
223
|
-
await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 0.5);
|
|
336
|
+
await waitForL1ToL2MessageReady(aztecNode, Fr.fromHexString(claim.messageHash), { timeoutSeconds: 24 });
|
|
224
337
|
|
|
225
338
|
log.info(`Created a claim for ${amount} L1 fee juice to ${recipient}.`, claim);
|
|
226
339
|
return claim;
|
|
@@ -251,14 +364,19 @@ async function deployTokenAndMint(
|
|
|
251
364
|
logger: Logger,
|
|
252
365
|
) {
|
|
253
366
|
logger.verbose(`Deploying TokenContract...`);
|
|
254
|
-
const tokenContract = await TokenContract.deploy(
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
367
|
+
const { contract: tokenContract } = await TokenContract.deploy(
|
|
368
|
+
wallet,
|
|
369
|
+
admin,
|
|
370
|
+
TOKEN_NAME,
|
|
371
|
+
TOKEN_SYMBOL,
|
|
372
|
+
TOKEN_DECIMALS,
|
|
373
|
+
).send({
|
|
374
|
+
from: admin,
|
|
375
|
+
fee: {
|
|
376
|
+
paymentMethod,
|
|
377
|
+
},
|
|
378
|
+
wait: { timeout: 600 },
|
|
379
|
+
});
|
|
262
380
|
|
|
263
381
|
const tokenAddress = tokenContract.address;
|
|
264
382
|
|
|
@@ -268,8 +386,7 @@ async function deployTokenAndMint(
|
|
|
268
386
|
accounts.map(acc =>
|
|
269
387
|
TokenContract.at(tokenAddress, wallet)
|
|
270
388
|
.methods.mint_to_public(acc, mintAmount)
|
|
271
|
-
.send({ from: admin, fee: { paymentMethod } })
|
|
272
|
-
.wait({ timeout: 600 }),
|
|
389
|
+
.send({ from: admin, fee: { paymentMethod }, wait: { timeout: 600 } }),
|
|
273
390
|
),
|
|
274
391
|
);
|
|
275
392
|
|
|
@@ -309,17 +426,23 @@ export async function performTransfers({
|
|
|
309
426
|
|
|
310
427
|
const provenTxs = await Promise.all(txs);
|
|
311
428
|
|
|
312
|
-
await Promise.all(provenTxs.map(t => t.send(
|
|
429
|
+
await Promise.all(provenTxs.map(t => t.send({ wait: { timeout: 600 } })));
|
|
313
430
|
|
|
314
431
|
logger.info(`Completed round ${i + 1} / ${rounds}`);
|
|
315
432
|
}
|
|
316
433
|
}
|
|
317
434
|
|
|
435
|
+
export type WalletWrapper = {
|
|
436
|
+
wallet: TestWallet;
|
|
437
|
+
aztecNode: AztecNode;
|
|
438
|
+
cleanup: () => Promise<void>;
|
|
439
|
+
};
|
|
440
|
+
|
|
318
441
|
export async function createWalletAndAztecNodeClient(
|
|
319
442
|
nodeUrl: string,
|
|
320
443
|
proverEnabled: boolean,
|
|
321
444
|
logger: Logger,
|
|
322
|
-
): Promise<
|
|
445
|
+
): Promise<WalletWrapper> {
|
|
323
446
|
const aztecNode = createAztecNodeClient(nodeUrl);
|
|
324
447
|
const [bbConfig, acvmConfig] = await Promise.all([getBBConfig(logger), getACVMConfig(logger)]);
|
|
325
448
|
const pxeConfig = {
|
|
@@ -341,3 +464,42 @@ export async function createWalletAndAztecNodeClient(
|
|
|
341
464
|
},
|
|
342
465
|
};
|
|
343
466
|
}
|
|
467
|
+
|
|
468
|
+
export type WorkerWalletWrapper = {
|
|
469
|
+
wallet: WorkerWallet;
|
|
470
|
+
aztecNode: AztecNode;
|
|
471
|
+
cleanup: () => Promise<void>;
|
|
472
|
+
};
|
|
473
|
+
|
|
474
|
+
export async function createWorkerWalletClient(
|
|
475
|
+
nodeUrl: string,
|
|
476
|
+
proverEnabled: boolean,
|
|
477
|
+
logger: Logger,
|
|
478
|
+
): Promise<WorkerWalletWrapper> {
|
|
479
|
+
const aztecNode = createAztecNodeClient(nodeUrl);
|
|
480
|
+
const [bbConfig, acvmConfig] = await Promise.all([getBBConfig(logger), getACVMConfig(logger)]);
|
|
481
|
+
|
|
482
|
+
// Strip cleanup functions — they can't be structured-cloned for worker transfer
|
|
483
|
+
const { cleanup: bbCleanup, ...bbPaths } = bbConfig ?? {};
|
|
484
|
+
const { cleanup: acvmCleanup, ...acvmPaths } = acvmConfig ?? {};
|
|
485
|
+
|
|
486
|
+
const pxeConfig = {
|
|
487
|
+
dataDirectory: undefined,
|
|
488
|
+
dataStoreMapSizeKb: 1024 * 1024,
|
|
489
|
+
...bbPaths,
|
|
490
|
+
...acvmPaths,
|
|
491
|
+
proverEnabled,
|
|
492
|
+
};
|
|
493
|
+
|
|
494
|
+
const wallet = await WorkerWallet.create(nodeUrl, pxeConfig);
|
|
495
|
+
|
|
496
|
+
return {
|
|
497
|
+
wallet,
|
|
498
|
+
aztecNode,
|
|
499
|
+
async cleanup() {
|
|
500
|
+
await wallet.stop();
|
|
501
|
+
await bbCleanup?.();
|
|
502
|
+
await acvmCleanup?.();
|
|
503
|
+
},
|
|
504
|
+
};
|
|
505
|
+
}
|