@aztec/end-to-end 0.0.1-commit.d431d1c → 0.0.1-commit.d939eb5aa
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/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 +25 -17
- 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 +6 -3
- 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 +28 -19
- 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 +92 -42
- 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 +25 -18
- 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/inactivity_slash_test.js +3 -3
- package/dest/e2e_p2p/p2p_network.d.ts +9 -10
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +43 -21
- 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 +30 -12
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +62 -60
- 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 +34 -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 +40 -49
- 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 +57 -31
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +105 -178
- package/dest/fixtures/setup_p2p_test.d.ts +18 -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/legacy-jest-resolver.d.cts +3 -0
- package/dest/legacy-jest-resolver.d.cts.map +1 -0
- 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 +130 -42
- 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 +84 -0
- package/dest/test-wallet/test_wallet.d.ts.map +1 -0
- package/dest/test-wallet/test_wallet.js +249 -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 +279 -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 +36 -36
- 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 +36 -29
- 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 +140 -92
- package/src/e2e_fees/bridging_race.notest.ts +2 -5
- package/src/e2e_fees/fees_test.ts +29 -41
- 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 +7 -7
- package/src/e2e_p2p/p2p_network.ts +71 -44
- package/src/e2e_p2p/reqresp/utils.ts +256 -0
- package/src/e2e_p2p/shared.ts +92 -80
- 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 +54 -0
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +49 -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 +144 -244
- package/src/fixtures/setup_p2p_test.ts +48 -52
- package/src/fixtures/token_utils.ts +7 -6
- package/src/guides/up_quick_start.sh +3 -3
- package/src/legacy-jest-resolver.cjs +135 -0
- 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 +183 -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 +351 -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 +214 -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":"AAEA,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;AAO/D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,YAAY,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,YAAY,EACZ,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,mBAAmB,CACrE,CAAC;AAMF,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAyBvB;AAED,wBAAsB,qCAAqC,CACzD,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CA+CvB;AA6FD,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,EACzB,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/B,OAAO,CAAC,yBAAyB,CAAC,CAiCpC;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CA+CvB;AAiFD,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,YAAY,EACZ,MAAM,EACN,cAAc,EACd,MAAM,EACN,gBAAgB,EACjB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,iBAqBA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC,CA2B9B"}
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import { generateSchnorrAccounts } from '@aztec/accounts/testing';
|
|
2
|
-
import {
|
|
2
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
3
|
+
import { NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
3
4
|
import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
|
|
4
5
|
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
5
6
|
import { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
6
7
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
7
|
-
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
8
|
+
import { createAztecNodeClient, waitForTx } from '@aztec/aztec.js/node';
|
|
8
9
|
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
9
10
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
10
|
-
import { retryUntil } from '@aztec/foundation/retry';
|
|
11
|
+
import { makeBackoff, retry, retryUntil } from '@aztec/foundation/retry';
|
|
11
12
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
12
|
-
import {
|
|
13
|
+
import { registerInitialLocalNetworkAccountsInWallet } from '@aztec/wallets/testing';
|
|
13
14
|
import { getACVMConfig } from '../fixtures/get_acvm_config.js';
|
|
14
15
|
import { getBBConfig } from '../fixtures/get_bb_config.js';
|
|
15
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';
|
|
16
20
|
const TOKEN_NAME = 'USDC';
|
|
17
21
|
const TOKEN_SYMBOL = 'USD';
|
|
18
22
|
const TOKEN_DECIMALS = 18n;
|
|
@@ -43,22 +47,24 @@ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, m
|
|
|
43
47
|
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
44
48
|
const recipientDeployMethod = await recipientAccount.getDeployMethod();
|
|
45
49
|
await recipientDeployMethod.send({
|
|
46
|
-
from:
|
|
50
|
+
from: NO_FROM,
|
|
47
51
|
fee: {
|
|
48
52
|
paymentMethod
|
|
53
|
+
},
|
|
54
|
+
wait: {
|
|
55
|
+
timeout: 2400
|
|
49
56
|
}
|
|
50
|
-
}).wait({
|
|
51
|
-
timeout: 2400
|
|
52
57
|
});
|
|
53
58
|
await Promise.all(fundedAccounts.map(async (a)=>{
|
|
54
59
|
const deployMethod = await a.getDeployMethod();
|
|
55
60
|
await deployMethod.send({
|
|
56
|
-
from:
|
|
61
|
+
from: NO_FROM,
|
|
57
62
|
fee: {
|
|
58
63
|
paymentMethod
|
|
64
|
+
},
|
|
65
|
+
wait: {
|
|
66
|
+
timeout: 2400
|
|
59
67
|
}
|
|
60
|
-
}).wait({
|
|
61
|
-
timeout: 2400
|
|
62
68
|
}); // increase timeout on purpose in order to account for two empty epochs
|
|
63
69
|
logger.info(`Account deployed at ${a.address}`);
|
|
64
70
|
}));
|
|
@@ -76,33 +82,84 @@ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, m
|
|
|
76
82
|
recipientAddress: recipientAccount.address
|
|
77
83
|
};
|
|
78
84
|
}
|
|
79
|
-
|
|
85
|
+
async function deployAccountWithDiagnostics(account, paymentMethod, aztecNode, logger, accountLabel, estimateGas) {
|
|
86
|
+
const deployMethod = await account.getDeployMethod();
|
|
87
|
+
let gasSettings;
|
|
88
|
+
if (estimateGas) {
|
|
89
|
+
const sim = await deployMethod.simulate({
|
|
90
|
+
from: NO_FROM,
|
|
91
|
+
fee: {
|
|
92
|
+
paymentMethod
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
gasSettings = sim.estimatedGas;
|
|
96
|
+
logger.info(`${accountLabel} estimated gas: DA=${gasSettings.gasLimits.daGas} L2=${gasSettings.gasLimits.l2Gas}`);
|
|
97
|
+
}
|
|
98
|
+
// Track the tx hash across retries so we don't re-send when the previous tx is still pending.
|
|
99
|
+
let sentTxHash;
|
|
100
|
+
await retry(async ()=>{
|
|
101
|
+
// Check if already deployed (handles case where previous attempt succeeded but waitForTx timed out)
|
|
102
|
+
const existing = await aztecNode.getContract(account.address);
|
|
103
|
+
if (existing) {
|
|
104
|
+
logger.info(`${accountLabel} already deployed at ${account.address}, skipping`);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
// If we already sent a tx, check if it was dropped before deciding to re-send.
|
|
108
|
+
if (sentTxHash) {
|
|
109
|
+
const prevReceipt = await aztecNode.getTxReceipt(sentTxHash.txHash);
|
|
110
|
+
if (prevReceipt.isDropped()) {
|
|
111
|
+
logger.info(`${accountLabel} previous tx ${sentTxHash.txHash} was dropped, re-sending`);
|
|
112
|
+
sentTxHash = undefined;
|
|
113
|
+
} else {
|
|
114
|
+
logger.info(`${accountLabel} previous tx ${sentTxHash.txHash} still pending, waiting again...`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (!sentTxHash) {
|
|
118
|
+
const deployResult = await deployMethod.send({
|
|
119
|
+
from: NO_FROM,
|
|
120
|
+
fee: {
|
|
121
|
+
paymentMethod,
|
|
122
|
+
gasSettings
|
|
123
|
+
},
|
|
124
|
+
wait: NO_WAIT
|
|
125
|
+
});
|
|
126
|
+
sentTxHash = {
|
|
127
|
+
txHash: deployResult.txHash
|
|
128
|
+
};
|
|
129
|
+
logger.info(`${accountLabel} tx sent`, {
|
|
130
|
+
txHash: sentTxHash.txHash.toString()
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
const receipt = await waitForTx(aztecNode, sentTxHash.txHash, {
|
|
134
|
+
timeout: 600
|
|
135
|
+
});
|
|
136
|
+
if (receipt.isDropped()) {
|
|
137
|
+
sentTxHash = undefined;
|
|
138
|
+
throw new Error(`${accountLabel} tx was dropped, retrying...`);
|
|
139
|
+
}
|
|
140
|
+
logger.info(`${accountLabel} deployed at ${account.address}`);
|
|
141
|
+
}, `deploy ${accountLabel}`, makeBackoff([
|
|
142
|
+
1,
|
|
143
|
+
2,
|
|
144
|
+
4,
|
|
145
|
+
8,
|
|
146
|
+
16
|
|
147
|
+
]), logger);
|
|
148
|
+
}
|
|
149
|
+
async function deployAccountsInBatches(accounts, paymentMethod, aztecNode, logger, labelPrefix, batchSize = 2, estimateGas) {
|
|
150
|
+
for(let i = 0; i < accounts.length; i += batchSize){
|
|
151
|
+
const batch = accounts.slice(i, i + batchSize);
|
|
152
|
+
await Promise.all(batch.map((account, idx)=>deployAccountWithDiagnostics(account, paymentMethod, aztecNode, logger, `${labelPrefix}${i + idx + 1}`, estimateGas)));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
export async function deploySponsoredTestAccounts(wallet, aztecNode, logger, numberOfFundedWallets = 1, opts) {
|
|
80
156
|
const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
|
|
81
157
|
const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
|
|
82
158
|
const fundedAccounts = await Promise.all(funded.map((a)=>wallet.createSchnorrAccount(a.secret, a.salt)));
|
|
83
159
|
await registerSponsoredFPC(wallet);
|
|
84
160
|
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
|
-
}));
|
|
161
|
+
await deployAccountWithDiagnostics(recipientAccount, paymentMethod, aztecNode, logger, 'Recipient account', opts?.estimateGas);
|
|
162
|
+
await deployAccountsInBatches(fundedAccounts, paymentMethod, aztecNode, logger, 'Funded account ', 2, opts?.estimateGas);
|
|
106
163
|
return {
|
|
107
164
|
aztecNode,
|
|
108
165
|
wallet,
|
|
@@ -125,11 +182,11 @@ export async function deployTestAccountsWithTokens(nodeUrl, l1RpcUrls, mnemonicO
|
|
|
125
182
|
const paymentMethod = new FeeJuicePaymentMethodWithClaim(a.address, claims[i]);
|
|
126
183
|
const deployMethod = await a.getDeployMethod();
|
|
127
184
|
await deployMethod.send({
|
|
128
|
-
from:
|
|
185
|
+
from: NO_FROM,
|
|
129
186
|
fee: {
|
|
130
187
|
paymentMethod
|
|
131
188
|
}
|
|
132
|
-
})
|
|
189
|
+
});
|
|
133
190
|
logger.info(`Account deployed at ${a.address}`);
|
|
134
191
|
}));
|
|
135
192
|
const tokenAdmin = fundedAccounts[0];
|
|
@@ -152,7 +209,7 @@ async function bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, aztecNode, reci
|
|
|
152
209
|
const l1Client = createExtendedL1Client(chain.rpcUrls, mnemonicOrPrivateKey, chain.chainInfo);
|
|
153
210
|
const portal = await L1FeeJuicePortalManager.new(aztecNode, l1Client, log);
|
|
154
211
|
const claim = await portal.bridgeTokensPublic(recipient, amount, true);
|
|
155
|
-
const isSynced = async ()=>await aztecNode.
|
|
212
|
+
const isSynced = async ()=>await aztecNode.getL1ToL2MessageCheckpoint(Fr.fromHexString(claim.messageHash)) !== undefined;
|
|
156
213
|
await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 0.5);
|
|
157
214
|
log.info(`Created a claim for ${amount} L1 fee juice to ${recipient}.`, claim);
|
|
158
215
|
return claim;
|
|
@@ -175,13 +232,14 @@ async function advanceL2Block(aztecNode, nodeAdmin) {
|
|
|
175
232
|
}
|
|
176
233
|
async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMethod, logger) {
|
|
177
234
|
logger.verbose(`Deploying TokenContract...`);
|
|
178
|
-
const tokenContract = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
|
|
235
|
+
const { contract: tokenContract } = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
|
|
179
236
|
from: admin,
|
|
180
237
|
fee: {
|
|
181
238
|
paymentMethod
|
|
239
|
+
},
|
|
240
|
+
wait: {
|
|
241
|
+
timeout: 600
|
|
182
242
|
}
|
|
183
|
-
}).deployed({
|
|
184
|
-
timeout: 600
|
|
185
243
|
});
|
|
186
244
|
const tokenAddress = tokenContract.address;
|
|
187
245
|
logger.verbose(`Minting ${mintAmount} public assets to the ${accounts.length} accounts...`);
|
|
@@ -189,9 +247,10 @@ async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMe
|
|
|
189
247
|
from: admin,
|
|
190
248
|
fee: {
|
|
191
249
|
paymentMethod
|
|
250
|
+
},
|
|
251
|
+
wait: {
|
|
252
|
+
timeout: 600
|
|
192
253
|
}
|
|
193
|
-
}).wait({
|
|
194
|
-
timeout: 600
|
|
195
254
|
})));
|
|
196
255
|
logger.verbose(`Minting complete.`);
|
|
197
256
|
return tokenAddress;
|
|
@@ -211,8 +270,10 @@ export async function performTransfers({ wallet, testAccounts, rounds, transferA
|
|
|
211
270
|
});
|
|
212
271
|
});
|
|
213
272
|
const provenTxs = await Promise.all(txs);
|
|
214
|
-
await Promise.all(provenTxs.map((t)=>t.send(
|
|
215
|
-
|
|
273
|
+
await Promise.all(provenTxs.map((t)=>t.send({
|
|
274
|
+
wait: {
|
|
275
|
+
timeout: 600
|
|
276
|
+
}
|
|
216
277
|
})));
|
|
217
278
|
logger.info(`Completed round ${i + 1} / ${rounds}`);
|
|
218
279
|
}
|
|
@@ -241,3 +302,30 @@ export async function createWalletAndAztecNodeClient(nodeUrl, proverEnabled, log
|
|
|
241
302
|
}
|
|
242
303
|
};
|
|
243
304
|
}
|
|
305
|
+
export async function createWorkerWalletClient(nodeUrl, proverEnabled, logger) {
|
|
306
|
+
const aztecNode = createAztecNodeClient(nodeUrl);
|
|
307
|
+
const [bbConfig, acvmConfig] = await Promise.all([
|
|
308
|
+
getBBConfig(logger),
|
|
309
|
+
getACVMConfig(logger)
|
|
310
|
+
]);
|
|
311
|
+
// Strip cleanup functions — they can't be structured-cloned for worker transfer
|
|
312
|
+
const { cleanup: bbCleanup, ...bbPaths } = bbConfig ?? {};
|
|
313
|
+
const { cleanup: acvmCleanup, ...acvmPaths } = acvmConfig ?? {};
|
|
314
|
+
const pxeConfig = {
|
|
315
|
+
dataDirectory: undefined,
|
|
316
|
+
dataStoreMapSizeKb: 1024 * 1024,
|
|
317
|
+
...bbPaths,
|
|
318
|
+
...acvmPaths,
|
|
319
|
+
proverEnabled
|
|
320
|
+
};
|
|
321
|
+
const wallet = await WorkerWallet.create(nodeUrl, pxeConfig);
|
|
322
|
+
return {
|
|
323
|
+
wallet,
|
|
324
|
+
aztecNode,
|
|
325
|
+
async cleanup () {
|
|
326
|
+
await wallet.stop();
|
|
327
|
+
await bbCleanup?.();
|
|
328
|
+
await acvmCleanup?.();
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
}
|
|
@@ -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"}
|