@aztec/cli 0.0.1-commit.3469e52 → 0.0.1-commit.381b1a9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/cmds/infrastructure/setup_l2_contract.d.ts +1 -1
- package/dest/cmds/infrastructure/setup_l2_contract.d.ts.map +1 -1
- package/dest/cmds/infrastructure/setup_l2_contract.js +4 -3
- package/dest/cmds/l1/assume_proven_through.d.ts +3 -2
- package/dest/cmds/l1/assume_proven_through.d.ts.map +1 -1
- package/dest/cmds/l1/assume_proven_through.js +3 -5
- package/dest/cmds/l1/compute_genesis_values.d.ts +4 -0
- package/dest/cmds/l1/compute_genesis_values.d.ts.map +1 -0
- package/dest/cmds/l1/compute_genesis_values.js +17 -0
- package/dest/cmds/l1/index.d.ts +1 -1
- package/dest/cmds/l1/index.d.ts.map +1 -1
- package/dest/cmds/l1/index.js +7 -2
- package/dest/cmds/l1/update_l1_validators.js +5 -5
- package/dest/config/cached_fetch.d.ts +19 -10
- package/dest/config/cached_fetch.d.ts.map +1 -1
- package/dest/config/cached_fetch.js +110 -32
- package/dest/config/generated/networks.d.ts +60 -41
- package/dest/config/generated/networks.d.ts.map +1 -1
- package/dest/config/generated/networks.js +60 -41
- package/dest/config/network_config.d.ts +1 -1
- package/dest/config/network_config.d.ts.map +1 -1
- package/dest/config/network_config.js +6 -2
- package/dest/utils/inspect.d.ts +1 -1
- package/dest/utils/inspect.d.ts.map +1 -1
- package/dest/utils/inspect.js +4 -1
- package/package.json +30 -30
- package/src/cmds/infrastructure/setup_l2_contract.ts +5 -4
- package/src/cmds/l1/assume_proven_through.ts +4 -7
- package/src/cmds/l1/compute_genesis_values.ts +29 -0
- package/src/cmds/l1/index.ts +23 -4
- package/src/cmds/l1/update_l1_validators.ts +5 -5
- package/src/config/cached_fetch.ts +119 -31
- package/src/config/generated/networks.ts +59 -40
- package/src/config/network_config.ts +6 -2
- package/src/utils/inspect.ts +4 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { LogFn } from '@aztec/foundation/log';
|
|
2
2
|
export declare function setupL2Contracts(nodeUrl: string, testAccounts: boolean, json: boolean, log: LogFn): Promise<void>;
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfbDJfY29udHJhY3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL2luZnJhc3RydWN0dXJlL3NldHVwX2wyX2NvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBS25ELHdCQUFzQixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxpQkF3QnZHIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup_l2_contract.d.ts","sourceRoot":"","sources":["../../../src/cmds/infrastructure/setup_l2_contract.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup_l2_contract.d.ts","sourceRoot":"","sources":["../../../src/cmds/infrastructure/setup_l2_contract.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKnD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,iBAwBvG"}
|
|
@@ -2,7 +2,8 @@ import { getInitialTestAccountsData } from '@aztec/accounts/testing';
|
|
|
2
2
|
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
3
3
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
4
4
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
5
|
-
import {
|
|
5
|
+
import { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
6
|
+
import { deployFundedSchnorrAccounts } from '@aztec/wallets/testing';
|
|
6
7
|
export async function setupL2Contracts(nodeUrl, testAccounts, json, log) {
|
|
7
8
|
const waitOpts = {
|
|
8
9
|
timeout: 180,
|
|
@@ -11,12 +12,12 @@ export async function setupL2Contracts(nodeUrl, testAccounts, json, log) {
|
|
|
11
12
|
log('setupL2Contracts: Wait options' + jsonStringify(waitOpts));
|
|
12
13
|
log('setupL2Contracts: Creating PXE client...');
|
|
13
14
|
const node = createAztecNodeClient(nodeUrl);
|
|
14
|
-
const wallet = await
|
|
15
|
+
const wallet = await EmbeddedWallet.create(node);
|
|
15
16
|
let deployedAccountManagers = [];
|
|
16
17
|
if (testAccounts) {
|
|
17
18
|
log('setupL2Contracts: Deploying test accounts...');
|
|
18
19
|
const initialAccountsData = await getInitialTestAccountsData();
|
|
19
|
-
deployedAccountManagers = await deployFundedSchnorrAccounts(wallet,
|
|
20
|
+
deployedAccountManagers = await deployFundedSchnorrAccounts(wallet, initialAccountsData, waitOpts);
|
|
20
21
|
}
|
|
21
22
|
if (json) {
|
|
22
23
|
const toPrint = {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import type { LogFn } from '@aztec/foundation/log';
|
|
2
|
-
export declare function assumeProvenThrough(
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
export declare function assumeProvenThrough(checkpointOrLatest: CheckpointNumber | undefined, l1RpcUrls: string[], nodeUrl: string, log: LogFn): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzdW1lX3Byb3Zlbl90aHJvdWdoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy9sMS9hc3N1bWVfcHJvdmVuX3Rocm91Z2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbkQsd0JBQXNCLG1CQUFtQixDQUN2QyxrQkFBa0IsRUFBRSxnQkFBZ0IsR0FBRyxTQUFTLEVBQ2hELFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsT0FBTyxFQUFFLE1BQU0sRUFDZixHQUFHLEVBQUUsS0FBSyxpQkFTWCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assume_proven_through.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/assume_proven_through.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assume_proven_through.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/assume_proven_through.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,wBAAsB,mBAAmB,CACvC,kBAAkB,EAAE,gBAAgB,GAAG,SAAS,EAChD,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,KAAK,iBASX"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
2
2
|
import { RollupCheatCodes } from '@aztec/ethereum/test';
|
|
3
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
4
3
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
5
|
-
export async function assumeProvenThrough(
|
|
4
|
+
export async function assumeProvenThrough(checkpointOrLatest, l1RpcUrls, nodeUrl, log) {
|
|
6
5
|
const aztecNode = createAztecNodeClient(nodeUrl);
|
|
7
6
|
const rollupAddress = await aztecNode.getNodeInfo().then((i)=>i.l1ContractAddresses.rollupAddress);
|
|
8
|
-
const blockNumber = blockNumberOrLatest ? BlockNumber(blockNumberOrLatest) : await aztecNode.getBlockNumber();
|
|
9
7
|
const rollupCheatCodes = RollupCheatCodes.create(l1RpcUrls, {
|
|
10
8
|
rollupAddress
|
|
11
9
|
}, new DateProvider());
|
|
12
|
-
await rollupCheatCodes.markAsProven(
|
|
13
|
-
log(`Assumed proven through
|
|
10
|
+
await rollupCheatCodes.markAsProven(checkpointOrLatest);
|
|
11
|
+
log(`Assumed proven through checkpoint ${checkpointOrLatest ?? 'latest'}`);
|
|
14
12
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { LogFn } from '@aztec/foundation/log';
|
|
2
|
+
/** Computes and prints genesis values needed for L1 contract deployment. */
|
|
3
|
+
export declare function computeGenesisValuesCmd(testAccounts: boolean, sponsoredFPC: boolean, log: LogFn): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZV9nZW5lc2lzX3ZhbHVlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NtZHMvbDEvY29tcHV0ZV9nZW5lc2lzX3ZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU1uRCw0RUFBNEU7QUFDNUUsd0JBQXNCLHVCQUF1QixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxpQkFvQnJHIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compute_genesis_values.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/compute_genesis_values.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAMnD,4EAA4E;AAC5E,wBAAsB,uBAAuB,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,iBAoBrG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { getInitialTestAccountsData } from '@aztec/accounts/testing';
|
|
2
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
3
|
+
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
4
|
+
import { getSponsoredFPCAddress } from '../../utils/setup_contracts.js';
|
|
5
|
+
/** Computes and prints genesis values needed for L1 contract deployment. */ export async function computeGenesisValuesCmd(testAccounts, sponsoredFPC, log) {
|
|
6
|
+
const initialAccounts = testAccounts ? await getInitialTestAccountsData() : [];
|
|
7
|
+
const sponsoredFPCAddresses = sponsoredFPC ? await getSponsoredFPCAddress() : [];
|
|
8
|
+
const initialFundedAccounts = initialAccounts.map((a)=>a.address).concat(sponsoredFPCAddresses);
|
|
9
|
+
const { genesisArchiveRoot } = await getGenesisValues(initialFundedAccounts);
|
|
10
|
+
const { getVKTreeRoot } = await import('@aztec/noir-protocol-circuits-types/vk-tree');
|
|
11
|
+
const vkTreeRoot = getVKTreeRoot();
|
|
12
|
+
log(JSON.stringify({
|
|
13
|
+
vkTreeRoot: vkTreeRoot.toString(),
|
|
14
|
+
protocolContractsHash: protocolContractsHash.toString(),
|
|
15
|
+
genesisArchiveRoot: genesisArchiveRoot.toString()
|
|
16
|
+
}, null, 2));
|
|
17
|
+
}
|
package/dest/cmds/l1/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
2
2
|
import { type Command } from 'commander';
|
|
3
3
|
export declare function injectCommands(program: Command, log: LogFn, debugLogger: Logger): Command;
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL2wxL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQVUsTUFBTSxXQUFXLENBQUM7QUF3QmpELHdCQUFnQixjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBK2YvRSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,WAAW,CAAC;AAwBjD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WA+f/E"}
|
package/dest/cmds/l1/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
3
|
import { Option } from 'commander';
|
|
3
4
|
import { ETHEREUM_HOSTS, MNEMONIC, PRIVATE_KEY, l1ChainIdOption, nodeOption, parseAztecAddress, parseBigint, parseEthereumAddress } from '../../utils/commands.js';
|
|
@@ -16,6 +17,10 @@ export function injectCommands(program, log, debugLogger) {
|
|
|
16
17
|
const initialValidators = options.validators?.split(',').map((validator)=>EthAddress.fromString(validator)) || [];
|
|
17
18
|
await deployNewRollup(options.registryAddress, options.l1RpcUrls, options.l1ChainId, options.privateKey, options.mnemonic, options.mnemonicIndex, options.testAccounts, options.sponsoredFpc, options.json, initialValidators, options.realVerifier, log);
|
|
18
19
|
});
|
|
20
|
+
program.command('compute-genesis-values').description('Computes genesis values (VK tree root, protocol contracts hash, genesis archive root).').addOption(new Option('--test-accounts <boolean>', 'Include initial test accounts in genesis state').env('TEST_ACCOUNTS').argParser((arg)=>arg === 'true')).addOption(new Option('--sponsored-fpc <boolean>', 'Include sponsored FPC contract in genesis state').env('SPONSORED_FPC').argParser((arg)=>arg === 'true')).action(async (options)=>{
|
|
21
|
+
const { computeGenesisValuesCmd } = await import('./compute_genesis_values.js');
|
|
22
|
+
await computeGenesisValuesCmd(options.testAccounts, options.sponsoredFpc, log);
|
|
23
|
+
});
|
|
19
24
|
program.command('deposit-governance-tokens').description('Deposits governance tokens to the governance contract.').requiredOption('-r, --registry-address <string>', 'The address of the registry contract', parseEthereumAddress).requiredOption('--recipient <string>', 'The recipient of the tokens', parseEthereumAddress).requiredOption('-a, --amount <string>', 'The amount of tokens to deposit', parseBigint).option('--mint', 'Mint the tokens on L1', false).addOption(l1RpcUrlsOption).addOption(l1ChainIdOption).option('-p, --private-key <string>', 'The private key to use to deposit', PRIVATE_KEY).option('-m, --mnemonic <string>', 'The mnemonic to use to deposit', 'test test test test test test test test test test test junk').option('-i, --mnemonic-index <number>', 'The index of the mnemonic to use to deposit', (arg)=>parseInt(arg), 0).action(async (options)=>{
|
|
20
25
|
const { depositGovernanceTokens } = await import('./governance_utils.js');
|
|
21
26
|
await depositGovernanceTokens({
|
|
@@ -188,9 +193,9 @@ export function injectCommands(program, log, debugLogger) {
|
|
|
188
193
|
});
|
|
189
194
|
program.command('set-proven-through', {
|
|
190
195
|
hidden: true
|
|
191
|
-
}).description('Instructs the L1 rollup contract to assume all blocks until the given
|
|
196
|
+
}).description('Instructs the L1 rollup contract to assume all blocks until the given checkpoint are automatically proven.').argument('[checkpoint]', 'The target checkpoint, defaults to the latest pending checkpoint.', parseBigint).addOption(l1RpcUrlsOption).addOption(nodeOption).action(async (checkpoint, options)=>{
|
|
192
197
|
const { assumeProvenThrough } = await import('./assume_proven_through.js');
|
|
193
|
-
await assumeProvenThrough(
|
|
198
|
+
await assumeProvenThrough(CheckpointNumber.fromBigInt(checkpoint), options.l1RpcUrls, options.nodeUrl, log);
|
|
194
199
|
});
|
|
195
200
|
program.command('advance-epoch').description('Use L1 cheat codes to warp time until the next epoch.').addOption(l1RpcUrlsOption).addOption(nodeOption).action(async (options)=>{
|
|
196
201
|
const { advanceEpoch } = await import('./advance_epoch.js');
|
|
@@ -2,7 +2,7 @@ import { createEthereumChain, isAnvilTestChain } from '@aztec/ethereum/chain';
|
|
|
2
2
|
import { createExtendedL1Client, getPublicClient } from '@aztec/ethereum/client';
|
|
3
3
|
import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
|
|
4
4
|
import { GSEContract, RollupContract } from '@aztec/ethereum/contracts';
|
|
5
|
-
import {
|
|
5
|
+
import { createL1TxUtils } from '@aztec/ethereum/l1-tx-utils';
|
|
6
6
|
import { EthCheatCodes } from '@aztec/ethereum/test';
|
|
7
7
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
8
8
|
import { RollupAbi, StakingAssetHandlerAbi, TestERC20Abi } from '@aztec/l1-artifacts';
|
|
@@ -38,7 +38,7 @@ export async function addL1Validator({ rpcUrls, chainId, privateKey, mnemonic, a
|
|
|
38
38
|
const gseAddress = await rollup.read.getGSE();
|
|
39
39
|
const gse = new GSEContract(l1Client, gseAddress);
|
|
40
40
|
const registrationTuple = await gse.makeRegistrationTuple(blsSecretKey);
|
|
41
|
-
const l1TxUtils =
|
|
41
|
+
const l1TxUtils = createL1TxUtils(l1Client, {
|
|
42
42
|
logger: debugLogger
|
|
43
43
|
});
|
|
44
44
|
const proofParamsObj = ZkPassportProofParams.fromBuffer(proofParams);
|
|
@@ -130,7 +130,7 @@ export async function addL1ValidatorViaRollup({ rpcUrls, chainId, privateKey, mn
|
|
|
130
130
|
const gseAddress = await rollup.read.getGSE();
|
|
131
131
|
const gse = new GSEContract(l1Client, gseAddress);
|
|
132
132
|
const registrationTuple = await gse.makeRegistrationTuple(blsSecretKey);
|
|
133
|
-
const l1TxUtils =
|
|
133
|
+
const l1TxUtils = createL1TxUtils(l1Client, {
|
|
134
134
|
logger: debugLogger
|
|
135
135
|
});
|
|
136
136
|
const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
|
|
@@ -172,7 +172,7 @@ export async function removeL1Validator({ rpcUrls, chainId, privateKey, mnemonic
|
|
|
172
172
|
const account = getAccount(privateKey, mnemonic);
|
|
173
173
|
const chain = createEthereumChain(rpcUrls, chainId);
|
|
174
174
|
const l1Client = createExtendedL1Client(rpcUrls, account, chain.chainInfo);
|
|
175
|
-
const l1TxUtils =
|
|
175
|
+
const l1TxUtils = createL1TxUtils(l1Client, {
|
|
176
176
|
logger: debugLogger
|
|
177
177
|
});
|
|
178
178
|
dualLog(`Removing validator ${validatorAddress.toString()} from rollup ${rollupAddress.toString()}`);
|
|
@@ -194,7 +194,7 @@ export async function pruneRollup({ rpcUrls, chainId, privateKey, mnemonic, roll
|
|
|
194
194
|
const account = getAccount(privateKey, mnemonic);
|
|
195
195
|
const chain = createEthereumChain(rpcUrls, chainId);
|
|
196
196
|
const l1Client = createExtendedL1Client(rpcUrls, account, chain.chainInfo);
|
|
197
|
-
const l1TxUtils =
|
|
197
|
+
const l1TxUtils = createL1TxUtils(l1Client, {
|
|
198
198
|
logger: debugLogger
|
|
199
199
|
});
|
|
200
200
|
dualLog(`Trying prune`);
|
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
export interface CachedFetchOptions {
|
|
2
|
-
/**
|
|
3
|
-
cacheDurationMs: number;
|
|
4
|
-
/** The cache file */
|
|
2
|
+
/** The cache file path for storing data. If not provided, no caching is performed. */
|
|
5
3
|
cacheFile?: string;
|
|
4
|
+
/** Fallback max-age in milliseconds when server sends no Cache-Control header. Defaults to 5 minutes. */
|
|
5
|
+
defaultMaxAgeMs?: number;
|
|
6
6
|
}
|
|
7
|
+
/** Extracts max-age value in milliseconds from a Response's Cache-Control header. Returns undefined if not present. */
|
|
8
|
+
export declare function parseMaxAge(response: {
|
|
9
|
+
headers: {
|
|
10
|
+
get(name: string): string | null;
|
|
11
|
+
};
|
|
12
|
+
}): number | undefined;
|
|
7
13
|
/**
|
|
8
|
-
* Fetches data from a URL with file-based caching
|
|
9
|
-
*
|
|
14
|
+
* Fetches data from a URL with file-based HTTP conditional caching.
|
|
15
|
+
*
|
|
16
|
+
* Data is stored as raw JSON in the cache file (same format as the server returns).
|
|
17
|
+
* Caching metadata (ETag, expiry) is stored in a separate sidecar `.meta` file.
|
|
18
|
+
* This keeps the data file human-readable and backward-compatible with older code.
|
|
10
19
|
*
|
|
11
20
|
* @param url - The URL to fetch from
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
* @returns The fetched and parsed JSON data, or undefined if fetch fails
|
|
21
|
+
* @param options - Caching options
|
|
22
|
+
* @param fetch - Fetch implementation (defaults to globalThis.fetch)
|
|
23
|
+
* @param log - Logger instance
|
|
24
|
+
* @returns The fetched and parsed JSON data, or undefined if fetch fails
|
|
16
25
|
*/
|
|
17
26
|
export declare function cachedFetch<T = any>(url: string, options: CachedFetchOptions, fetch?: typeof globalThis.fetch, log?: import("@aztec/aztec.js/log").Logger): Promise<T | undefined>;
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkX2ZldGNoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NhY2hlZF9mZXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLFdBQVcsa0JBQWtCO0lBQ2pDLHNGQUFzRjtJQUN0RixTQUFTLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDbkIseUdBQXlHO0lBQ3pHLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUMxQjtBQVVELHVIQUF1SDtBQUN2SCx3QkFBZ0IsV0FBVyxDQUFDLFFBQVEsRUFBRTtJQUFFLE9BQU8sRUFBRTtRQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUE7S0FBRSxDQUFBO0NBQUUsR0FBRyxNQUFNLEdBQUcsU0FBUyxDQVUzRztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILHdCQUFzQixXQUFXLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFDdkMsR0FBRyxFQUFFLE1BQU0sRUFDWCxPQUFPLEVBQUUsa0JBQWtCLEVBQzNCLEtBQUssMEJBQW1CLEVBQ3hCLEdBQUcsdUNBQStCLEdBQ2pDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBb0V4QiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cached_fetch.d.ts","sourceRoot":"","sources":["../../src/config/cached_fetch.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,
|
|
1
|
+
{"version":3,"file":"cached_fetch.d.ts","sourceRoot":"","sources":["../../src/config/cached_fetch.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yGAAyG;IACzG,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAUD,uHAAuH;AACvH,wBAAgB,WAAW,CAAC,QAAQ,EAAE;IAAE,OAAO,EAAE;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAU3G;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,GAAG,EACvC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,kBAAkB,EAC3B,KAAK,0BAAmB,EACxB,GAAG,uCAA+B,GACjC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAoExB"}
|
|
@@ -1,50 +1,105 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
2
|
-
import { mkdir, readFile,
|
|
2
|
+
import { mkdir, readFile, writeFile } from 'fs/promises';
|
|
3
3
|
import { dirname } from 'path';
|
|
4
|
+
const DEFAULT_MAX_AGE_MS = 5 * 60 * 1000; // 5 minutes
|
|
5
|
+
/** Extracts max-age value in milliseconds from a Response's Cache-Control header. Returns undefined if not present. */ export function parseMaxAge(response) {
|
|
6
|
+
const cacheControl = response.headers.get('cache-control');
|
|
7
|
+
if (!cacheControl) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
const match = cacheControl.match(/max-age=(\d+)/);
|
|
11
|
+
if (!match) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
return parseInt(match[1], 10) * 1000;
|
|
15
|
+
}
|
|
4
16
|
/**
|
|
5
|
-
* Fetches data from a URL with file-based caching
|
|
6
|
-
*
|
|
17
|
+
* Fetches data from a URL with file-based HTTP conditional caching.
|
|
18
|
+
*
|
|
19
|
+
* Data is stored as raw JSON in the cache file (same format as the server returns).
|
|
20
|
+
* Caching metadata (ETag, expiry) is stored in a separate sidecar `.meta` file.
|
|
21
|
+
* This keeps the data file human-readable and backward-compatible with older code.
|
|
7
22
|
*
|
|
8
23
|
* @param url - The URL to fetch from
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @returns The fetched and parsed JSON data, or undefined if fetch fails
|
|
24
|
+
* @param options - Caching options
|
|
25
|
+
* @param fetch - Fetch implementation (defaults to globalThis.fetch)
|
|
26
|
+
* @param log - Logger instance
|
|
27
|
+
* @returns The fetched and parsed JSON data, or undefined if fetch fails
|
|
13
28
|
*/ export async function cachedFetch(url, options, fetch = globalThis.fetch, log = createLogger('cached_fetch')) {
|
|
14
|
-
const {
|
|
15
|
-
//
|
|
29
|
+
const { cacheFile, defaultMaxAgeMs = DEFAULT_MAX_AGE_MS } = options;
|
|
30
|
+
// If no cacheFile, just fetch normally without caching
|
|
31
|
+
if (!cacheFile) {
|
|
32
|
+
return fetchAndParse(url, fetch, log);
|
|
33
|
+
}
|
|
34
|
+
const metaFile = cacheFile + '.meta';
|
|
35
|
+
// Try to read metadata
|
|
36
|
+
let meta;
|
|
16
37
|
try {
|
|
17
|
-
|
|
18
|
-
const info = await stat(cacheFile);
|
|
19
|
-
if (info.mtimeMs + cacheDurationMs > Date.now()) {
|
|
20
|
-
const cachedData = JSON.parse(await readFile(cacheFile, 'utf-8'));
|
|
21
|
-
return cachedData;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
38
|
+
meta = JSON.parse(await readFile(metaFile, 'utf-8'));
|
|
24
39
|
} catch {
|
|
25
|
-
log.trace('
|
|
40
|
+
log.trace('No usable cache metadata found');
|
|
26
41
|
}
|
|
42
|
+
// Try to read cached data
|
|
43
|
+
let cachedData;
|
|
27
44
|
try {
|
|
28
|
-
|
|
45
|
+
cachedData = JSON.parse(await readFile(cacheFile, 'utf-8'));
|
|
46
|
+
} catch {
|
|
47
|
+
log.trace('No usable cached data found');
|
|
48
|
+
}
|
|
49
|
+
// If metadata and data exist and cache is fresh, return directly
|
|
50
|
+
if (meta && cachedData !== undefined && meta.expiresAt > Date.now()) {
|
|
51
|
+
return cachedData;
|
|
52
|
+
}
|
|
53
|
+
// Cache is stale or missing — make a (possibly conditional) request
|
|
54
|
+
try {
|
|
55
|
+
const headers = {};
|
|
56
|
+
if (meta?.etag && cachedData !== undefined) {
|
|
57
|
+
headers['If-None-Match'] = meta.etag;
|
|
58
|
+
}
|
|
59
|
+
const response = await fetch(url, {
|
|
60
|
+
headers
|
|
61
|
+
});
|
|
62
|
+
if (response.status === 304 && cachedData !== undefined) {
|
|
63
|
+
// Not modified — recompute expiry from new response headers and return cached data
|
|
64
|
+
const maxAgeMs = parseMaxAge(response) ?? defaultMaxAgeMs;
|
|
65
|
+
await writeMetaFile(metaFile, {
|
|
66
|
+
etag: meta?.etag,
|
|
67
|
+
expiresAt: Date.now() + maxAgeMs
|
|
68
|
+
}, log);
|
|
69
|
+
return cachedData;
|
|
70
|
+
}
|
|
29
71
|
if (!response.ok) {
|
|
30
72
|
log.warn(`Failed to fetch from ${url}: ${response.status} ${response.statusText}`);
|
|
31
|
-
return
|
|
73
|
+
return cachedData;
|
|
32
74
|
}
|
|
75
|
+
// 200 — parse new data and cache it
|
|
33
76
|
const data = await response.json();
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
err
|
|
45
|
-
});
|
|
46
|
-
}
|
|
77
|
+
const maxAgeMs = parseMaxAge(response) ?? defaultMaxAgeMs;
|
|
78
|
+
const etag = response.headers.get('etag') ?? undefined;
|
|
79
|
+
await ensureDir(cacheFile, log);
|
|
80
|
+
await Promise.all([
|
|
81
|
+
writeFile(cacheFile, JSON.stringify(data), 'utf-8'),
|
|
82
|
+
writeFile(metaFile, JSON.stringify({
|
|
83
|
+
etag,
|
|
84
|
+
expiresAt: Date.now() + maxAgeMs
|
|
85
|
+
}), 'utf-8')
|
|
86
|
+
]);
|
|
47
87
|
return data;
|
|
88
|
+
} catch (err) {
|
|
89
|
+
log.warn(`Failed to fetch from ${url}`, {
|
|
90
|
+
err
|
|
91
|
+
});
|
|
92
|
+
return cachedData;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
async function fetchAndParse(url, fetch, log) {
|
|
96
|
+
try {
|
|
97
|
+
const response = await fetch(url);
|
|
98
|
+
if (!response.ok) {
|
|
99
|
+
log.warn(`Failed to fetch from ${url}: ${response.status} ${response.statusText}`);
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
return await response.json();
|
|
48
103
|
} catch (err) {
|
|
49
104
|
log.warn(`Failed to fetch from ${url}`, {
|
|
50
105
|
err
|
|
@@ -52,3 +107,26 @@ import { dirname } from 'path';
|
|
|
52
107
|
return undefined;
|
|
53
108
|
}
|
|
54
109
|
}
|
|
110
|
+
async function ensureDir(filePath, log) {
|
|
111
|
+
try {
|
|
112
|
+
await mkdir(dirname(filePath), {
|
|
113
|
+
recursive: true
|
|
114
|
+
});
|
|
115
|
+
} catch (err) {
|
|
116
|
+
log.warn('Failed to create cache directory for: ' + filePath, {
|
|
117
|
+
err
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
async function writeMetaFile(metaFile, meta, log) {
|
|
122
|
+
try {
|
|
123
|
+
await mkdir(dirname(metaFile), {
|
|
124
|
+
recursive: true
|
|
125
|
+
});
|
|
126
|
+
await writeFile(metaFile, JSON.stringify(meta), 'utf-8');
|
|
127
|
+
} catch (err) {
|
|
128
|
+
log.warn('Failed to write cache metadata: ' + metaFile, {
|
|
129
|
+
err
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const devnetConfig: {
|
|
2
2
|
readonly ETHEREUM_SLOT_DURATION: 12;
|
|
3
|
-
readonly AZTEC_SLOT_DURATION:
|
|
3
|
+
readonly AZTEC_SLOT_DURATION: 72;
|
|
4
4
|
readonly AZTEC_TARGET_COMMITTEE_SIZE: 48;
|
|
5
5
|
readonly AZTEC_ACTIVATION_THRESHOLD: 100000000000000000000;
|
|
6
6
|
readonly AZTEC_EJECTION_THRESHOLD: 50000000000000000000;
|
|
@@ -10,6 +10,7 @@ export declare const devnetConfig: {
|
|
|
10
10
|
readonly AZTEC_PROOF_SUBMISSION_EPOCHS: 1;
|
|
11
11
|
readonly AZTEC_MANA_TARGET: 100000000;
|
|
12
12
|
readonly AZTEC_PROVING_COST_PER_MANA: 100;
|
|
13
|
+
readonly AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000;
|
|
13
14
|
readonly AZTEC_SLASHER_FLAVOR: "tally";
|
|
14
15
|
readonly AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: 4;
|
|
15
16
|
readonly AZTEC_SLASHING_LIFETIME_IN_ROUNDS: 5;
|
|
@@ -27,8 +28,10 @@ export declare const devnetConfig: {
|
|
|
27
28
|
readonly SLASH_EXECUTE_ROUNDS_LOOK_BACK: 4;
|
|
28
29
|
readonly P2P_ENABLED: true;
|
|
29
30
|
readonly BOOTSTRAP_NODES: "";
|
|
30
|
-
readonly SEQ_MIN_TX_PER_BLOCK:
|
|
31
|
+
readonly SEQ_MIN_TX_PER_BLOCK: 1;
|
|
31
32
|
readonly SEQ_BUILD_CHECKPOINT_IF_EMPTY: true;
|
|
33
|
+
readonly SEQ_BLOCK_DURATION_MS: 6000;
|
|
34
|
+
readonly SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT: 36;
|
|
32
35
|
readonly DATA_STORE_MAP_SIZE_KB: 134217728;
|
|
33
36
|
readonly ARCHIVER_STORE_MAP_SIZE_KB: 1073741824;
|
|
34
37
|
readonly NOTE_HASH_TREE_MAP_SIZE_KB: 1073741824;
|
|
@@ -44,7 +47,7 @@ export declare const devnetConfig: {
|
|
|
44
47
|
readonly TEST_ACCOUNTS: true;
|
|
45
48
|
readonly SPONSORED_FPC: true;
|
|
46
49
|
readonly TRANSACTIONS_DISABLED: false;
|
|
47
|
-
readonly SEQ_MAX_TX_PER_BLOCK:
|
|
50
|
+
readonly SEQ_MAX_TX_PER_BLOCK: 18;
|
|
48
51
|
readonly PROVER_REAL_PROOFS: false;
|
|
49
52
|
readonly PXE_PROVER_ENABLED: false;
|
|
50
53
|
readonly SYNC_SNAPSHOTS_URLS: "";
|
|
@@ -52,8 +55,6 @@ export declare const devnetConfig: {
|
|
|
52
55
|
readonly BLOB_ALLOW_EMPTY_SOURCES: false;
|
|
53
56
|
readonly P2P_MAX_PENDING_TX_COUNT: 1000;
|
|
54
57
|
readonly P2P_TX_POOL_DELETE_TXS_AFTER_REORG: false;
|
|
55
|
-
readonly AUTO_UPDATE: "none";
|
|
56
|
-
readonly AUTO_UPDATE_URL: "";
|
|
57
58
|
readonly PUBLIC_OTEL_OPT_OUT: true;
|
|
58
59
|
readonly PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: "";
|
|
59
60
|
readonly PUBLIC_OTEL_COLLECT_FROM: "";
|
|
@@ -63,29 +64,29 @@ export declare const devnetConfig: {
|
|
|
63
64
|
readonly SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD: 1;
|
|
64
65
|
readonly SLASH_INACTIVITY_PENALTY: 10000000000000000000;
|
|
65
66
|
readonly SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY: 10000000000000000000;
|
|
67
|
+
readonly SLASH_DUPLICATE_PROPOSAL_PENALTY: 10000000000000000000;
|
|
68
|
+
readonly SLASH_DUPLICATE_ATTESTATION_PENALTY: 10000000000000000000;
|
|
66
69
|
readonly SLASH_ATTEST_DESCENDANT_OF_INVALID_PENALTY: 10000000000000000000;
|
|
67
70
|
readonly SLASH_UNKNOWN_PENALTY: 10000000000000000000;
|
|
68
71
|
readonly SLASH_INVALID_BLOCK_PENALTY: 10000000000000000000;
|
|
69
72
|
readonly SLASH_GRACE_PERIOD_L2_SLOTS: 0;
|
|
73
|
+
readonly ENABLE_VERSION_CHECK: true;
|
|
70
74
|
};
|
|
71
75
|
export declare const testnetConfig: {
|
|
72
76
|
readonly ETHEREUM_SLOT_DURATION: 12;
|
|
73
77
|
readonly AZTEC_EPOCH_DURATION: 32;
|
|
74
78
|
readonly AZTEC_TARGET_COMMITTEE_SIZE: 48;
|
|
75
79
|
readonly AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2;
|
|
76
|
-
readonly AZTEC_LAG_IN_EPOCHS_FOR_RANDAO:
|
|
80
|
+
readonly AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 1;
|
|
77
81
|
readonly AZTEC_EXIT_DELAY_SECONDS: 172800;
|
|
78
82
|
readonly AZTEC_INBOX_LAG: 1;
|
|
79
83
|
readonly AZTEC_PROOF_SUBMISSION_EPOCHS: 1;
|
|
80
|
-
readonly
|
|
84
|
+
readonly AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000;
|
|
81
85
|
readonly AZTEC_SLASHER_FLAVOR: "tally";
|
|
82
86
|
readonly AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: 4;
|
|
83
87
|
readonly AZTEC_SLASHING_LIFETIME_IN_ROUNDS: 5;
|
|
84
88
|
readonly AZTEC_SLASHING_OFFSET_IN_ROUNDS: 2;
|
|
85
89
|
readonly AZTEC_SLASHING_DISABLE_DURATION: 432000;
|
|
86
|
-
readonly AZTEC_SLASH_AMOUNT_SMALL: 10000000000000000000;
|
|
87
|
-
readonly AZTEC_SLASH_AMOUNT_MEDIUM: 20000000000000000000;
|
|
88
|
-
readonly AZTEC_SLASH_AMOUNT_LARGE: 50000000000000000000;
|
|
89
90
|
readonly SLASH_MIN_PENALTY_PERCENTAGE: 0.5;
|
|
90
91
|
readonly SLASH_MAX_PENALTY_PERCENTAGE: 2;
|
|
91
92
|
readonly SLASH_OFFENSE_EXPIRATION_ROUNDS: 4;
|
|
@@ -93,8 +94,10 @@ export declare const testnetConfig: {
|
|
|
93
94
|
readonly SLASH_EXECUTE_ROUNDS_LOOK_BACK: 4;
|
|
94
95
|
readonly P2P_ENABLED: true;
|
|
95
96
|
readonly BOOTSTRAP_NODES: "";
|
|
96
|
-
readonly SEQ_MIN_TX_PER_BLOCK:
|
|
97
|
+
readonly SEQ_MIN_TX_PER_BLOCK: 1;
|
|
97
98
|
readonly SEQ_BUILD_CHECKPOINT_IF_EMPTY: true;
|
|
99
|
+
readonly SEQ_BLOCK_DURATION_MS: 6000;
|
|
100
|
+
readonly SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT: 36;
|
|
98
101
|
readonly DATA_STORE_MAP_SIZE_KB: 134217728;
|
|
99
102
|
readonly ARCHIVER_STORE_MAP_SIZE_KB: 1073741824;
|
|
100
103
|
readonly NOTE_HASH_TREE_MAP_SIZE_KB: 1073741824;
|
|
@@ -111,32 +114,42 @@ export declare const testnetConfig: {
|
|
|
111
114
|
readonly AZTEC_SLASHING_QUORUM: 33;
|
|
112
115
|
readonly AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE: 100;
|
|
113
116
|
readonly AZTEC_GOVERNANCE_PROPOSER_QUORUM: 60;
|
|
114
|
-
readonly AZTEC_MANA_TARGET:
|
|
117
|
+
readonly AZTEC_MANA_TARGET: 75000000;
|
|
118
|
+
readonly AZTEC_PROVING_COST_PER_MANA: 25000000;
|
|
119
|
+
readonly AZTEC_SLASH_AMOUNT_SMALL: 1e+23;
|
|
120
|
+
readonly AZTEC_SLASH_AMOUNT_MEDIUM: 1e+23;
|
|
121
|
+
readonly AZTEC_SLASH_AMOUNT_LARGE: 1e+23;
|
|
115
122
|
readonly L1_CHAIN_ID: 11155111;
|
|
116
123
|
readonly TEST_ACCOUNTS: false;
|
|
117
|
-
readonly SPONSORED_FPC:
|
|
124
|
+
readonly SPONSORED_FPC: false;
|
|
118
125
|
readonly TRANSACTIONS_DISABLED: false;
|
|
119
|
-
readonly
|
|
126
|
+
readonly SEQ_MAX_TX_PER_CHECKPOINT: 72;
|
|
120
127
|
readonly PROVER_REAL_PROOFS: true;
|
|
128
|
+
readonly P2P_MAX_PENDING_TX_COUNT: 1000;
|
|
121
129
|
readonly P2P_TX_POOL_DELETE_TXS_AFTER_REORG: true;
|
|
122
|
-
readonly SLASH_PRUNE_PENALTY:
|
|
123
|
-
readonly SLASH_DATA_WITHHOLDING_PENALTY:
|
|
124
|
-
readonly SLASH_INACTIVITY_TARGET_PERCENTAGE: 0.
|
|
125
|
-
readonly SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD:
|
|
126
|
-
readonly SLASH_INACTIVITY_PENALTY:
|
|
127
|
-
readonly SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY:
|
|
128
|
-
readonly
|
|
129
|
-
readonly
|
|
130
|
-
readonly
|
|
131
|
-
readonly
|
|
130
|
+
readonly SLASH_PRUNE_PENALTY: 0;
|
|
131
|
+
readonly SLASH_DATA_WITHHOLDING_PENALTY: 0;
|
|
132
|
+
readonly SLASH_INACTIVITY_TARGET_PERCENTAGE: 0.7;
|
|
133
|
+
readonly SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD: 2;
|
|
134
|
+
readonly SLASH_INACTIVITY_PENALTY: 1e+23;
|
|
135
|
+
readonly SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY: 1e+23;
|
|
136
|
+
readonly SLASH_DUPLICATE_PROPOSAL_PENALTY: 0;
|
|
137
|
+
readonly SLASH_DUPLICATE_ATTESTATION_PENALTY: 0;
|
|
138
|
+
readonly SLASH_ATTEST_DESCENDANT_OF_INVALID_PENALTY: 1e+23;
|
|
139
|
+
readonly SLASH_UNKNOWN_PENALTY: 1e+23;
|
|
140
|
+
readonly SLASH_INVALID_BLOCK_PENALTY: 1e+23;
|
|
141
|
+
readonly SLASH_GRACE_PERIOD_L2_SLOTS: 3600;
|
|
142
|
+
readonly ENABLE_VERSION_CHECK: true;
|
|
132
143
|
};
|
|
133
144
|
export declare const mainnetConfig: {
|
|
134
145
|
readonly ETHEREUM_SLOT_DURATION: 12;
|
|
135
146
|
readonly AZTEC_EPOCH_DURATION: 32;
|
|
147
|
+
readonly AZTEC_TARGET_COMMITTEE_SIZE: 48;
|
|
136
148
|
readonly AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2;
|
|
137
|
-
readonly AZTEC_LAG_IN_EPOCHS_FOR_RANDAO:
|
|
149
|
+
readonly AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 1;
|
|
138
150
|
readonly AZTEC_INBOX_LAG: 1;
|
|
139
151
|
readonly AZTEC_PROOF_SUBMISSION_EPOCHS: 1;
|
|
152
|
+
readonly AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000;
|
|
140
153
|
readonly AZTEC_SLASHER_FLAVOR: "tally";
|
|
141
154
|
readonly AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: 4;
|
|
142
155
|
readonly AZTEC_SLASHING_OFFSET_IN_ROUNDS: 2;
|
|
@@ -147,8 +160,10 @@ export declare const mainnetConfig: {
|
|
|
147
160
|
readonly SLASH_EXECUTE_ROUNDS_LOOK_BACK: 4;
|
|
148
161
|
readonly P2P_ENABLED: true;
|
|
149
162
|
readonly BOOTSTRAP_NODES: "";
|
|
150
|
-
readonly SEQ_MIN_TX_PER_BLOCK:
|
|
163
|
+
readonly SEQ_MIN_TX_PER_BLOCK: 1;
|
|
151
164
|
readonly SEQ_BUILD_CHECKPOINT_IF_EMPTY: true;
|
|
165
|
+
readonly SEQ_BLOCK_DURATION_MS: 6000;
|
|
166
|
+
readonly SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT: 36;
|
|
152
167
|
readonly DATA_STORE_MAP_SIZE_KB: 134217728;
|
|
153
168
|
readonly ARCHIVER_STORE_MAP_SIZE_KB: 1073741824;
|
|
154
169
|
readonly NOTE_HASH_TREE_MAP_SIZE_KB: 1073741824;
|
|
@@ -157,10 +172,9 @@ export declare const mainnetConfig: {
|
|
|
157
172
|
readonly PUBLIC_OTEL_INCLUDE_METRICS: "aztec.validator,aztec.tx_collector,aztec.mempool,aztec.p2p.gossip.agg_,aztec.ivc_verifier.agg_";
|
|
158
173
|
readonly SENTINEL_ENABLED: true;
|
|
159
174
|
readonly AZTEC_SLOT_DURATION: 72;
|
|
160
|
-
readonly AZTEC_TARGET_COMMITTEE_SIZE: 24;
|
|
161
175
|
readonly AZTEC_ACTIVATION_THRESHOLD: 2e+23;
|
|
162
176
|
readonly AZTEC_EJECTION_THRESHOLD: 1e+23;
|
|
163
|
-
readonly AZTEC_LOCAL_EJECTION_THRESHOLD: 1.
|
|
177
|
+
readonly AZTEC_LOCAL_EJECTION_THRESHOLD: 1.9e+23;
|
|
164
178
|
readonly AZTEC_SLASH_AMOUNT_SMALL: 2e+21;
|
|
165
179
|
readonly AZTEC_SLASH_AMOUNT_MEDIUM: 2e+21;
|
|
166
180
|
readonly AZTEC_SLASH_AMOUNT_LARGE: 2e+21;
|
|
@@ -170,33 +184,38 @@ export declare const mainnetConfig: {
|
|
|
170
184
|
readonly AZTEC_SLASHING_QUORUM: 65;
|
|
171
185
|
readonly AZTEC_GOVERNANCE_PROPOSER_QUORUM: 600;
|
|
172
186
|
readonly AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE: 1000;
|
|
173
|
-
readonly AZTEC_MANA_TARGET:
|
|
174
|
-
readonly AZTEC_PROVING_COST_PER_MANA:
|
|
187
|
+
readonly AZTEC_MANA_TARGET: 75000000;
|
|
188
|
+
readonly AZTEC_PROVING_COST_PER_MANA: 25000000;
|
|
175
189
|
readonly AZTEC_EXIT_DELAY_SECONDS: 345600;
|
|
176
190
|
readonly AZTEC_SLASHING_DISABLE_DURATION: 259200;
|
|
191
|
+
readonly AZTEC_ENTRY_QUEUE_BOOTSTRAP_VALIDATOR_SET_SIZE: 500;
|
|
192
|
+
readonly AZTEC_ENTRY_QUEUE_BOOTSTRAP_FLUSH_SIZE: 500;
|
|
193
|
+
readonly AZTEC_ENTRY_QUEUE_FLUSH_SIZE_MIN: 1;
|
|
194
|
+
readonly AZTEC_ENTRY_QUEUE_FLUSH_SIZE_QUOTIENT: 400;
|
|
195
|
+
readonly AZTEC_ENTRY_QUEUE_MAX_FLUSH_SIZE: 4;
|
|
177
196
|
readonly L1_CHAIN_ID: 1;
|
|
178
197
|
readonly TEST_ACCOUNTS: false;
|
|
179
198
|
readonly SPONSORED_FPC: false;
|
|
180
|
-
readonly TRANSACTIONS_DISABLED:
|
|
181
|
-
readonly
|
|
199
|
+
readonly TRANSACTIONS_DISABLED: false;
|
|
200
|
+
readonly SEQ_MAX_TX_PER_CHECKPOINT: 72;
|
|
182
201
|
readonly PROVER_REAL_PROOFS: true;
|
|
183
|
-
readonly SYNC_SNAPSHOTS_URLS: "https://aztec-labs-snapshots.com/mainnet/";
|
|
184
202
|
readonly BLOB_ALLOW_EMPTY_SOURCES: true;
|
|
185
|
-
readonly P2P_MAX_PENDING_TX_COUNT:
|
|
203
|
+
readonly P2P_MAX_PENDING_TX_COUNT: 1000;
|
|
186
204
|
readonly P2P_TX_POOL_DELETE_TXS_AFTER_REORG: true;
|
|
187
|
-
readonly
|
|
188
|
-
readonly
|
|
189
|
-
readonly
|
|
190
|
-
readonly PUBLIC_OTEL_COLLECT_FROM: "sequencer";
|
|
205
|
+
readonly PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: "";
|
|
206
|
+
readonly PUBLIC_OTEL_COLLECT_FROM: "";
|
|
207
|
+
readonly ENABLE_VERSION_CHECK: false;
|
|
191
208
|
readonly SLASH_PRUNE_PENALTY: 0;
|
|
192
209
|
readonly SLASH_DATA_WITHHOLDING_PENALTY: 0;
|
|
193
|
-
readonly SLASH_INACTIVITY_TARGET_PERCENTAGE: 0.
|
|
210
|
+
readonly SLASH_INACTIVITY_TARGET_PERCENTAGE: 0.7;
|
|
194
211
|
readonly SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD: 2;
|
|
195
212
|
readonly SLASH_INACTIVITY_PENALTY: 2e+21;
|
|
196
213
|
readonly SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY: 2e+21;
|
|
214
|
+
readonly SLASH_DUPLICATE_PROPOSAL_PENALTY: 0;
|
|
215
|
+
readonly SLASH_DUPLICATE_ATTESTATION_PENALTY: 0;
|
|
197
216
|
readonly SLASH_ATTEST_DESCENDANT_OF_INVALID_PENALTY: 2e+21;
|
|
198
217
|
readonly SLASH_UNKNOWN_PENALTY: 2e+21;
|
|
199
218
|
readonly SLASH_INVALID_BLOCK_PENALTY: 2e+21;
|
|
200
|
-
readonly SLASH_GRACE_PERIOD_L2_SLOTS:
|
|
219
|
+
readonly SLASH_GRACE_PERIOD_L2_SLOTS: 8400;
|
|
201
220
|
};
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvZ2VuZXJhdGVkL25ldHdvcmtzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLGVBQU8sTUFBTSxZQUFZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBeUVmLENBQUM7QUFFWCxlQUFPLE1BQU0sYUFBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FvRWhCLENBQUM7QUFFWCxlQUFPLE1BQU0sYUFBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTRFaEIsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../../../src/config/generated/networks.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../../../src/config/generated/networks.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEf,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoEhB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4EhB,CAAC"}
|