@aztec/end-to-end 0.0.1-commit.b33fc05d0 → 0.0.1-commit.b3d3157a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -0
- package/dest/bench/client_flows/benchmark.d.ts +15 -1
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +17 -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 +27 -38
- package/dest/bench/utils.d.ts +1 -1
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +2 -0
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +5 -4
- 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 +14 -5
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +15 -4
- 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 +39 -7
- package/dest/e2e_deploy_contract/deploy_test.d.ts +3 -3
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +2 -1
- package/dest/e2e_epochs/epochs_test.d.ts +25 -2
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +86 -13
- package/dest/e2e_fees/fees_test.d.ts +5 -2
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +32 -6
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +3 -3
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +2 -1
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.js +4 -3
- package/dest/e2e_p2p/p2p_network.d.ts +10 -9
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +46 -27
- package/dest/e2e_p2p/reqresp/utils.d.ts +1 -1
- package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -1
- package/dest/e2e_p2p/reqresp/utils.js +29 -13
- package/dest/e2e_p2p/shared.d.ts +23 -14
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +62 -57
- package/dest/e2e_token_contract/token_contract_test.d.ts +3 -3
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +4 -2
- package/dest/fixtures/authwit_proxy.d.ts +1 -1
- package/dest/fixtures/authwit_proxy.d.ts.map +1 -1
- package/dest/fixtures/authwit_proxy.js +4 -0
- package/dest/fixtures/e2e_prover_test.d.ts +6 -5
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +9 -13
- package/dest/fixtures/fixtures.d.ts +70 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +65 -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 +2 -2
- package/dest/fixtures/ha_setup.d.ts.map +1 -1
- package/dest/fixtures/ha_setup.js +1 -1
- package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts +25 -0
- package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts.map +1 -0
- package/dest/fixtures/schnorr_hardcoded_account_contract.js +37 -0
- package/dest/fixtures/setup.d.ts +44 -11
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +157 -28
- package/dest/fixtures/setup_p2p_test.d.ts +10 -6
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +8 -8
- package/dest/fixtures/token_utils.d.ts +1 -1
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +2 -5
- package/dest/fixtures/utils.d.ts +2 -2
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +1 -1
- package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
- package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
- package/dest/forward-compatibility/wallet_service.d.ts +3 -0
- package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_service.js +109 -0
- package/dest/install_legacy_contracts.d.cts +10 -0
- package/dest/install_legacy_contracts.d.cts.map +1 -0
- package/dest/legacy-jest-resolver.d.cts +3 -0
- package/dest/legacy-jest-resolver.d.cts.map +1 -0
- package/dest/shared/cross_chain_test_harness.d.ts +4 -2
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +9 -5
- package/dest/shared/gas_portal_test_harness.d.ts +8 -5
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +17 -8
- 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 +50 -32
- package/dest/shared/wait_for_l1_to_l2_message.d.ts +13 -0
- package/dest/shared/wait_for_l1_to_l2_message.d.ts.map +1 -0
- package/dest/shared/wait_for_l1_to_l2_message.js +10 -0
- package/dest/simulators/lending_simulator.d.ts +10 -3
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +24 -12
- package/dest/simulators/token_simulator.js +1 -1
- package/dest/spartan/setup_test_wallets.d.ts +1 -1
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +72 -48
- package/dest/spartan/tx_metrics.d.ts +18 -4
- package/dest/spartan/tx_metrics.d.ts.map +1 -1
- package/dest/spartan/tx_metrics.js +73 -20
- package/dest/spartan/utils/config.d.ts +9 -35
- package/dest/spartan/utils/config.d.ts.map +1 -1
- package/dest/spartan/utils/nodes.js +2 -2
- package/dest/test-wallet/test_wallet.d.ts +25 -23
- package/dest/test-wallet/test_wallet.d.ts.map +1 -1
- package/dest/test-wallet/test_wallet.js +146 -87
- package/dest/test-wallet/utils.d.ts +3 -3
- package/dest/test-wallet/utils.d.ts.map +1 -1
- package/dest/test-wallet/utils.js +2 -7
- package/dest/test-wallet/wallet_worker_script.js +7 -2
- package/dest/test-wallet/worker_wallet.d.ts +5 -4
- package/dest/test-wallet/worker_wallet.d.ts.map +1 -1
- package/dest/test-wallet/worker_wallet.js +6 -2
- package/dest/test-wallet/worker_wallet_schema.d.ts +110 -224
- package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -1
- package/dest/test-wallet/worker_wallet_schema.js +14 -2
- package/package.json +46 -42
- package/src/bench/client_flows/benchmark.ts +19 -0
- package/src/bench/client_flows/client_flows_benchmark.ts +64 -53
- package/src/bench/utils.ts +2 -1
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +24 -10
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +49 -11
- package/src/e2e_deploy_contract/deploy_test.ts +3 -2
- package/src/e2e_epochs/epochs_test.ts +98 -11
- package/src/e2e_fees/fees_test.ts +37 -4
- package/src/e2e_nested_contract/nested_contract_test.ts +3 -1
- package/src/e2e_p2p/inactivity_slash_test.ts +4 -3
- package/src/e2e_p2p/p2p_network.ts +57 -39
- package/src/e2e_p2p/reqresp/utils.ts +30 -12
- package/src/e2e_p2p/shared.ts +60 -71
- package/src/e2e_token_contract/token_contract_test.ts +12 -2
- package/src/fixtures/authwit_proxy.ts +4 -0
- package/src/fixtures/e2e_prover_test.ts +15 -18
- package/src/fixtures/fixtures.ts +83 -0
- package/src/fixtures/get_bb_config.ts +7 -6
- package/src/fixtures/ha_setup.ts +4 -2
- package/src/fixtures/schnorr_hardcoded_account_contract.ts +49 -0
- package/src/fixtures/setup.ts +186 -33
- package/src/fixtures/setup_p2p_test.ts +13 -9
- package/src/fixtures/token_utils.ts +1 -4
- package/src/fixtures/utils.ts +2 -0
- package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
- package/src/forward-compatibility/wallet_service.ts +104 -0
- package/src/guides/up_quick_start.sh +0 -2
- package/src/install_legacy_contracts.cjs +75 -0
- package/src/legacy-jest-resolver.cjs +112 -0
- package/src/shared/cross_chain_test_harness.ts +14 -4
- package/src/shared/gas_portal_test_harness.ts +20 -10
- package/src/shared/uniswap_l1_l2.ts +84 -40
- package/src/shared/wait_for_l1_to_l2_message.ts +23 -0
- package/src/simulators/lending_simulator.ts +28 -12
- package/src/simulators/token_simulator.ts +1 -1
- package/src/spartan/setup_test_wallets.ts +69 -43
- package/src/spartan/tx_metrics.ts +81 -23
- package/src/spartan/utils/nodes.ts +2 -2
- package/src/test-wallet/test_wallet.ts +174 -104
- package/src/test-wallet/utils.ts +3 -7
- package/src/test-wallet/wallet_worker_script.ts +5 -2
- package/src/test-wallet/worker_wallet.ts +10 -5
- package/src/test-wallet/worker_wallet_schema.ts +2 -2
package/dest/fixtures/setup.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { SchnorrAccountContractArtifact } from '@aztec/accounts/schnorr';
|
|
2
2
|
import { generateSchnorrAccounts } from '@aztec/accounts/testing';
|
|
3
3
|
import { AztecNodeService, getConfigEnvVars } from '@aztec/aztec-node';
|
|
4
|
-
import {
|
|
4
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
5
|
+
import { EthAddress } from '@aztec/aztec.js/addresses';
|
|
5
6
|
import { BatchCall, getContractClassFromArtifact, waitForProven } from '@aztec/aztec.js/contracts';
|
|
6
7
|
import { publishContractClass, publishInstance } from '@aztec/aztec.js/deployment';
|
|
7
8
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
@@ -28,6 +29,10 @@ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
|
28
29
|
import { MockGossipSubNetwork, getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
|
|
29
30
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
30
31
|
import { getPXEConfig } from '@aztec/pxe/server';
|
|
32
|
+
import { AuthRegistryArtifact, getStandardAuthRegistry } from '@aztec/standard-contracts/auth-registry';
|
|
33
|
+
import { HandshakeRegistryArtifact, getStandardHandshakeRegistry } from '@aztec/standard-contracts/handshake-registry';
|
|
34
|
+
import { PublicChecksArtifact, getStandardPublicChecks } from '@aztec/standard-contracts/public-checks';
|
|
35
|
+
import { ARTIFACT_VERSION_BEFORE_INJECTION } from '@aztec/stdlib/abi';
|
|
31
36
|
import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
|
|
32
37
|
import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
33
38
|
import { getConfigEnvVars as getTelemetryConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
@@ -105,16 +110,36 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
105
110
|
teardown
|
|
106
111
|
};
|
|
107
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* When CONTRACT_ARTIFACTS_VERSION is set (backwards compatibility testing), asserts that the loaded artifact's
|
|
115
|
+
* aztecVersion matches the expected version. This is a sanity check verifying that the legacy artifact resolver
|
|
116
|
+
* actually swapped in the correct version.
|
|
117
|
+
*/ function assertContractArtifactsVersion() {
|
|
118
|
+
const expected = process.env.CONTRACT_ARTIFACTS_VERSION;
|
|
119
|
+
if (!expected) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const { aztecVersion } = SponsoredFPCContract.artifact;
|
|
123
|
+
// TODO(F-557): Remove this bypass once pre-version artifacts are no longer tested.
|
|
124
|
+
if (aztecVersion === ARTIFACT_VERSION_BEFORE_INJECTION) {
|
|
125
|
+
createLogger('e2e:setup').info(`Skipping artifact version check: artifact predates version injection (CONTRACT_ARTIFACTS_VERSION=${expected})`);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (aztecVersion !== expected) {
|
|
129
|
+
throw new Error(`Artifact version mismatch: expected ${expected} but got ${aztecVersion}. ` + `The legacy artifact resolver may not have swapped in the correct version.`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
108
132
|
/**
|
|
109
133
|
* Sets up the environment for the end-to-end tests.
|
|
110
134
|
* @param numberOfAccounts - The number of new accounts to be created once the PXE is initiated.
|
|
111
135
|
* @param opts - Options to pass to the node initialization and to the setup script.
|
|
112
136
|
* @param pxeOpts - Options to pass to the PXE initialization.
|
|
113
137
|
*/ export async function setup(numberOfAccounts = 1, opts = {}, pxeOpts = {}, chain = foundry) {
|
|
138
|
+
assertContractArtifactsVersion();
|
|
114
139
|
let anvil;
|
|
115
140
|
try {
|
|
116
141
|
opts.aztecTargetCommitteeSize ??= 0;
|
|
117
|
-
opts.
|
|
142
|
+
opts.slasherEnabled ??= false;
|
|
118
143
|
const config = {
|
|
119
144
|
...getConfigEnvVars(),
|
|
120
145
|
...opts
|
|
@@ -140,6 +165,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
140
165
|
if (!config.dataDirectory) {
|
|
141
166
|
config.dataDirectory = directoryToCleanup;
|
|
142
167
|
}
|
|
168
|
+
const dateProvider = new TestDateProvider();
|
|
143
169
|
if (!config.l1RpcUrls?.length) {
|
|
144
170
|
if (!isAnvilTestChain(chain.id)) {
|
|
145
171
|
throw new Error(`No ETHEREUM_HOSTS set but non anvil chain requested`);
|
|
@@ -148,7 +174,8 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
148
174
|
l1BlockTime: opts.ethereumSlotDuration,
|
|
149
175
|
accounts: opts.anvilAccounts,
|
|
150
176
|
port: opts.anvilPort ?? (process.env.ANVIL_PORT ? parseInt(process.env.ANVIL_PORT) : undefined),
|
|
151
|
-
slotsInAnEpoch: opts.anvilSlotsInAnEpoch
|
|
177
|
+
slotsInAnEpoch: opts.anvilSlotsInAnEpoch,
|
|
178
|
+
dateProvider
|
|
152
179
|
});
|
|
153
180
|
anvil = res.anvil;
|
|
154
181
|
config.l1RpcUrls = [
|
|
@@ -161,7 +188,6 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
161
188
|
logger.info(`Logging metrics to ${filename}`);
|
|
162
189
|
setupMetricsLogger(filename);
|
|
163
190
|
}
|
|
164
|
-
const dateProvider = new TestDateProvider();
|
|
165
191
|
const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls, dateProvider);
|
|
166
192
|
if (opts.stateLoad) {
|
|
167
193
|
await ethCheatCodes.loadChainState(opts.stateLoad);
|
|
@@ -203,7 +229,8 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
203
229
|
const sponsoredFPCAddress = await getSponsoredFPCAddress();
|
|
204
230
|
addressesToFund.push(sponsoredFPCAddress);
|
|
205
231
|
}
|
|
206
|
-
const
|
|
232
|
+
const genesisTimestamp = BigInt(Math.floor(Date.now() / 1000));
|
|
233
|
+
const { genesisArchiveRoot, genesis, fundingNeeded } = await getGenesisValues(addressesToFund, opts.initialAccountFeeJuice, opts.genesisPublicData, genesisTimestamp);
|
|
207
234
|
const wasAutomining = await ethCheatCodes.isAutoMining();
|
|
208
235
|
const enableAutomine = opts.automineL1Setup && !wasAutomining && isAnvilTestChain(chain.id);
|
|
209
236
|
if (enableAutomine) {
|
|
@@ -228,23 +255,41 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
228
255
|
feeJuicePortalInitialBalance: fundingNeeded,
|
|
229
256
|
realVerifier: false
|
|
230
257
|
});
|
|
231
|
-
config
|
|
258
|
+
Object.assign(config, deployL1ContractsValues.l1ContractAddresses);
|
|
232
259
|
config.rollupVersion = deployL1ContractsValues.rollupVersion;
|
|
260
|
+
// Propagate L1-contracts-config overrides back to the node config so the archiver's
|
|
261
|
+
// `l1Constants` (and any other node-side consumer) agrees with what was actually deployed.
|
|
262
|
+
// Without this, a per-test override like `aztecEpochDuration: 4` lands on the rollup contract
|
|
263
|
+
// but the node config keeps the default (32), so `archiver.isEpochComplete(0)` computes
|
|
264
|
+
// `endSlot=31` and `EpochTestSettler`/`EpochMonitor` never fires — letting the
|
|
265
|
+
// `aztecProofSubmissionEpochs` window expire mid-test and prune the pending chain.
|
|
266
|
+
// Skip undefined values: callers (e.g. `P2PNetworkTest`) sometimes build `l1ContractsArgs`
|
|
267
|
+
// by spreading a partial `AztecNodeConfig`, which leaves unset fields (notably `dataDirectory`)
|
|
268
|
+
// as `undefined`. A blind Object.assign would then clobber the temp `dataDirectory` set earlier
|
|
269
|
+
// in this function and crash `setupSharedBlobStorage`.
|
|
270
|
+
if (opts.l1ContractsArgs) {
|
|
271
|
+
for (const [key, value] of Object.entries(opts.l1ContractsArgs)){
|
|
272
|
+
if (value !== undefined) {
|
|
273
|
+
config[key] = value;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
233
277
|
if (enableAutomine) {
|
|
234
278
|
await ethCheatCodes.setAutomine(false);
|
|
235
279
|
await ethCheatCodes.setIntervalMining(config.ethereumSlotDuration);
|
|
236
280
|
}
|
|
237
|
-
//
|
|
238
|
-
//
|
|
239
|
-
//
|
|
240
|
-
|
|
241
|
-
|
|
281
|
+
// In compose mode (no local anvil), sync dateProvider to L1 time since it may have drifted
|
|
282
|
+
// ahead of system time due to the local-network watcher warping time forward on each filled slot.
|
|
283
|
+
// When running with a local anvil, the dateProvider is kept in sync via the stdout listener.
|
|
284
|
+
if (!anvil) {
|
|
285
|
+
dateProvider.setTime(await ethCheatCodes.lastBlockTimestamp() * 1000);
|
|
286
|
+
}
|
|
242
287
|
if (opts.l2StartTime) {
|
|
243
288
|
await ethCheatCodes.warp(opts.l2StartTime, {
|
|
244
289
|
resetBlockInterval: true
|
|
245
290
|
});
|
|
246
291
|
}
|
|
247
|
-
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls, dateProvider), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
|
|
292
|
+
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls, dateProvider), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider, opts.anvilTestWatcherOpts);
|
|
248
293
|
if (!opts.disableAnvilTestWatcher) {
|
|
249
294
|
await watcher.start();
|
|
250
295
|
}
|
|
@@ -265,7 +310,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
265
310
|
let mockGossipSubNetwork;
|
|
266
311
|
let p2pClientDeps = undefined;
|
|
267
312
|
if (opts.mockGossipSubNetwork) {
|
|
268
|
-
mockGossipSubNetwork = new MockGossipSubNetwork();
|
|
313
|
+
mockGossipSubNetwork = new MockGossipSubNetwork(opts.mockGossipSubNetworkLatency);
|
|
269
314
|
p2pClientDeps = {
|
|
270
315
|
p2pServiceFactory: getMockPubSubP2PServiceFactory(mockGossipSubNetwork)
|
|
271
316
|
};
|
|
@@ -278,11 +323,17 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
278
323
|
if (originalMinTxsPerBlock === undefined) {
|
|
279
324
|
throw new Error('minTxsPerBlock is undefined in e2e test setup');
|
|
280
325
|
}
|
|
281
|
-
//
|
|
326
|
+
// Whether we're deploying accounts (and therefore need reliable block inclusion past genesis)
|
|
282
327
|
const shouldDeployAccounts = numberOfAccounts > 0 && !opts.skipAccountDeployment;
|
|
283
328
|
// Only set minTxsPerBlock=0 if we need an empty block (no accounts at all, not skipped deployment)
|
|
284
329
|
const needsEmptyBlock = numberOfAccounts === 0 && !opts.skipAccountDeployment;
|
|
285
|
-
|
|
330
|
+
// Pipelining is always on: the proposer builds during slot N-1 for slot N. A tx submitted at
|
|
331
|
+
// slot N start arrives after that build, so forcing minTxsPerBlock=1 would stall the chain on
|
|
332
|
+
// alternating slots -- hence empty checkpoints are allowed (minTxsPerBlock=0) for account
|
|
333
|
+
// deployment. Automine is unaffected: its runBuild clamps mempool builds to
|
|
334
|
+
// Math.max(minTxsPerBlock ?? 1, 1) and still requires minValidTxs: 1.
|
|
335
|
+
const accountsDeployMinTxs = 0;
|
|
336
|
+
config.minTxsPerBlock = shouldDeployAccounts ? accountsDeployMinTxs : needsEmptyBlock ? 0 : originalMinTxsPerBlock;
|
|
286
337
|
config.p2pEnabled = opts.mockGossipSubNetwork || config.p2pEnabled;
|
|
287
338
|
config.p2pIp = opts.p2pIp ?? config.p2pIp ?? '127.0.0.1';
|
|
288
339
|
if (!config.disableValidator) {
|
|
@@ -292,14 +343,26 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
292
343
|
]);
|
|
293
344
|
}
|
|
294
345
|
}
|
|
346
|
+
// When skipInitialSequencer is set, the initial node is a lightweight RPC-only node.
|
|
347
|
+
// We apply these overrides to a copy so they don't leak into the returned config.
|
|
348
|
+
// Keep P2P enabled if mockGossipSubNetwork is used (needed for tx propagation to validators).
|
|
349
|
+
const initialNodeConfig = opts.skipInitialSequencer ? {
|
|
350
|
+
...config,
|
|
351
|
+
disableValidator: true,
|
|
352
|
+
...opts.mockGossipSubNetwork ? {} : {
|
|
353
|
+
p2pEnabled: false,
|
|
354
|
+
bootstrapNodes: []
|
|
355
|
+
}
|
|
356
|
+
} : config;
|
|
295
357
|
const aztecNodeService = await withLoggerBindings({
|
|
296
358
|
actor: 'node-0'
|
|
297
|
-
}, ()=>AztecNodeService.createAndSync(
|
|
359
|
+
}, ()=>AztecNodeService.createAndSync(initialNodeConfig, {
|
|
298
360
|
dateProvider,
|
|
299
361
|
telemetry: telemetryClient,
|
|
300
362
|
p2pClientDeps
|
|
301
363
|
}, {
|
|
302
|
-
|
|
364
|
+
genesis,
|
|
365
|
+
dontStartSequencer: opts.skipInitialSequencer
|
|
303
366
|
}));
|
|
304
367
|
const sequencerClient = aztecNodeService.getSequencer();
|
|
305
368
|
let proverNode = undefined;
|
|
@@ -322,7 +385,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
322
385
|
p2pClientDeps,
|
|
323
386
|
telemetry: telemetryClient
|
|
324
387
|
}, {
|
|
325
|
-
|
|
388
|
+
genesis
|
|
326
389
|
}));
|
|
327
390
|
}
|
|
328
391
|
const sequencerDelayer = sequencerClient?.getDelayer();
|
|
@@ -336,12 +399,13 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
336
399
|
// For tests we only want proving enabled if specifically requested
|
|
337
400
|
pxeConfig.proverEnabled = !!pxeOpts.proverEnabled;
|
|
338
401
|
const wallet = await TestWallet.create(aztecNodeService, pxeConfig, {
|
|
339
|
-
loggerActorLabel: 'pxe-0'
|
|
402
|
+
loggerActorLabel: 'pxe-0',
|
|
403
|
+
...opts.pxeCreationOptions
|
|
340
404
|
});
|
|
341
405
|
if (opts.walletMinFeePadding !== undefined) {
|
|
342
406
|
wallet.setMinFeePadding(opts.walletMinFeePadding);
|
|
343
407
|
}
|
|
344
|
-
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, aztecNodeService, dateProvider);
|
|
408
|
+
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, aztecNodeService, dateProvider, aztecNodeService.getAutomineSequencer());
|
|
345
409
|
if (opts.aztecTargetCommitteeSize && opts.aztecTargetCommitteeSize > 0 || opts.initialValidators && opts.initialValidators.length > 0) {
|
|
346
410
|
// We need to advance such that the committee is set up.
|
|
347
411
|
await cheatCodes.rollup.advanceToEpoch(EpochNumber.fromBigInt(BigInt(await cheatCodes.rollup.getEpoch()) + BigInt(config.lagInEpochsForValidatorSet + 1)));
|
|
@@ -349,13 +413,20 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
349
413
|
await cheatCodes.rollup.debugRollup();
|
|
350
414
|
}
|
|
351
415
|
let accounts = [];
|
|
352
|
-
if (
|
|
353
|
-
logger.info(
|
|
416
|
+
if (opts.skipInitialSequencer) {
|
|
417
|
+
logger.info('Sequencer not started on initial node, skipping block progression');
|
|
418
|
+
} else if (shouldDeployAccounts) {
|
|
419
|
+
logger.info(`${numberOfAccounts} accounts are being deployed. Reliably progressing past genesis by waiting for the accounts to be deployed`);
|
|
354
420
|
const accountsData = initialFundedAccounts.slice(0, numberOfAccounts);
|
|
355
421
|
const accountManagers = await deployFundedSchnorrAccounts(wallet, accountsData);
|
|
356
422
|
accounts = accountManagers.map((accountManager)=>accountManager.address);
|
|
357
423
|
} else if (needsEmptyBlock) {
|
|
358
424
|
logger.info('No accounts are being deployed, waiting for an empty block 1 to be mined');
|
|
425
|
+
// AutomineSequencer only builds on tx arrival; explicitly request an empty block.
|
|
426
|
+
const automine = aztecNodeService.getAutomineSequencer();
|
|
427
|
+
if (automine) {
|
|
428
|
+
await automine.buildEmptyBlock();
|
|
429
|
+
}
|
|
359
430
|
while(await aztecNodeService.getBlockNumber() === 0){
|
|
360
431
|
await sleep(2000);
|
|
361
432
|
}
|
|
@@ -408,7 +479,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
408
479
|
initialFundedAccounts,
|
|
409
480
|
logger,
|
|
410
481
|
mockGossipSubNetwork,
|
|
411
|
-
|
|
482
|
+
genesis,
|
|
412
483
|
proverNode,
|
|
413
484
|
sequencerDelayer,
|
|
414
485
|
proverDelayer,
|
|
@@ -470,7 +541,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
470
541
|
}
|
|
471
542
|
export async function waitForProvenChain(node, targetBlock, timeoutSec = 60, intervalSec = 1) {
|
|
472
543
|
targetBlock ??= await node.getBlockNumber();
|
|
473
|
-
await retryUntil(async ()=>await node.
|
|
544
|
+
await retryUntil(async ()=>await node.getBlockNumber('proven') >= targetBlock, 'proven chain status', timeoutSec, intervalSec);
|
|
474
545
|
}
|
|
475
546
|
/**
|
|
476
547
|
* Creates an AztecNodeService with the prover node enabled as a subsystem.
|
|
@@ -489,7 +560,7 @@ export async function waitForProvenChain(node, targetBlock, timeoutSec = 60, int
|
|
|
489
560
|
new SecretValue(proverNodePrivateKey)
|
|
490
561
|
]
|
|
491
562
|
}, deps, {
|
|
492
|
-
|
|
563
|
+
genesis: options.genesis,
|
|
493
564
|
dontStartProverNode: options.dontStart
|
|
494
565
|
});
|
|
495
566
|
if (!proverNode.getProverNode()) {
|
|
@@ -524,6 +595,63 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
|
|
|
524
595
|
const diffs = outputs.map((output, i)=>output - initialValues[i]);
|
|
525
596
|
expect(diffs).toEqual(expectedDiffs);
|
|
526
597
|
}
|
|
598
|
+
/**
|
|
599
|
+
* Registers the auth_registry contract class and publishes its standard instance if not already
|
|
600
|
+
* present, and registers the artifact with PXE. Publishing is required before exercising the public
|
|
601
|
+
* authwit path (which relies on the AVM's deployment-nullifier check); the PXE-side registration is
|
|
602
|
+
* required so revert messages from AuthRegistry calls can be enriched (otherwise assertion strings
|
|
603
|
+
* surface as generic "Assertion failed:" and tests that match on the real message fail).
|
|
604
|
+
*/ export async function ensureAuthRegistryPublished(wallet, from) {
|
|
605
|
+
const { instance, contractClass } = await getStandardAuthRegistry();
|
|
606
|
+
if (!(await wallet.getContractClassMetadata(contractClass.id)).isContractClassPubliclyRegistered) {
|
|
607
|
+
await (await publishContractClass(wallet, AuthRegistryArtifact)).send({
|
|
608
|
+
from
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
if (!(await wallet.getContractMetadata(instance.address)).isContractPublished) {
|
|
612
|
+
await publishInstance(wallet, instance).send({
|
|
613
|
+
from
|
|
614
|
+
});
|
|
615
|
+
}
|
|
616
|
+
await wallet.registerContract(instance, AuthRegistryArtifact);
|
|
617
|
+
}
|
|
618
|
+
/**
|
|
619
|
+
* Registers the public_checks contract class and publishes its standard instance if not already
|
|
620
|
+
* present, and registers the artifact with PXE. Required for any contract that calls
|
|
621
|
+
* `privately_check_timestamp` / `privately_check_block_number` (which dispatch into the
|
|
622
|
+
* deployed PublicChecks contract via an enqueued public call).
|
|
623
|
+
*/ export async function ensurePublicChecksPublished(wallet, from) {
|
|
624
|
+
const { instance, contractClass } = await getStandardPublicChecks();
|
|
625
|
+
if (!(await wallet.getContractClassMetadata(contractClass.id)).isContractClassPubliclyRegistered) {
|
|
626
|
+
await (await publishContractClass(wallet, PublicChecksArtifact)).send({
|
|
627
|
+
from
|
|
628
|
+
});
|
|
629
|
+
}
|
|
630
|
+
if (!(await wallet.getContractMetadata(instance.address)).isContractPublished) {
|
|
631
|
+
await publishInstance(wallet, instance).send({
|
|
632
|
+
from
|
|
633
|
+
});
|
|
634
|
+
}
|
|
635
|
+
await wallet.registerContract(instance, PublicChecksArtifact);
|
|
636
|
+
}
|
|
637
|
+
/**
|
|
638
|
+
* Registers the handshake_registry contract class and publishes its standard instance if not
|
|
639
|
+
* already present, and registers the artifact with PXE. Required for constrained-delivery flows
|
|
640
|
+
* that call into the HandshakeRegistry at its well-known address.
|
|
641
|
+
*/ export async function ensureHandshakeRegistryPublished(wallet, from) {
|
|
642
|
+
const { instance, contractClass } = await getStandardHandshakeRegistry();
|
|
643
|
+
if (!(await wallet.getContractClassMetadata(contractClass.id)).isContractClassPubliclyRegistered) {
|
|
644
|
+
await (await publishContractClass(wallet, HandshakeRegistryArtifact)).send({
|
|
645
|
+
from
|
|
646
|
+
});
|
|
647
|
+
}
|
|
648
|
+
if (!(await wallet.getContractMetadata(instance.address)).isContractPublished) {
|
|
649
|
+
await publishInstance(wallet, instance).send({
|
|
650
|
+
from
|
|
651
|
+
});
|
|
652
|
+
}
|
|
653
|
+
await wallet.registerContract(instance, HandshakeRegistryArtifact);
|
|
654
|
+
}
|
|
527
655
|
/**
|
|
528
656
|
* Registers the contract class used for test accounts and publicly deploys the instances requested.
|
|
529
657
|
* Use this when you need to make a public call to an account contract, such as for requesting a public authwit.
|
|
@@ -550,7 +678,7 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
|
|
|
550
678
|
/**
|
|
551
679
|
* Helper function to deploy accounts.
|
|
552
680
|
* Returns deployed account data that can be used by tests.
|
|
553
|
-
*/ export const deployAccounts = (numberOfAccounts, logger)=>async ({ wallet, initialFundedAccounts })=>{
|
|
681
|
+
*/ export const deployAccounts = (numberOfAccounts, logger, deployOptions)=>async ({ wallet, initialFundedAccounts })=>{
|
|
554
682
|
if (initialFundedAccounts.length < numberOfAccounts) {
|
|
555
683
|
throw new Error(`Cannot deploy more than ${initialFundedAccounts.length} initial accounts.`);
|
|
556
684
|
}
|
|
@@ -561,8 +689,9 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
|
|
|
561
689
|
const accountManager = await wallet.createSchnorrAccount(deployedAccounts[i].secret, deployedAccounts[i].salt, deployedAccounts[i].signingKey);
|
|
562
690
|
const deployMethod = await accountManager.getDeployMethod();
|
|
563
691
|
await deployMethod.send({
|
|
564
|
-
from:
|
|
565
|
-
skipClassPublication: i !== 0
|
|
692
|
+
from: NO_FROM,
|
|
693
|
+
skipClassPublication: i !== 0,
|
|
694
|
+
...deployOptions
|
|
566
695
|
});
|
|
567
696
|
}
|
|
568
697
|
return {
|
|
@@ -3,28 +3,32 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
5
5
|
import type { DateProvider } from '@aztec/foundation/timer';
|
|
6
|
-
import type {
|
|
6
|
+
import type { GenesisData } from '@aztec/stdlib/world-state';
|
|
7
7
|
export declare const ATTESTER_PRIVATE_KEYS_START_INDEX = 3;
|
|
8
8
|
export declare function generatePrivateKeys(startIndex: number, numberOfKeys: number): `0x${string}`[];
|
|
9
9
|
export declare function createNodes(config: AztecNodeConfig & {
|
|
10
10
|
dontStartSequencer?: boolean;
|
|
11
|
-
}, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number,
|
|
11
|
+
}, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, genesis?: GenesisData, dataDirectory?: string, metricsPort?: number, indexOffset?: number, validatorsPerNode?: number): Promise<AztecNodeService[]>;
|
|
12
12
|
/** Extended config type for createNode with test-specific overrides. */
|
|
13
13
|
export type CreateNodeConfig = AztecNodeConfig & {
|
|
14
14
|
/** Whether to skip starting the sequencer. */
|
|
15
15
|
dontStartSequencer?: boolean;
|
|
16
16
|
/** Override the private key (instead of deriving from addressIndex). */
|
|
17
17
|
validatorPrivateKey?: `0x${string}`;
|
|
18
|
+
/** Corrupt only the block proposal at this indexWithinCheckpoint (testing only). */
|
|
19
|
+
invalidBlockProposalIndexWithinCheckpoint?: number;
|
|
20
|
+
/** Accept proposal gossip regardless of slot timing (testing only). */
|
|
21
|
+
skipProposalSlotValidation?: boolean;
|
|
18
22
|
};
|
|
19
23
|
/** Creates a P2P enabled instance of Aztec Node Service with a validator. */
|
|
20
|
-
export declare function createNode(config: CreateNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number | number[],
|
|
24
|
+
export declare function createNode(config: CreateNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number | number[], genesis?: GenesisData, dataDirectory?: string, metricsPort?: number): Promise<AztecNodeService>;
|
|
21
25
|
/** Creates a P2P enabled instance of Aztec Node Service without a validator */
|
|
22
|
-
export declare function createNonValidatorNode(baseConfig: AztecNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined,
|
|
26
|
+
export declare function createNonValidatorNode(baseConfig: AztecNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, genesis?: GenesisData, dataDirectory?: string, metricsPort?: number): Promise<AztecNodeService>;
|
|
23
27
|
export declare function createProverNode(config: AztecNodeConfig, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, deps: {
|
|
24
28
|
dateProvider: DateProvider;
|
|
25
|
-
},
|
|
29
|
+
}, genesis?: GenesisData, dataDirectory?: string, metricsPort?: number): Promise<{
|
|
26
30
|
proverNode: AztecNodeService;
|
|
27
31
|
}>;
|
|
28
32
|
export declare function createP2PConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, dataDirectory?: string): Promise<AztecNodeConfig>;
|
|
29
33
|
export declare function createValidatorConfig(config: CreateNodeConfig, bootstrapNodeEnr?: string, port?: number, addressIndex?: number | number[], dataDirectory?: string): Promise<AztecNodeConfig>;
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfcDJwX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9zZXR1cF9wMnBfdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSzNFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBVzdELGVBQU8sTUFBTSxpQ0FBaUMsSUFBSSxDQUFDO0FBT25ELHdCQUFnQixtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEdBQUcsS0FBSyxNQUFNLEVBQUUsRUFBRSxDQU83RjtBQUVELHdCQUFzQixXQUFXLENBQy9CLE1BQU0sRUFBRSxlQUFlLEdBQUc7SUFBRSxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUFFLEVBQzFELFlBQVksRUFBRSxZQUFZLEVBQzFCLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsWUFBWSxFQUFFLE1BQU0sRUFDcEIsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUNyQixhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFDcEIsV0FBVyxTQUFJLEVBQ2YsaUJBQWlCLFNBQUksR0FDcEIsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FtQzdCO0FBRUQsd0VBQXdFO0FBQ3hFLE1BQU0sTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLEdBQUc7SUFDL0MsOENBQThDO0lBQzlDLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQzdCLHdFQUF3RTtJQUN4RSxtQkFBbUIsQ0FBQyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7SUFDcEMsb0ZBQW9GO0lBQ3BGLHlDQUF5QyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ25ELHVFQUF1RTtJQUN2RSwwQkFBMEIsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUN0QyxDQUFDO0FBRUYsNkVBQTZFO0FBQzdFLHdCQUFzQixVQUFVLENBQzlCLE1BQU0sRUFBRSxnQkFBZ0IsRUFDeEIsWUFBWSxFQUFFLFlBQVksRUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDakMsWUFBWSxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQUUsRUFDL0IsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUNyQixhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sNkJBWXJCO0FBRUQsK0VBQStFO0FBQy9FLHdCQUFzQixzQkFBc0IsQ0FDMUMsVUFBVSxFQUFFLGVBQWUsRUFDM0IsWUFBWSxFQUFFLFlBQVksRUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDakMsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUNyQixhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sNkJBY3JCO0FBRUQsd0JBQXNCLGdCQUFnQixDQUNwQyxNQUFNLEVBQUUsZUFBZSxFQUN2QixPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUNqQyxZQUFZLEVBQUUsTUFBTSxFQUNwQixJQUFJLEVBQUU7SUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFBO0NBQUUsRUFDcEMsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUNyQixhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sR0FDbkIsT0FBTyxDQUFDO0lBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFBO0NBQUUsQ0FBQyxDQWdCM0M7QUFFRCx3QkFBc0IsZUFBZSxDQUNuQyxNQUFNLEVBQUUsZUFBZSxFQUN2QixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sRUFDekIsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUNiLGFBQWEsQ0FBQyxFQUFFLE1BQU0sNEJBZ0J2QjtBQUVELHdCQUFzQixxQkFBcUIsQ0FDekMsTUFBTSxFQUFFLGdCQUFnQixFQUN4QixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sRUFDekIsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUNiLFlBQVksR0FBRSxNQUFNLEdBQUcsTUFBTSxFQUFNLEVBQ25DLGFBQWEsQ0FBQyxFQUFFLE1BQU0sNEJBb0J2QiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAW7D,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAOnD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,EAAE,CAO7F;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,SAAI,EACf,iBAAiB,SAAI,GACpB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAmC7B;AAED,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACpC,oFAAoF;IACpF,yCAAyC,CAAC,EAAE,MAAM,CAAC;IACnD,uEAAuE;IACvE,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,6EAA6E;AAC7E,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,EAC/B,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,6BAYrB;AAED,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAC3B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,6BAcrB;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;IAAE,YAAY,EAAE,YAAY,CAAA;CAAE,EACpC,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAgB3C;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,4BAgBvB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,GAAE,MAAM,GAAG,MAAM,EAAM,EACnC,aAAa,CAAC,EAAE,MAAM,4BAoBvB"}
|
|
@@ -25,7 +25,7 @@ export function generatePrivateKeys(startIndex, numberOfKeys) {
|
|
|
25
25
|
}
|
|
26
26
|
return privateKeys;
|
|
27
27
|
}
|
|
28
|
-
export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNodes, bootNodePort,
|
|
28
|
+
export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNodes, bootNodePort, genesis, dataDirectory, metricsPort, indexOffset = 0, validatorsPerNode = 1) {
|
|
29
29
|
const nodePromises = [];
|
|
30
30
|
for(let i = 0; i < numNodes; i++){
|
|
31
31
|
const index = indexOffset + i;
|
|
@@ -35,7 +35,7 @@ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNod
|
|
|
35
35
|
const validatorIndices = validatorsPerNode === 1 ? index : range(validatorsPerNode, validatorsPerNode * index);
|
|
36
36
|
// Assign data directory
|
|
37
37
|
const dataDir = dataDirectory ? `${dataDirectory}-${index}` : undefined;
|
|
38
|
-
const nodePromise = createNode(config, dateProvider, port, bootstrapNodeEnr, validatorIndices,
|
|
38
|
+
const nodePromise = createNode(config, dateProvider, port, bootstrapNodeEnr, validatorIndices, genesis, dataDir, metricsPort);
|
|
39
39
|
nodePromises.push(nodePromise);
|
|
40
40
|
}
|
|
41
41
|
const nodes = await Promise.all(nodePromises);
|
|
@@ -46,7 +46,7 @@ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNod
|
|
|
46
46
|
}
|
|
47
47
|
return nodes;
|
|
48
48
|
}
|
|
49
|
-
/** Creates a P2P enabled instance of Aztec Node Service with a validator. */ export async function createNode(config, dateProvider, tcpPort, bootstrapNode, addressIndex,
|
|
49
|
+
/** Creates a P2P enabled instance of Aztec Node Service with a validator. */ export async function createNode(config, dateProvider, tcpPort, bootstrapNode, addressIndex, genesis, dataDirectory, metricsPort) {
|
|
50
50
|
const actorIndex = validatorCounter++;
|
|
51
51
|
return await withLoggerBindings({
|
|
52
52
|
actor: `validator-${actorIndex}`
|
|
@@ -57,12 +57,12 @@ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNod
|
|
|
57
57
|
telemetry,
|
|
58
58
|
dateProvider
|
|
59
59
|
}, {
|
|
60
|
-
|
|
60
|
+
genesis,
|
|
61
61
|
dontStartSequencer: config.dontStartSequencer
|
|
62
62
|
});
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
|
-
/** Creates a P2P enabled instance of Aztec Node Service without a validator */ export async function createNonValidatorNode(baseConfig, dateProvider, tcpPort, bootstrapNode,
|
|
65
|
+
/** Creates a P2P enabled instance of Aztec Node Service without a validator */ export async function createNonValidatorNode(baseConfig, dateProvider, tcpPort, bootstrapNode, genesis, dataDirectory, metricsPort) {
|
|
66
66
|
const actorIndex = nodeCounter++;
|
|
67
67
|
return await withLoggerBindings({
|
|
68
68
|
actor: `node-${actorIndex}`
|
|
@@ -79,11 +79,11 @@ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNod
|
|
|
79
79
|
telemetry,
|
|
80
80
|
dateProvider
|
|
81
81
|
}, {
|
|
82
|
-
|
|
82
|
+
genesis
|
|
83
83
|
});
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
|
-
export async function createProverNode(config, tcpPort, bootstrapNode, addressIndex, deps,
|
|
86
|
+
export async function createProverNode(config, tcpPort, bootstrapNode, addressIndex, deps, genesis, dataDirectory, metricsPort) {
|
|
87
87
|
const actorIndex = proverCounter++;
|
|
88
88
|
return await withLoggerBindings({
|
|
89
89
|
actor: `prover-${actorIndex}`
|
|
@@ -100,7 +100,7 @@ export async function createProverNode(config, tcpPort, bootstrapNode, addressIn
|
|
|
100
100
|
...deps,
|
|
101
101
|
telemetry
|
|
102
102
|
}, {
|
|
103
|
-
|
|
103
|
+
genesis
|
|
104
104
|
});
|
|
105
105
|
});
|
|
106
106
|
}
|
|
@@ -9,4 +9,4 @@ export declare function deployToken(wallet: Wallet, admin: AztecAddress, initial
|
|
|
9
9
|
export declare function mintTokensToPrivate(token: TokenContract, minter: AztecAddress, recipient: AztecAddress, amount: bigint, additionalScopes?: AztecAddress[]): Promise<void>;
|
|
10
10
|
export declare function expectTokenBalance(wallet: Wallet, token: TokenContract, owner: AztecAddress, expectedBalance: bigint, logger: Logger): Promise<void>;
|
|
11
11
|
export declare function mintNotes(wallet: Wallet, minter: AztecAddress, recipient: AztecAddress, asset: TokenContract, noteAmounts: bigint[]): Promise<bigint>;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy90b2tlbl91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0Qsd0JBQXNCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNOzs7R0Fhakg7QUFFRCx3QkFBc0IsbUJBQW1CLENBQ3ZDLEtBQUssRUFBRSxhQUFhLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLFNBQVMsRUFBRSxZQUFZLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsZ0JBQWdCLENBQUMsRUFBRSxZQUFZLEVBQUUsaUJBR2xDO0FBRUQsd0JBQXNCLGtCQUFrQixDQUN0QyxNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxhQUFhLEVBQ3BCLEtBQUssRUFBRSxZQUFZLEVBQ25CLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLGlCQU9mO0FBRUQsd0JBQXNCLFNBQVMsQ0FDN0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsWUFBWSxFQUNwQixTQUFTLEVBQUUsWUFBWSxFQUN2QixLQUFLLEVBQUUsYUFBYSxFQUNwQixXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FXakIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;
|
|
1
|
+
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;GAajH;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,YAAY,EAAE,iBAGlC;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,iBAOf;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
|
|
@@ -2,11 +2,8 @@ import { BatchCall } from '@aztec/aztec.js/contracts';
|
|
|
2
2
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
3
|
export async function deployToken(wallet, admin, initialAdminBalance, logger) {
|
|
4
4
|
logger.info(`Deploying Token contract...`);
|
|
5
|
-
const {
|
|
6
|
-
from: admin
|
|
7
|
-
wait: {
|
|
8
|
-
returnReceipt: true
|
|
9
|
-
}
|
|
5
|
+
const { contract, instance } = await TokenContract.deploy(wallet, admin, 'TokenName', 'TokenSymbol', 18).send({
|
|
6
|
+
from: admin
|
|
10
7
|
});
|
|
11
8
|
if (initialAdminBalance > 0n) {
|
|
12
9
|
await mintTokensToPrivate(contract, admin, admin, initialAdminBalance);
|
package/dest/fixtures/utils.d.ts
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* Re-exports from the unified setup module for backward compatibility.
|
|
3
3
|
* Tests that previously used utils.ts should continue to work.
|
|
4
4
|
*/
|
|
5
|
-
export { type BalancesFn, type EndToEndContext, type SetupOptions, createAndSyncProverNode, deployAccounts, ensureAccountContractsPublished, expectMapping, expectMappingDelta, getBalancesFn, getLogger, getPrivateKeyFromIndex, getSponsoredFPCAddress, getSponsoredFPCInstance, publicDeployAccounts, registerSponsoredFPC, setup, setupPXEAndGetWallet, setupSharedBlobStorage, setupSponsoredFPC, startAnvil, teardown, waitForProvenChain, } from './setup.js';
|
|
5
|
+
export { type BalancesFn, type EndToEndContext, type SetupOptions, createAndSyncProverNode, deployAccounts, ensureAccountContractsPublished, ensureAuthRegistryPublished, ensurePublicChecksPublished, expectMapping, expectMappingDelta, getBalancesFn, getLogger, getPrivateKeyFromIndex, getSponsoredFPCAddress, getSponsoredFPCInstance, publicDeployAccounts, registerSponsoredFPC, setup, setupPXEAndGetWallet, setupSharedBlobStorage, setupSponsoredFPC, startAnvil, teardown, waitForProvenChain, } from './setup.js';
|
|
6
6
|
export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxPQUFPLEVBQ0wsS0FBSyxVQUFVLEVBQ2YsS0FBSyxlQUFlLEVBQ3BCLEtBQUssWUFBWSxFQUNqQix1QkFBdUIsRUFDdkIsY0FBYyxFQUNkLCtCQUErQixFQUMvQiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLFNBQVMsRUFDVCxzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLEtBQUssRUFDTCxvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsUUFBUSxFQUNSLGtCQUFrQixHQUNuQixNQUFNLFlBQVksQ0FBQztBQUVwQixPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,uBAAuB,EACvB,cAAc,EACd,+BAA+B,EAC/B,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,0CAA0C,EAAE,MAAM,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,uBAAuB,EACvB,cAAc,EACd,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,0CAA0C,EAAE,MAAM,uCAAuC,CAAC"}
|
package/dest/fixtures/utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Re-exports from the unified setup module for backward compatibility.
|
|
3
3
|
* Tests that previously used utils.ts should continue to work.
|
|
4
|
-
*/ export { createAndSyncProverNode, deployAccounts, ensureAccountContractsPublished, expectMapping, expectMappingDelta, getBalancesFn, getLogger, getPrivateKeyFromIndex, getSponsoredFPCAddress, getSponsoredFPCInstance, publicDeployAccounts, registerSponsoredFPC, setup, setupPXEAndGetWallet, setupSharedBlobStorage, setupSponsoredFPC, startAnvil, teardown, waitForProvenChain } from './setup.js';
|
|
4
|
+
*/ export { createAndSyncProverNode, deployAccounts, ensureAccountContractsPublished, ensureAuthRegistryPublished, ensurePublicChecksPublished, expectMapping, expectMappingDelta, getBalancesFn, getLogger, getPrivateKeyFromIndex, getSponsoredFPCAddress, getSponsoredFPCInstance, publicDeployAccounts, registerSponsoredFPC, setup, setupPXEAndGetWallet, setupSharedBlobStorage, setupSponsoredFPC, startAnvil, teardown, waitForProvenChain } from './setup.js';
|
|
5
5
|
export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a JSON-RPC client that connects to a remote wallet service.
|
|
4
|
+
* The returned object implements the {@link Wallet} interface, proxying all calls over HTTP to the specified URL.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createWalletClient(url: string): Wallet;
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X3JwY19jbGllbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3J3YXJkLWNvbXBhdGliaWxpdHkvd2FsbGV0X3JwY19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJckQ7OztHQUdHO0FBQ0gsd0JBQWdCLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUt0RCJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet_rpc_client.d.ts","sourceRoot":"","sources":["../../src/forward-compatibility/wallet_rpc_client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKtD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { WalletSchema } from '@aztec/aztec.js/wallet';
|
|
2
|
+
import { createSafeJsonRpcClient, makeFetch } from '@aztec/foundation/json-rpc/client';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a JSON-RPC client that connects to a remote wallet service.
|
|
5
|
+
* The returned object implements the {@link Wallet} interface, proxying all calls over HTTP to the specified URL.
|
|
6
|
+
*/ export function createWalletClient(url) {
|
|
7
|
+
return createSafeJsonRpcClient(url, WalletSchema, {
|
|
8
|
+
namespaceMethods: 'wallet',
|
|
9
|
+
fetch: makeFetch([
|
|
10
|
+
1,
|
|
11
|
+
2,
|
|
12
|
+
3
|
|
13
|
+
], false)
|
|
14
|
+
});
|
|
15
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3J3YXJkLWNvbXBhdGliaWxpdHkvd2FsbGV0X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet_service.d.ts","sourceRoot":"","sources":["../../src/forward-compatibility/wallet_service.ts"],"names":[],"mappings":""}
|