@aztec/ethereum 0.0.1-commit.6d3c34e → 0.0.1-commit.9372f48

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.
Files changed (83) hide show
  1. package/dest/config.d.ts +15 -28
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +46 -55
  4. package/dest/contracts/empire_slashing_proposer.d.ts +1 -1
  5. package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
  6. package/dest/contracts/empire_slashing_proposer.js +13 -15
  7. package/dest/contracts/fee_asset_handler.d.ts +1 -1
  8. package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
  9. package/dest/contracts/fee_asset_handler.js +2 -0
  10. package/dest/contracts/governance.d.ts +3 -1
  11. package/dest/contracts/governance.d.ts.map +1 -1
  12. package/dest/contracts/governance.js +11 -1
  13. package/dest/contracts/governance_proposer.d.ts +1 -1
  14. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  15. package/dest/contracts/governance_proposer.js +4 -1
  16. package/dest/contracts/inbox.d.ts +18 -1
  17. package/dest/contracts/inbox.d.ts.map +1 -1
  18. package/dest/contracts/inbox.js +32 -1
  19. package/dest/contracts/index.d.ts +2 -1
  20. package/dest/contracts/index.d.ts.map +1 -1
  21. package/dest/contracts/index.js +1 -0
  22. package/dest/contracts/log.d.ts +13 -0
  23. package/dest/contracts/log.d.ts.map +1 -0
  24. package/dest/contracts/log.js +1 -0
  25. package/dest/contracts/multicall.d.ts +1 -1
  26. package/dest/contracts/multicall.d.ts.map +1 -1
  27. package/dest/contracts/multicall.js +2 -1
  28. package/dest/contracts/rollup.d.ts +34 -3
  29. package/dest/contracts/rollup.d.ts.map +1 -1
  30. package/dest/contracts/rollup.js +71 -3
  31. package/dest/contracts/tally_slashing_proposer.d.ts +1 -1
  32. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
  33. package/dest/contracts/tally_slashing_proposer.js +8 -1
  34. package/dest/deploy_aztec_l1_contracts.d.ts +6 -1
  35. package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
  36. package/dest/deploy_aztec_l1_contracts.js +20 -7
  37. package/dest/generated/l1-contracts-defaults.d.ts +30 -0
  38. package/dest/generated/l1-contracts-defaults.d.ts.map +1 -0
  39. package/dest/generated/l1-contracts-defaults.js +30 -0
  40. package/dest/l1_artifacts.d.ts +1394 -471
  41. package/dest/l1_artifacts.d.ts.map +1 -1
  42. package/dest/l1_tx_utils/constants.d.ts +1 -1
  43. package/dest/l1_tx_utils/constants.js +2 -2
  44. package/dest/l1_tx_utils/l1_tx_utils.js +6 -6
  45. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +3 -3
  46. package/dest/publisher_manager.d.ts +3 -2
  47. package/dest/publisher_manager.d.ts.map +1 -1
  48. package/dest/publisher_manager.js +2 -2
  49. package/dest/queries.d.ts +2 -2
  50. package/dest/queries.d.ts.map +1 -1
  51. package/dest/queries.js +4 -1
  52. package/dest/test/eth_cheat_codes.d.ts +13 -1
  53. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  54. package/dest/test/rollup_cheat_codes.d.ts +4 -2
  55. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  56. package/dest/test/rollup_cheat_codes.js +10 -1
  57. package/dest/test/start_anvil.js +1 -1
  58. package/dest/utils.d.ts +2 -1
  59. package/dest/utils.d.ts.map +1 -1
  60. package/dest/utils.js +46 -0
  61. package/package.json +8 -7
  62. package/src/config.ts +55 -54
  63. package/src/contracts/README.md +157 -0
  64. package/src/contracts/empire_slashing_proposer.ts +16 -27
  65. package/src/contracts/fee_asset_handler.ts +2 -0
  66. package/src/contracts/governance.ts +10 -1
  67. package/src/contracts/governance_proposer.ts +4 -1
  68. package/src/contracts/inbox.ts +48 -1
  69. package/src/contracts/index.ts +1 -0
  70. package/src/contracts/log.ts +13 -0
  71. package/src/contracts/multicall.ts +5 -2
  72. package/src/contracts/rollup.ts +100 -4
  73. package/src/contracts/tally_slashing_proposer.ts +5 -1
  74. package/src/deploy_aztec_l1_contracts.ts +21 -7
  75. package/src/generated/l1-contracts-defaults.ts +32 -0
  76. package/src/l1_tx_utils/constants.ts +2 -2
  77. package/src/l1_tx_utils/l1_tx_utils.ts +6 -6
  78. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +3 -3
  79. package/src/publisher_manager.ts +4 -2
  80. package/src/queries.ts +3 -1
  81. package/src/test/rollup_cheat_codes.ts +11 -2
  82. package/src/test/start_anvil.ts +1 -1
  83. package/src/utils.ts +53 -0
