@aztec/aztec 0.0.0-test.1 → 0.0.1-commit.017a351
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 +1 -1
- package/dest/bin/index.d.ts +1 -1
- package/dest/bin/index.js +28 -13
- package/dest/cli/admin_api_key_store.d.ts +45 -0
- package/dest/cli/admin_api_key_store.d.ts.map +1 -0
- package/dest/cli/admin_api_key_store.js +98 -0
- package/dest/cli/aztec_start_action.d.ts +1 -1
- package/dest/cli/aztec_start_action.d.ts.map +1 -1
- package/dest/cli/aztec_start_action.js +107 -49
- package/dest/cli/aztec_start_options.d.ts +6 -4
- package/dest/cli/aztec_start_options.d.ts.map +1 -1
- package/dest/cli/aztec_start_options.js +160 -223
- package/dest/cli/cli.d.ts +1 -1
- package/dest/cli/cli.d.ts.map +1 -1
- package/dest/cli/cli.js +11 -7
- package/dest/cli/cmds/compile.d.ts +4 -0
- package/dest/cli/cmds/compile.d.ts.map +1 -0
- package/dest/cli/cmds/compile.js +166 -0
- package/dest/cli/cmds/migrate_ha_db.d.ts +3 -0
- package/dest/cli/cmds/migrate_ha_db.d.ts.map +1 -0
- package/dest/cli/cmds/migrate_ha_db.js +27 -0
- package/dest/cli/cmds/profile.d.ts +4 -0
- package/dest/cli/cmds/profile.d.ts.map +1 -0
- package/dest/cli/cmds/profile.js +8 -0
- package/dest/cli/cmds/profile_flamegraph.d.ts +4 -0
- package/dest/cli/cmds/profile_flamegraph.d.ts.map +1 -0
- package/dest/cli/cmds/profile_flamegraph.js +52 -0
- package/dest/cli/cmds/profile_gates.d.ts +4 -0
- package/dest/cli/cmds/profile_gates.d.ts.map +1 -0
- package/dest/cli/cmds/profile_gates.js +76 -0
- package/dest/cli/cmds/profile_utils.d.ts +18 -0
- package/dest/cli/cmds/profile_utils.d.ts.map +1 -0
- package/dest/cli/cmds/profile_utils.js +50 -0
- package/dest/cli/cmds/standby.d.ts +30 -0
- package/dest/cli/cmds/standby.d.ts.map +1 -0
- package/dest/cli/cmds/standby.js +97 -0
- package/dest/cli/cmds/start_bot.d.ts +4 -7
- package/dest/cli/cmds/start_bot.d.ts.map +1 -1
- package/dest/cli/cmds/start_bot.js +32 -17
- package/dest/cli/cmds/start_node.d.ts +3 -2
- package/dest/cli/cmds/start_node.d.ts.map +1 -1
- package/dest/cli/cmds/start_node.js +113 -86
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts +2 -2
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
- package/dest/cli/cmds/start_p2p_bootstrap.js +10 -6
- package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
- package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_agent.js +29 -12
- package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
- package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_broker.js +25 -10
- package/dest/cli/cmds/start_txe.d.ts +2 -2
- package/dest/cli/cmds/start_txe.d.ts.map +1 -1
- package/dest/cli/cmds/start_txe.js +6 -5
- package/dest/cli/cmds/utils/artifacts.d.ts +21 -0
- package/dest/cli/cmds/utils/artifacts.d.ts.map +1 -0
- package/dest/cli/cmds/utils/artifacts.js +24 -0
- package/dest/cli/cmds/utils/collect_crate_dirs.d.ts +21 -0
- package/dest/cli/cmds/utils/collect_crate_dirs.d.ts.map +1 -0
- package/dest/cli/cmds/utils/collect_crate_dirs.js +114 -0
- package/dest/cli/cmds/utils/needs_recompile.d.ts +10 -0
- package/dest/cli/cmds/utils/needs_recompile.d.ts.map +1 -0
- package/dest/cli/cmds/utils/needs_recompile.js +90 -0
- package/dest/cli/cmds/utils/spawn.d.ts +3 -0
- package/dest/cli/cmds/utils/spawn.d.ts.map +1 -0
- package/dest/cli/cmds/utils/spawn.js +16 -0
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts +4 -0
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts.map +1 -0
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.js +61 -0
- package/dest/cli/index.d.ts +1 -1
- package/dest/cli/preload_crs.d.ts +3 -0
- package/dest/cli/preload_crs.d.ts.map +1 -0
- package/dest/cli/preload_crs.js +6 -0
- package/dest/cli/util.d.ts +37 -17
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +171 -35
- package/dest/cli/versioning.d.ts +1 -1
- package/dest/cli/versioning.js +3 -3
- package/dest/examples/token.d.ts +1 -1
- package/dest/examples/token.js +31 -18
- package/dest/examples/util.d.ts +5 -6
- package/dest/examples/util.d.ts.map +1 -1
- package/dest/examples/util.js +5 -6
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/local-network/auth_registry.d.ts +5 -0
- package/dest/local-network/auth_registry.d.ts.map +1 -0
- package/dest/local-network/auth_registry.js +17 -0
- package/dest/local-network/banana_fpc.d.ts +11 -0
- package/dest/local-network/banana_fpc.d.ts.map +1 -0
- package/dest/{sandbox → local-network}/banana_fpc.js +29 -27
- package/dest/local-network/index.d.ts +4 -0
- package/dest/local-network/index.d.ts.map +1 -0
- package/dest/local-network/index.js +3 -0
- package/dest/local-network/local-network.d.ts +50 -0
- package/dest/local-network/local-network.d.ts.map +1 -0
- package/dest/local-network/local-network.js +248 -0
- package/dest/local-network/sponsored_fpc.d.ts +5 -0
- package/dest/local-network/sponsored_fpc.d.ts.map +1 -0
- package/dest/local-network/sponsored_fpc.js +18 -0
- package/dest/mnemonic.d.ts +1 -1
- package/dest/splash.d.ts +1 -1
- package/dest/testing/anvil_test_watcher.d.ts +54 -0
- package/dest/testing/anvil_test_watcher.d.ts.map +1 -0
- package/dest/testing/anvil_test_watcher.js +235 -0
- package/dest/testing/cheat_codes.d.ts +44 -0
- package/dest/testing/cheat_codes.d.ts.map +1 -0
- package/dest/testing/cheat_codes.js +98 -0
- package/dest/testing/epoch_test_settler.d.ts +19 -0
- package/dest/testing/epoch_test_settler.d.ts.map +1 -0
- package/dest/testing/epoch_test_settler.js +63 -0
- package/dest/testing/index.d.ts +6 -0
- package/dest/testing/index.d.ts.map +1 -0
- package/dest/testing/index.js +5 -0
- package/dest/testing/token_allowed_setup.d.ts +7 -0
- package/dest/testing/token_allowed_setup.d.ts.map +1 -0
- package/dest/testing/token_allowed_setup.js +20 -0
- package/package.json +56 -45
- package/scripts/add_crate.sh +53 -0
- package/scripts/aztec.sh +73 -0
- package/scripts/init.sh +39 -0
- package/scripts/new.sh +83 -0
- package/scripts/setup_workspace.sh +69 -0
- package/scripts/templates/blank/contract/Nargo.toml +6 -0
- package/scripts/templates/blank/contract/src/main.nr +10 -0
- package/scripts/templates/blank/test/Nargo.toml +7 -0
- package/scripts/templates/blank/test/src/lib.nr +11 -0
- package/scripts/templates/counter/contract/Nargo.toml +7 -0
- package/scripts/templates/counter/contract/src/main.nr +48 -0
- package/scripts/templates/counter/test/Nargo.toml +7 -0
- package/scripts/templates/counter/test/src/lib.nr +32 -0
- package/src/bin/index.ts +33 -13
- package/src/cli/admin_api_key_store.ts +128 -0
- package/src/cli/aztec_start_action.ts +100 -46
- package/src/cli/aztec_start_options.ts +183 -226
- package/src/cli/cli.ts +19 -11
- package/src/cli/cmds/compile.ts +192 -0
- package/src/cli/cmds/migrate_ha_db.ts +43 -0
- package/src/cli/cmds/profile.ts +26 -0
- package/src/cli/cmds/profile_flamegraph.ts +64 -0
- package/src/cli/cmds/profile_gates.ts +84 -0
- package/src/cli/cmds/profile_utils.ts +58 -0
- package/src/cli/cmds/standby.ts +132 -0
- package/src/cli/cmds/start_bot.ts +43 -19
- package/src/cli/cmds/start_node.ts +142 -91
- package/src/cli/cmds/start_p2p_bootstrap.ts +14 -6
- package/src/cli/cmds/start_prover_agent.ts +25 -16
- package/src/cli/cmds/start_prover_broker.ts +32 -9
- package/src/cli/cmds/start_txe.ts +7 -5
- package/src/cli/cmds/utils/artifacts.ts +44 -0
- package/src/cli/cmds/utils/collect_crate_dirs.ts +118 -0
- package/src/cli/cmds/utils/needs_recompile.ts +98 -0
- package/src/cli/cmds/utils/spawn.ts +16 -0
- package/src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts +76 -0
- package/src/cli/preload_crs.ts +7 -0
- package/src/cli/util.ts +192 -56
- package/src/cli/versioning.ts +3 -3
- package/src/examples/token.ts +23 -19
- package/src/examples/util.ts +6 -8
- package/src/index.ts +5 -6
- package/src/local-network/auth_registry.ts +19 -0
- package/src/{sandbox → local-network}/banana_fpc.ts +32 -29
- package/src/local-network/index.ts +7 -0
- package/src/local-network/local-network.ts +303 -0
- package/src/local-network/sponsored_fpc.ts +26 -0
- package/src/testing/anvil_test_watcher.ts +273 -0
- package/src/testing/cheat_codes.ts +132 -0
- package/src/testing/epoch_test_settler.ts +69 -0
- package/src/testing/index.ts +5 -0
- package/src/testing/token_allowed_setup.ts +19 -0
- package/dest/cli/chain_l2_config.d.ts +0 -19
- package/dest/cli/chain_l2_config.d.ts.map +0 -1
- package/dest/cli/chain_l2_config.js +0 -56
- package/dest/cli/cmds/start_archiver.d.ts +0 -9
- package/dest/cli/cmds/start_archiver.d.ts.map +0 -1
- package/dest/cli/cmds/start_archiver.js +0 -42
- package/dest/cli/cmds/start_blob_sink.d.ts +0 -3
- package/dest/cli/cmds/start_blob_sink.d.ts.map +0 -1
- package/dest/cli/cmds/start_blob_sink.js +0 -17
- package/dest/cli/cmds/start_faucet.d.ts +0 -4
- package/dest/cli/cmds/start_faucet.d.ts.map +0 -1
- package/dest/cli/cmds/start_faucet.js +0 -20
- package/dest/cli/cmds/start_prover_node.d.ts +0 -7
- package/dest/cli/cmds/start_prover_node.d.ts.map +0 -1
- package/dest/cli/cmds/start_prover_node.js +0 -110
- package/dest/cli/cmds/start_pxe.d.ts +0 -16
- package/dest/cli/cmds/start_pxe.d.ts.map +0 -1
- package/dest/cli/cmds/start_pxe.js +0 -95
- package/dest/cli/get_l1_config.d.ts +0 -7
- package/dest/cli/get_l1_config.d.ts.map +0 -1
- package/dest/cli/get_l1_config.js +0 -13
- package/dest/sandbox/banana_fpc.d.ts +0 -11
- package/dest/sandbox/banana_fpc.d.ts.map +0 -1
- package/dest/sandbox/index.d.ts +0 -5
- package/dest/sandbox/index.d.ts.map +0 -1
- package/dest/sandbox/index.js +0 -4
- package/dest/sandbox/sandbox.d.ts +0 -76
- package/dest/sandbox/sandbox.d.ts.map +0 -1
- package/dest/sandbox/sandbox.js +0 -181
- package/dest/sandbox/sponsored_fee_payment_method.d.ts +0 -23
- package/dest/sandbox/sponsored_fee_payment_method.d.ts.map +0 -1
- package/dest/sandbox/sponsored_fee_payment_method.js +0 -36
- package/dest/sandbox/sponsored_fpc.d.ts +0 -6
- package/dest/sandbox/sponsored_fpc.d.ts.map +0 -1
- package/dest/sandbox/sponsored_fpc.js +0 -26
- package/src/cli/chain_l2_config.ts +0 -74
- package/src/cli/cmds/start_archiver.ts +0 -55
- package/src/cli/cmds/start_blob_sink.ts +0 -31
- package/src/cli/cmds/start_faucet.ts +0 -34
- package/src/cli/cmds/start_prover_node.ts +0 -121
- package/src/cli/cmds/start_pxe.ts +0 -129
- package/src/cli/get_l1_config.ts +0 -18
- package/src/sandbox/index.ts +0 -5
- package/src/sandbox/sandbox.ts +0 -229
- package/src/sandbox/sponsored_fee_payment_method.ts +0 -46
- package/src/sandbox/sponsored_fpc.ts +0 -38
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
2
|
-
import type { LogFn } from '@aztec/foundation/log';
|
|
3
|
-
export declare function startFaucet(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, log: LogFn): Promise<void>;
|
|
4
|
-
//# sourceMappingURL=start_faucet.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"start_faucet.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_faucet.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,EAAE,KAAK,iBAiBX"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Faucet, FaucetSchema, createFaucetHttpServer, faucetConfigMapping, getFaucetConfigFromEnv } from '@aztec/aztec-faucet';
|
|
2
|
-
import { extractNamespacedOptions, extractRelevantOptions } from '../util.js';
|
|
3
|
-
export async function startFaucet(options, signalHandlers, services, log) {
|
|
4
|
-
const faucetOptions = extractNamespacedOptions(options, 'faucet');
|
|
5
|
-
const config = {
|
|
6
|
-
...getFaucetConfigFromEnv(),
|
|
7
|
-
...extractRelevantOptions(options, faucetConfigMapping, 'faucet')
|
|
8
|
-
};
|
|
9
|
-
const faucet = await Faucet.create(config);
|
|
10
|
-
if (faucetOptions.apiServer) {
|
|
11
|
-
const httpServer = createFaucetHttpServer(faucet);
|
|
12
|
-
httpServer.listen(faucetOptions.apiServerPort);
|
|
13
|
-
signalHandlers.push(()=>new Promise((res)=>httpServer.close(()=>res())));
|
|
14
|
-
log(`Faucet now running on port: ${faucetOptions.apiServerPort}`);
|
|
15
|
-
}
|
|
16
|
-
services.faucet = [
|
|
17
|
-
faucet,
|
|
18
|
-
FaucetSchema
|
|
19
|
-
];
|
|
20
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
2
|
-
import type { LogFn } from '@aztec/foundation/log';
|
|
3
|
-
import { type ProverNodeConfig } from '@aztec/prover-node';
|
|
4
|
-
export declare function startProverNode(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<{
|
|
5
|
-
config: ProverNodeConfig;
|
|
6
|
-
}>;
|
|
7
|
-
//# sourceMappingURL=start_prover_node.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"start_prover_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,oBAAoB,CAAC;AAa5B,wBAAsB,eAAe,CACnC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CA2FvC"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { getInitialTestAccounts } from '@aztec/accounts/testing';
|
|
2
|
-
import { NULL_KEY } from '@aztec/ethereum';
|
|
3
|
-
import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
|
|
4
|
-
import { ProvingJobConsumerSchema, createProvingJobBrokerClient } from '@aztec/prover-client/broker';
|
|
5
|
-
import { createProverNode, getProverNodeConfigFromEnv, proverNodeConfigMappings } from '@aztec/prover-node';
|
|
6
|
-
import { createAztecNodeClient } from '@aztec/stdlib/interfaces/client';
|
|
7
|
-
import { P2PApiSchema, ProverNodeApiSchema } from '@aztec/stdlib/interfaces/server';
|
|
8
|
-
import { initTelemetryClient, makeTracedFetch, telemetryClientConfigMappings } from '@aztec/telemetry-client';
|
|
9
|
-
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
10
|
-
import { mnemonicToAccount } from 'viem/accounts';
|
|
11
|
-
import { getL1Config } from '../get_l1_config.js';
|
|
12
|
-
import { extractRelevantOptions } from '../util.js';
|
|
13
|
-
import { getVersions } from '../versioning.js';
|
|
14
|
-
import { startProverBroker } from './start_prover_broker.js';
|
|
15
|
-
export async function startProverNode(options, signalHandlers, services, userLog) {
|
|
16
|
-
if (options.node || options.sequencer || options.pxe || options.p2pBootstrap || options.txe) {
|
|
17
|
-
userLog(`Starting a prover-node with --node, --sequencer, --pxe, --p2p-bootstrap, or --txe is not supported.`);
|
|
18
|
-
process.exit(1);
|
|
19
|
-
}
|
|
20
|
-
let proverConfig = {
|
|
21
|
-
...getProverNodeConfigFromEnv(),
|
|
22
|
-
...extractRelevantOptions(options, proverNodeConfigMappings, 'proverNode')
|
|
23
|
-
};
|
|
24
|
-
if (!options.archiver && !proverConfig.archiverUrl) {
|
|
25
|
-
userLog('--archiver.archiverUrl is required to start a Prover Node without --archiver option');
|
|
26
|
-
process.exit(1);
|
|
27
|
-
}
|
|
28
|
-
if (!proverConfig.publisherPrivateKey || proverConfig.publisherPrivateKey === NULL_KEY) {
|
|
29
|
-
if (!options.l1Mnemonic) {
|
|
30
|
-
userLog(`--l1-mnemonic is required to start a Prover Node without --node.publisherPrivateKey`);
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
const hdAccount = mnemonicToAccount(options.l1Mnemonic);
|
|
34
|
-
const privKey = hdAccount.getHdKey().privateKey;
|
|
35
|
-
proverConfig.publisherPrivateKey = `0x${Buffer.from(privKey).toString('hex')}`;
|
|
36
|
-
}
|
|
37
|
-
// TODO(palla/prover-node) L1 contract addresses should not silently default to zero,
|
|
38
|
-
// they should be undefined if not set and fail loudly.
|
|
39
|
-
// Load l1 contract addresses from aztec node if not set.
|
|
40
|
-
const isRollupAddressSet = proverConfig.l1Contracts?.rollupAddress && !proverConfig.l1Contracts.rollupAddress.isZero();
|
|
41
|
-
const nodeUrl = proverConfig.nodeUrl ?? proverConfig.proverCoordinationNodeUrl;
|
|
42
|
-
if (nodeUrl && !isRollupAddressSet) {
|
|
43
|
-
userLog(`Loading L1 contract addresses from aztec node at ${nodeUrl}`);
|
|
44
|
-
proverConfig.l1Contracts = await createAztecNodeClient(nodeUrl).getL1ContractAddresses();
|
|
45
|
-
}
|
|
46
|
-
// If we create an archiver here, validate the L1 config
|
|
47
|
-
if (options.archiver) {
|
|
48
|
-
if (!proverConfig.l1Contracts.registryAddress || proverConfig.l1Contracts.registryAddress.isZero()) {
|
|
49
|
-
throw new Error('L1 registry address is required to start a Prover Node with --archiver option');
|
|
50
|
-
}
|
|
51
|
-
const { addresses, config } = await getL1Config(proverConfig.l1Contracts.registryAddress, proverConfig.l1RpcUrls, proverConfig.l1ChainId);
|
|
52
|
-
proverConfig.l1Contracts = addresses;
|
|
53
|
-
proverConfig = {
|
|
54
|
-
...proverConfig,
|
|
55
|
-
...config
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
const telemetry = initTelemetryClient(extractRelevantOptions(options, telemetryClientConfigMappings, 'tel'));
|
|
59
|
-
let broker;
|
|
60
|
-
if (proverConfig.proverBrokerUrl) {
|
|
61
|
-
// at 1TPS we'd enqueue ~1k tube proofs and ~1k AVM proofs immediately
|
|
62
|
-
// set a lower connectio limit such that we don't overload the server
|
|
63
|
-
const fetch = makeTracedFetch([
|
|
64
|
-
1,
|
|
65
|
-
2,
|
|
66
|
-
3
|
|
67
|
-
], false, makeUndiciFetch(new Agent({
|
|
68
|
-
connections: 100
|
|
69
|
-
})));
|
|
70
|
-
broker = createProvingJobBrokerClient(proverConfig.proverBrokerUrl, getVersions(proverConfig), fetch);
|
|
71
|
-
} else if (options.proverBroker) {
|
|
72
|
-
({ broker } = await startProverBroker(options, signalHandlers, services, userLog));
|
|
73
|
-
} else {
|
|
74
|
-
userLog(`--prover-broker-url or --prover-broker is required to start a Prover Node`);
|
|
75
|
-
process.exit(1);
|
|
76
|
-
}
|
|
77
|
-
if (proverConfig.proverAgentCount === 0) {
|
|
78
|
-
userLog(`Running prover node without local prover agent. Connect one or more prover agents to this node or pass --proverAgent.proverAgentCount`);
|
|
79
|
-
}
|
|
80
|
-
const initialFundedAccounts = proverConfig.testAccounts ? await getInitialTestAccounts() : [];
|
|
81
|
-
const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address));
|
|
82
|
-
const proverNode = await createProverNode(proverConfig, {
|
|
83
|
-
telemetry,
|
|
84
|
-
broker
|
|
85
|
-
}, {
|
|
86
|
-
prefilledPublicData
|
|
87
|
-
});
|
|
88
|
-
services.proverNode = [
|
|
89
|
-
proverNode,
|
|
90
|
-
ProverNodeApiSchema
|
|
91
|
-
];
|
|
92
|
-
const p2p = proverNode.getP2P();
|
|
93
|
-
if (p2p) {
|
|
94
|
-
services.p2p = [
|
|
95
|
-
proverNode.getP2P(),
|
|
96
|
-
P2PApiSchema
|
|
97
|
-
];
|
|
98
|
-
}
|
|
99
|
-
if (!proverConfig.proverBrokerUrl) {
|
|
100
|
-
services.provingJobSource = [
|
|
101
|
-
proverNode.getProver().getProvingJobSource(),
|
|
102
|
-
ProvingJobConsumerSchema
|
|
103
|
-
];
|
|
104
|
-
}
|
|
105
|
-
signalHandlers.push(proverNode.stop.bind(proverNode));
|
|
106
|
-
proverNode.start();
|
|
107
|
-
return {
|
|
108
|
-
config: proverConfig
|
|
109
|
-
};
|
|
110
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
2
|
-
import type { LogFn } from '@aztec/foundation/log';
|
|
3
|
-
import { type CliPXEOptions, type PXEService, type PXEServiceConfig } from '@aztec/pxe/server';
|
|
4
|
-
import { type AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
5
|
-
export type { PXEServiceConfig, CliPXEOptions };
|
|
6
|
-
export declare function startPXE(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<{
|
|
7
|
-
pxe: PXEService;
|
|
8
|
-
config: PXEServiceConfig & CliPXEOptions;
|
|
9
|
-
}>;
|
|
10
|
-
export declare function addPXE(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn, deps?: {
|
|
11
|
-
node?: AztecNode;
|
|
12
|
-
}): Promise<{
|
|
13
|
-
pxe: PXEService;
|
|
14
|
-
config: PXEServiceConfig & CliPXEOptions;
|
|
15
|
-
}>;
|
|
16
|
-
//# sourceMappingURL=start_pxe.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"start_pxe.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_pxe.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,gBAAgB,EAGtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,SAAS,EAAoC,MAAM,iCAAiC,CAAC;AAOnG,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC;AAIhD,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAAA;CAAE,CAAC,CAExE;AAcD,wBAAsB,MAAM,CAC1B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,EACd,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,SAAS,CAAA;CAAO,GAC9B,OAAO,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAAA;CAAE,CAAC,CAwExE"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { AztecAddress, Fr, PublicKeys, getContractClassFromArtifact } from '@aztec/aztec.js';
|
|
2
|
-
import { getContractArtifact } from '@aztec/cli/cli-utils';
|
|
3
|
-
import { allPxeConfigMappings, createPXEService } from '@aztec/pxe/server';
|
|
4
|
-
import { PXESchema, createAztecNodeClient } from '@aztec/stdlib/interfaces/client';
|
|
5
|
-
import { L2BasicContractsMap, Network } from '@aztec/stdlib/network';
|
|
6
|
-
import { makeTracedFetch } from '@aztec/telemetry-client';
|
|
7
|
-
import { extractRelevantOptions } from '../util.js';
|
|
8
|
-
import { getVersions } from '../versioning.js';
|
|
9
|
-
const contractAddressesUrl = 'http://static.aztec.network';
|
|
10
|
-
export async function startPXE(options, signalHandlers, services, userLog) {
|
|
11
|
-
return await addPXE(options, signalHandlers, services, userLog, {});
|
|
12
|
-
}
|
|
13
|
-
function isValidNetwork(value) {
|
|
14
|
-
return Object.values(Network).includes(value);
|
|
15
|
-
}
|
|
16
|
-
async function fetchBasicContractAddresses(url) {
|
|
17
|
-
const response = await fetch(url);
|
|
18
|
-
if (!response.ok) {
|
|
19
|
-
throw new Error(`Failed to fetch basic contract addresses from ${url}`);
|
|
20
|
-
}
|
|
21
|
-
return response.json();
|
|
22
|
-
}
|
|
23
|
-
export async function addPXE(options, signalHandlers, services, userLog, deps = {}) {
|
|
24
|
-
const pxeConfig = extractRelevantOptions(options, allPxeConfigMappings, 'pxe');
|
|
25
|
-
let nodeUrl;
|
|
26
|
-
if (pxeConfig.network) {
|
|
27
|
-
if (isValidNetwork(pxeConfig.network)) {
|
|
28
|
-
if (!pxeConfig.apiKey && !pxeConfig.nodeUrl) {
|
|
29
|
-
userLog(`API Key or Aztec Node URL is required to connect to ${pxeConfig.network}`);
|
|
30
|
-
process.exit(1);
|
|
31
|
-
} else if (pxeConfig.apiKey) {
|
|
32
|
-
nodeUrl = `https://api.aztec.network/${pxeConfig.network}/aztec-node-1/${pxeConfig.apiKey}`;
|
|
33
|
-
} else if (pxeConfig.nodeUrl) {
|
|
34
|
-
nodeUrl = pxeConfig.nodeUrl;
|
|
35
|
-
}
|
|
36
|
-
} else {
|
|
37
|
-
userLog(`Network ${pxeConfig.network} is not supported`);
|
|
38
|
-
process.exit(1);
|
|
39
|
-
}
|
|
40
|
-
} else {
|
|
41
|
-
nodeUrl = pxeConfig.nodeUrl;
|
|
42
|
-
}
|
|
43
|
-
if (!nodeUrl && !deps.node && !pxeConfig.network) {
|
|
44
|
-
userLog('Aztec Node URL (nodeUrl | AZTEC_NODE_URL) option is required to start PXE without --node option');
|
|
45
|
-
process.exit(1);
|
|
46
|
-
}
|
|
47
|
-
const node = deps.node ?? createAztecNodeClient(nodeUrl, getVersions(pxeConfig), makeTracedFetch([
|
|
48
|
-
1,
|
|
49
|
-
2,
|
|
50
|
-
3
|
|
51
|
-
], true));
|
|
52
|
-
const pxe = await createPXEService(node, pxeConfig);
|
|
53
|
-
// register basic contracts
|
|
54
|
-
if (pxeConfig.network) {
|
|
55
|
-
userLog(`Registering basic contracts for ${pxeConfig.network}`);
|
|
56
|
-
const basicContractsInfo = await fetchBasicContractAddresses(`${contractAddressesUrl}/${pxeConfig.network}/basic_contracts.json`);
|
|
57
|
-
const l2Contracts = {};
|
|
58
|
-
for (const [key, artifactName] of Object.entries(L2BasicContractsMap[pxeConfig.network])){
|
|
59
|
-
l2Contracts[key] = {
|
|
60
|
-
name: key,
|
|
61
|
-
address: AztecAddress.fromString(basicContractsInfo[key].address),
|
|
62
|
-
initHash: Fr.fromHexString(basicContractsInfo[key].initHash),
|
|
63
|
-
salt: Fr.fromHexString(basicContractsInfo[key].salt),
|
|
64
|
-
artifact: await getContractArtifact(artifactName, userLog)
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
await Promise.all(Object.values(l2Contracts).map(async ({ name, address, artifact, initHash, salt })=>{
|
|
68
|
-
const contractClass = await getContractClassFromArtifact(artifact);
|
|
69
|
-
const instance = {
|
|
70
|
-
version: 1,
|
|
71
|
-
salt,
|
|
72
|
-
initializationHash: initHash,
|
|
73
|
-
address,
|
|
74
|
-
deployer: AztecAddress.ZERO,
|
|
75
|
-
currentContractClassId: contractClass.id,
|
|
76
|
-
originalContractClassId: contractClass.id,
|
|
77
|
-
publicKeys: PublicKeys.default()
|
|
78
|
-
};
|
|
79
|
-
userLog(`Registering ${name} at ${address.toString()}`);
|
|
80
|
-
await pxe.registerContract({
|
|
81
|
-
artifact,
|
|
82
|
-
instance
|
|
83
|
-
});
|
|
84
|
-
}));
|
|
85
|
-
}
|
|
86
|
-
// Add PXE to services list
|
|
87
|
-
services.pxe = [
|
|
88
|
-
pxe,
|
|
89
|
-
PXESchema
|
|
90
|
-
];
|
|
91
|
-
return {
|
|
92
|
-
pxe,
|
|
93
|
-
config: pxeConfig
|
|
94
|
-
};
|
|
95
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type L1ContractAddresses, getL1ContractsConfig } from '@aztec/ethereum';
|
|
2
|
-
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
|
-
export declare function getL1Config(registryAddress: EthAddress, l1RpcUrls: string[], l1ChainId: number): Promise<{
|
|
4
|
-
addresses: L1ContractAddresses;
|
|
5
|
-
config: Awaited<ReturnType<typeof getL1ContractsConfig>>;
|
|
6
|
-
}>;
|
|
7
|
-
//# sourceMappingURL=get_l1_config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get_l1_config.d.ts","sourceRoot":"","sources":["../../src/cli/get_l1_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAoB,oBAAoB,EAAmB,MAAM,iBAAiB,CAAC;AACpH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,wBAAsB,WAAW,CAC/B,eAAe,EAAE,UAAU,EAC3B,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,SAAS,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAA;CAAE,CAAC,CAUvG"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { RegistryContract, getL1ContractsConfig, getPublicClient } from '@aztec/ethereum';
|
|
2
|
-
export async function getL1Config(registryAddress, l1RpcUrls, l1ChainId) {
|
|
3
|
-
const publicClient = getPublicClient({
|
|
4
|
-
l1RpcUrls,
|
|
5
|
-
l1ChainId
|
|
6
|
-
});
|
|
7
|
-
const addresses = await RegistryContract.collectAddresses(publicClient, registryAddress, 'canonical');
|
|
8
|
-
const config = await getL1ContractsConfig(publicClient, addresses);
|
|
9
|
-
return {
|
|
10
|
-
addresses,
|
|
11
|
-
config
|
|
12
|
-
};
|
|
13
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type InitialAccountData } from '@aztec/accounts/testing';
|
|
2
|
-
import type { Wallet } from '@aztec/aztec.js';
|
|
3
|
-
import type { LogFn } from '@aztec/foundation/log';
|
|
4
|
-
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
-
import type { PXE } from '@aztec/stdlib/interfaces/client';
|
|
6
|
-
export declare function getBananaCoinAddress(initialAccounts: InitialAccountData[]): Promise<AztecAddress>;
|
|
7
|
-
export declare function getBananaFPCAddress(initialAccounts: InitialAccountData[]): Promise<AztecAddress>;
|
|
8
|
-
export declare function setupBananaFPC(initialAccounts: InitialAccountData[], deployer: Wallet, log: LogFn): Promise<void>;
|
|
9
|
-
export declare function getDeployedBananaCoinAddress(pxe: PXE): Promise<AztecAddress>;
|
|
10
|
-
export declare function getDeployedBananaFPCAddress(pxe: PXE): Promise<AztecAddress>;
|
|
11
|
-
//# sourceMappingURL=banana_fpc.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"banana_fpc.d.ts","sourceRoot":"","sources":["../../src/sandbox/banana_fpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA0B,MAAM,yBAAyB,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AAuB3D,wBAAsB,oBAAoB,CAAC,eAAe,EAAE,kBAAkB,EAAE,yBAE/E;AAWD,wBAAsB,mBAAmB,CAAC,eAAe,EAAE,kBAAkB,EAAE,yBAE9E;AAED,wBAAsB,cAAc,CAAC,eAAe,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAcvG;AAED,wBAAsB,4BAA4B,CAAC,GAAG,EAAE,GAAG,yBAQ1D;AAED,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,GAAG,yBAQzD"}
|
package/dest/sandbox/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './sandbox.js';
|
|
2
|
-
export { getDeployedBananaCoinAddress, getDeployedBananaFPCAddress } from './banana_fpc.js';
|
|
3
|
-
export { getDeployedSponsoredFPCAddress } from './sponsored_fpc.js';
|
|
4
|
-
export { SponsoredFeePaymentMethod } from './sponsored_fee_payment_method.js';
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC"}
|
package/dest/sandbox/index.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './sandbox.js';
|
|
2
|
-
export { getDeployedBananaCoinAddress, getDeployedBananaFPCAddress } from './banana_fpc.js';
|
|
3
|
-
export { getDeployedSponsoredFPCAddress } from './sponsored_fpc.js';
|
|
4
|
-
export { SponsoredFeePaymentMethod } from './sponsored_fee_payment_method.js';
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env -S node --no-warnings
|
|
2
|
-
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
3
|
-
import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
-
import { type LogFn } from '@aztec/foundation/log';
|
|
6
|
-
import { type PXEServiceConfig } from '@aztec/pxe/server';
|
|
7
|
-
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
8
|
-
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
9
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
10
|
-
import { type HDAccount, type PrivateKeyAccount } from 'viem';
|
|
11
|
-
/**
|
|
12
|
-
* Function to deploy our L1 contracts to the sandbox L1
|
|
13
|
-
* @param aztecNodeConfig - The Aztec Node Config
|
|
14
|
-
* @param hdAccount - Account for publishing L1 contracts
|
|
15
|
-
*/
|
|
16
|
-
export declare function deployContractsToL1(aztecNodeConfig: AztecNodeConfig, hdAccount: HDAccount | PrivateKeyAccount, contractDeployLogger?: import("@aztec/aztec.js").Logger, opts?: {
|
|
17
|
-
assumeProvenThroughBlockNumber?: number;
|
|
18
|
-
salt?: number;
|
|
19
|
-
genesisArchiveRoot?: Fr;
|
|
20
|
-
genesisBlockHash?: Fr;
|
|
21
|
-
}): Promise<{
|
|
22
|
-
rollupAddress: import("@aztec/aztec.js").EthAddress;
|
|
23
|
-
registryAddress: import("@aztec/aztec.js").EthAddress;
|
|
24
|
-
inboxAddress: import("@aztec/aztec.js").EthAddress;
|
|
25
|
-
outboxAddress: import("@aztec/aztec.js").EthAddress;
|
|
26
|
-
feeJuiceAddress: import("@aztec/aztec.js").EthAddress;
|
|
27
|
-
feeJuicePortalAddress: import("@aztec/aztec.js").EthAddress;
|
|
28
|
-
coinIssuerAddress: import("@aztec/aztec.js").EthAddress;
|
|
29
|
-
rewardDistributorAddress: import("@aztec/aztec.js").EthAddress;
|
|
30
|
-
governanceProposerAddress: import("@aztec/aztec.js").EthAddress;
|
|
31
|
-
governanceAddress: import("@aztec/aztec.js").EthAddress;
|
|
32
|
-
stakingAssetAddress: import("@aztec/aztec.js").EthAddress;
|
|
33
|
-
} & {
|
|
34
|
-
slashFactoryAddress?: import("@aztec/aztec.js").EthAddress | undefined;
|
|
35
|
-
} & {
|
|
36
|
-
rollupAddress: import("@aztec/aztec.js").EthAddress;
|
|
37
|
-
} & {
|
|
38
|
-
rollupAddress: import("@aztec/aztec.js").EthAddress;
|
|
39
|
-
}>;
|
|
40
|
-
/** Sandbox settings. */
|
|
41
|
-
export type SandboxConfig = AztecNodeConfig & {
|
|
42
|
-
/** Mnemonic used to derive the L1 deployer private key.*/
|
|
43
|
-
l1Mnemonic: string;
|
|
44
|
-
/** Salt used to deploy L1 contracts.*/
|
|
45
|
-
l1Salt: string;
|
|
46
|
-
/** Whether to expose PXE service on sandbox start.*/
|
|
47
|
-
noPXE: boolean;
|
|
48
|
-
/** Whether to deploy test accounts on sandbox start.*/
|
|
49
|
-
testAccounts: boolean;
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* Create and start a new Aztec Node and PXE. Deploys L1 contracts.
|
|
53
|
-
* Does not start any HTTP services nor populate any initial accounts.
|
|
54
|
-
* @param config - Optional Sandbox settings.
|
|
55
|
-
*/
|
|
56
|
-
export declare function createSandbox(config: Partial<SandboxConfig> | undefined, userLog: LogFn): Promise<{
|
|
57
|
-
node: AztecNodeService;
|
|
58
|
-
pxe: import("@aztec/pxe/server").PXEService;
|
|
59
|
-
stop: () => Promise<void>;
|
|
60
|
-
}>;
|
|
61
|
-
/**
|
|
62
|
-
* Create and start a new Aztec RPC HTTP Server
|
|
63
|
-
* @param config - Optional Aztec node settings.
|
|
64
|
-
*/
|
|
65
|
-
export declare function createAztecNode(config?: Partial<AztecNodeConfig>, deps?: {
|
|
66
|
-
telemetry?: TelemetryClient;
|
|
67
|
-
blobSinkClient?: BlobSinkClientInterface;
|
|
68
|
-
}, options?: {
|
|
69
|
-
prefilledPublicData?: PublicDataTreeLeaf[];
|
|
70
|
-
}): Promise<AztecNodeService>;
|
|
71
|
-
/**
|
|
72
|
-
* Create and start a new Aztec PXE HTTP Server
|
|
73
|
-
* @param config - Optional PXE settings.
|
|
74
|
-
*/
|
|
75
|
-
export declare function createAztecPXE(node: AztecNode, config?: Partial<PXEServiceConfig>): Promise<import("@aztec/pxe/server").PXEService>;
|
|
76
|
-
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/sandbox.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AAE7F,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAU7F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AAGjE,OAAO,EAAE,KAAK,gBAAgB,EAAyC,MAAM,mBAAmB,CAAC;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAA2D,MAAM,MAAM,CAAC;AAavH;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,GAAG,iBAAiB,EACxC,oBAAoB,mCAAS,EAC7B,IAAI,GAAE;IAAE,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC;IAAC,gBAAgB,CAAC,EAAE,EAAE,CAAA;CAAO;;;;;;;;;;;;;;;;;;GA6BtH;AAED,wBAAwB;AACxB,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG;IAC5C,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,EAAE,OAAO,CAAC;IACf,uDAAuD;IACvD,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,MAAM,oCAA6B,EAAE,OAAO,EAAE,KAAK;;;;GAkGtF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,eAAe,CAAC;IAAC,cAAc,CAAC,EAAE,uBAAuB,CAAA;CAAO,EACpF,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAAO,6BAY7D;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM,mDAI3F"}
|
package/dest/sandbox/sandbox.js
DELETED
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env -S node --no-warnings
|
|
2
|
-
import { getSchnorrWallet } from '@aztec/accounts/schnorr';
|
|
3
|
-
import { deployFundedSchnorrAccounts, getInitialTestAccounts } from '@aztec/accounts/testing';
|
|
4
|
-
import { AztecNodeService, getConfigEnvVars } from '@aztec/aztec-node';
|
|
5
|
-
import { AnvilTestWatcher, EthCheatCodes, SignerlessWallet } from '@aztec/aztec.js';
|
|
6
|
-
import { createBlobSinkClient } from '@aztec/blob-sink/client';
|
|
7
|
-
import { setupCanonicalL2FeeJuice } from '@aztec/cli/setup-contracts';
|
|
8
|
-
import { GENESIS_ARCHIVE_ROOT, GENESIS_BLOCK_HASH } from '@aztec/constants';
|
|
9
|
-
import { NULL_KEY, createEthereumChain, deployL1Contracts, getL1ContractsConfigEnvVars, waitForPublicClient } from '@aztec/ethereum';
|
|
10
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
11
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
12
|
-
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
13
|
-
import { ProtocolContractAddress, protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
14
|
-
import { createPXEService, getPXEServiceConfig } from '@aztec/pxe/server';
|
|
15
|
-
import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
16
|
-
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
17
|
-
import { createPublicClient, fallback, http as httpViemTransport } from 'viem';
|
|
18
|
-
import { mnemonicToAccount } from 'viem/accounts';
|
|
19
|
-
import { foundry } from 'viem/chains';
|
|
20
|
-
import { createAccountLogs } from '../cli/util.js';
|
|
21
|
-
import { DefaultMnemonic } from '../mnemonic.js';
|
|
22
|
-
import { getBananaFPCAddress, setupBananaFPC } from './banana_fpc.js';
|
|
23
|
-
import { getSponsoredFPCAddress, setupSponsoredFPC } from './sponsored_fpc.js';
|
|
24
|
-
const logger = createLogger('sandbox');
|
|
25
|
-
const localAnvil = foundry;
|
|
26
|
-
/**
|
|
27
|
-
* Function to deploy our L1 contracts to the sandbox L1
|
|
28
|
-
* @param aztecNodeConfig - The Aztec Node Config
|
|
29
|
-
* @param hdAccount - Account for publishing L1 contracts
|
|
30
|
-
*/ export async function deployContractsToL1(aztecNodeConfig, hdAccount, contractDeployLogger = logger, opts = {}) {
|
|
31
|
-
const chain = aztecNodeConfig.l1RpcUrls.length > 0 ? createEthereumChain(aztecNodeConfig.l1RpcUrls, aztecNodeConfig.l1ChainId) : {
|
|
32
|
-
chainInfo: localAnvil
|
|
33
|
-
};
|
|
34
|
-
await waitForPublicClient(aztecNodeConfig);
|
|
35
|
-
const l1Contracts = await deployL1Contracts(aztecNodeConfig.l1RpcUrls, hdAccount, chain.chainInfo, contractDeployLogger, {
|
|
36
|
-
...getL1ContractsConfigEnvVars(),
|
|
37
|
-
...aztecNodeConfig,
|
|
38
|
-
l2FeeJuiceAddress: ProtocolContractAddress.FeeJuice.toField(),
|
|
39
|
-
vkTreeRoot: getVKTreeRoot(),
|
|
40
|
-
protocolContractTreeRoot,
|
|
41
|
-
genesisArchiveRoot: opts.genesisArchiveRoot ?? new Fr(GENESIS_ARCHIVE_ROOT),
|
|
42
|
-
genesisBlockHash: opts.genesisBlockHash ?? new Fr(GENESIS_BLOCK_HASH),
|
|
43
|
-
salt: opts.salt
|
|
44
|
-
});
|
|
45
|
-
aztecNodeConfig.l1Contracts = l1Contracts.l1ContractAddresses;
|
|
46
|
-
return aztecNodeConfig.l1Contracts;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Create and start a new Aztec Node and PXE. Deploys L1 contracts.
|
|
50
|
-
* Does not start any HTTP services nor populate any initial accounts.
|
|
51
|
-
* @param config - Optional Sandbox settings.
|
|
52
|
-
*/ export async function createSandbox(config = {}, userLog) {
|
|
53
|
-
// sandbox is meant for test envs. We should only need one l1RpcUrl
|
|
54
|
-
const l1RpcUrl = config.l1RpcUrls?.[0];
|
|
55
|
-
if (!l1RpcUrl) {
|
|
56
|
-
throw new Error('An L1 RPC URL is required');
|
|
57
|
-
}
|
|
58
|
-
if ((config.l1RpcUrls?.length || 0) > 1) {
|
|
59
|
-
logger.warn(`Multiple L1 RPC URLs provided. Sandbox will only use the first one: ${l1RpcUrl}`);
|
|
60
|
-
}
|
|
61
|
-
const aztecNodeConfig = {
|
|
62
|
-
...getConfigEnvVars(),
|
|
63
|
-
...config
|
|
64
|
-
};
|
|
65
|
-
const hdAccount = mnemonicToAccount(config.l1Mnemonic || DefaultMnemonic);
|
|
66
|
-
if (!aztecNodeConfig.publisherPrivateKey || aztecNodeConfig.publisherPrivateKey === NULL_KEY) {
|
|
67
|
-
const privKey = hdAccount.getHdKey().privateKey;
|
|
68
|
-
aztecNodeConfig.publisherPrivateKey = `0x${Buffer.from(privKey).toString('hex')}`;
|
|
69
|
-
}
|
|
70
|
-
if (!aztecNodeConfig.validatorPrivateKey || aztecNodeConfig.validatorPrivateKey === NULL_KEY) {
|
|
71
|
-
const privKey = hdAccount.getHdKey().privateKey;
|
|
72
|
-
aztecNodeConfig.validatorPrivateKey = `0x${Buffer.from(privKey).toString('hex')}`;
|
|
73
|
-
}
|
|
74
|
-
const initialAccounts = await (async ()=>{
|
|
75
|
-
if (config.testAccounts) {
|
|
76
|
-
if (aztecNodeConfig.p2pEnabled) {
|
|
77
|
-
userLog(`Not setting up test accounts as we are connecting to a network`);
|
|
78
|
-
} else if (config.noPXE) {
|
|
79
|
-
userLog(`Not setting up test accounts as we are not exposing a PXE`);
|
|
80
|
-
} else {
|
|
81
|
-
return await getInitialTestAccounts();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return [];
|
|
85
|
-
})();
|
|
86
|
-
const bananaFPC = await getBananaFPCAddress(initialAccounts);
|
|
87
|
-
const sponsoredFPC = await getSponsoredFPCAddress();
|
|
88
|
-
const fundedAddresses = initialAccounts.length ? [
|
|
89
|
-
...initialAccounts.map((a)=>a.address),
|
|
90
|
-
bananaFPC,
|
|
91
|
-
sponsoredFPC
|
|
92
|
-
] : [];
|
|
93
|
-
const { genesisArchiveRoot, genesisBlockHash, prefilledPublicData } = await getGenesisValues(fundedAddresses);
|
|
94
|
-
let watcher = undefined;
|
|
95
|
-
if (!aztecNodeConfig.p2pEnabled) {
|
|
96
|
-
const l1ContractAddresses = await deployContractsToL1(aztecNodeConfig, hdAccount, undefined, {
|
|
97
|
-
assumeProvenThroughBlockNumber: Number.MAX_SAFE_INTEGER,
|
|
98
|
-
genesisArchiveRoot,
|
|
99
|
-
genesisBlockHash,
|
|
100
|
-
salt: config.l1Salt ? parseInt(config.l1Salt) : undefined
|
|
101
|
-
});
|
|
102
|
-
const chain = aztecNodeConfig.l1RpcUrls.length > 0 ? createEthereumChain([
|
|
103
|
-
l1RpcUrl
|
|
104
|
-
], aztecNodeConfig.l1ChainId) : {
|
|
105
|
-
chainInfo: localAnvil
|
|
106
|
-
};
|
|
107
|
-
const publicClient = createPublicClient({
|
|
108
|
-
chain: chain.chainInfo,
|
|
109
|
-
transport: fallback([
|
|
110
|
-
httpViemTransport(l1RpcUrl)
|
|
111
|
-
])
|
|
112
|
-
});
|
|
113
|
-
watcher = new AnvilTestWatcher(new EthCheatCodes([
|
|
114
|
-
l1RpcUrl
|
|
115
|
-
]), l1ContractAddresses.rollupAddress, publicClient);
|
|
116
|
-
watcher.setIsSandbox(true);
|
|
117
|
-
await watcher.start();
|
|
118
|
-
}
|
|
119
|
-
const telemetry = initTelemetryClient(getTelemetryClientConfig());
|
|
120
|
-
// Create a local blob sink client inside the sandbox, no http connectivity
|
|
121
|
-
const blobSinkClient = createBlobSinkClient();
|
|
122
|
-
const node = await createAztecNode(aztecNodeConfig, {
|
|
123
|
-
telemetry,
|
|
124
|
-
blobSinkClient
|
|
125
|
-
}, {
|
|
126
|
-
prefilledPublicData
|
|
127
|
-
});
|
|
128
|
-
const pxe = await createAztecPXE(node);
|
|
129
|
-
await setupCanonicalL2FeeJuice(new SignerlessWallet(pxe), aztecNodeConfig.l1Contracts.feeJuicePortalAddress, undefined, logger.info);
|
|
130
|
-
if (initialAccounts.length) {
|
|
131
|
-
userLog('Setting up funded test accounts...');
|
|
132
|
-
const accounts = await deployFundedSchnorrAccounts(pxe, initialAccounts);
|
|
133
|
-
const accountsWithSecrets = accounts.map((account, i)=>({
|
|
134
|
-
account,
|
|
135
|
-
secretKey: initialAccounts[i].secret
|
|
136
|
-
}));
|
|
137
|
-
const accLogs = await createAccountLogs(accountsWithSecrets, pxe);
|
|
138
|
-
userLog(accLogs.join(''));
|
|
139
|
-
const deployer = await getSchnorrWallet(pxe, initialAccounts[0].address, initialAccounts[0].signingKey);
|
|
140
|
-
await setupBananaFPC(initialAccounts, deployer, userLog);
|
|
141
|
-
await setupSponsoredFPC(deployer, userLog);
|
|
142
|
-
}
|
|
143
|
-
const stop = async ()=>{
|
|
144
|
-
await node.stop();
|
|
145
|
-
await watcher?.stop();
|
|
146
|
-
};
|
|
147
|
-
return {
|
|
148
|
-
node,
|
|
149
|
-
pxe,
|
|
150
|
-
stop
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Create and start a new Aztec RPC HTTP Server
|
|
155
|
-
* @param config - Optional Aztec node settings.
|
|
156
|
-
*/ export async function createAztecNode(config = {}, deps = {}, options = {}) {
|
|
157
|
-
// TODO(#12272): will clean this up. This is criminal.
|
|
158
|
-
const { l1Contracts, ...rest } = getConfigEnvVars();
|
|
159
|
-
const aztecNodeConfig = {
|
|
160
|
-
...rest,
|
|
161
|
-
...config,
|
|
162
|
-
l1Contracts: {
|
|
163
|
-
...l1Contracts,
|
|
164
|
-
...config.l1Contracts
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
logger.info('createAztecNode', aztecNodeConfig);
|
|
168
|
-
const node = await AztecNodeService.createAndSync(aztecNodeConfig, deps, options);
|
|
169
|
-
return node;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Create and start a new Aztec PXE HTTP Server
|
|
173
|
-
* @param config - Optional PXE settings.
|
|
174
|
-
*/ export async function createAztecPXE(node, config = {}) {
|
|
175
|
-
const pxeServiceConfig = {
|
|
176
|
-
...getPXEServiceConfig(),
|
|
177
|
-
...config
|
|
178
|
-
};
|
|
179
|
-
const pxe = await createPXEService(node, pxeServiceConfig);
|
|
180
|
-
return pxe;
|
|
181
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { FeePaymentMethod } from '@aztec/aztec.js';
|
|
2
|
-
import { type FunctionCall } from '@aztec/stdlib/abi';
|
|
3
|
-
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
-
import type { PXE } from '@aztec/stdlib/interfaces/client';
|
|
5
|
-
/**
|
|
6
|
-
* A payment method that uses the SponsoredFPCContract to pay the fee unconditionally.
|
|
7
|
-
*/
|
|
8
|
-
export declare class SponsoredFeePaymentMethod implements FeePaymentMethod {
|
|
9
|
-
/**
|
|
10
|
-
* Contract which will pay the fee.
|
|
11
|
-
*/
|
|
12
|
-
private paymentContract;
|
|
13
|
-
constructor(
|
|
14
|
-
/**
|
|
15
|
-
* Contract which will pay the fee.
|
|
16
|
-
*/
|
|
17
|
-
paymentContract: AztecAddress);
|
|
18
|
-
static new(pxe: PXE): Promise<SponsoredFeePaymentMethod>;
|
|
19
|
-
getAsset(): Promise<AztecAddress>;
|
|
20
|
-
getFeePayer(): Promise<AztecAddress>;
|
|
21
|
-
getFunctionCalls(): Promise<FunctionCall[]>;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=sponsored_fee_payment_method.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sponsored_fee_payment_method.d.ts","sourceRoot":"","sources":["../../src/sandbox/sponsored_fee_payment_method.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,KAAK,YAAY,EAAkC,MAAM,mBAAmB,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AAI3D;;GAEG;AACH,qBAAa,yBAA0B,YAAW,gBAAgB;IAE9D;;OAEG;IACH,OAAO,CAAC,eAAe;;IAHvB;;OAEG;IACK,eAAe,EAAE,YAAY;WAG1B,GAAG,CAAC,GAAG,EAAE,GAAG;IAKzB,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IAIjC,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAI9B,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAalD"}
|