@aztec/end-to-end 0.0.1-commit.8f9871590 → 0.0.1-commit.9117c5f5a
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 +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +1 -0
- package/dest/e2e_epochs/epochs_test.d.ts +9 -7
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +53 -34
- package/dest/e2e_fees/fees_test.js +1 -1
- package/dest/e2e_p2p/p2p_network.d.ts +1 -1
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +16 -2
- package/dest/e2e_p2p/reqresp/utils.d.ts +3 -3
- package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -1
- package/dest/e2e_p2p/reqresp/utils.js +32 -8
- package/dest/fixtures/e2e_prover_test.d.ts +3 -3
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +27 -34
- 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/setup.d.ts +25 -9
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +46 -77
- package/dest/fixtures/setup_p2p_test.d.ts +6 -3
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +12 -9
- 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 +3 -2
- package/dest/shared/jest_setup.js +41 -1
- package/dest/shared/submit-transactions.d.ts +1 -1
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.d.ts +8 -1
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +28 -0
- package/dest/spartan/utils/bot.d.ts +3 -2
- package/dest/spartan/utils/bot.d.ts.map +1 -1
- package/dest/spartan/utils/bot.js +2 -1
- package/dest/spartan/utils/config.d.ts +4 -1
- package/dest/spartan/utils/config.d.ts.map +1 -1
- package/dest/spartan/utils/config.js +2 -1
- package/dest/spartan/utils/index.d.ts +3 -2
- package/dest/spartan/utils/index.d.ts.map +1 -1
- package/dest/spartan/utils/index.js +3 -1
- package/dest/spartan/utils/k8s.d.ts +3 -1
- package/dest/spartan/utils/k8s.d.ts.map +1 -1
- package/dest/spartan/utils/k8s.js +6 -0
- package/dest/spartan/utils/nodes.d.ts +4 -5
- package/dest/spartan/utils/nodes.d.ts.map +1 -1
- package/dest/spartan/utils/nodes.js +9 -9
- package/dest/test-wallet/test_wallet.js +1 -1
- 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 +43 -44
- package/src/bench/client_flows/client_flows_benchmark.ts +1 -0
- package/src/e2e_epochs/epochs_test.ts +66 -66
- package/src/e2e_fees/fees_test.ts +1 -1
- package/src/e2e_p2p/p2p_network.ts +24 -2
- package/src/e2e_p2p/reqresp/utils.ts +36 -8
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +25 -35
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +10 -0
- package/src/fixtures/setup.ts +64 -108
- package/src/fixtures/setup_p2p_test.ts +9 -17
- package/src/fixtures/token_utils.ts +2 -1
- package/src/shared/jest_setup.ts +51 -1
- package/src/shared/submit-transactions.ts +4 -1
- package/src/spartan/setup_test_wallets.ts +55 -3
- package/src/spartan/utils/bot.ts +3 -0
- package/src/spartan/utils/config.ts +1 -0
- package/src/spartan/utils/index.ts +4 -0
- package/src/spartan/utils/k8s.ts +8 -0
- package/src/spartan/utils/nodes.ts +15 -10
- package/src/test-wallet/test_wallet.ts +1 -1
- 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":"index.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,8BAA8B,EAC9B,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,KAAK,eAAe,EACpB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,mCAAmC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,8BAA8B,EAC9B,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,KAAK,eAAe,EACpB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,mCAAmC,EACnC,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,8BAA8B,EAC9B,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG5F,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -5,9 +5,11 @@ export { setupEnvironment } from './config.js';
|
|
|
5
5
|
// Scripts
|
|
6
6
|
export { getGitProjectRoot, getAztecBin, runAztecBin, runProjectScript } from './scripts.js';
|
|
7
7
|
// K8s operations
|
|
8
|
-
export { startPortForward, getExternalIP, startPortForwardForPrometeheus, startPortForwardForRPC, startPortForwardForEthereum, deleteResourceByName, deleteResourceByLabel, waitForResourceByLabel, waitForResourceByName, waitForResourcesByName, getChartDir, getServiceEndpoint, getRPCEndpoint, getEthereumEndpoint, createResilientPrometheusConnection } from './k8s.js';
|
|
8
|
+
export { startPortForward, getExternalIP, startPortForwardForPrometeheus, startPortForwardForRPC, startPortForwardForEthereum, deleteResourceByName, deleteResourceByLabel, waitForResourceByLabel, waitForResourceByName, waitForResourcesByName, getChartDir, getServiceEndpoint, getRPCEndpoint, getEthereumEndpoint, createResilientPrometheusConnection, scaleProverAgents } from './k8s.js';
|
|
9
9
|
// Chaos Mesh
|
|
10
10
|
export { uninstallChaosMesh, installChaosMeshChart, applyProverFailure, applyValidatorFailure, applyProverKill, applyProverBrokerKill, applyBootNodeFailure, applyValidatorKill, applyNetworkShaping } from './chaos.js';
|
|
11
|
+
// Helm
|
|
12
|
+
export { hasDeployedHelmRelease } from './helm.js';
|
|
11
13
|
// Bot management
|
|
12
14
|
export { restartBot, installTransferBot, uninstallTransferBot } from './bot.js';
|
|
13
15
|
// Node operations (sequencers, validators, pods)
|
|
@@ -122,5 +122,7 @@ export declare function createResilientPrometheusConnection(namespace: string, e
|
|
|
122
122
|
connect: () => Promise<GrafanaClient>;
|
|
123
123
|
runAlertCheck: (alerts: Parameters<GrafanaClient['runAlertCheck']>[0]) => Promise<void>;
|
|
124
124
|
};
|
|
125
|
+
/** Scales the prover-agent Deployment to the given number of replicas. */
|
|
126
|
+
export declare function scaleProverAgents(namespace: string, replicas: number, log: Logger): Promise<void>;
|
|
125
127
|
export declare function getChartDir(spartanDir: string, chartName: string): string;
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BhcnRhbi91dGlscy9rOHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJcEQsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBSS9ELE9BQU8sRUFBdUIsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFNaEc7OztHQUdHO0FBQ0gsTUFBTSxXQUFXLGVBQWU7SUFDOUIsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUNaLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQztDQUN4QjtBQUVELHdCQUFzQixnQkFBZ0IsQ0FBQyxFQUNyQyxRQUFRLEVBQ1IsU0FBUyxFQUNULGFBQWEsRUFDYixRQUFRLEVBQ1QsRUFBRTtJQUNELFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBRXRCLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNuQixHQUFHLE9BQU8sQ0FBQztJQUNWLE9BQU8sRUFBRSxZQUFZLENBQUM7SUFDdEIsSUFBSSxFQUFFLE1BQU0sQ0FBQztDQUNkLENBQUMsQ0F1RUQ7QUFFRCx3QkFBZ0IsYUFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBK0JyRjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLElBQUksRUFBRTtJQUM3QyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUM1QixHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FzQzNCO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQXNCLGNBQWMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FPNUc7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBc0IsbUJBQW1CLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBT2pIO0FBRUQsd0JBQWdCLDhCQUE4QixDQUFDLFNBQVMsRUFBRSxNQUFNOzs7R0FNL0Q7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLFNBQUk7OztHQU1sRTtBQUVELHdCQUFnQiwyQkFBMkIsQ0FBQyxTQUFTLEVBQUUsTUFBTTs7O0dBTTVEO0FBRUQsd0JBQXNCLG9CQUFvQixDQUFDLEVBQ3pDLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxFQUNKLEtBQWEsRUFDZCxFQUFFO0lBQ0QsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixLQUFLLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDakIsbUJBT0E7QUFFRCx3QkFBc0IscUJBQXFCLENBQUMsRUFDMUMsUUFBUSxFQUNSLFNBQVMsRUFDVCxLQUFLLEVBQ0wsT0FBYyxFQUNkLEtBQWEsRUFDZCxFQUFFO0lBQ0QsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDO0NBQ2pCLG1CQWlCQTtBQUVELHdCQUFzQixzQkFBc0IsQ0FBQyxFQUMzQyxRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFtQixFQUNuQixPQUFlLEVBQ2hCLEVBQUU7SUFDRCxRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNuQixPQUFPLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDbEIsbUJBS0E7QUFFRCx3QkFBc0IscUJBQXFCLENBQUMsRUFDMUMsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEVBQ1QsU0FBbUIsRUFDbkIsT0FBZSxFQUNoQixFQUFFO0lBQ0QsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixTQUFTLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDbkIsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2xCLG1CQUtBO0FBRUQsd0JBQXNCLHNCQUFzQixDQUFDLEVBQzNDLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQW1CLEVBQ25CLE9BQWUsRUFDaEIsRUFBRTtJQUNELFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNsQixpQkFtQkE7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQXNCLHdCQUF3QixDQUFDLEVBQzdDLFNBQVMsRUFDVCxLQUFLLEVBQ0wsY0FBb0IsRUFDcEIsbUJBQXVCLEVBQ3hCLEVBQUU7SUFDRCxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDeEIsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDOUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBbUNoQjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsbUNBQW1DLENBQ2pELFNBQVMsRUFBRSxNQUFNLEVBQ2pCLFNBQVMsRUFBRSxlQUFlLEVBQUUsRUFDNUIsR0FBRyxFQUFFLE1BQU0sR0FDVjtJQUNELE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0QyxhQUFhLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUN6RixDQTZFQTtBQUVELDBFQUEwRTtBQUMxRSx3QkFBc0IsaUJBQWlCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUt2RztBQUVELHdCQUFnQixXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUVoRSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"k8s.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/k8s.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"k8s.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/k8s.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,eAAe,CAAC;AAI/D,OAAO,EAAuB,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAMhG;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,wBAAsB,gBAAgB,CAAC,EACrC,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAQ,EACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAuED;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BrF;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG,OAAO,CAAC,eAAe,CAAC,CAsC3B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAO5G;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAOjH;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM;;;GAM/D;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAI;;;GAMlE;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM;;;GAM5D;AAED,wBAAsB,oBAAoB,CAAC,EACzC,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,KAAa,EACd,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,mBAOA;AAED,wBAAsB,qBAAqB,CAAC,EAC1C,QAAQ,EACR,SAAS,EACT,KAAK,EACL,OAAc,EACd,KAAa,EACd,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,mBAiBA;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAmB,EACnB,OAAe,EAChB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,mBAKA;AAED,wBAAsB,qBAAqB,CAAC,EAC1C,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,SAAmB,EACnB,OAAe,EAChB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,mBAKA;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAmB,EACnB,OAAe,EAChB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,iBAmBA;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,SAAS,EACT,KAAK,EACL,cAAoB,EACpB,mBAAuB,EACxB,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,OAAO,CAAC,IAAI,CAAC,CAmChB;AAED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,eAAe,EAAE,EAC5B,GAAG,EAAE,MAAM,GACV;IACD,OAAO,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IACtC,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzF,CA6EA;AAED,0EAA0E;AAC1E,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKvG;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAEhE"}
|
|
@@ -370,6 +370,12 @@ export async function waitForResourcesByName({ resource, names, namespace, condi
|
|
|
370
370
|
runAlertCheck
|
|
371
371
|
};
|
|
372
372
|
}
|
|
373
|
+
/** Scales the prover-agent Deployment to the given number of replicas. */ export async function scaleProverAgents(namespace, replicas, log) {
|
|
374
|
+
const label = 'app.kubernetes.io/component=prover-agent';
|
|
375
|
+
const command = `kubectl scale deployment -l ${label} -n ${namespace} --replicas=${replicas} --timeout=2m`;
|
|
376
|
+
log.info(`Scaling prover agents to ${replicas}: ${command}`);
|
|
377
|
+
await execAsync(command);
|
|
378
|
+
}
|
|
373
379
|
export function getChartDir(spartanDir, chartName) {
|
|
374
380
|
return path.join(spartanDir.trim(), chartName);
|
|
375
381
|
}
|
|
@@ -19,12 +19,11 @@ export declare function getSequencersConfig(env: TestConfig): Promise<AztecNodeA
|
|
|
19
19
|
export declare function withSequencersAdmin<T>(env: TestConfig, fn: (node: AztecNodeAdmin) => Promise<T>): Promise<T[]>;
|
|
20
20
|
export declare function initHADb(namespace: string): Promise<void>;
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
23
|
-
* Wired to env
|
|
22
|
+
* Sets probabilistic transaction dropping on validators and waits for rollout.
|
|
23
|
+
* Use probability=0 to disable. Wired to env var P2P_DROP_TX_CHANCE via Helm values.
|
|
24
24
|
*/
|
|
25
|
-
export declare function setValidatorTxDrop({ namespace,
|
|
25
|
+
export declare function setValidatorTxDrop({ namespace, probability, logger: log }: {
|
|
26
26
|
namespace: string;
|
|
27
|
-
enabled: boolean;
|
|
28
27
|
probability: number;
|
|
29
28
|
logger: Logger;
|
|
30
29
|
}): Promise<void>;
|
|
@@ -38,4 +37,4 @@ export declare function enableValidatorDynamicBootNode(instanceName: string, nam
|
|
|
38
37
|
* Defaults to false, which preserves the existing storage.
|
|
39
38
|
*/
|
|
40
39
|
export declare function rollAztecPods(namespace: string, clearState?: boolean): Promise<void>;
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcGFydGFuL3V0aWxzL25vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdwRCxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBQ25CLEtBQUssb0JBQW9CLEVBRTFCLE1BQU0saUNBQWlDLENBQUM7QUFLekMsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBZTlDLHdCQUFzQixxQkFBcUIsQ0FDekMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxjQUFjLEVBQUUsTUFBTSxFQUN0QixHQUFHLEVBQUUsTUFBTSxpQkFlWjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0Isc0JBQXNCLENBQzFDLE1BQU0sRUFBRSxNQUFNLEVBQ2QsR0FBRyxFQUFFLE1BQU0sRUFDWCxjQUFjLEdBQUUsTUFBWSxFQUM1QixtQkFBbUIsR0FBRSxNQUFXLEdBQy9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0EwQ2Y7QUFFRCx3QkFBc0IsYUFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLHFCQTRCcEQ7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLG1DQUs1RjtBQUVELHdCQUFnQixtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsVUFBVSxtQ0FFbEQ7QUFFRCx3QkFBc0IsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLGNBQWMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBNENwSDtBQWtDRCx3QkFBc0IsUUFBUSxDQUFDLFNBQVMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQTBCL0Q7QUFFRDs7O0dBR0c7QUFDSCx3QkFBc0Isa0JBQWtCLENBQUMsRUFDdkMsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQUUsR0FBRyxFQUNaLEVBQUU7SUFDRCxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNoQixpQkErQkE7QUFFRCx3QkFBc0IsaUJBQWlCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxpQkErQnJFO0FBRUQsd0JBQXNCLDhCQUE4QixDQUNsRCxZQUFZLEVBQUUsTUFBTSxFQUNwQixTQUFTLEVBQUUsTUFBTSxFQUNqQixVQUFVLEVBQUUsTUFBTSxFQUNsQixHQUFHLEVBQUUsTUFBTSxpQkFnQlo7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBc0IsYUFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxHQUFFLE9BQWUsaUJBbUxqRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/nodes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAE1B,MAAM,iCAAiC,CAAC;AAKzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAe9C,wBAAsB,qBAAqB,CACzC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,iBAeZ;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,cAAc,GAAE,MAAY,EAC5B,mBAAmB,GAAE,MAAW,GAC/B,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,qBA4BpD;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,mCAK5F;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,mCAElD;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CA4CpH;AAkCD,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B/D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/nodes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAE1B,MAAM,iCAAiC,CAAC;AAKzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAe9C,wBAAsB,qBAAqB,CACzC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,iBAeZ;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,cAAc,GAAE,MAAY,EAC5B,mBAAmB,GAAE,MAAW,GAC/B,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,qBA4BpD;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,mCAK5F;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,mCAElD;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CA4CpH;AAkCD,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B/D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,SAAS,EACT,WAAW,EACX,MAAM,EAAE,GAAG,EACZ,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,iBA+BA;AAED,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBA+BrE;AAED,wBAAsB,8BAA8B,CAClD,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,iBAgBZ;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,iBAmLjF"}
|
|
@@ -119,7 +119,7 @@ export async function withSequencersAdmin(env, fn) {
|
|
|
119
119
|
if (statusRes.status !== 200) {
|
|
120
120
|
throw new Error(`Admin endpoint returned status ${statusRes.status}`);
|
|
121
121
|
}
|
|
122
|
-
const client = createAztecNodeAdminClient(url);
|
|
122
|
+
const client = createAztecNodeAdminClient(url, {}, undefined, env.AZTEC_ADMIN_API_KEY);
|
|
123
123
|
return {
|
|
124
124
|
result: await fn(client),
|
|
125
125
|
process: process1
|
|
@@ -193,10 +193,9 @@ export async function initHADb(namespace) {
|
|
|
193
193
|
]), logger, true);
|
|
194
194
|
}
|
|
195
195
|
/**
|
|
196
|
-
*
|
|
197
|
-
* Wired to env
|
|
198
|
-
*/ export async function setValidatorTxDrop({ namespace,
|
|
199
|
-
const drop = enabled ? 'true' : 'false';
|
|
196
|
+
* Sets probabilistic transaction dropping on validators and waits for rollout.
|
|
197
|
+
* Use probability=0 to disable. Wired to env var P2P_DROP_TX_CHANCE via Helm values.
|
|
198
|
+
*/ export async function setValidatorTxDrop({ namespace, probability, logger: log }) {
|
|
200
199
|
const prob = String(probability);
|
|
201
200
|
const selectors = [
|
|
202
201
|
'app.kubernetes.io/name=validator',
|
|
@@ -211,7 +210,7 @@ export async function initHADb(namespace) {
|
|
|
211
210
|
if (names.length === 0) {
|
|
212
211
|
continue;
|
|
213
212
|
}
|
|
214
|
-
const cmd = `kubectl set env statefulset -l ${selector} -n ${namespace}
|
|
213
|
+
const cmd = `kubectl set env statefulset -l ${selector} -n ${namespace} P2P_DROP_TX_CHANCE=${prob}`;
|
|
215
214
|
log.info(`command: ${cmd}`);
|
|
216
215
|
await execAsync(cmd);
|
|
217
216
|
updated = true;
|
|
@@ -291,13 +290,14 @@ export async function enableValidatorDynamicBootNode(instanceName, namespace, sp
|
|
|
291
290
|
* Defaults to false, which preserves the existing storage.
|
|
292
291
|
*/ export async function rollAztecPods(namespace, clearState = false) {
|
|
293
292
|
// Pod components use 'validator', but StatefulSets and PVCs use 'sequencer-node' for validators
|
|
293
|
+
// RPC nodes have nodeType='rpc-node' in Helm values, so their component label is 'rpc-node' (not 'rpc')
|
|
294
294
|
const podComponents = [
|
|
295
295
|
'p2p-bootstrap',
|
|
296
296
|
'prover-node',
|
|
297
297
|
'prover-broker',
|
|
298
298
|
'prover-agent',
|
|
299
299
|
'sequencer-node',
|
|
300
|
-
'rpc',
|
|
300
|
+
'rpc-node',
|
|
301
301
|
'validator-ha-db'
|
|
302
302
|
];
|
|
303
303
|
const pvcComponents = [
|
|
@@ -305,7 +305,7 @@ export async function enableValidatorDynamicBootNode(instanceName, namespace, sp
|
|
|
305
305
|
'prover-node',
|
|
306
306
|
'prover-broker',
|
|
307
307
|
'sequencer-node',
|
|
308
|
-
'rpc',
|
|
308
|
+
'rpc-node',
|
|
309
309
|
'validator-ha-db'
|
|
310
310
|
];
|
|
311
311
|
// StatefulSet components that need to be scaled down before PVC deletion
|
|
@@ -315,7 +315,7 @@ export async function enableValidatorDynamicBootNode(instanceName, namespace, sp
|
|
|
315
315
|
'prover-node',
|
|
316
316
|
'prover-broker',
|
|
317
317
|
'sequencer-node',
|
|
318
|
-
'rpc',
|
|
318
|
+
'rpc-node',
|
|
319
319
|
'validator-ha-db'
|
|
320
320
|
];
|
|
321
321
|
if (clearState) {
|
|
@@ -193,7 +193,7 @@ import { AztecNodeProxy, ProvenTx } from './utils.js';
|
|
|
193
193
|
async proveTx(exec, opts) {
|
|
194
194
|
const fee = await this.completeFeeOptions(opts.from, exec.feePayer, opts.fee?.gasSettings);
|
|
195
195
|
const txRequest = await this.createTxExecutionRequestFromPayloadAndFee(exec, opts.from, fee);
|
|
196
|
-
const txProvingResult = await this.pxe.proveTx(txRequest, this.
|
|
196
|
+
const txProvingResult = await this.pxe.proveTx(txRequest, this.scopesFrom(opts.from, opts.additionalScopes));
|
|
197
197
|
return new ProvenTx(this.aztecNode, await txProvingResult.toTx(), txProvingResult.getOffchainEffects(), txProvingResult.stats);
|
|
198
198
|
}
|
|
199
199
|
getTxReceipt(txHash) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet_worker_script.d.ts","sourceRoot":"","sources":["../../src/test-wallet/wallet_worker_script.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
2
|
+
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
3
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
4
|
+
import { parseWithOptionals, schemaHasMethod } from '@aztec/foundation/schemas';
|
|
5
|
+
import { NodeListener, TransportServer } from '@aztec/foundation/transport';
|
|
6
|
+
import { Tx } from '@aztec/stdlib/tx';
|
|
7
|
+
import { workerData } from 'worker_threads';
|
|
8
|
+
import { TestWallet } from './test_wallet.js';
|
|
9
|
+
import { WorkerWalletSchema } from './worker_wallet_schema.js';
|
|
10
|
+
const logger = createLogger('e2e:test-wallet:worker');
|
|
11
|
+
try {
|
|
12
|
+
const { nodeUrl, pxeConfig } = workerData;
|
|
13
|
+
logger.info('Initializing worker wallet', {
|
|
14
|
+
nodeUrl
|
|
15
|
+
});
|
|
16
|
+
const node = createAztecNodeClient(nodeUrl);
|
|
17
|
+
const wallet = await TestWallet.create(node, pxeConfig);
|
|
18
|
+
logger.info('Worker wallet initialized');
|
|
19
|
+
const customMethods = {
|
|
20
|
+
proveTx: async (exec, opts)=>{
|
|
21
|
+
const provenTx = await wallet.proveTx(exec, opts);
|
|
22
|
+
return new Tx(provenTx.getTxHash(), provenTx.data, provenTx.chonkProof, provenTx.contractClassLogFields, provenTx.publicFunctionCalldata);
|
|
23
|
+
},
|
|
24
|
+
registerAccount: async (secret, salt)=>{
|
|
25
|
+
const manager = await wallet.createSchnorrAccount(secret, salt);
|
|
26
|
+
return manager.address;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const schema = WorkerWalletSchema;
|
|
30
|
+
const listener = new NodeListener();
|
|
31
|
+
const server = new TransportServer(listener, async (msg)=>{
|
|
32
|
+
if (!schemaHasMethod(schema, msg.fn)) {
|
|
33
|
+
throw new Error(`Unknown method: ${msg.fn}`);
|
|
34
|
+
}
|
|
35
|
+
const jsonParams = JSON.parse(msg.args);
|
|
36
|
+
const args = await parseWithOptionals(jsonParams, schema[msg.fn].parameters());
|
|
37
|
+
// we have to erase the fn type in order to be able to spread ...args
|
|
38
|
+
const handler = msg.fn in customMethods ? customMethods[msg.fn] : undefined;
|
|
39
|
+
const result = handler ? await handler(...args) : await wallet[msg.fn](...args);
|
|
40
|
+
return jsonStringify(result);
|
|
41
|
+
});
|
|
42
|
+
server.start();
|
|
43
|
+
} catch (err) {
|
|
44
|
+
logger.error('Worker wallet initialization failed', {
|
|
45
|
+
error: err instanceof Error ? err.stack : String(err)
|
|
46
|
+
});
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { CallIntent, IntentInnerHash } from '@aztec/aztec.js/authorization';
|
|
2
|
+
import type { InteractionWaitOptions, SendReturn } from '@aztec/aztec.js/contracts';
|
|
3
|
+
import type { Aliased, AppCapabilities, BatchResults, BatchedMethod, ContractClassMetadata, ContractMetadata, ExecuteUtilityOptions, PrivateEvent, PrivateEventFilter, ProfileOptions, SendOptions, SimulateOptions, Wallet, WalletCapabilities } from '@aztec/aztec.js/wallet';
|
|
4
|
+
import type { ChainInfo } from '@aztec/entrypoints/interfaces';
|
|
5
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
6
|
+
import type { PXEConfig } from '@aztec/pxe/config';
|
|
7
|
+
import type { ContractArtifact, EventMetadataDefinition, FunctionCall } from '@aztec/stdlib/abi';
|
|
8
|
+
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
9
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
10
|
+
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
11
|
+
import type { ExecutionPayload, TxProfileResult, TxSimulationResult, UtilityExecutionResult } from '@aztec/stdlib/tx';
|
|
12
|
+
import { Tx } from '@aztec/stdlib/tx';
|
|
13
|
+
/**
|
|
14
|
+
* Wallet implementation that offloads all work to a worker thread.
|
|
15
|
+
* Implements the Wallet interface by proxying calls over a transport layer
|
|
16
|
+
* using JSON serialization with Zod schema parsing on both ends.
|
|
17
|
+
*/
|
|
18
|
+
export declare class WorkerWallet implements Wallet {
|
|
19
|
+
private worker;
|
|
20
|
+
private client;
|
|
21
|
+
private constructor();
|
|
22
|
+
/**
|
|
23
|
+
* Creates a WorkerWallet by spawning a worker thread that creates a TestWallet internally.
|
|
24
|
+
* @param nodeUrl - URL of the Aztec node to connect to.
|
|
25
|
+
* @param pxeConfig - Optional PXE configuration overrides.
|
|
26
|
+
* @returns A WorkerWallet ready to use.
|
|
27
|
+
*/
|
|
28
|
+
static create(nodeUrl: string, pxeConfig?: Partial<PXEConfig>): Promise<WorkerWallet>;
|
|
29
|
+
private callRaw;
|
|
30
|
+
private call;
|
|
31
|
+
getChainInfo(): Promise<ChainInfo>;
|
|
32
|
+
getContractMetadata(address: AztecAddress): Promise<ContractMetadata>;
|
|
33
|
+
getContractClassMetadata(id: Fr): Promise<ContractClassMetadata>;
|
|
34
|
+
getPrivateEvents<T>(eventMetadata: EventMetadataDefinition, eventFilter: PrivateEventFilter): Promise<PrivateEvent<T>[]>;
|
|
35
|
+
registerSender(address: AztecAddress, alias?: string): Promise<AztecAddress>;
|
|
36
|
+
getAddressBook(): Promise<Aliased<AztecAddress>[]>;
|
|
37
|
+
getAccounts(): Promise<Aliased<AztecAddress>[]>;
|
|
38
|
+
registerContract(instance: ContractInstanceWithAddress, artifact?: ContractArtifact, secretKey?: Fr): Promise<ContractInstanceWithAddress>;
|
|
39
|
+
simulateTx(exec: ExecutionPayload, opts: SimulateOptions): Promise<TxSimulationResult>;
|
|
40
|
+
executeUtility(call: FunctionCall, opts: ExecuteUtilityOptions): Promise<UtilityExecutionResult>;
|
|
41
|
+
profileTx(exec: ExecutionPayload, opts: ProfileOptions): Promise<TxProfileResult>;
|
|
42
|
+
sendTx<W extends InteractionWaitOptions = undefined>(exec: ExecutionPayload, opts: SendOptions<W>): Promise<SendReturn<W>>;
|
|
43
|
+
proveTx(exec: ExecutionPayload, opts: Omit<SendOptions, 'wait'>): Promise<Tx>;
|
|
44
|
+
/** Registers an account inside the worker's TestWallet, populating its accounts map. */
|
|
45
|
+
registerAccount(secret: Fr, salt: Fr): Promise<AztecAddress>;
|
|
46
|
+
createAuthWit(from: AztecAddress, messageHashOrIntent: IntentInnerHash | CallIntent): Promise<AuthWitness>;
|
|
47
|
+
requestCapabilities(manifest: AppCapabilities): Promise<WalletCapabilities>;
|
|
48
|
+
batch<const T extends readonly BatchedMethod[]>(methods: T): Promise<BatchResults<T>>;
|
|
49
|
+
/** Shuts down the worker thread and closes the transport. */
|
|
50
|
+
stop(): Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX3dhbGxldC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Qtd2FsbGV0L3dvcmtlcl93YWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sS0FBSyxFQUNWLE9BQU8sRUFDUCxlQUFlLEVBQ2YsWUFBWSxFQUNaLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxXQUFXLEVBQ1gsZUFBZSxFQUNmLE1BQU0sRUFDTixrQkFBa0IsRUFDbkIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU96RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RILE9BQU8s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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker_wallet.d.ts","sourceRoot":"","sources":["../../src/test-wallet/worker_wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
2
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
4
|
+
import { sleep } from '@aztec/foundation/sleep';
|
|
5
|
+
import { NodeConnector, TransportClient } from '@aztec/foundation/transport';
|
|
6
|
+
import { Worker } from 'worker_threads';
|
|
7
|
+
import { WorkerWalletSchema } from './worker_wallet_schema.js';
|
|
8
|
+
const log = createLogger('e2e:test-wallet:worker-wallet');
|
|
9
|
+
const WORKER_READY_TIMEOUT_MS = 120_000;
|
|
10
|
+
/**
|
|
11
|
+
* Wallet implementation that offloads all work to a worker thread.
|
|
12
|
+
* Implements the Wallet interface by proxying calls over a transport layer
|
|
13
|
+
* using JSON serialization with Zod schema parsing on both ends.
|
|
14
|
+
*/ export class WorkerWallet {
|
|
15
|
+
worker;
|
|
16
|
+
client;
|
|
17
|
+
constructor(worker, client){
|
|
18
|
+
this.worker = worker;
|
|
19
|
+
this.client = client;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Creates a WorkerWallet by spawning a worker thread that creates a TestWallet internally.
|
|
23
|
+
* @param nodeUrl - URL of the Aztec node to connect to.
|
|
24
|
+
* @param pxeConfig - Optional PXE configuration overrides.
|
|
25
|
+
* @returns A WorkerWallet ready to use.
|
|
26
|
+
*/ static async create(nodeUrl, pxeConfig) {
|
|
27
|
+
// replace stc/ with dest/ so the wallet works in Jest tests
|
|
28
|
+
const workerUrl = new URL('./wallet_worker_script.js', import.meta.url);
|
|
29
|
+
workerUrl.pathname = workerUrl.pathname.replace('/src/', '/dest/');
|
|
30
|
+
// remove JEST_WORKER_ID so the worker uses pino-pretty transport instead of Jest's raw output.
|
|
31
|
+
const { JEST_WORKER_ID: _, ...parentEnv } = process.env;
|
|
32
|
+
const worker = new Worker(workerUrl, {
|
|
33
|
+
workerData: {
|
|
34
|
+
nodeUrl,
|
|
35
|
+
pxeConfig
|
|
36
|
+
},
|
|
37
|
+
env: {
|
|
38
|
+
...parentEnv,
|
|
39
|
+
...process.stderr.isTTY || process.env.FORCE_COLOR ? {
|
|
40
|
+
FORCE_COLOR: '1'
|
|
41
|
+
} : {},
|
|
42
|
+
LOG_LEVEL: process.env.WORKER_LOG_LEVEL ?? 'warn'
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
const connector = new NodeConnector(worker);
|
|
46
|
+
const client = new TransportClient(connector);
|
|
47
|
+
await client.open();
|
|
48
|
+
const wallet = new WorkerWallet(worker, client);
|
|
49
|
+
const { promise: workerDied, reject: rejectWorkerDied } = promiseWithResolvers();
|
|
50
|
+
// reject if the worker exits or errors before the warmup completes.
|
|
51
|
+
const onError = (err)=>{
|
|
52
|
+
worker.off('exit', onExit);
|
|
53
|
+
rejectWorkerDied(new Error(`Worker wallet thread error: ${err.message}`));
|
|
54
|
+
};
|
|
55
|
+
const onExit = (code)=>{
|
|
56
|
+
worker.off('error', onError);
|
|
57
|
+
rejectWorkerDied(new Error(`Worker wallet thread exited with code ${code} before becoming ready`));
|
|
58
|
+
};
|
|
59
|
+
worker.once('error', onError);
|
|
60
|
+
worker.once('exit', onExit);
|
|
61
|
+
const timeout = sleep(WORKER_READY_TIMEOUT_MS).then(()=>{
|
|
62
|
+
throw new Error(`Worker wallet creation timed out after ${WORKER_READY_TIMEOUT_MS / 1000}s`);
|
|
63
|
+
});
|
|
64
|
+
try {
|
|
65
|
+
// wait for worker wallet to start
|
|
66
|
+
await Promise.race([
|
|
67
|
+
wallet.getChainInfo(),
|
|
68
|
+
workerDied,
|
|
69
|
+
timeout
|
|
70
|
+
]);
|
|
71
|
+
} catch (err) {
|
|
72
|
+
log.error('Worker wallet creation failed, cleaning up', {
|
|
73
|
+
error: String(err)
|
|
74
|
+
});
|
|
75
|
+
client.close();
|
|
76
|
+
await worker.terminate();
|
|
77
|
+
throw err;
|
|
78
|
+
} finally{
|
|
79
|
+
worker.off('error', onError);
|
|
80
|
+
worker.off('exit', onExit);
|
|
81
|
+
}
|
|
82
|
+
return wallet;
|
|
83
|
+
}
|
|
84
|
+
async callRaw(fn, ...args) {
|
|
85
|
+
const argsJson = jsonStringify(args);
|
|
86
|
+
return await this.client.request({
|
|
87
|
+
fn,
|
|
88
|
+
args: argsJson
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
async call(fn, ...args) {
|
|
92
|
+
const resultJson = await this.callRaw(fn, ...args);
|
|
93
|
+
const methodSchema = WorkerWalletSchema[fn];
|
|
94
|
+
return methodSchema.returnType().parseAsync(JSON.parse(resultJson));
|
|
95
|
+
}
|
|
96
|
+
getChainInfo() {
|
|
97
|
+
return this.call('getChainInfo');
|
|
98
|
+
}
|
|
99
|
+
getContractMetadata(address) {
|
|
100
|
+
return this.call('getContractMetadata', address);
|
|
101
|
+
}
|
|
102
|
+
getContractClassMetadata(id) {
|
|
103
|
+
return this.call('getContractClassMetadata', id);
|
|
104
|
+
}
|
|
105
|
+
getPrivateEvents(eventMetadata, eventFilter) {
|
|
106
|
+
return this.call('getPrivateEvents', eventMetadata, eventFilter);
|
|
107
|
+
}
|
|
108
|
+
registerSender(address, alias) {
|
|
109
|
+
return this.call('registerSender', address, alias);
|
|
110
|
+
}
|
|
111
|
+
getAddressBook() {
|
|
112
|
+
return this.call('getAddressBook');
|
|
113
|
+
}
|
|
114
|
+
getAccounts() {
|
|
115
|
+
return this.call('getAccounts');
|
|
116
|
+
}
|
|
117
|
+
registerContract(instance, artifact, secretKey) {
|
|
118
|
+
return this.call('registerContract', instance, artifact, secretKey);
|
|
119
|
+
}
|
|
120
|
+
simulateTx(exec, opts) {
|
|
121
|
+
return this.call('simulateTx', exec, opts);
|
|
122
|
+
}
|
|
123
|
+
executeUtility(call, opts) {
|
|
124
|
+
return this.call('executeUtility', call, opts);
|
|
125
|
+
}
|
|
126
|
+
profileTx(exec, opts) {
|
|
127
|
+
return this.call('profileTx', exec, opts);
|
|
128
|
+
}
|
|
129
|
+
sendTx(exec, opts) {
|
|
130
|
+
return this.call('sendTx', exec, opts);
|
|
131
|
+
}
|
|
132
|
+
proveTx(exec, opts) {
|
|
133
|
+
return this.call('proveTx', exec, opts);
|
|
134
|
+
}
|
|
135
|
+
/** Registers an account inside the worker's TestWallet, populating its accounts map. */ registerAccount(secret, salt) {
|
|
136
|
+
return this.call('registerAccount', secret, salt);
|
|
137
|
+
}
|
|
138
|
+
createAuthWit(from, messageHashOrIntent) {
|
|
139
|
+
return this.call('createAuthWit', from, messageHashOrIntent);
|
|
140
|
+
}
|
|
141
|
+
requestCapabilities(manifest) {
|
|
142
|
+
return this.call('requestCapabilities', manifest);
|
|
143
|
+
}
|
|
144
|
+
batch(methods) {
|
|
145
|
+
return this.call('batch', methods);
|
|
146
|
+
}
|
|
147
|
+
/** Shuts down the worker thread and closes the transport. */ async stop() {
|
|
148
|
+
this.client.close();
|
|
149
|
+
await this.worker.terminate();
|
|
150
|
+
}
|
|
151
|
+
}
|