@aztec/end-to-end 0.0.1-commit.3469e52 → 0.0.1-commit.35158ae7e
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 +49 -26
- 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 +5 -4
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +13 -8
- 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 +27 -18
- 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 +17 -7
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +90 -40
- package/dest/e2e_fees/bridging_race.notest.js +1 -1
- 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 +24 -17
- 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 +1 -7
- 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 +29 -8
- 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 +190 -0
- package/dest/e2e_p2p/shared.d.ts +26 -6
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +46 -18
- 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 +20 -10
- 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 +7 -6
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +44 -50
- 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/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/setup.d.ts +48 -25
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +97 -172
- package/dest/fixtures/setup_p2p_test.d.ts +16 -9
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +40 -29
- 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 +12 -8
- package/dest/shared/cross_chain_test_harness.d.ts +3 -4
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +24 -24
- package/dest/shared/gas_portal_test_harness.js +3 -3
- 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 +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 +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +27 -28
- 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 +6 -6
- 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 +12 -3
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +162 -41
- package/dest/spartan/tx_metrics.d.ts +38 -2
- package/dest/spartan/tx_metrics.d.ts.map +1 -1
- package/dest/spartan/tx_metrics.js +179 -5
- 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 +45 -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 -260
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +1 -942
- package/dest/test-wallet/test_wallet.d.ts +76 -0
- package/dest/test-wallet/test_wallet.d.ts.map +1 -0
- package/dest/test-wallet/test_wallet.js +213 -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 +45 -43
- package/src/bench/client_flows/client_flows_benchmark.ts +50 -58
- package/src/bench/client_flows/config.ts +9 -1
- package/src/bench/utils.ts +15 -8
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +33 -23
- 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 +139 -91
- package/src/e2e_fees/bridging_race.notest.ts +2 -5
- package/src/e2e_fees/fees_test.ts +28 -40
- package/src/e2e_l1_publisher/write_json.ts +3 -8
- package/src/e2e_nested_contract/nested_contract_test.ts +7 -7
- package/src/e2e_p2p/inactivity_slash_test.ts +4 -4
- package/src/e2e_p2p/p2p_network.ts +50 -18
- package/src/e2e_p2p/reqresp/utils.ts +256 -0
- package/src/e2e_p2p/shared.ts +76 -23
- 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 +27 -12
- 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 +48 -63
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +10 -0
- package/src/fixtures/get_bb_config.ts +7 -6
- package/src/fixtures/ha_setup.ts +186 -0
- package/src/fixtures/index.ts +1 -0
- package/src/fixtures/setup.ts +131 -235
- package/src/fixtures/setup_p2p_test.ts +40 -44
- package/src/fixtures/token_utils.ts +10 -6
- package/src/guides/up_quick_start.sh +3 -3
- package/src/shared/cross_chain_test_harness.ts +24 -34
- package/src/shared/gas_portal_test_harness.ts +2 -2
- 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 +11 -16
- package/src/shared/uniswap_l1_l2.ts +49 -51
- package/src/simulators/lending_simulator.ts +10 -6
- package/src/simulators/token_simulator.ts +6 -30
- package/src/spartan/setup_test_wallets.ts +205 -26
- package/src/spartan/tx_metrics.ts +153 -8
- 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 -1246
- package/src/test-wallet/test_wallet.ts +301 -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":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,23 @@
|
|
|
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 { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
6
8
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
7
|
-
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
9
|
+
import { createAztecNodeClient, waitForTx } from '@aztec/aztec.js/node';
|
|
8
10
|
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
9
11
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
10
|
-
import { retryUntil } from '@aztec/foundation/retry';
|
|
12
|
+
import { makeBackoff, retry, retryUntil } from '@aztec/foundation/retry';
|
|
11
13
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
12
|
-
import {
|
|
14
|
+
import { registerInitialLocalNetworkAccountsInWallet } from '@aztec/wallets/testing';
|
|
13
15
|
import { getACVMConfig } from '../fixtures/get_acvm_config.js';
|
|
14
16
|
import { getBBConfig } from '../fixtures/get_bb_config.js';
|
|
15
17
|
import { getSponsoredFPCAddress, registerSponsoredFPC } from '../fixtures/utils.js';
|
|
18
|
+
import { TestWallet } from '../test-wallet/test_wallet.js';
|
|
19
|
+
import { proveInteraction } from '../test-wallet/utils.js';
|
|
20
|
+
import { WorkerWallet } from '../test-wallet/worker_wallet.js';
|
|
16
21
|
const TOKEN_NAME = 'USDC';
|
|
17
22
|
const TOKEN_SYMBOL = 'USD';
|
|
18
23
|
const TOKEN_DECIMALS = 18n;
|
|
@@ -43,22 +48,24 @@ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, m
|
|
|
43
48
|
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
44
49
|
const recipientDeployMethod = await recipientAccount.getDeployMethod();
|
|
45
50
|
await recipientDeployMethod.send({
|
|
46
|
-
from:
|
|
51
|
+
from: NO_FROM,
|
|
47
52
|
fee: {
|
|
48
53
|
paymentMethod
|
|
54
|
+
},
|
|
55
|
+
wait: {
|
|
56
|
+
timeout: 2400
|
|
49
57
|
}
|
|
50
|
-
}).wait({
|
|
51
|
-
timeout: 2400
|
|
52
58
|
});
|
|
53
59
|
await Promise.all(fundedAccounts.map(async (a)=>{
|
|
54
60
|
const deployMethod = await a.getDeployMethod();
|
|
55
61
|
await deployMethod.send({
|
|
56
|
-
from:
|
|
62
|
+
from: NO_FROM,
|
|
57
63
|
fee: {
|
|
58
64
|
paymentMethod
|
|
65
|
+
},
|
|
66
|
+
wait: {
|
|
67
|
+
timeout: 2400
|
|
59
68
|
}
|
|
60
|
-
}).wait({
|
|
61
|
-
timeout: 2400
|
|
62
69
|
}); // increase timeout on purpose in order to account for two empty epochs
|
|
63
70
|
logger.info(`Account deployed at ${a.address}`);
|
|
64
71
|
}));
|
|
@@ -76,33 +83,115 @@ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, m
|
|
|
76
83
|
recipientAddress: recipientAccount.address
|
|
77
84
|
};
|
|
78
85
|
}
|
|
79
|
-
|
|
86
|
+
async function deployAccountWithDiagnostics(account, paymentMethod, aztecNode, logger, accountLabel, estimateGas) {
|
|
87
|
+
const deployMethod = await account.getDeployMethod();
|
|
88
|
+
let txHash;
|
|
89
|
+
let gasSettings;
|
|
90
|
+
try {
|
|
91
|
+
if (estimateGas) {
|
|
92
|
+
const sim = await deployMethod.simulate({
|
|
93
|
+
from: NO_FROM,
|
|
94
|
+
fee: {
|
|
95
|
+
paymentMethod
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
gasSettings = sim.estimatedGas;
|
|
99
|
+
logger.info(`${accountLabel} estimated gas: DA=${gasSettings.gasLimits.daGas} L2=${gasSettings.gasLimits.l2Gas}`);
|
|
100
|
+
}
|
|
101
|
+
const deployResult = await deployMethod.send({
|
|
102
|
+
from: NO_FROM,
|
|
103
|
+
fee: {
|
|
104
|
+
paymentMethod,
|
|
105
|
+
gasSettings
|
|
106
|
+
},
|
|
107
|
+
wait: NO_WAIT
|
|
108
|
+
});
|
|
109
|
+
txHash = deployResult.txHash;
|
|
110
|
+
await waitForTx(aztecNode, txHash, {
|
|
111
|
+
timeout: 2400
|
|
112
|
+
});
|
|
113
|
+
logger.info(`${accountLabel} deployed at ${account.address}`);
|
|
114
|
+
} catch (error) {
|
|
115
|
+
const blockNumber = await aztecNode.getBlockNumber();
|
|
116
|
+
let receipt;
|
|
117
|
+
try {
|
|
118
|
+
receipt = await aztecNode.getTxReceipt(txHash);
|
|
119
|
+
} catch {
|
|
120
|
+
receipt = 'unavailable';
|
|
121
|
+
}
|
|
122
|
+
logger.error(`${accountLabel} deployment failed`, {
|
|
123
|
+
txHash: txHash.toString(),
|
|
124
|
+
receipt: JSON.stringify(receipt),
|
|
125
|
+
currentBlockNumber: blockNumber,
|
|
126
|
+
error: String(error)
|
|
127
|
+
});
|
|
128
|
+
throw error;
|
|
129
|
+
}
|
|
130
|
+
// Track the tx hash across retries so we don't re-send when the previous tx is still pending.
|
|
131
|
+
let sentTxHash;
|
|
132
|
+
await retry(async ()=>{
|
|
133
|
+
// Check if already deployed (handles case where previous attempt succeeded but waitForTx timed out)
|
|
134
|
+
const existing = await aztecNode.getContract(account.address);
|
|
135
|
+
if (existing) {
|
|
136
|
+
logger.info(`${accountLabel} already deployed at ${account.address}, skipping`);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
// If we already sent a tx, check if it was dropped before deciding to re-send.
|
|
140
|
+
if (sentTxHash) {
|
|
141
|
+
const prevReceipt = await aztecNode.getTxReceipt(sentTxHash.txHash);
|
|
142
|
+
if (prevReceipt.isDropped()) {
|
|
143
|
+
logger.info(`${accountLabel} previous tx ${sentTxHash.txHash} was dropped, re-sending`);
|
|
144
|
+
sentTxHash = undefined;
|
|
145
|
+
} else {
|
|
146
|
+
logger.info(`${accountLabel} previous tx ${sentTxHash.txHash} still pending, waiting again...`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (!sentTxHash) {
|
|
150
|
+
const deployResult = await deployMethod.send({
|
|
151
|
+
from: AztecAddress.ZERO,
|
|
152
|
+
fee: {
|
|
153
|
+
paymentMethod,
|
|
154
|
+
gasSettings
|
|
155
|
+
},
|
|
156
|
+
wait: NO_WAIT
|
|
157
|
+
});
|
|
158
|
+
sentTxHash = {
|
|
159
|
+
txHash: deployResult.txHash
|
|
160
|
+
};
|
|
161
|
+
logger.info(`${accountLabel} tx sent`, {
|
|
162
|
+
txHash: sentTxHash.txHash.toString()
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
const receipt = await waitForTx(aztecNode, sentTxHash.txHash, {
|
|
166
|
+
timeout: 600
|
|
167
|
+
});
|
|
168
|
+
if (receipt.isDropped()) {
|
|
169
|
+
sentTxHash = undefined;
|
|
170
|
+
throw new Error(`${accountLabel} tx was dropped, retrying...`);
|
|
171
|
+
}
|
|
172
|
+
logger.info(`${accountLabel} deployed at ${account.address}`);
|
|
173
|
+
}, `deploy ${accountLabel}`, makeBackoff([
|
|
174
|
+
1,
|
|
175
|
+
2,
|
|
176
|
+
4,
|
|
177
|
+
8,
|
|
178
|
+
16
|
|
179
|
+
]), logger);
|
|
180
|
+
}
|
|
181
|
+
async function deployAccountsInBatches(accounts, paymentMethod, aztecNode, logger, labelPrefix, batchSize = 2, estimateGas) {
|
|
182
|
+
for(let i = 0; i < accounts.length; i += batchSize){
|
|
183
|
+
const batch = accounts.slice(i, i + batchSize);
|
|
184
|
+
await Promise.all(batch.map((account, idx)=>deployAccountWithDiagnostics(account, paymentMethod, aztecNode, logger, `${labelPrefix}${i + idx + 1}`, estimateGas)));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
export async function deploySponsoredTestAccounts(wallet, aztecNode, logger, numberOfFundedWallets = 1, opts) {
|
|
80
188
|
const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
|
|
81
189
|
const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
|
|
82
190
|
const fundedAccounts = await Promise.all(funded.map((a)=>wallet.createSchnorrAccount(a.secret, a.salt)));
|
|
83
191
|
await registerSponsoredFPC(wallet);
|
|
84
192
|
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
85
|
-
|
|
86
|
-
await
|
|
87
|
-
from: AztecAddress.ZERO,
|
|
88
|
-
fee: {
|
|
89
|
-
paymentMethod
|
|
90
|
-
}
|
|
91
|
-
}).wait({
|
|
92
|
-
timeout: 2400
|
|
93
|
-
});
|
|
94
|
-
await Promise.all(fundedAccounts.map(async (a)=>{
|
|
95
|
-
const deployMethod = await a.getDeployMethod();
|
|
96
|
-
await deployMethod.send({
|
|
97
|
-
from: AztecAddress.ZERO,
|
|
98
|
-
fee: {
|
|
99
|
-
paymentMethod
|
|
100
|
-
}
|
|
101
|
-
}).wait({
|
|
102
|
-
timeout: 2400
|
|
103
|
-
}); // increase timeout on purpose in order to account for two empty epochs
|
|
104
|
-
logger.info(`Account deployed at ${a.address}`);
|
|
105
|
-
}));
|
|
193
|
+
await deployAccountWithDiagnostics(recipientAccount, paymentMethod, aztecNode, logger, 'Recipient account', opts?.estimateGas);
|
|
194
|
+
await deployAccountsInBatches(fundedAccounts, paymentMethod, aztecNode, logger, 'Funded account ', 2, opts?.estimateGas);
|
|
106
195
|
return {
|
|
107
196
|
aztecNode,
|
|
108
197
|
wallet,
|
|
@@ -125,11 +214,11 @@ export async function deployTestAccountsWithTokens(nodeUrl, l1RpcUrls, mnemonicO
|
|
|
125
214
|
const paymentMethod = new FeeJuicePaymentMethodWithClaim(a.address, claims[i]);
|
|
126
215
|
const deployMethod = await a.getDeployMethod();
|
|
127
216
|
await deployMethod.send({
|
|
128
|
-
from:
|
|
217
|
+
from: NO_FROM,
|
|
129
218
|
fee: {
|
|
130
219
|
paymentMethod
|
|
131
220
|
}
|
|
132
|
-
})
|
|
221
|
+
});
|
|
133
222
|
logger.info(`Account deployed at ${a.address}`);
|
|
134
223
|
}));
|
|
135
224
|
const tokenAdmin = fundedAccounts[0];
|
|
@@ -152,7 +241,7 @@ async function bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, aztecNode, reci
|
|
|
152
241
|
const l1Client = createExtendedL1Client(chain.rpcUrls, mnemonicOrPrivateKey, chain.chainInfo);
|
|
153
242
|
const portal = await L1FeeJuicePortalManager.new(aztecNode, l1Client, log);
|
|
154
243
|
const claim = await portal.bridgeTokensPublic(recipient, amount, true);
|
|
155
|
-
const isSynced = async ()=>await aztecNode.
|
|
244
|
+
const isSynced = async ()=>await aztecNode.getL1ToL2MessageCheckpoint(Fr.fromHexString(claim.messageHash)) !== undefined;
|
|
156
245
|
await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 0.5);
|
|
157
246
|
log.info(`Created a claim for ${amount} L1 fee juice to ${recipient}.`, claim);
|
|
158
247
|
return claim;
|
|
@@ -175,13 +264,15 @@ async function advanceL2Block(aztecNode, nodeAdmin) {
|
|
|
175
264
|
}
|
|
176
265
|
async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMethod, logger) {
|
|
177
266
|
logger.verbose(`Deploying TokenContract...`);
|
|
178
|
-
const tokenContract = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
|
|
267
|
+
const { receipt: { contract: tokenContract } } = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
|
|
179
268
|
from: admin,
|
|
180
269
|
fee: {
|
|
181
270
|
paymentMethod
|
|
271
|
+
},
|
|
272
|
+
wait: {
|
|
273
|
+
timeout: 600,
|
|
274
|
+
returnReceipt: true
|
|
182
275
|
}
|
|
183
|
-
}).deployed({
|
|
184
|
-
timeout: 600
|
|
185
276
|
});
|
|
186
277
|
const tokenAddress = tokenContract.address;
|
|
187
278
|
logger.verbose(`Minting ${mintAmount} public assets to the ${accounts.length} accounts...`);
|
|
@@ -189,9 +280,10 @@ async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMe
|
|
|
189
280
|
from: admin,
|
|
190
281
|
fee: {
|
|
191
282
|
paymentMethod
|
|
283
|
+
},
|
|
284
|
+
wait: {
|
|
285
|
+
timeout: 600
|
|
192
286
|
}
|
|
193
|
-
}).wait({
|
|
194
|
-
timeout: 600
|
|
195
287
|
})));
|
|
196
288
|
logger.verbose(`Minting complete.`);
|
|
197
289
|
return tokenAddress;
|
|
@@ -211,8 +303,10 @@ export async function performTransfers({ wallet, testAccounts, rounds, transferA
|
|
|
211
303
|
});
|
|
212
304
|
});
|
|
213
305
|
const provenTxs = await Promise.all(txs);
|
|
214
|
-
await Promise.all(provenTxs.map((t)=>t.send(
|
|
215
|
-
|
|
306
|
+
await Promise.all(provenTxs.map((t)=>t.send({
|
|
307
|
+
wait: {
|
|
308
|
+
timeout: 600
|
|
309
|
+
}
|
|
216
310
|
})));
|
|
217
311
|
logger.info(`Completed round ${i + 1} / ${rounds}`);
|
|
218
312
|
}
|
|
@@ -241,3 +335,30 @@ export async function createWalletAndAztecNodeClient(nodeUrl, proverEnabled, log
|
|
|
241
335
|
}
|
|
242
336
|
};
|
|
243
337
|
}
|
|
338
|
+
export async function createWorkerWalletClient(nodeUrl, proverEnabled, logger) {
|
|
339
|
+
const aztecNode = createAztecNodeClient(nodeUrl);
|
|
340
|
+
const [bbConfig, acvmConfig] = await Promise.all([
|
|
341
|
+
getBBConfig(logger),
|
|
342
|
+
getACVMConfig(logger)
|
|
343
|
+
]);
|
|
344
|
+
// Strip cleanup functions — they can't be structured-cloned for worker transfer
|
|
345
|
+
const { cleanup: bbCleanup, ...bbPaths } = bbConfig ?? {};
|
|
346
|
+
const { cleanup: acvmCleanup, ...acvmPaths } = acvmConfig ?? {};
|
|
347
|
+
const pxeConfig = {
|
|
348
|
+
dataDirectory: undefined,
|
|
349
|
+
dataStoreMapSizeKb: 1024 * 1024,
|
|
350
|
+
...bbPaths,
|
|
351
|
+
...acvmPaths,
|
|
352
|
+
proverEnabled
|
|
353
|
+
};
|
|
354
|
+
const wallet = await WorkerWallet.create(nodeUrl, pxeConfig);
|
|
355
|
+
return {
|
|
356
|
+
wallet,
|
|
357
|
+
aztecNode,
|
|
358
|
+
async cleanup () {
|
|
359
|
+
await wallet.stop();
|
|
360
|
+
await bbCleanup?.();
|
|
361
|
+
await acvmCleanup?.();
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
}
|
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
2
|
+
import type { Logger } from '@aztec/foundation/log';
|
|
2
3
|
import type { TopicType } from '@aztec/stdlib/p2p';
|
|
3
4
|
import { Tx, type TxReceipt } from '@aztec/stdlib/tx';
|
|
5
|
+
/** Metrics class for proving-related benchmarks. */
|
|
6
|
+
export declare class ProvingMetrics {
|
|
7
|
+
private prefix;
|
|
8
|
+
private successfulTxs;
|
|
9
|
+
private proofDuration;
|
|
10
|
+
private activeAgents;
|
|
11
|
+
private avgQueueTime;
|
|
12
|
+
private jobRetries;
|
|
13
|
+
private jobDuration;
|
|
14
|
+
private timedOutJobs;
|
|
15
|
+
private resolvedJobs;
|
|
16
|
+
private rejectedJobs;
|
|
17
|
+
private epochProvingDuration;
|
|
18
|
+
private provenTransactions;
|
|
19
|
+
private provenBlocks;
|
|
20
|
+
constructor(prefix: string);
|
|
21
|
+
recordSuccessfulTxs(count: number): void;
|
|
22
|
+
recordProofDuration(seconds: number): void;
|
|
23
|
+
recordActiveAgents(count: number): void;
|
|
24
|
+
recordAvgQueueTime(ms: number): void;
|
|
25
|
+
recordJobRetries(count: number): void;
|
|
26
|
+
recordJobDuration(ms: number): void;
|
|
27
|
+
recordTimedOutJobs(count: number): void;
|
|
28
|
+
recordResolvedJobs(count: number): void;
|
|
29
|
+
recordRejectedJobs(count: number): void;
|
|
30
|
+
recordEpochProvingDuration(seconds: number): void;
|
|
31
|
+
recordProvenTransactions(count: number): void;
|
|
32
|
+
recordProvenBlocks(count: number): void;
|
|
33
|
+
toGithubActionBenchmarkJSON(): Array<{
|
|
34
|
+
name: string;
|
|
35
|
+
unit: string;
|
|
36
|
+
value: number;
|
|
37
|
+
}>;
|
|
38
|
+
}
|
|
4
39
|
export type TxInclusionData = {
|
|
5
40
|
txHash: string;
|
|
6
41
|
sentAt: number;
|
|
@@ -14,6 +49,7 @@ export type TxInclusionData = {
|
|
|
14
49
|
};
|
|
15
50
|
export declare class TxInclusionMetrics {
|
|
16
51
|
private aztecNode;
|
|
52
|
+
private logger?;
|
|
17
53
|
private data;
|
|
18
54
|
private groups;
|
|
19
55
|
private blocks;
|
|
@@ -23,7 +59,7 @@ export declare class TxInclusionMetrics {
|
|
|
23
59
|
private reqRespStats;
|
|
24
60
|
private peerStats;
|
|
25
61
|
private mempoolMinedDelay;
|
|
26
|
-
constructor(aztecNode: AztecNode);
|
|
62
|
+
constructor(aztecNode: AztecNode, logger?: Logger | undefined);
|
|
27
63
|
recordSentTx(tx: Tx, group: string): void;
|
|
28
64
|
recordMinedTx(txReceipt: TxReceipt): Promise<void>;
|
|
29
65
|
inclusionTimeInSeconds(group: string): {
|
|
@@ -49,4 +85,4 @@ export declare class TxInclusionMetrics {
|
|
|
49
85
|
extra?: string;
|
|
50
86
|
}>;
|
|
51
87
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfbWV0cmljcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NwYXJ0YW4vdHhfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJdEQsb0RBQW9EO0FBQ3BELHFCQUFhLGNBQWM7SUFjYixPQUFPLENBQUMsTUFBTTtJQWIxQixPQUFPLENBQUMsYUFBYSxDQUFxQjtJQUMxQyxPQUFPLENBQUMsYUFBYSxDQUFxQjtJQUMxQyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsVUFBVSxDQUFxQjtJQUN2QyxPQUFPLENBQUMsV0FBVyxDQUFxQjtJQUN4QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsb0JBQW9CLENBQXFCO0lBQ2pELE9BQU8sQ0FBQyxrQkFBa0IsQ0FBcUI7SUFDL0MsT0FBTyxDQUFDLFlBQVksQ0FBcUI7SUFFekMsWUFBb0IsTUFBTSxFQUFFLE1BQU0sRUFBSTtJQUV0QyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFdkM7SUFFRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFekM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFdEM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_metrics.d.ts","sourceRoot":"","sources":["../../src/spartan/tx_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"tx_metrics.d.ts","sourceRoot":"","sources":["../../src/spartan/tx_metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,157 @@
|
|
|
1
|
-
import { TxStatus } from '@aztec/stdlib/tx';
|
|
2
1
|
import { createHistogram } from 'perf_hooks';
|
|
2
|
+
/** Metrics class for proving-related benchmarks. */ export class ProvingMetrics {
|
|
3
|
+
prefix;
|
|
4
|
+
successfulTxs;
|
|
5
|
+
proofDuration;
|
|
6
|
+
activeAgents;
|
|
7
|
+
avgQueueTime;
|
|
8
|
+
jobRetries;
|
|
9
|
+
jobDuration;
|
|
10
|
+
timedOutJobs;
|
|
11
|
+
resolvedJobs;
|
|
12
|
+
rejectedJobs;
|
|
13
|
+
epochProvingDuration;
|
|
14
|
+
provenTransactions;
|
|
15
|
+
provenBlocks;
|
|
16
|
+
constructor(prefix){
|
|
17
|
+
this.prefix = prefix;
|
|
18
|
+
}
|
|
19
|
+
recordSuccessfulTxs(count) {
|
|
20
|
+
this.successfulTxs = count;
|
|
21
|
+
}
|
|
22
|
+
recordProofDuration(seconds) {
|
|
23
|
+
this.proofDuration = seconds;
|
|
24
|
+
}
|
|
25
|
+
recordActiveAgents(count) {
|
|
26
|
+
this.activeAgents = count;
|
|
27
|
+
}
|
|
28
|
+
recordAvgQueueTime(ms) {
|
|
29
|
+
this.avgQueueTime = ms;
|
|
30
|
+
}
|
|
31
|
+
recordJobRetries(count) {
|
|
32
|
+
this.jobRetries = count;
|
|
33
|
+
}
|
|
34
|
+
recordJobDuration(ms) {
|
|
35
|
+
this.jobDuration = ms;
|
|
36
|
+
}
|
|
37
|
+
recordTimedOutJobs(count) {
|
|
38
|
+
this.timedOutJobs = count;
|
|
39
|
+
}
|
|
40
|
+
recordResolvedJobs(count) {
|
|
41
|
+
this.resolvedJobs = count;
|
|
42
|
+
}
|
|
43
|
+
recordRejectedJobs(count) {
|
|
44
|
+
this.rejectedJobs = count;
|
|
45
|
+
}
|
|
46
|
+
recordEpochProvingDuration(seconds) {
|
|
47
|
+
this.epochProvingDuration = seconds;
|
|
48
|
+
}
|
|
49
|
+
recordProvenTransactions(count) {
|
|
50
|
+
this.provenTransactions = count;
|
|
51
|
+
}
|
|
52
|
+
recordProvenBlocks(count) {
|
|
53
|
+
this.provenBlocks = count;
|
|
54
|
+
}
|
|
55
|
+
toGithubActionBenchmarkJSON() {
|
|
56
|
+
const data = [];
|
|
57
|
+
if (this.successfulTxs !== undefined) {
|
|
58
|
+
data.push({
|
|
59
|
+
name: `${this.prefix}/successful_txs`,
|
|
60
|
+
unit: 'count',
|
|
61
|
+
value: this.successfulTxs
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (this.proofDuration !== undefined) {
|
|
65
|
+
data.push({
|
|
66
|
+
name: `${this.prefix}/proof_duration`,
|
|
67
|
+
unit: 's',
|
|
68
|
+
value: this.proofDuration
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (this.activeAgents !== undefined) {
|
|
72
|
+
data.push({
|
|
73
|
+
name: `${this.prefix}/active_agents`,
|
|
74
|
+
unit: 'count',
|
|
75
|
+
value: this.activeAgents
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
if (this.avgQueueTime !== undefined) {
|
|
79
|
+
data.push({
|
|
80
|
+
name: `${this.prefix}/avg_queue_time`,
|
|
81
|
+
unit: 'ms',
|
|
82
|
+
value: this.avgQueueTime
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
if (this.jobRetries !== undefined) {
|
|
86
|
+
data.push({
|
|
87
|
+
name: `${this.prefix}/job_retries`,
|
|
88
|
+
unit: 'count',
|
|
89
|
+
value: this.jobRetries
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
if (this.jobDuration !== undefined) {
|
|
93
|
+
data.push({
|
|
94
|
+
name: `${this.prefix}/job_duration`,
|
|
95
|
+
unit: 'ms',
|
|
96
|
+
value: this.jobDuration
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
if (this.timedOutJobs !== undefined) {
|
|
100
|
+
data.push({
|
|
101
|
+
name: `${this.prefix}/timed_out_jobs`,
|
|
102
|
+
unit: 'count',
|
|
103
|
+
value: this.timedOutJobs
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (this.resolvedJobs !== undefined) {
|
|
107
|
+
data.push({
|
|
108
|
+
name: `${this.prefix}/resolved_jobs`,
|
|
109
|
+
unit: 'count',
|
|
110
|
+
value: this.resolvedJobs
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
if (this.rejectedJobs !== undefined) {
|
|
114
|
+
data.push({
|
|
115
|
+
name: `${this.prefix}/rejected_jobs`,
|
|
116
|
+
unit: 'count',
|
|
117
|
+
value: this.rejectedJobs
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
if (this.epochProvingDuration !== undefined) {
|
|
121
|
+
data.push({
|
|
122
|
+
name: `${this.prefix}/epoch_proving_duration`,
|
|
123
|
+
unit: 's',
|
|
124
|
+
value: this.epochProvingDuration
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
if (this.provenTransactions !== undefined) {
|
|
128
|
+
data.push({
|
|
129
|
+
name: `${this.prefix}/proven_transactions`,
|
|
130
|
+
unit: 'count',
|
|
131
|
+
value: this.provenTransactions
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
if (this.provenBlocks !== undefined) {
|
|
135
|
+
data.push({
|
|
136
|
+
name: `${this.prefix}/proven_blocks`,
|
|
137
|
+
unit: 'count',
|
|
138
|
+
value: this.provenBlocks
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
const scenario = process.env.BENCH_SCENARIO?.trim();
|
|
142
|
+
if (!scenario) {
|
|
143
|
+
return data;
|
|
144
|
+
}
|
|
145
|
+
const scenarioPrefix = `scenario/${scenario}/`;
|
|
146
|
+
return data.map((entry)=>({
|
|
147
|
+
...entry,
|
|
148
|
+
name: `${scenarioPrefix}${entry.name}`
|
|
149
|
+
}));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
3
152
|
export class TxInclusionMetrics {
|
|
4
153
|
aztecNode;
|
|
154
|
+
logger;
|
|
5
155
|
data;
|
|
6
156
|
groups;
|
|
7
157
|
blocks;
|
|
@@ -11,8 +161,9 @@ export class TxInclusionMetrics {
|
|
|
11
161
|
reqRespStats;
|
|
12
162
|
peerStats;
|
|
13
163
|
mempoolMinedDelay;
|
|
14
|
-
constructor(aztecNode){
|
|
164
|
+
constructor(aztecNode, logger){
|
|
15
165
|
this.aztecNode = aztecNode;
|
|
166
|
+
this.logger = logger;
|
|
16
167
|
this.data = new Map();
|
|
17
168
|
this.groups = new Set();
|
|
18
169
|
this.blocks = new Map();
|
|
@@ -21,6 +172,12 @@ export class TxInclusionMetrics {
|
|
|
21
172
|
recordSentTx(tx, group) {
|
|
22
173
|
const txHash = tx.getTxHash().toString();
|
|
23
174
|
const priorityFees = tx.getGasSettings().maxPriorityFeesPerGas;
|
|
175
|
+
if (this.data.has(txHash)) {
|
|
176
|
+
this.logger?.debug(`Overwriting tx inclusion data for ${txHash}`, {
|
|
177
|
+
txHash,
|
|
178
|
+
group
|
|
179
|
+
});
|
|
180
|
+
}
|
|
24
181
|
this.data.set(txHash, {
|
|
25
182
|
txHash,
|
|
26
183
|
sentAt: Math.trunc(Date.now() / 1000),
|
|
@@ -35,8 +192,13 @@ export class TxInclusionMetrics {
|
|
|
35
192
|
this.groups.add(group);
|
|
36
193
|
}
|
|
37
194
|
async recordMinedTx(txReceipt) {
|
|
38
|
-
const {
|
|
39
|
-
if (
|
|
195
|
+
const { txHash, blockNumber } = txReceipt;
|
|
196
|
+
if (!txReceipt.isMined() || !txReceipt.hasExecutionSucceeded() || !blockNumber) {
|
|
197
|
+
this.logger?.debug('Skipping mined tx record due to receipt status', {
|
|
198
|
+
txHash: txHash.toString(),
|
|
199
|
+
status: txReceipt.status,
|
|
200
|
+
blockNumber
|
|
201
|
+
});
|
|
40
202
|
return;
|
|
41
203
|
}
|
|
42
204
|
if (!this.blocks.has(blockNumber)) {
|
|
@@ -44,9 +206,21 @@ export class TxInclusionMetrics {
|
|
|
44
206
|
}
|
|
45
207
|
const block = await this.blocks.get(blockNumber);
|
|
46
208
|
if (!block) {
|
|
209
|
+
this.logger?.warn('Failed to load block for mined tx receipt', {
|
|
210
|
+
txHash: txHash.toString(),
|
|
211
|
+
blockNumber
|
|
212
|
+
});
|
|
47
213
|
return;
|
|
48
214
|
}
|
|
49
215
|
const data = this.data.get(txHash.toString());
|
|
216
|
+
if (!data) {
|
|
217
|
+
const message = `Missing sent tx record for mined tx ${txHash.toString()}`;
|
|
218
|
+
this.logger?.warn(message, {
|
|
219
|
+
txHash: txHash.toString(),
|
|
220
|
+
blockNumber
|
|
221
|
+
});
|
|
222
|
+
throw new Error(message);
|
|
223
|
+
}
|
|
50
224
|
data.blocknumber = blockNumber;
|
|
51
225
|
data.minedAt = Number(block.header.globalVariables.timestamp);
|
|
52
226
|
data.attestedAt = -1;
|
|
@@ -132,7 +306,7 @@ export class TxInclusionMetrics {
|
|
|
132
306
|
unit: 's',
|
|
133
307
|
value: stats.mean
|
|
134
308
|
}, {
|
|
135
|
-
name: `${group}/
|
|
309
|
+
name: `${group}/p50_inclusion`,
|
|
136
310
|
unit: 's',
|
|
137
311
|
value: stats.median
|
|
138
312
|
}, {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Logger } from '@aztec/foundation/log';
|
|
2
|
+
export declare function restartBot(namespace: string, log: Logger): Promise<void>;
|
|
3
|
+
/**
|
|
4
|
+
* Installs or upgrades the transfer bot Helm release for the given namespace.
|
|
5
|
+
* Intended for test setup to enable L2 traffic generation only when needed.
|
|
6
|
+
*/
|
|
7
|
+
export declare function installTransferBot({ namespace, spartanDir, logger: log, replicas, txIntervalSeconds, followChain, pxeSyncChainTip, mnemonic, mnemonicStartIndex, botPrivateKey, nodeUrl, timeout, reuseValues, aztecSlotDuration }: {
|
|
8
|
+
namespace: string;
|
|
9
|
+
spartanDir: string;
|
|
10
|
+
logger: Logger;
|
|
11
|
+
replicas?: number;
|
|
12
|
+
txIntervalSeconds?: number;
|
|
13
|
+
followChain?: string;
|
|
14
|
+
pxeSyncChainTip?: string;
|
|
15
|
+
mnemonic?: string;
|
|
16
|
+
mnemonicStartIndex?: number | string;
|
|
17
|
+
botPrivateKey?: string;
|
|
18
|
+
nodeUrl?: string;
|
|
19
|
+
timeout?: string;
|
|
20
|
+
reuseValues?: boolean;
|
|
21
|
+
aztecSlotDuration?: number;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Uninstalls the transfer bot Helm release from the given namespace.
|
|
25
|
+
* Intended for test teardown to clean up bot resources.
|
|
26
|
+
*/
|
|
27
|
+
export declare function uninstallTransferBot(namespace: string, log: Logger): Promise<void>;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BhcnRhbi91dGlscy9ib3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFXcEQsd0JBQXNCLFVBQVUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGlCQWE5RDtBQUVEOzs7R0FHRztBQUNILHdCQUFzQixrQkFBa0IsQ0FBQyxFQUN2QyxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFBRSxHQUFHLEVBQ1gsUUFBWSxFQUNaLGlCQUFzQixFQUN0QixXQUE0QixFQUM1QixlQUE0QixFQUM1QixRQUEyRyxFQUMzRyxrQkFBa0IsRUFDbEIsYUFBc0UsRUFDdEUsT0FBTyxFQUNQLE9BQWUsRUFDZixXQUFrQixFQUNsQixpQkFBaUUsRUFDbEUsRUFBRTtJQUNELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzNCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixlQUFlLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDekIsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNyQyxhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNqQixXQUFXLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDdEIsaUJBQWlCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDNUIsaUJBaUhBO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQXNCLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBUXhFIn0=
|
|
@@ -0,0 +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,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"}
|