@@ -7,7 +7,7 @@ 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, readdirSync, rmSync } from 'fs';
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';
@@ -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,20 @@ 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
- cpSync(join(basePath, 'foundry.toml'), join(tempDir, 'foundry.toml'));
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
- for (const file of readdirSync(basePath)){
133
- if (file.startsWith('solc-')) {
134
- cpSync(join(basePath, file), join(tempDir, file));
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
+ if (solcPathMatch) {
141
+ const solcVersion = solcPathMatch[1];
142
+ const absoluteSolcPath = join(basePath, `solc-${solcVersion}`);
143
+ foundryToml = foundryToml.replace(/solc\s*=\s*"\.\/solc-[^"]+"/, `solc = "${absoluteSolcPath}"`);
144
+ logger.verbose(`Updated solc path in foundry.toml to: ${absoluteSolcPath}`);
136
145
  }
146
+ writeFileSync(join(tempDir, 'foundry.toml'), foundryToml);
137
147
  mkdirSync(join(tempDir, 'broadcast'));
138
148
  return tempDir;
139
149
  }
@@ -216,7 +226,7 @@ function cleanupDeployDir() {
216
226
  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
227
  }
218
228
  // From heuristic testing. More caused issues with anvil.
219
- const MAGIC_ANVIL_BATCH_SIZE = 12;
229
+ const MAGIC_ANVIL_BATCH_SIZE = 8;
220
230
  // Anvil seems to stall with unbounded batch size. Otherwise no max batch size is desirable.
221
231
  const forgeArgs = [
222
232
  'script',
@@ -306,6 +316,7 @@ export function getDeployAztecL1ContractsEnvVars(args) {
306
316
  AZTEC_EJECTION_THRESHOLD: args.ejectionThreshold?.toString(),
307
317
  AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE: args.governanceProposerRoundSize?.toString(),
308
318
  AZTEC_GOVERNANCE_PROPOSER_QUORUM: args.governanceProposerQuorum?.toString(),
319
+ AZTEC_GOVERNANCE_VOTING_DURATION: args.governanceVotingDuration?.toString(),
309
320
  ZKPASSPORT_DOMAIN: args.zkPassportArgs?.zkPassportDomain,
310
321
  ZKPASSPORT_SCOPE: args.zkPassportArgs?.zkPassportScope
311
322
  };
@@ -330,11 +341,13 @@ export function getDeployRollupForUpgradeEnvVars(args) {
330
341
  AZTEC_PROOF_SUBMISSION_EPOCHS: args.aztecProofSubmissionEpochs.toString(),
331
342
  AZTEC_LOCAL_EJECTION_THRESHOLD: args.localEjectionThreshold.toString(),
332
343
  AZTEC_SLASHING_LIFETIME_IN_ROUNDS: args.slashingLifetimeInRounds.toString(),
344
+ AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS: args.slashingExecutionDelayInRounds.toString(),
333
345
  AZTEC_SLASHING_VETOER: args.slashingVetoer.toString(),
334
346
  AZTEC_SLASHING_DISABLE_DURATION: args.slashingDisableDuration.toString(),
335
347
  AZTEC_MANA_TARGET: args.manaTarget.toString(),
336
348
  AZTEC_EXIT_DELAY_SECONDS: args.exitDelaySeconds.toString(),
337
349
  AZTEC_PROVING_COST_PER_MANA: args.provingCostPerMana.toString(),
350
+ AZTEC_INITIAL_ETH_PER_FEE_ASSET: args.initialEthPerFeeAsset.toString(),
338
351
  AZTEC_SLASHER_FLAVOR: args.slasherFlavor,
339
352
  AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: args.slashingRoundSizeInEpochs.toString(),
340
353
  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
+ };