@aztec/ethereum 0.0.1-commit.7d4e6cd → 0.0.1-commit.8afd444
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/config.d.ts +15 -28
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +46 -55
- package/dest/contracts/empire_slashing_proposer.d.ts +1 -1
- package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.js +13 -15
- package/dest/contracts/fee_asset_handler.d.ts +1 -1
- package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
- package/dest/contracts/fee_asset_handler.js +2 -0
- package/dest/contracts/governance.d.ts +3 -1
- package/dest/contracts/governance.d.ts.map +1 -1
- package/dest/contracts/governance.js +11 -1
- package/dest/contracts/governance_proposer.d.ts +1 -1
- package/dest/contracts/governance_proposer.d.ts.map +1 -1
- package/dest/contracts/governance_proposer.js +4 -1
- package/dest/contracts/inbox.d.ts +18 -1
- package/dest/contracts/inbox.d.ts.map +1 -1
- package/dest/contracts/inbox.js +32 -1
- package/dest/contracts/index.d.ts +2 -1
- package/dest/contracts/index.d.ts.map +1 -1
- package/dest/contracts/index.js +1 -0
- package/dest/contracts/log.d.ts +13 -0
- package/dest/contracts/log.d.ts.map +1 -0
- package/dest/contracts/log.js +1 -0
- package/dest/contracts/multicall.d.ts +1 -1
- package/dest/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +2 -1
- package/dest/contracts/rollup.d.ts +34 -3
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +71 -3
- package/dest/contracts/tally_slashing_proposer.d.ts +1 -1
- package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/tally_slashing_proposer.js +8 -1
- package/dest/deploy_aztec_l1_contracts.d.ts +6 -1
- package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_aztec_l1_contracts.js +26 -12
- package/dest/generated/l1-contracts-defaults.d.ts +30 -0
- package/dest/generated/l1-contracts-defaults.d.ts.map +1 -0
- package/dest/generated/l1-contracts-defaults.js +30 -0
- package/dest/l1_artifacts.d.ts +1394 -471
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_tx_utils/constants.d.ts +1 -1
- package/dest/l1_tx_utils/constants.js +2 -2
- package/dest/l1_tx_utils/l1_tx_utils.js +6 -6
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +3 -3
- package/dest/publisher_manager.d.ts +3 -2
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +2 -2
- package/dest/queries.d.ts +2 -2
- package/dest/queries.d.ts.map +1 -1
- package/dest/queries.js +4 -1
- package/dest/test/eth_cheat_codes.d.ts +13 -1
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.d.ts +4 -2
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +10 -1
- package/dest/test/start_anvil.js +1 -1
- package/dest/utils.d.ts +2 -1
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +46 -0
- package/package.json +8 -7
- package/src/config.ts +55 -54
- package/src/contracts/README.md +157 -0
- package/src/contracts/empire_slashing_proposer.ts +16 -27
- package/src/contracts/fee_asset_handler.ts +2 -0
- package/src/contracts/governance.ts +10 -1
- package/src/contracts/governance_proposer.ts +4 -1
- package/src/contracts/inbox.ts +48 -1
- package/src/contracts/index.ts +1 -0
- package/src/contracts/log.ts +13 -0
- package/src/contracts/multicall.ts +5 -2
- package/src/contracts/rollup.ts +100 -4
- package/src/contracts/tally_slashing_proposer.ts +5 -1
- package/src/deploy_aztec_l1_contracts.ts +27 -9
- package/src/generated/l1-contracts-defaults.ts +32 -0
- package/src/l1_tx_utils/constants.ts +2 -2
- package/src/l1_tx_utils/l1_tx_utils.ts +6 -6
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +3 -3
- package/src/publisher_manager.ts +4 -2
- package/src/queries.ts +3 -1
- package/src/test/rollup_cheat_codes.ts +11 -2
- package/src/test/start_anvil.ts +1 -1
- package/src/utils.ts +53 -0
|
@@ -7,11 +7,11 @@ import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
|
7
7
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
8
8
|
import { bn254 } from '@noble/curves/bn254';
|
|
9
9
|
import { spawn } from 'child_process';
|
|
10
|
-
import { cpSync, existsSync, mkdirSync, mkdtempSync,
|
|
10
|
+
import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'fs';
|
|
11
11
|
import { tmpdir } from 'os';
|
|
12
12
|
import { dirname, join, resolve } from 'path';
|
|
13
13
|
import readline from 'readline';
|
|
14
|
-
import {
|
|
14
|
+
import { mainnet, sepolia } from 'viem/chains';
|
|
15
15
|
import { createEthereumChain, isAnvilTestChain } from './chain.js';
|
|
16
16
|
import { createExtendedL1Client } from './client.js';
|
|
17
17
|
import { deployMulticall3 } from './contracts/multicall.js';
|
|
@@ -110,10 +110,13 @@ function cleanupDeployDir() {
|
|
|
110
110
|
* A fresh broadcast/ directory is created for deployment outputs.
|
|
111
111
|
*/ export function prepareL1ContractsForDeployment() {
|
|
112
112
|
if (preparedDeployDir && existsSync(preparedDeployDir)) {
|
|
113
|
+
logger.verbose(`Using cached deployment directory: ${preparedDeployDir}`);
|
|
113
114
|
return preparedDeployDir;
|
|
114
115
|
}
|
|
115
116
|
const basePath = getL1ContractsPath();
|
|
117
|
+
logger.verbose(`Preparing L1 contracts from: ${basePath}`);
|
|
116
118
|
const tempDir = mkdtempSync(join(tmpdir(), '.foundry-deploy-'));
|
|
119
|
+
logger.verbose(`Created temp directory for deployment: ${tempDir}`);
|
|
117
120
|
preparedDeployDir = tempDir;
|
|
118
121
|
process.on('exit', cleanupDeployDir);
|
|
119
122
|
// Copy all dirs with preserved timestamps (required for forge cache validity)
|
|
@@ -127,13 +130,23 @@ function cleanupDeployDir() {
|
|
|
127
130
|
cpSync(join(basePath, 'src'), join(tempDir, 'src'), copyOpts);
|
|
128
131
|
cpSync(join(basePath, 'script'), join(tempDir, 'script'), copyOpts);
|
|
129
132
|
cpSync(join(basePath, 'generated'), join(tempDir, 'generated'), copyOpts);
|
|
130
|
-
|
|
133
|
+
// Kludge: copy test/ to appease forge cache which references test/shouting.t.sol
|
|
134
|
+
cpSync(join(basePath, 'test'), join(tempDir, 'test'), copyOpts);
|
|
131
135
|
cpSync(join(basePath, 'foundry.lock'), join(tempDir, 'foundry.lock'));
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
+
// Update foundry.toml to use absolute path to solc binary (avoids copying to noexec tmpfs)
|
|
137
|
+
const foundryTomlPath = join(basePath, 'foundry.toml');
|
|
138
|
+
let foundryToml = readFileSync(foundryTomlPath, 'utf-8');
|
|
139
|
+
const solcPathMatch = foundryToml.match(/solc\s*=\s*"\.\/solc-([^"]+)"/);
|
|
140
|
+
// Did we find a hardcoded solc path that we need to make absolute?
|
|
141
|
+
// This code path happens in CI currently as we bundle solc there to avoid race conditions when
|
|
142
|
+
// downloading solc.
|
|
143
|
+
if (solcPathMatch) {
|
|
144
|
+
const solcVersion = solcPathMatch[1];
|
|
145
|
+
const absoluteSolcPath = join(basePath, `solc-${solcVersion}`);
|
|
146
|
+
foundryToml = foundryToml.replace(/solc\s*=\s*"\.\/solc-[^"]+"/, `solc = "${absoluteSolcPath}"`);
|
|
147
|
+
logger.verbose(`Updated solc path in foundry.toml to: ${absoluteSolcPath}`);
|
|
136
148
|
}
|
|
149
|
+
writeFileSync(join(tempDir, 'foundry.toml'), foundryToml);
|
|
137
150
|
mkdirSync(join(tempDir, 'broadcast'));
|
|
138
151
|
return tempDir;
|
|
139
152
|
}
|
|
@@ -216,7 +229,7 @@ function cleanupDeployDir() {
|
|
|
216
229
|
logger.warn(`Deploying to chain ${chainId} (${chainId === mainnet.id ? 'mainnet' : 'sepolia'}) without ETHERSCAN_API_KEY. ` + `Contracts will NOT be verified on Etherscan. Set ETHERSCAN_API_KEY environment variable to enable verification.`);
|
|
217
230
|
}
|
|
218
231
|
// From heuristic testing. More caused issues with anvil.
|
|
219
|
-
const MAGIC_ANVIL_BATCH_SIZE =
|
|
232
|
+
const MAGIC_ANVIL_BATCH_SIZE = 8;
|
|
220
233
|
// Anvil seems to stall with unbounded batch size. Otherwise no max batch size is desirable.
|
|
221
234
|
const forgeArgs = [
|
|
222
235
|
'script',
|
|
@@ -228,10 +241,8 @@ function cleanupDeployDir() {
|
|
|
228
241
|
'--rpc-url',
|
|
229
242
|
rpcUrl,
|
|
230
243
|
'--broadcast',
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
MAGIC_ANVIL_BATCH_SIZE.toString()
|
|
234
|
-
] : [],
|
|
244
|
+
'--batch-size',
|
|
245
|
+
MAGIC_ANVIL_BATCH_SIZE.toString(),
|
|
235
246
|
...shouldVerify ? [
|
|
236
247
|
'--verify'
|
|
237
248
|
] : []
|
|
@@ -306,6 +317,7 @@ export function getDeployAztecL1ContractsEnvVars(args) {
|
|
|
306
317
|
AZTEC_EJECTION_THRESHOLD: args.ejectionThreshold?.toString(),
|
|
307
318
|
AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE: args.governanceProposerRoundSize?.toString(),
|
|
308
319
|
AZTEC_GOVERNANCE_PROPOSER_QUORUM: args.governanceProposerQuorum?.toString(),
|
|
320
|
+
AZTEC_GOVERNANCE_VOTING_DURATION: args.governanceVotingDuration?.toString(),
|
|
309
321
|
ZKPASSPORT_DOMAIN: args.zkPassportArgs?.zkPassportDomain,
|
|
310
322
|
ZKPASSPORT_SCOPE: args.zkPassportArgs?.zkPassportScope
|
|
311
323
|
};
|
|
@@ -330,11 +342,13 @@ export function getDeployRollupForUpgradeEnvVars(args) {
|
|
|
330
342
|
AZTEC_PROOF_SUBMISSION_EPOCHS: args.aztecProofSubmissionEpochs.toString(),
|
|
331
343
|
AZTEC_LOCAL_EJECTION_THRESHOLD: args.localEjectionThreshold.toString(),
|
|
332
344
|
AZTEC_SLASHING_LIFETIME_IN_ROUNDS: args.slashingLifetimeInRounds.toString(),
|
|
345
|
+
AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS: args.slashingExecutionDelayInRounds.toString(),
|
|
333
346
|
AZTEC_SLASHING_VETOER: args.slashingVetoer.toString(),
|
|
334
347
|
AZTEC_SLASHING_DISABLE_DURATION: args.slashingDisableDuration.toString(),
|
|
335
348
|
AZTEC_MANA_TARGET: args.manaTarget.toString(),
|
|
336
349
|
AZTEC_EXIT_DELAY_SECONDS: args.exitDelaySeconds.toString(),
|
|
337
350
|
AZTEC_PROVING_COST_PER_MANA: args.provingCostPerMana.toString(),
|
|
351
|
+
AZTEC_INITIAL_ETH_PER_FEE_ASSET: args.initialEthPerFeeAsset.toString(),
|
|
338
352
|
AZTEC_SLASHER_FLAVOR: args.slasherFlavor,
|
|
339
353
|
AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: args.slashingRoundSizeInEpochs.toString(),
|
|
340
354
|
AZTEC_SLASHING_QUORUM: args.slashingQuorum?.toString(),
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Default L1 contracts configuration values from network-defaults.yml */
|
|
2
|
+
export declare const l1ContractsDefaultEnv: {
|
|
3
|
+
readonly ETHEREUM_SLOT_DURATION: 12;
|
|
4
|
+
readonly AZTEC_SLOT_DURATION: 36;
|
|
5
|
+
readonly AZTEC_EPOCH_DURATION: 32;
|
|
6
|
+
readonly AZTEC_TARGET_COMMITTEE_SIZE: 48;
|
|
7
|
+
readonly AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2;
|
|
8
|
+
readonly AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 2;
|
|
9
|
+
readonly AZTEC_ACTIVATION_THRESHOLD: 100000000000000000000;
|
|
10
|
+
readonly AZTEC_EJECTION_THRESHOLD: 50000000000000000000;
|
|
11
|
+
readonly AZTEC_LOCAL_EJECTION_THRESHOLD: 98000000000000000000;
|
|
12
|
+
readonly AZTEC_EXIT_DELAY_SECONDS: 172800;
|
|
13
|
+
readonly AZTEC_INBOX_LAG: 1;
|
|
14
|
+
readonly AZTEC_PROOF_SUBMISSION_EPOCHS: 1;
|
|
15
|
+
readonly AZTEC_MANA_TARGET: 100000000;
|
|
16
|
+
readonly AZTEC_PROVING_COST_PER_MANA: 100;
|
|
17
|
+
readonly AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000;
|
|
18
|
+
readonly AZTEC_SLASHER_FLAVOR: "tally";
|
|
19
|
+
readonly AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: 4;
|
|
20
|
+
readonly AZTEC_SLASHING_LIFETIME_IN_ROUNDS: 5;
|
|
21
|
+
readonly AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS: 0;
|
|
22
|
+
readonly AZTEC_SLASHING_OFFSET_IN_ROUNDS: 2;
|
|
23
|
+
readonly AZTEC_SLASHING_VETOER: "0x0000000000000000000000000000000000000000";
|
|
24
|
+
readonly AZTEC_SLASHING_DISABLE_DURATION: 432000;
|
|
25
|
+
readonly AZTEC_SLASH_AMOUNT_SMALL: 10000000000000000000;
|
|
26
|
+
readonly AZTEC_SLASH_AMOUNT_MEDIUM: 20000000000000000000;
|
|
27
|
+
readonly AZTEC_SLASH_AMOUNT_LARGE: 50000000000000000000;
|
|
28
|
+
readonly AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE: 300;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDEtY29udHJhY3RzLWRlZmF1bHRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkL2wxLWNvbnRyYWN0cy1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSwwRUFBMEU7QUFDMUUsZUFBTyxNQUFNLHFCQUFxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMkJ4QixDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"l1-contracts-defaults.d.ts","sourceRoot":"","sources":["../../src/generated/l1-contracts-defaults.ts"],"names":[],"mappings":"AAGA,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BxB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Auto-generated from spartan/environments/network-defaults.yml
|
|
2
|
+
// Do not edit manually - run yarn generate to regenerate
|
|
3
|
+
/** Default L1 contracts configuration values from network-defaults.yml */ export const l1ContractsDefaultEnv = {
|
|
4
|
+
ETHEREUM_SLOT_DURATION: 12,
|
|
5
|
+
AZTEC_SLOT_DURATION: 36,
|
|
6
|
+
AZTEC_EPOCH_DURATION: 32,
|
|
7
|
+
AZTEC_TARGET_COMMITTEE_SIZE: 48,
|
|
8
|
+
AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2,
|
|
9
|
+
AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 2,
|
|
10
|
+
AZTEC_ACTIVATION_THRESHOLD: 100000000000000000000,
|
|
11
|
+
AZTEC_EJECTION_THRESHOLD: 50000000000000000000,
|
|
12
|
+
AZTEC_LOCAL_EJECTION_THRESHOLD: 98000000000000000000,
|
|
13
|
+
AZTEC_EXIT_DELAY_SECONDS: 172800,
|
|
14
|
+
AZTEC_INBOX_LAG: 1,
|
|
15
|
+
AZTEC_PROOF_SUBMISSION_EPOCHS: 1,
|
|
16
|
+
AZTEC_MANA_TARGET: 100000000,
|
|
17
|
+
AZTEC_PROVING_COST_PER_MANA: 100,
|
|
18
|
+
AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000,
|
|
19
|
+
AZTEC_SLASHER_FLAVOR: 'tally',
|
|
20
|
+
AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: 4,
|
|
21
|
+
AZTEC_SLASHING_LIFETIME_IN_ROUNDS: 5,
|
|
22
|
+
AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS: 0,
|
|
23
|
+
AZTEC_SLASHING_OFFSET_IN_ROUNDS: 2,
|
|
24
|
+
AZTEC_SLASHING_VETOER: '0x0000000000000000000000000000000000000000',
|
|
25
|
+
AZTEC_SLASHING_DISABLE_DURATION: 432000,
|
|
26
|
+
AZTEC_SLASH_AMOUNT_SMALL: 10000000000000000000,
|
|
27
|
+
AZTEC_SLASH_AMOUNT_MEDIUM: 20000000000000000000,
|
|
28
|
+
AZTEC_SLASH_AMOUNT_LARGE: 50000000000000000000,
|
|
29
|
+
AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE: 300
|
|
30
|
+
};
|