@aztec/end-to-end 0.0.1-commit.c80b6263 → 0.0.1-commit.cb6bed7c2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +2 -2
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +19 -11
- package/dest/bench/client_flows/config.d.ts +2 -2
- package/dest/bench/client_flows/config.d.ts.map +1 -1
- package/dest/bench/client_flows/config.js +18 -0
- package/dest/bench/utils.d.ts +1 -1
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +6 -3
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +4 -2
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +22 -12
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +2 -2
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +3 -2
- package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -2
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.d.ts +9 -7
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +58 -33
- package/dest/e2e_fees/fees_test.d.ts +2 -2
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +18 -11
- package/dest/e2e_l1_publisher/write_json.d.ts +3 -2
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +1 -7
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +4 -6
- package/dest/e2e_p2p/p2p_network.d.ts +5 -4
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +24 -7
- package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
- package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
- package/dest/e2e_p2p/reqresp/utils.js +177 -0
- package/dest/e2e_p2p/shared.d.ts +16 -2
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +30 -3
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
- package/dest/e2e_token_contract/token_contract_test.d.ts +4 -2
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +19 -9
- package/dest/fixtures/authwit_proxy.d.ts +15 -0
- package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
- package/dest/fixtures/authwit_proxy.js +30 -0
- package/dest/fixtures/e2e_prover_test.d.ts +4 -4
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +33 -40
- package/dest/fixtures/elu_monitor.d.ts +21 -0
- package/dest/fixtures/elu_monitor.d.ts.map +1 -0
- package/dest/fixtures/elu_monitor.js +102 -0
- package/dest/fixtures/fixtures.d.ts +5 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +6 -0
- package/dest/fixtures/ha_setup.d.ts +71 -0
- package/dest/fixtures/ha_setup.d.ts.map +1 -0
- package/dest/fixtures/ha_setup.js +116 -0
- package/dest/fixtures/index.d.ts +2 -1
- package/dest/fixtures/index.d.ts.map +1 -1
- package/dest/fixtures/index.js +1 -0
- package/dest/fixtures/setup.d.ts +39 -23
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +62 -152
- package/dest/fixtures/setup_p2p_test.d.ts +15 -7
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +18 -12
- package/dest/fixtures/token_utils.d.ts +2 -2
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +5 -4
- package/dest/shared/cross_chain_test_harness.d.ts +1 -1
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +13 -13
- package/dest/shared/gas_portal_test_harness.js +2 -2
- package/dest/shared/index.d.ts +2 -1
- package/dest/shared/index.d.ts.map +1 -1
- package/dest/shared/index.js +1 -0
- package/dest/shared/jest_setup.js +41 -1
- package/dest/shared/mock_state_view.d.ts +86 -0
- package/dest/shared/mock_state_view.d.ts.map +1 -0
- package/dest/shared/mock_state_view.js +186 -0
- package/dest/shared/submit-transactions.d.ts +2 -2
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +13 -11
- package/dest/simulators/lending_simulator.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +2 -2
- package/dest/simulators/token_simulator.d.ts +1 -1
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +3 -24
- package/dest/spartan/setup_test_wallets.d.ts +9 -2
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +35 -4
- package/dest/spartan/tx_metrics.js +1 -1
- package/dest/spartan/utils/bot.d.ts +3 -2
- package/dest/spartan/utils/bot.d.ts.map +1 -1
- package/dest/spartan/utils/bot.js +2 -1
- package/dest/spartan/utils/config.d.ts +7 -1
- package/dest/spartan/utils/config.d.ts.map +1 -1
- package/dest/spartan/utils/config.js +3 -1
- package/dest/spartan/utils/index.d.ts +5 -4
- package/dest/spartan/utils/index.d.ts.map +1 -1
- package/dest/spartan/utils/index.js +4 -2
- package/dest/spartan/utils/k8s.d.ts +31 -1
- package/dest/spartan/utils/k8s.d.ts.map +1 -1
- package/dest/spartan/utils/k8s.js +124 -0
- package/dest/spartan/utils/nodes.d.ts +14 -5
- package/dest/spartan/utils/nodes.d.ts.map +1 -1
- package/dest/spartan/utils/nodes.js +204 -33
- package/dest/spartan/utils/scripts.d.ts +18 -4
- package/dest/spartan/utils/scripts.d.ts.map +1 -1
- package/dest/spartan/utils/scripts.js +19 -4
- package/dest/test-wallet/test_wallet.d.ts +83 -0
- package/dest/test-wallet/test_wallet.d.ts.map +1 -0
- package/dest/test-wallet/test_wallet.js +214 -0
- package/dest/test-wallet/utils.d.ts +41 -0
- package/dest/test-wallet/utils.d.ts.map +1 -0
- package/dest/test-wallet/utils.js +71 -0
- package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
- package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
- package/dest/test-wallet/wallet_worker_script.js +48 -0
- package/dest/test-wallet/worker_wallet.d.ts +52 -0
- package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet.js +151 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts +274 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet_schema.js +10 -0
- package/package.json +46 -43
- package/src/bench/client_flows/client_flows_benchmark.ts +42 -38
- package/src/bench/client_flows/config.ts +9 -1
- package/src/bench/utils.ts +8 -3
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +28 -15
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +7 -8
- package/src/e2e_deploy_contract/deploy_test.ts +3 -3
- package/src/e2e_epochs/epochs_test.ts +73 -63
- package/src/e2e_fees/bridging_race.notest.ts +1 -1
- package/src/e2e_fees/fees_test.ts +20 -28
- package/src/e2e_l1_publisher/write_json.ts +1 -6
- package/src/e2e_nested_contract/nested_contract_test.ts +7 -5
- package/src/e2e_p2p/inactivity_slash_test.ts +4 -4
- package/src/e2e_p2p/p2p_network.ts +36 -10
- package/src/e2e_p2p/reqresp/utils.ts +235 -0
- package/src/e2e_p2p/shared.ts +48 -3
- package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
- package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
- package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
- package/src/e2e_token_contract/token_contract_test.ts +26 -9
- package/src/fixtures/authwit_proxy.ts +50 -0
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +39 -43
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +10 -0
- package/src/fixtures/ha_setup.ts +186 -0
- package/src/fixtures/index.ts +1 -0
- package/src/fixtures/setup.ts +94 -214
- package/src/fixtures/setup_p2p_test.ts +25 -24
- package/src/fixtures/token_utils.ts +6 -3
- package/src/guides/up_quick_start.sh +3 -3
- package/src/shared/cross_chain_test_harness.ts +13 -9
- package/src/shared/gas_portal_test_harness.ts +1 -1
- package/src/shared/index.ts +1 -0
- package/src/shared/jest_setup.ts +51 -1
- package/src/shared/mock_state_view.ts +188 -0
- package/src/shared/submit-transactions.ts +3 -2
- package/src/shared/uniswap_l1_l2.ts +15 -15
- package/src/simulators/lending_simulator.ts +4 -2
- package/src/simulators/token_simulator.ts +6 -30
- package/src/spartan/setup_test_wallets.ts +59 -12
- package/src/spartan/tx_metrics.ts +1 -1
- package/src/spartan/utils/bot.ts +4 -1
- package/src/spartan/utils/config.ts +2 -0
- package/src/spartan/utils/index.ts +7 -1
- package/src/spartan/utils/k8s.ts +160 -0
- package/src/spartan/utils/nodes.ts +251 -31
- package/src/spartan/utils/scripts.ts +43 -7
- package/src/test-wallet/test_wallet.ts +306 -0
- package/src/test-wallet/utils.ts +112 -0
- package/src/test-wallet/wallet_worker_script.ts +60 -0
- package/src/test-wallet/worker_wallet.ts +213 -0
- package/src/test-wallet/worker_wallet_schema.ts +13 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
2
|
-
import {
|
|
2
|
+
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
3
|
+
import { makeBackoff, retry, retryUntil } from '@aztec/foundation/retry';
|
|
3
4
|
import { sleep } from '@aztec/foundation/sleep';
|
|
4
5
|
import { createAztecNodeAdminClient } from '@aztec/stdlib/interfaces/client';
|
|
5
6
|
import { exec } from 'child_process';
|
|
6
7
|
import { promisify } from 'util';
|
|
7
8
|
import { execHelmCommand } from './helm.js';
|
|
8
|
-
import { deleteResourceByLabel, getChartDir, startPortForward, waitForResourceByLabel } from './k8s.js';
|
|
9
|
+
import { deleteResourceByLabel, getChartDir, startPortForward, waitForResourceByLabel, waitForResourceByName, waitForStatefulSetsReady } from './k8s.js';
|
|
9
10
|
const execAsync = promisify(exec);
|
|
10
11
|
const logger = createLogger('e2e:k8s-utils');
|
|
11
12
|
export async function awaitCheckpointNumber(rollupCheatCodes, checkpointNumber, timeoutSeconds, log) {
|
|
@@ -23,6 +24,43 @@ export async function awaitCheckpointNumber(rollupCheatCodes, checkpointNumber,
|
|
|
23
24
|
log.info(`Reached checkpoint ${tips.pending}`);
|
|
24
25
|
}
|
|
25
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Waits until the proven block number increases.
|
|
29
|
+
*
|
|
30
|
+
* @param rpcUrl - URL of an Aztec RPC node to query
|
|
31
|
+
* @param log - Logger instance
|
|
32
|
+
* @param timeoutSeconds - Maximum time to wait
|
|
33
|
+
* @param pollIntervalSeconds - How often to check
|
|
34
|
+
*/ export async function waitForProvenToAdvance(rpcUrl, log, timeoutSeconds = 300, pollIntervalSeconds = 12) {
|
|
35
|
+
const node = createAztecNodeClient(rpcUrl);
|
|
36
|
+
log.info('Waiting for proven block to advance (indicating epoch proof just submitted)...');
|
|
37
|
+
// Get current proven block number
|
|
38
|
+
let initialProvenBlock;
|
|
39
|
+
try {
|
|
40
|
+
const tips = await node.getL2Tips();
|
|
41
|
+
initialProvenBlock = Number(tips.proven.block.number);
|
|
42
|
+
log.info(`Current proven block: ${initialProvenBlock}. Waiting for it to increase...`);
|
|
43
|
+
} catch (err) {
|
|
44
|
+
log.warn(`Error getting initial tips: ${err}. Will poll until successful.`);
|
|
45
|
+
initialProvenBlock = 0;
|
|
46
|
+
}
|
|
47
|
+
await retryUntil(async ()=>{
|
|
48
|
+
try {
|
|
49
|
+
const tips = await node.getL2Tips();
|
|
50
|
+
const currentProvenBlock = Number(tips.proven.block.number);
|
|
51
|
+
const proposedBlock = Number(tips.proposed.number);
|
|
52
|
+
log.verbose(`Chain state: proposed=${proposedBlock}, proven=${currentProvenBlock} (waiting for > ${initialProvenBlock})`);
|
|
53
|
+
if (currentProvenBlock > initialProvenBlock) {
|
|
54
|
+
log.info(`Proven block advanced from ${initialProvenBlock} to ${currentProvenBlock}.`);
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
} catch (err) {
|
|
59
|
+
log.verbose(`Error checking tips: ${err}`);
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
}, 'proven block to advance', timeoutSeconds, pollIntervalSeconds);
|
|
63
|
+
}
|
|
26
64
|
export async function getSequencers(namespace) {
|
|
27
65
|
const selectors = [
|
|
28
66
|
'app.kubernetes.io/name=validator',
|
|
@@ -61,9 +99,15 @@ export async function withSequencersAdmin(env, fn) {
|
|
|
61
99
|
const sequencers = await getSequencers(namespace);
|
|
62
100
|
const results = [];
|
|
63
101
|
for (const sequencer of sequencers){
|
|
102
|
+
// Ensure pod is Ready before attempting port-forward.
|
|
103
|
+
await waitForResourceByName({
|
|
104
|
+
resource: 'pods',
|
|
105
|
+
name: sequencer,
|
|
106
|
+
namespace
|
|
107
|
+
});
|
|
64
108
|
// Wrap port-forward + fetch in a retry to handle flaky port-forwards
|
|
65
109
|
const result = await retry(async ()=>{
|
|
66
|
-
const { process, port } = await startPortForward({
|
|
110
|
+
const { process: process1, port } = await startPortForward({
|
|
67
111
|
resource: `pod/${sequencer}`,
|
|
68
112
|
namespace,
|
|
69
113
|
containerPort: adminContainerPort
|
|
@@ -75,14 +119,14 @@ export async function withSequencersAdmin(env, fn) {
|
|
|
75
119
|
if (statusRes.status !== 200) {
|
|
76
120
|
throw new Error(`Admin endpoint returned status ${statusRes.status}`);
|
|
77
121
|
}
|
|
78
|
-
const client = createAztecNodeAdminClient(url);
|
|
122
|
+
const client = createAztecNodeAdminClient(url, {}, undefined, env.AZTEC_ADMIN_API_KEY);
|
|
79
123
|
return {
|
|
80
124
|
result: await fn(client),
|
|
81
|
-
process
|
|
125
|
+
process: process1
|
|
82
126
|
};
|
|
83
127
|
} catch (err) {
|
|
84
128
|
// Kill the port-forward before retrying
|
|
85
|
-
|
|
129
|
+
process1.kill();
|
|
86
130
|
throw err;
|
|
87
131
|
}
|
|
88
132
|
}, 'connect to node admin', makeBackoff([
|
|
@@ -96,11 +140,62 @@ export async function withSequencersAdmin(env, fn) {
|
|
|
96
140
|
}
|
|
97
141
|
return results;
|
|
98
142
|
}
|
|
143
|
+
async function getAztecImageForMigrations(namespace) {
|
|
144
|
+
const aztecDockerImage = process.env.AZTEC_DOCKER_IMAGE;
|
|
145
|
+
if (aztecDockerImage) {
|
|
146
|
+
return aztecDockerImage;
|
|
147
|
+
}
|
|
148
|
+
const { stdout } = await execAsync(`kubectl get pods -l app.kubernetes.io/name=validator -n ${namespace} -o jsonpath='{.items[0].spec.containers[?(@.name=="aztec")].image}' | cat`);
|
|
149
|
+
const image = stdout.trim().replace(/^'|'$/g, '');
|
|
150
|
+
if (!image) {
|
|
151
|
+
throw new Error(`Could not detect aztec image from validator pod in namespace ${namespace}`);
|
|
152
|
+
}
|
|
153
|
+
return image;
|
|
154
|
+
}
|
|
155
|
+
async function getHaDbConnectionUrl(namespace) {
|
|
156
|
+
const secretName = `${namespace}-validator-ha-db-postgres`;
|
|
157
|
+
const { stdout } = await execAsync(`kubectl get secret ${secretName} -n ${namespace} -o json`);
|
|
158
|
+
const secret = JSON.parse(stdout);
|
|
159
|
+
const data = secret?.data ?? {};
|
|
160
|
+
const decode = (value)=>value ? Buffer.from(value, 'base64').toString('utf8') : '';
|
|
161
|
+
const user = decode(data.POSTGRES_USER);
|
|
162
|
+
const password = decode(data.POSTGRES_PASSWORD);
|
|
163
|
+
const database = decode(data.POSTGRES_DB);
|
|
164
|
+
if (!user || !password || !database) {
|
|
165
|
+
throw new Error(`Missing HA DB credentials in secret ${secretName}`);
|
|
166
|
+
}
|
|
167
|
+
const host = `${namespace}-validator-ha-db-postgres.${namespace}.svc.cluster.local`;
|
|
168
|
+
return `postgresql://${encodeURIComponent(user)}:${encodeURIComponent(password)}@${host}:5432/${database}`;
|
|
169
|
+
}
|
|
170
|
+
export async function initHADb(namespace) {
|
|
171
|
+
const databaseUrl = await getHaDbConnectionUrl(namespace);
|
|
172
|
+
const image = await getAztecImageForMigrations(namespace);
|
|
173
|
+
const jobName = `${namespace}-validator-ha-db-migrate`;
|
|
174
|
+
await execAsync(`kubectl delete pod ${jobName} -n ${namespace} --ignore-not-found=true`).catch(()=>undefined);
|
|
175
|
+
const migrateCmd = [
|
|
176
|
+
`kubectl run ${jobName} -n ${namespace}`,
|
|
177
|
+
'--rm -i',
|
|
178
|
+
'--restart=Never',
|
|
179
|
+
`--image=${image}`,
|
|
180
|
+
`--env=DATABASE_URL=${databaseUrl}`,
|
|
181
|
+
'--command -- node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js migrate-ha-db up'
|
|
182
|
+
].join(' ');
|
|
183
|
+
const migrateCmdForLog = migrateCmd.replace(/--env=DATABASE_URL=\S+/, '--env=DATABASE_URL=<redacted>');
|
|
184
|
+
await retry(async ()=>{
|
|
185
|
+
logger.info(`command: ${migrateCmdForLog}`);
|
|
186
|
+
await execAsync(migrateCmd);
|
|
187
|
+
}, 'run HA DB migrations', makeBackoff([
|
|
188
|
+
1,
|
|
189
|
+
2,
|
|
190
|
+
4,
|
|
191
|
+
8,
|
|
192
|
+
16
|
|
193
|
+
]), logger, true);
|
|
194
|
+
}
|
|
99
195
|
/**
|
|
100
|
-
*
|
|
101
|
-
* Wired to env
|
|
102
|
-
*/ export async function setValidatorTxDrop({ namespace,
|
|
103
|
-
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 }) {
|
|
104
199
|
const prob = String(probability);
|
|
105
200
|
const selectors = [
|
|
106
201
|
'app.kubernetes.io/name=validator',
|
|
@@ -115,7 +210,7 @@ export async function withSequencersAdmin(env, fn) {
|
|
|
115
210
|
if (names.length === 0) {
|
|
116
211
|
continue;
|
|
117
212
|
}
|
|
118
|
-
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}`;
|
|
119
214
|
log.info(`command: ${cmd}`);
|
|
120
215
|
await execAsync(cmd);
|
|
121
216
|
updated = true;
|
|
@@ -195,20 +290,23 @@ export async function enableValidatorDynamicBootNode(instanceName, namespace, sp
|
|
|
195
290
|
* Defaults to false, which preserves the existing storage.
|
|
196
291
|
*/ export async function rollAztecPods(namespace, clearState = false) {
|
|
197
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')
|
|
198
294
|
const podComponents = [
|
|
199
295
|
'p2p-bootstrap',
|
|
200
296
|
'prover-node',
|
|
201
297
|
'prover-broker',
|
|
202
298
|
'prover-agent',
|
|
203
299
|
'sequencer-node',
|
|
204
|
-
'rpc'
|
|
300
|
+
'rpc-node',
|
|
301
|
+
'validator-ha-db'
|
|
205
302
|
];
|
|
206
303
|
const pvcComponents = [
|
|
207
304
|
'p2p-bootstrap',
|
|
208
305
|
'prover-node',
|
|
209
306
|
'prover-broker',
|
|
210
307
|
'sequencer-node',
|
|
211
|
-
'rpc'
|
|
308
|
+
'rpc-node',
|
|
309
|
+
'validator-ha-db'
|
|
212
310
|
];
|
|
213
311
|
// StatefulSet components that need to be scaled down before PVC deletion
|
|
214
312
|
// Note: validators use 'sequencer-node' as component label, not 'validator'
|
|
@@ -217,20 +315,27 @@ export async function enableValidatorDynamicBootNode(instanceName, namespace, sp
|
|
|
217
315
|
'prover-node',
|
|
218
316
|
'prover-broker',
|
|
219
317
|
'sequencer-node',
|
|
220
|
-
'rpc'
|
|
318
|
+
'rpc-node',
|
|
319
|
+
'validator-ha-db'
|
|
221
320
|
];
|
|
222
321
|
if (clearState) {
|
|
223
322
|
// To delete PVCs, we must first scale down StatefulSets so pods release the volumes
|
|
224
323
|
// Otherwise PVC deletion will hang waiting for pods to terminate
|
|
225
|
-
//
|
|
324
|
+
// Save original replica counts for all StatefulSets
|
|
226
325
|
const originalReplicas = new Map();
|
|
227
326
|
for (const component of statefulSetComponents){
|
|
228
327
|
try {
|
|
229
|
-
|
|
328
|
+
// Get all StatefulSets that match the component label
|
|
329
|
+
const getCmd = `kubectl get statefulset -l app.kubernetes.io/component=${component} -n ${namespace} -o json`;
|
|
230
330
|
const { stdout } = await execAsync(getCmd);
|
|
231
|
-
const
|
|
232
|
-
|
|
233
|
-
|
|
331
|
+
const result = JSON.parse(stdout);
|
|
332
|
+
for (const sts of result.items || []){
|
|
333
|
+
const name = sts.metadata.name;
|
|
334
|
+
const replicas = sts.spec.replicas ?? 1;
|
|
335
|
+
if (replicas > 0) {
|
|
336
|
+
originalReplicas.set(name, replicas);
|
|
337
|
+
logger.debug(`Saved replica count for StatefulSet ${name}: ${replicas}`);
|
|
338
|
+
}
|
|
234
339
|
}
|
|
235
340
|
} catch {
|
|
236
341
|
// Component might not exist, continue
|
|
@@ -247,25 +352,79 @@ export async function enableValidatorDynamicBootNode(instanceName, namespace, sp
|
|
|
247
352
|
logger.verbose(`Scale down ${component} skipped: ${e}`);
|
|
248
353
|
}
|
|
249
354
|
}
|
|
250
|
-
// Wait for pods to terminate
|
|
251
|
-
|
|
355
|
+
// Wait for all pods to fully terminate before deleting PVCs.
|
|
356
|
+
// terminationGracePeriodSeconds default is 30s.
|
|
357
|
+
logger.info('Waiting for pods to fully terminate before deleting PVCs...');
|
|
358
|
+
for (const component of statefulSetComponents){
|
|
359
|
+
try {
|
|
360
|
+
// Wait for all pods with this component label to be deleted
|
|
361
|
+
const waitCmd = `kubectl wait pods -l app.kubernetes.io/component=${component} --for=delete -n ${namespace} --timeout=2m`;
|
|
362
|
+
logger.info(`command: ${waitCmd}`);
|
|
363
|
+
await execAsync(waitCmd);
|
|
364
|
+
} catch (e) {
|
|
365
|
+
logger.verbose(`Wait for pod deletion ${component} skipped: ${e}`);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
// Extra buffer to ensure PVC protection finalizers are cleared
|
|
369
|
+
await sleep(5 * 1000);
|
|
252
370
|
// Now delete PVCs (they should no longer be in use)
|
|
253
371
|
for (const component of pvcComponents){
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
372
|
+
try {
|
|
373
|
+
await deleteResourceByLabel({
|
|
374
|
+
resource: 'persistentvolumeclaims',
|
|
375
|
+
namespace: namespace,
|
|
376
|
+
label: `app.kubernetes.io/component=${component}`
|
|
377
|
+
});
|
|
378
|
+
} catch (e) {
|
|
379
|
+
logger.warn(`Failed to delete PVCs for ${component}: ${e}`);
|
|
380
|
+
}
|
|
259
381
|
}
|
|
260
|
-
//
|
|
261
|
-
for (const component of
|
|
262
|
-
|
|
382
|
+
// Verify PVCs are deleted
|
|
383
|
+
for (const component of pvcComponents){
|
|
384
|
+
try {
|
|
385
|
+
const waitCmd = `kubectl wait pvc -l app.kubernetes.io/component=${component} --for=delete -n ${namespace} --timeout=2m`;
|
|
386
|
+
logger.info(`command: ${waitCmd}`);
|
|
387
|
+
await execAsync(waitCmd);
|
|
388
|
+
} catch (e) {
|
|
389
|
+
logger.verbose(`Wait for PVC deletion ${component} skipped: ${e}`);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
const haDbStatefulSets = [
|
|
393
|
+
...originalReplicas.entries()
|
|
394
|
+
].filter(([name])=>name.includes('validator-ha-db'));
|
|
395
|
+
const otherStatefulSets = [
|
|
396
|
+
...originalReplicas.entries()
|
|
397
|
+
].filter(([name])=>!name.includes('validator-ha-db'));
|
|
398
|
+
// Bring up HA DB first so we can run migrations before validators start
|
|
399
|
+
for (const [stsName, replicas] of haDbStatefulSets){
|
|
400
|
+
try {
|
|
401
|
+
const scaleCmd = `kubectl scale statefulset ${stsName} -n ${namespace} --replicas=${replicas} --timeout=2m`;
|
|
402
|
+
logger.info(`command: ${scaleCmd}`);
|
|
403
|
+
await execAsync(scaleCmd);
|
|
404
|
+
} catch (e) {
|
|
405
|
+
logger.verbose(`Scale up ${stsName} skipped: ${e}`);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
if (haDbStatefulSets.length > 0) {
|
|
409
|
+
try {
|
|
410
|
+
await waitForStatefulSetsReady({
|
|
411
|
+
namespace,
|
|
412
|
+
label: 'app.kubernetes.io/component=validator-ha-db',
|
|
413
|
+
timeoutSeconds: 600
|
|
414
|
+
});
|
|
415
|
+
await initHADb(namespace);
|
|
416
|
+
} catch (e) {
|
|
417
|
+
logger.warn(`HA DB migration step skipped or failed: ${e}`);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
// Scale remaining StatefulSets back up to original replica counts (by name, not label)
|
|
421
|
+
for (const [stsName, replicas] of otherStatefulSets){
|
|
263
422
|
try {
|
|
264
|
-
const scaleCmd = `kubectl scale statefulset
|
|
423
|
+
const scaleCmd = `kubectl scale statefulset ${stsName} -n ${namespace} --replicas=${replicas} --timeout=2m`;
|
|
265
424
|
logger.info(`command: ${scaleCmd}`);
|
|
266
425
|
await execAsync(scaleCmd);
|
|
267
426
|
} catch (e) {
|
|
268
|
-
logger.verbose(`Scale up ${
|
|
427
|
+
logger.verbose(`Scale up ${stsName} skipped: ${e}`);
|
|
269
428
|
}
|
|
270
429
|
}
|
|
271
430
|
} else {
|
|
@@ -279,8 +438,20 @@ export async function enableValidatorDynamicBootNode(instanceName, namespace, sp
|
|
|
279
438
|
}
|
|
280
439
|
}
|
|
281
440
|
await sleep(10 * 1000);
|
|
282
|
-
// Wait for
|
|
283
|
-
for (const component of
|
|
441
|
+
// Wait for StatefulSets to have all replicas ready.
|
|
442
|
+
for (const component of statefulSetComponents){
|
|
443
|
+
try {
|
|
444
|
+
await waitForStatefulSetsReady({
|
|
445
|
+
namespace,
|
|
446
|
+
label: `app.kubernetes.io/component=${component}`,
|
|
447
|
+
timeoutSeconds: 600
|
|
448
|
+
});
|
|
449
|
+
} catch (e) {
|
|
450
|
+
logger.warn(`StatefulSet component ${component} may not be fully ready: ${e}`);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
const nonStatefulSetComponents = podComponents.filter((c)=>!statefulSetComponents.includes(c));
|
|
454
|
+
for (const component of nonStatefulSetComponents){
|
|
284
455
|
await waitForResourceByLabel({
|
|
285
456
|
resource: 'pods',
|
|
286
457
|
namespace: namespace,
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { Logger } from '@aztec/foundation/log';
|
|
2
|
+
/** Result from running a script */
|
|
3
|
+
export type ScriptResult = {
|
|
4
|
+
exitCode: number;
|
|
5
|
+
stdout: string;
|
|
6
|
+
stderr: string;
|
|
7
|
+
};
|
|
2
8
|
/**
|
|
3
9
|
* Returns the absolute path to the git repository root
|
|
4
10
|
*/
|
|
@@ -9,8 +15,16 @@ export declare function getAztecBin(): string;
|
|
|
9
15
|
* @param args - The arguments to pass to the Aztec binary
|
|
10
16
|
* @param logger - The logger to use
|
|
11
17
|
* @param env - Optional environment variables to set for the process
|
|
12
|
-
* @returns The exit code of the Aztec binary
|
|
18
|
+
* @returns The exit code, stdout, and stderr of the Aztec binary
|
|
13
19
|
*/
|
|
14
|
-
export declare function runAztecBin(args: string[], logger: Logger, env?: Record<string, string>): Promise<
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
export declare function runAztecBin(args: string[], logger: Logger, env?: Record<string, string>): Promise<ScriptResult>;
|
|
21
|
+
/**
|
|
22
|
+
* Runs a script from the project root
|
|
23
|
+
* @param script - The path to the script, relative to the project root
|
|
24
|
+
* @param args - The arguments to pass to the script
|
|
25
|
+
* @param logger - The logger to use
|
|
26
|
+
* @param env - Optional environment variables to set for the process
|
|
27
|
+
* @returns The exit code, stdout, and stderr of the script
|
|
28
|
+
*/
|
|
29
|
+
export declare function runProjectScript(script: string, args: string[], logger: Logger, env?: Record<string, string>): Promise<ScriptResult>;
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NwYXJ0YW4vdXRpbHMvc2NyaXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUtwRCxtQ0FBbUM7QUFDbkMsTUFBTSxNQUFNLFlBQVksR0FBRztJQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixNQUFNLEVBQUUsTUFBTSxDQUFDO0NBQ2hCLENBQUM7QUF5Q0Y7O0dBRUc7QUFDSCx3QkFBZ0IsaUJBQWlCLElBQUksTUFBTSxDQVcxQztBQUVELHdCQUFnQixXQUFXLFdBRTFCO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FFL0c7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUM5QixNQUFNLEVBQUUsTUFBTSxFQUNkLElBQUksRUFBRSxNQUFNLEVBQUUsRUFDZCxNQUFNLEVBQUUsTUFBTSxFQUNkLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQzNCLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FHdkIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/scripts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/scripts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD,mCAAmC;AACnC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAyCF;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAW1C;AAED,wBAAgB,WAAW,WAE1B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAE/G;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC,YAAY,CAAC,CAGvB"}
|
|
@@ -4,7 +4,7 @@ import path from 'path';
|
|
|
4
4
|
* @param scriptPath - The path to the script, relative to the project root
|
|
5
5
|
* @param args - The arguments to pass to the script
|
|
6
6
|
* @param logger - The logger to use
|
|
7
|
-
* @returns The exit code of the script
|
|
7
|
+
* @returns The exit code, stdout, and stderr of the script
|
|
8
8
|
*/ function runScript(scriptPath, args, logger, env) {
|
|
9
9
|
const childProcess = spawn(scriptPath, args, {
|
|
10
10
|
stdio: [
|
|
@@ -17,13 +17,21 @@ import path from 'path';
|
|
|
17
17
|
...env
|
|
18
18
|
} : process.env
|
|
19
19
|
});
|
|
20
|
+
const stdoutChunks = [];
|
|
21
|
+
const stderrChunks = [];
|
|
20
22
|
return new Promise((resolve, reject)=>{
|
|
21
|
-
childProcess.on('close', (code)=>resolve(
|
|
23
|
+
childProcess.on('close', (code)=>resolve({
|
|
24
|
+
exitCode: code ?? 0,
|
|
25
|
+
stdout: Buffer.concat(stdoutChunks).toString(),
|
|
26
|
+
stderr: Buffer.concat(stderrChunks).toString()
|
|
27
|
+
}));
|
|
22
28
|
childProcess.on('error', reject);
|
|
23
29
|
childProcess.stdout?.on('data', (data)=>{
|
|
30
|
+
stdoutChunks.push(data);
|
|
24
31
|
logger.info(data.toString());
|
|
25
32
|
});
|
|
26
33
|
childProcess.stderr?.on('data', (data)=>{
|
|
34
|
+
stderrChunks.push(data);
|
|
27
35
|
logger.error(data.toString());
|
|
28
36
|
});
|
|
29
37
|
});
|
|
@@ -53,14 +61,21 @@ export function getAztecBin() {
|
|
|
53
61
|
* @param args - The arguments to pass to the Aztec binary
|
|
54
62
|
* @param logger - The logger to use
|
|
55
63
|
* @param env - Optional environment variables to set for the process
|
|
56
|
-
* @returns The exit code of the Aztec binary
|
|
64
|
+
* @returns The exit code, stdout, and stderr of the Aztec binary
|
|
57
65
|
*/ export function runAztecBin(args, logger, env) {
|
|
58
66
|
return runScript('node', [
|
|
59
67
|
getAztecBin(),
|
|
60
68
|
...args
|
|
61
69
|
], logger, env);
|
|
62
70
|
}
|
|
63
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Runs a script from the project root
|
|
73
|
+
* @param script - The path to the script, relative to the project root
|
|
74
|
+
* @param args - The arguments to pass to the script
|
|
75
|
+
* @param logger - The logger to use
|
|
76
|
+
* @param env - Optional environment variables to set for the process
|
|
77
|
+
* @returns The exit code, stdout, and stderr of the script
|
|
78
|
+
*/ export function runProjectScript(script, args, logger, env) {
|
|
64
79
|
const scriptPath = script.startsWith('/') ? script : path.join(getGitProjectRoot(), script);
|
|
65
80
|
return runScript(scriptPath, args, logger, env);
|
|
66
81
|
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { type Account, type AccountContract } from '@aztec/aztec.js/account';
|
|
2
|
+
import { type CallIntent, type ContractFunctionInteractionCallIntent, type IntentInnerHash, SetPublicAuthwitContractInteraction } from '@aztec/aztec.js/authorization';
|
|
3
|
+
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
4
|
+
import { AccountManager, type SendOptions } from '@aztec/aztec.js/wallet';
|
|
5
|
+
import { Fq, Fr } from '@aztec/foundation/curves/bn254';
|
|
6
|
+
import type { AccessScopes, NotesFilter } from '@aztec/pxe/client/lazy';
|
|
7
|
+
import { type PXEConfig } from '@aztec/pxe/config';
|
|
8
|
+
import { PXE, type PXECreationOptions } from '@aztec/pxe/server';
|
|
9
|
+
import { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
10
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
11
|
+
import type { NoteDao } from '@aztec/stdlib/note';
|
|
12
|
+
import type { BlockHeader, TxHash, TxReceipt, TxSimulationResult } from '@aztec/stdlib/tx';
|
|
13
|
+
import { ExecutionPayload } from '@aztec/stdlib/tx';
|
|
14
|
+
import { BaseWallet, type FeeOptions } from '@aztec/wallet-sdk/base-wallet';
|
|
15
|
+
import { AztecNodeProxy, ProvenTx } from './utils.js';
|
|
16
|
+
/**
|
|
17
|
+
* Data for generating an account.
|
|
18
|
+
*/
|
|
19
|
+
export interface AccountData {
|
|
20
|
+
secret: Fr;
|
|
21
|
+
salt: Fr;
|
|
22
|
+
contract: AccountContract;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Wallet implementation that stores accounts in memory and provides extra debugging
|
|
26
|
+
* utilities
|
|
27
|
+
* It is intended to be used in e2e tests.
|
|
28
|
+
*/
|
|
29
|
+
export declare class TestWallet extends BaseWallet {
|
|
30
|
+
private readonly nodeRef;
|
|
31
|
+
constructor(pxe: PXE, nodeRef: AztecNodeProxy);
|
|
32
|
+
static create(node: AztecNode, overridePXEConfig?: Partial<PXEConfig>, options?: PXECreationOptions): Promise<TestWallet>;
|
|
33
|
+
/**
|
|
34
|
+
* Updates the underlying node that this wallet and its PXE communicate with.
|
|
35
|
+
* @param node - The new AztecNode to forward all calls to.
|
|
36
|
+
*/
|
|
37
|
+
updateNode(node: AztecNode): void;
|
|
38
|
+
createSchnorrAccount(secret: Fr, salt: Fr, signingKey?: Fq): Promise<AccountManager>;
|
|
39
|
+
createECDSARAccount(secret: Fr, salt: Fr, signingKey: Buffer): Promise<AccountManager>;
|
|
40
|
+
createECDSAKAccount(secret: Fr, salt: Fr, signingKey: Buffer): Promise<AccountManager>;
|
|
41
|
+
getFakeAccountDataFor(address: AztecAddress): Promise<{
|
|
42
|
+
account: import("@aztec/aztec.js/account").BaseAccount;
|
|
43
|
+
instance: import("@aztec/stdlib/contract").ContractInstanceWithAddress;
|
|
44
|
+
artifact: import("@aztec/stdlib/abi").ContractArtifact;
|
|
45
|
+
}>;
|
|
46
|
+
protected accounts: Map<string, Account>;
|
|
47
|
+
/**
|
|
48
|
+
* Toggle for running "simulated simulations" when calling simulateTx.
|
|
49
|
+
*
|
|
50
|
+
* When this flag is true, simulateViaEntrypoint constructs a request using a fake account
|
|
51
|
+
* (and accepts contract overrides on the input) and the PXE emulates kernel effects without
|
|
52
|
+
* generating kernel witnesses. When false, simulateViaEntrypoint defers to the standard
|
|
53
|
+
* simulation path via the real account entrypoint.
|
|
54
|
+
*/
|
|
55
|
+
private simulatedSimulations;
|
|
56
|
+
enableSimulatedSimulations(): void;
|
|
57
|
+
disableSimulatedSimulations(): void;
|
|
58
|
+
setMinFeePadding(value?: number): void;
|
|
59
|
+
protected getAccountFromAddress(address: AztecAddress): Promise<Account>;
|
|
60
|
+
getAccounts(): Promise<{
|
|
61
|
+
alias: string;
|
|
62
|
+
item: AztecAddress;
|
|
63
|
+
}[]>;
|
|
64
|
+
createAccount(accountData?: AccountData): Promise<AccountManager>;
|
|
65
|
+
lookupValidity(onBehalfOf: AztecAddress, intent: IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent, witness: AuthWitness): Promise<{
|
|
66
|
+
isValidInPrivate: boolean;
|
|
67
|
+
isValidInPublic: boolean;
|
|
68
|
+
}>;
|
|
69
|
+
setPublicAuthWit(from: AztecAddress, messageHashOrIntent: Fr | IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent, authorized: boolean): Promise<SetPublicAuthwitContractInteraction>;
|
|
70
|
+
createAuthWit(from: AztecAddress, intent: IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent): Promise<AuthWitness>;
|
|
71
|
+
/**
|
|
72
|
+
* Override simulateViaEntrypoint to use fake accounts for kernelless simulation
|
|
73
|
+
* when simulatedSimulations is enabled. Otherwise falls through to the real entrypoint path.
|
|
74
|
+
*/
|
|
75
|
+
protected simulateViaEntrypoint(executionPayload: ExecutionPayload, from: AztecAddress, feeOptions: FeeOptions, scopes: AccessScopes, skipTxValidation?: boolean, skipFeeEnforcement?: boolean): Promise<TxSimulationResult>;
|
|
76
|
+
proveTx(exec: ExecutionPayload, opts: Omit<SendOptions, 'wait'>): Promise<ProvenTx>;
|
|
77
|
+
getTxReceipt(txHash: TxHash): Promise<TxReceipt>;
|
|
78
|
+
getNotes(filter: NotesFilter): Promise<NoteDao[]>;
|
|
79
|
+
getSyncedBlockHeader(): Promise<BlockHeader>;
|
|
80
|
+
sync(): Promise<void>;
|
|
81
|
+
stop(): Promise<void>;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LXdhbGxldC90ZXN0X3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXFCLE1BQU0seUJBQXlCLENBQUM7QUFDaEcsT0FBTyxFQUNMLEtBQUssVUFBVSxFQUNmLEtBQUsscUNBQXFDLEVBQzFDLEtBQUssZUFBZSxFQUNwQixtQ0FBbUMsRUFJcEMsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFnQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxrQkFBa0IsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0QsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsZ0JBQWdCLEVBQTBCLE1BQU0sa0JBQWtCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxL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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_wallet.d.ts","sourceRoot":"","sources":["../../src/test-wallet/test_wallet.ts"],"names":[],"mappings":"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"}
|