@aztec/ethereum 0.0.1-commit.03f7ef2 → 0.0.1-commit.0658669b3

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 (162) hide show
  1. package/dest/config.d.ts +17 -27
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +54 -55
  4. package/dest/contracts/empire_base.d.ts +3 -1
  5. package/dest/contracts/empire_base.d.ts.map +1 -1
  6. package/dest/contracts/empire_slashing_proposer.d.ts +3 -1
  7. package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
  8. package/dest/contracts/empire_slashing_proposer.js +22 -15
  9. package/dest/contracts/fee_asset_handler.d.ts +6 -5
  10. package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
  11. package/dest/contracts/fee_asset_handler.js +11 -9
  12. package/dest/contracts/fee_asset_price_oracle.d.ts +101 -0
  13. package/dest/contracts/fee_asset_price_oracle.d.ts.map +1 -0
  14. package/dest/contracts/fee_asset_price_oracle.js +651 -0
  15. package/dest/contracts/governance.d.ts +3 -1
  16. package/dest/contracts/governance.d.ts.map +1 -1
  17. package/dest/contracts/governance.js +14 -4
  18. package/dest/contracts/governance_proposer.d.ts +3 -1
  19. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  20. package/dest/contracts/governance_proposer.js +395 -9
  21. package/dest/contracts/inbox.d.ts +22 -1
  22. package/dest/contracts/inbox.d.ts.map +1 -1
  23. package/dest/contracts/inbox.js +36 -1
  24. package/dest/contracts/index.d.ts +4 -1
  25. package/dest/contracts/index.d.ts.map +1 -1
  26. package/dest/contracts/index.js +3 -0
  27. package/dest/contracts/log.d.ts +13 -0
  28. package/dest/contracts/log.d.ts.map +1 -0
  29. package/dest/contracts/log.js +1 -0
  30. package/dest/contracts/multicall.d.ts +1 -1
  31. package/dest/contracts/multicall.d.ts.map +1 -1
  32. package/dest/contracts/multicall.js +2 -1
  33. package/dest/contracts/outbox.d.ts +41 -0
  34. package/dest/contracts/outbox.d.ts.map +1 -0
  35. package/dest/contracts/outbox.js +86 -0
  36. package/dest/contracts/rollup.d.ts +161 -96
  37. package/dest/contracts/rollup.d.ts.map +1 -1
  38. package/dest/contracts/rollup.js +687 -132
  39. package/dest/contracts/tally_slashing_proposer.d.ts +1 -1
  40. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
  41. package/dest/contracts/tally_slashing_proposer.js +8 -1
  42. package/dest/deploy_aztec_l1_contracts.d.ts +18 -4
  43. package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
  44. package/dest/deploy_aztec_l1_contracts.js +111 -33
  45. package/dest/deploy_l1_contract.js +3 -3
  46. package/dest/generated/l1-contracts-defaults.d.ts +30 -0
  47. package/dest/generated/l1-contracts-defaults.d.ts.map +1 -0
  48. package/dest/generated/l1-contracts-defaults.js +30 -0
  49. package/dest/l1_artifacts.d.ts +5927 -1547
  50. package/dest/l1_artifacts.d.ts.map +1 -1
  51. package/dest/l1_tx_utils/config.d.ts +7 -1
  52. package/dest/l1_tx_utils/config.d.ts.map +1 -1
  53. package/dest/l1_tx_utils/config.js +14 -1
  54. package/dest/l1_tx_utils/constants.d.ts +1 -1
  55. package/dest/l1_tx_utils/constants.js +2 -2
  56. package/dest/l1_tx_utils/factory.d.ts +18 -10
  57. package/dest/l1_tx_utils/factory.d.ts.map +1 -1
  58. package/dest/l1_tx_utils/factory.js +17 -7
  59. package/dest/l1_tx_utils/fee-strategies/index.d.ts +3 -2
  60. package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -1
  61. package/dest/l1_tx_utils/fee-strategies/index.js +2 -1
  62. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +2 -12
  63. package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts.map +1 -1
  64. package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +36 -18
  65. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +2 -11
  66. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts.map +1 -1
  67. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +37 -19
  68. package/dest/l1_tx_utils/fee-strategies/types.d.ts +14 -27
  69. package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -1
  70. package/dest/l1_tx_utils/fee-strategies/types.js +0 -21
  71. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +15 -15
  72. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -1
  73. package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +9 -15
  74. package/dest/l1_tx_utils/index-blobs.d.ts +3 -3
  75. package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -1
  76. package/dest/l1_tx_utils/index-blobs.js +2 -2
  77. package/dest/l1_tx_utils/index.d.ts +2 -1
  78. package/dest/l1_tx_utils/index.d.ts.map +1 -1
  79. package/dest/l1_tx_utils/index.js +1 -0
  80. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts +2 -2
  81. package/dest/l1_tx_utils/l1_fee_analyzer.d.ts.map +1 -1
  82. package/dest/l1_tx_utils/l1_fee_analyzer.js +3 -3
  83. package/dest/l1_tx_utils/l1_tx_utils.d.ts +15 -5
  84. package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
  85. package/dest/l1_tx_utils/l1_tx_utils.js +47 -13
  86. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +1 -5
  87. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
  88. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +17 -54
  89. package/dest/l1_tx_utils/tx_delayer.d.ts +56 -0
  90. package/dest/l1_tx_utils/tx_delayer.d.ts.map +1 -0
  91. package/dest/{test → l1_tx_utils}/tx_delayer.js +62 -34
  92. package/dest/publisher_manager.d.ts +3 -2
  93. package/dest/publisher_manager.d.ts.map +1 -1
  94. package/dest/publisher_manager.js +2 -2
  95. package/dest/queries.d.ts +2 -2
  96. package/dest/queries.d.ts.map +1 -1
  97. package/dest/queries.js +12 -4
  98. package/dest/test/chain_monitor.js +1 -2
  99. package/dest/test/eth_cheat_codes.d.ts +13 -1
  100. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  101. package/dest/test/index.d.ts +1 -3
  102. package/dest/test/index.d.ts.map +1 -1
  103. package/dest/test/index.js +0 -2
  104. package/dest/test/rollup_cheat_codes.d.ts +5 -2
  105. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  106. package/dest/test/rollup_cheat_codes.js +19 -2
  107. package/dest/test/start_anvil.js +1 -1
  108. package/dest/test/upgrade_utils.js +2 -2
  109. package/dest/utils.d.ts +2 -1
  110. package/dest/utils.d.ts.map +1 -1
  111. package/dest/utils.js +46 -0
  112. package/package.json +8 -7
  113. package/src/config.ts +64 -54
  114. package/src/contracts/README.md +157 -0
  115. package/src/contracts/empire_base.ts +2 -0
  116. package/src/contracts/empire_slashing_proposer.ts +22 -27
  117. package/src/contracts/fee_asset_handler.ts +10 -7
  118. package/src/contracts/fee_asset_price_oracle.ts +280 -0
  119. package/src/contracts/governance.ts +13 -4
  120. package/src/contracts/governance_proposer.ts +10 -1
  121. package/src/contracts/inbox.ts +53 -1
  122. package/src/contracts/index.ts +3 -0
  123. package/src/contracts/log.ts +13 -0
  124. package/src/contracts/multicall.ts +5 -2
  125. package/src/contracts/outbox.ts +98 -0
  126. package/src/contracts/rollup.ts +362 -100
  127. package/src/contracts/tally_slashing_proposer.ts +5 -1
  128. package/src/deploy_aztec_l1_contracts.ts +136 -42
  129. package/src/deploy_l1_contract.ts +3 -3
  130. package/src/generated/l1-contracts-defaults.ts +32 -0
  131. package/src/l1_tx_utils/config.ts +20 -0
  132. package/src/l1_tx_utils/constants.ts +2 -2
  133. package/src/l1_tx_utils/factory.ts +31 -31
  134. package/src/l1_tx_utils/fee-strategies/index.ts +1 -1
  135. package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +46 -42
  136. package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +49 -45
  137. package/src/l1_tx_utils/fee-strategies/types.ts +14 -46
  138. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +43 -54
  139. package/src/l1_tx_utils/index-blobs.ts +2 -2
  140. package/src/l1_tx_utils/index.ts +1 -0
  141. package/src/l1_tx_utils/l1_fee_analyzer.ts +2 -3
  142. package/src/l1_tx_utils/l1_tx_utils.ts +52 -17
  143. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +23 -62
  144. package/src/{test → l1_tx_utils}/tx_delayer.ts +78 -50
  145. package/src/publisher_manager.ts +4 -2
  146. package/src/queries.ts +11 -3
  147. package/src/test/chain_monitor.ts +1 -1
  148. package/src/test/index.ts +0 -2
  149. package/src/test/rollup_cheat_codes.ts +21 -3
  150. package/src/test/start_anvil.ts +1 -1
  151. package/src/test/upgrade_utils.ts +2 -2
  152. package/src/utils.ts +53 -0
  153. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +0 -26
  154. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +0 -1
  155. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +0 -26
  156. package/dest/test/delayed_tx_utils.d.ts +0 -13
  157. package/dest/test/delayed_tx_utils.d.ts.map +0 -1
  158. package/dest/test/delayed_tx_utils.js +0 -28
  159. package/dest/test/tx_delayer.d.ts +0 -36
  160. package/dest/test/tx_delayer.d.ts.map +0 -1
  161. package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +0 -77
  162. package/src/test/delayed_tx_utils.ts +0 -52
package/dest/config.d.ts CHANGED
@@ -20,6 +20,8 @@ export type L1ContractsConfig = {
20
20
  lagInEpochsForValidatorSet: number;
21
21
  /** The number of epochs to lag behind the current epoch for randao selection. */
22
22
  lagInEpochsForRandao: number;
23
+ /** The number of checkpoints to lag in the inbox (prevents sequencer DOS attacks). */
24
+ inboxLag: number;
23
25
  /** The number of epochs after an epoch ends that proofs are still accepted. */
24
26
  aztecProofSubmissionEpochs: number;
25
27
  /** The deposit amount for a validator */
@@ -54,41 +56,29 @@ export type L1ContractsConfig = {
54
56
  governanceProposerQuorum?: number;
55
57
  /** Governance proposing round size */
56
58
  governanceProposerRoundSize: number;
59
+ /** Governance voting duration in seconds (only for local/devnet/next-net, default 3600) */
60
+ governanceVotingDuration?: number;
57
61
  /** The mana target for the rollup */
58
62
  manaTarget: bigint;
59
63
  /** The proving cost per mana */
60
64
  provingCostPerMana: bigint;
65
+ /** The initial ETH per fee asset price (with 1e12 precision) */
66
+ initialEthPerFeeAsset: bigint;
61
67
  /** The number of seconds to wait for an exit */
62
68
  exitDelaySeconds: number;
63
69
  } & L1TxUtilsConfig;
64
- export declare const DefaultL1ContractsConfig: {
65
- ethereumSlotDuration: number;
66
- aztecSlotDuration: number;
67
- aztecEpochDuration: number;
68
- aztecTargetCommitteeSize: number;
69
- lagInEpochsForValidatorSet: number;
70
- lagInEpochsForRandao: number;
71
- aztecProofSubmissionEpochs: number;
72
- activationThreshold: bigint;
73
- ejectionThreshold: bigint;
74
- localEjectionThreshold: bigint;
75
- slashAmountSmall: bigint;
76
- slashAmountMedium: bigint;
77
- slashAmountLarge: bigint;
78
- slashingRoundSizeInEpochs: number;
79
- slashingLifetimeInRounds: number;
80
- slashingExecutionDelayInRounds: number;
81
- slashingVetoer: EthAddress;
82
- governanceProposerRoundSize: number;
83
- manaTarget: bigint;
84
- provingCostPerMana: bigint;
85
- exitDelaySeconds: number;
86
- slasherFlavor: "tally";
87
- slashingOffsetInRounds: number;
88
- slashingDisableDuration: number;
89
- };
70
+ /**
71
+ * Config mappings for L1ContractsConfig.
72
+ * Default values come from generated l1-contracts-defaults.json (source: defaults.yml).
73
+ * Real deployments use forge scripts which require explicit env vars (vm.envUint).
74
+ */
90
75
  export declare const l1ContractsConfigMappings: ConfigMappingsType<L1ContractsConfig>;
76
+ /**
77
+ * Default L1 contracts configuration derived from l1ContractsConfigMappings.
78
+ * Source of truth: spartan/environments/defaults.yml -> defaults.l1-contracts
79
+ */
80
+ export declare const DefaultL1ContractsConfig: L1ContractsConfig;
91
81
  export declare const genesisStateConfigMappings: ConfigMappingsType<GenesisStateConfig>;
92
82
  export declare function getL1ContractsConfigEnvVars(): L1ContractsConfig;
93
83
  export declare function getGenesisStateConfigEnvVars(): GenesisStateConfig;
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQVF4QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQTJCLE1BQU0seUJBQXlCLENBQUM7QUFFeEYsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLHlGQUF5RjtJQUN6RixZQUFZLEVBQUUsT0FBTyxDQUFDO0lBQ3RCLHlGQUF5RjtJQUN6RixZQUFZLEVBQUUsT0FBTyxDQUFDO0NBQ3ZCLENBQUM7QUFFRixNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIseUNBQXlDO0lBQ3pDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3Qix1RkFBdUY7SUFDdkYsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLHdDQUF3QztJQUN4QyxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsMkNBQTJDO0lBQzNDLHdCQUF3QixFQUFFLE1BQU0sQ0FBQztJQUNqQyxvRkFBb0Y7SUFDcEYsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0lBQ25DLGlGQUFpRjtJQUNqRixvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDN0IsK0VBQStFO0lBQy9FLDBCQUEwQixFQUFFLE1BQU0sQ0FBQztJQUNuQyx5Q0FBeUM7SUFDekMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDO0lBQzVCLHlDQUF5QztJQUN6QyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDMUIsbUhBQW1IO0lBQ25ILHNCQUFzQixFQUFFLE1BQU0sQ0FBQztJQUMvQix3S0FBd0s7SUFDeEssY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLDRFQUE0RTtJQUM1RSx5QkFBeUIsRUFBRSxNQUFNLENBQUM7SUFDbEMsZ0dBQWdHO0lBQ2hHLHdCQUF3QixFQUFFLE1BQU0sQ0FBQztJQUNqQyx5R0FBeUc7SUFDekcsOEJBQThCLEVBQUUsTUFBTSxDQUFDO0lBQ3ZDLHlFQUF5RTtJQUN6RSxjQUFjLEVBQUUsVUFBVSxDQUFDO0lBQzNCLDRJQUE0STtJQUM1SSxzQkFBc0IsRUFBRSxNQUFNLENBQUM7SUFDL0IsK0VBQStFO0lBQy9FLHVCQUF1QixFQUFFLE1BQU0sQ0FBQztJQUNoQywrQkFBK0I7SUFDL0IsYUFBYSxFQUFFLFFBQVEsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzNDLDJEQUEyRDtJQUMzRCxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFDekIsK0NBQStDO0lBQy9DLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixxRUFBcUU7SUFDckUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLGdFQUFnRTtJQUNoRSx3QkFBd0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQyxzQ0FBc0M7SUFDdEMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLHFDQUFxQztJQUNyQyxVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLGdDQUFnQztJQUNoQyxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsZ0RBQWdEO0lBQ2hELGdCQUFnQixFQUFFLE1BQU0sQ0FBQztDQUMxQixHQUFHLGVBQWUsQ0FBQztBQUVwQixlQUFPLE1BQU0sd0JBQXdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBeUJSLENBQUM7QUFFOUIsZUFBTyxNQUFNLHlCQUF5QixFQUFFLGtCQUFrQixDQUFDLGlCQUFpQixDQXVJM0UsQ0FBQztBQUVGLGVBQU8sTUFBTSwwQkFBMEIsRUFBRSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FXN0UsQ0FBQztBQUVGLHdCQUFnQiwyQkFBMkIsSUFBSSxpQkFBaUIsQ0FFL0Q7QUFFRCx3QkFBZ0IsNEJBQTRCLElBQUksa0JBQWtCLENBRWpFIn0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQVN4QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQTJCLE1BQU0seUJBQXlCLENBQUM7QUFFeEYsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLHlGQUF5RjtJQUN6RixZQUFZLEVBQUUsT0FBTyxDQUFDO0lBQ3RCLHlGQUF5RjtJQUN6RixZQUFZLEVBQUUsT0FBTyxDQUFDO0NBQ3ZCLENBQUM7QUFFRixNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIseUNBQXlDO0lBQ3pDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3Qix1RkFBdUY7SUFDdkYsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLHdDQUF3QztJQUN4QyxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsMkNBQTJDO0lBQzNDLHdCQUF3QixFQUFFLE1BQU0sQ0FBQztJQUNqQyxvRkFBb0Y7SUFDcEYsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0lBQ25DLGlGQUFpRjtJQUNqRixvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFDN0Isc0ZBQXNGO0lBQ3RGLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsK0VBQStFO0lBQy9FLDBCQUEwQixFQUFFLE1BQU0sQ0FBQztJQUNuQyx5Q0FBeUM7SUFDekMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDO0lBQzVCLHlDQUF5QztJQUN6QyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDMUIsbUhBQW1IO0lBQ25ILHNCQUFzQixFQUFFLE1BQU0sQ0FBQztJQUMvQix3S0FBd0s7SUFDeEssY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLDRFQUE0RTtJQUM1RSx5QkFBeUIsRUFBRSxNQUFNLENBQUM7SUFDbEMsZ0dBQWdHO0lBQ2hHLHdCQUF3QixFQUFFLE1BQU0sQ0FBQztJQUNqQyx5R0FBeUc7SUFDekcsOEJBQThCLEVBQUUsTUFBTSxDQUFDO0lBQ3ZDLHlFQUF5RTtJQUN6RSxjQUFjLEVBQUUsVUFBVSxDQUFDO0lBQzNCLDRJQUE0STtJQUM1SSxzQkFBc0IsRUFBRSxNQUFNLENBQUM7SUFDL0IsK0VBQStFO0lBQy9FLHVCQUF1QixFQUFFLE1BQU0sQ0FBQztJQUNoQywrQkFBK0I7SUFDL0IsYUFBYSxFQUFFLFFBQVEsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzNDLDJEQUEyRDtJQUMzRCxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFDekIsK0NBQStDO0lBQy9DLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixxRUFBcUU7SUFDckUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLGdFQUFnRTtJQUNoRSx3QkFBd0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQyxzQ0FBc0M7SUFDdEMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLDJGQUEyRjtJQUMzRix3QkFBd0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQyxxQ0FBcUM7SUFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixnQ0FBZ0M7SUFDaEMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDO0lBQzNCLGdFQUFnRTtJQUNoRSxxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsZ0RBQWdEO0lBQ2hELGdCQUFnQixFQUFFLE1BQU0sQ0FBQztDQUMxQixHQUFHLGVBQWUsQ0FBQztBQUVwQjs7OztHQUlHO0FBQ0gsZUFBTyxNQUFNLHlCQUF5QixFQUFFLGtCQUFrQixDQUFDLGlCQUFpQixDQXlKM0UsQ0FBQztBQUVGOzs7R0FHRztBQUNILGVBQU8sTUFBTSx3QkFBd0IsbUJBQThDLENBQUM7QUFFcEYsZUFBTyxNQUFNLDBCQUEwQixFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQVc3RSxDQUFDO0FBRUYsd0JBQWdCLDJCQUEyQixJQUFJLGlCQUFpQixDQUUvRDtBQUVELHdCQUFnQiw0QkFBNEIsSUFBSSxrQkFBa0IsQ0FFakUifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAQxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,yBAAyB,CAAC;AAExF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,oFAAoF;IACpF,0BAA0B,EAAE,MAAM,CAAC;IACnC,iFAAiF;IACjF,oBAAoB,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,0BAA0B,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mHAAmH;IACnH,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wKAAwK;IACxK,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,yBAAyB,EAAE,MAAM,CAAC;IAClC,gGAAgG;IAChG,wBAAwB,EAAE,MAAM,CAAC;IACjC,yGAAyG;IACzG,8BAA8B,EAAE,MAAM,CAAC;IACvC,yEAAyE;IACzE,cAAc,EAAE,UAAU,CAAC;IAC3B,4IAA4I;IAC5I,sBAAsB,EAAE,MAAM,CAAC;IAC/B,+EAA+E;IAC/E,uBAAuB,EAAE,MAAM,CAAC;IAChC,+BAA+B;IAC/B,aAAa,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3C,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sCAAsC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IACpC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,eAAe,CAAC;AAEpB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;CAyBR,CAAC;AAE9B,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CAuI3E,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAW7E,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,iBAAiB,CAE/D;AAED,wBAAgB,4BAA4B,IAAI,kBAAkB,CAEjE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EASxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,yBAAyB,CAAC;AAExF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,wBAAwB,EAAE,MAAM,CAAC;IACjC,oFAAoF;IACpF,0BAA0B,EAAE,MAAM,CAAC;IACnC,iFAAiF;IACjF,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sFAAsF;IACtF,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,0BAA0B,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mHAAmH;IACnH,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wKAAwK;IACxK,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,yBAAyB,EAAE,MAAM,CAAC;IAClC,gGAAgG;IAChG,wBAAwB,EAAE,MAAM,CAAC;IACjC,yGAAyG;IACzG,8BAA8B,EAAE,MAAM,CAAC;IACvC,yEAAyE;IACzE,cAAc,EAAE,UAAU,CAAC;IAC3B,4IAA4I;IAC5I,sBAAsB,EAAE,MAAM,CAAC;IAC/B,+EAA+E;IAC/E,uBAAuB,EAAE,MAAM,CAAC;IAChC,+BAA+B;IAC/B,aAAa,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3C,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sCAAsC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IACpC,2FAA2F;IAC3F,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,eAAe,CAAC;AAEpB;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CAyJ3E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,mBAA8C,CAAC;AAEpF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAW7E,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,iBAAiB,CAE/D;AAED,wBAAgB,4BAA4B,IAAI,kBAAkB,CAEjE"}
package/dest/config.js CHANGED
@@ -1,88 +1,71 @@
1
- import { // type NetworkNames,
2
- bigintConfigHelper, booleanConfigHelper, enumConfigHelper, getConfigFromMappings, numberConfigHelper, optionalNumberConfigHelper } from '@aztec/foundation/config';
1
+ import { bigintConfigHelper, booleanConfigHelper, enumConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, omitConfigMappings, optionalNumberConfigHelper } from '@aztec/foundation/config';
3
2
  import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import { l1ContractsDefaultEnv } from './generated/l1-contracts-defaults.js';
4
4
  import { l1TxUtilsConfigMappings } from './l1_tx_utils/config.js';
5
- export const DefaultL1ContractsConfig = {
6
- ethereumSlotDuration: 12,
7
- aztecSlotDuration: 36,
8
- aztecEpochDuration: 32,
9
- aztecTargetCommitteeSize: 48,
10
- lagInEpochsForValidatorSet: 2,
11
- lagInEpochsForRandao: 2,
12
- aztecProofSubmissionEpochs: 1,
13
- activationThreshold: 100n * 10n ** 18n,
14
- ejectionThreshold: 50n * 10n ** 18n,
15
- localEjectionThreshold: 98n * 10n ** 18n,
16
- slashAmountSmall: 10n * 10n ** 18n,
17
- slashAmountMedium: 20n * 10n ** 18n,
18
- slashAmountLarge: 50n * 10n ** 18n,
19
- slashingRoundSizeInEpochs: 4,
20
- slashingLifetimeInRounds: 5,
21
- slashingExecutionDelayInRounds: 0,
22
- slashingVetoer: EthAddress.ZERO,
23
- governanceProposerRoundSize: 300,
24
- manaTarget: BigInt(100e6),
25
- provingCostPerMana: BigInt(100),
26
- exitDelaySeconds: 2 * 24 * 60 * 60,
27
- slasherFlavor: 'tally',
28
- slashingOffsetInRounds: 2,
29
- slashingDisableDuration: 5 * 24 * 60 * 60
30
- };
31
- export const l1ContractsConfigMappings = {
5
+ /**
6
+ * Config mappings for L1ContractsConfig.
7
+ * Default values come from generated l1-contracts-defaults.json (source: defaults.yml).
8
+ * Real deployments use forge scripts which require explicit env vars (vm.envUint).
9
+ */ export const l1ContractsConfigMappings = {
32
10
  ethereumSlotDuration: {
33
11
  env: 'ETHEREUM_SLOT_DURATION',
34
12
  description: 'How many seconds an L1 slot lasts.',
35
- ...numberConfigHelper(DefaultL1ContractsConfig.ethereumSlotDuration)
13
+ ...numberConfigHelper(l1ContractsDefaultEnv.ETHEREUM_SLOT_DURATION)
36
14
  },
37
15
  aztecSlotDuration: {
38
16
  env: 'AZTEC_SLOT_DURATION',
39
17
  description: 'How many seconds an L2 slots lasts (must be multiple of ethereum slot duration).',
40
- ...numberConfigHelper(DefaultL1ContractsConfig.aztecSlotDuration)
18
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_SLOT_DURATION)
41
19
  },
42
20
  aztecEpochDuration: {
43
21
  env: 'AZTEC_EPOCH_DURATION',
44
- description: `How many L2 slots an epoch lasts (maximum AZTEC_MAX_EPOCH_DURATION).`,
45
- ...numberConfigHelper(DefaultL1ContractsConfig.aztecEpochDuration)
22
+ description: `How many L2 slots an epoch lasts (maximum MAX_CHECKPOINTS_PER_EPOCH).`,
23
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_EPOCH_DURATION)
46
24
  },
47
25
  aztecTargetCommitteeSize: {
48
26
  env: 'AZTEC_TARGET_COMMITTEE_SIZE',
49
27
  description: 'The target validator committee size.',
50
- ...numberConfigHelper(DefaultL1ContractsConfig.aztecTargetCommitteeSize)
28
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_TARGET_COMMITTEE_SIZE)
51
29
  },
52
30
  lagInEpochsForValidatorSet: {
53
31
  env: 'AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET',
54
32
  description: 'The number of epochs to lag behind the current epoch for validator selection.',
55
- ...numberConfigHelper(DefaultL1ContractsConfig.lagInEpochsForValidatorSet)
33
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET)
56
34
  },
57
35
  lagInEpochsForRandao: {
58
36
  env: 'AZTEC_LAG_IN_EPOCHS_FOR_RANDAO',
59
37
  description: 'The number of epochs to lag behind the current epoch for randao selection.',
60
- ...numberConfigHelper(DefaultL1ContractsConfig.lagInEpochsForRandao)
38
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_LAG_IN_EPOCHS_FOR_RANDAO)
39
+ },
40
+ inboxLag: {
41
+ env: 'AZTEC_INBOX_LAG',
42
+ description: 'The number of checkpoints to lag in the inbox (prevents sequencer DOS attacks).',
43
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_INBOX_LAG)
61
44
  },
62
45
  aztecProofSubmissionEpochs: {
63
46
  env: 'AZTEC_PROOF_SUBMISSION_EPOCHS',
64
47
  description: 'The number of epochs after an epoch ends that proofs are still accepted.',
65
- ...numberConfigHelper(DefaultL1ContractsConfig.aztecProofSubmissionEpochs)
48
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_PROOF_SUBMISSION_EPOCHS)
66
49
  },
67
50
  activationThreshold: {
68
51
  env: 'AZTEC_ACTIVATION_THRESHOLD',
69
52
  description: 'The deposit amount for a validator',
70
- ...bigintConfigHelper(DefaultL1ContractsConfig.activationThreshold)
53
+ ...bigintConfigHelper(BigInt(l1ContractsDefaultEnv.AZTEC_ACTIVATION_THRESHOLD))
71
54
  },
72
55
  ejectionThreshold: {
73
56
  env: 'AZTEC_EJECTION_THRESHOLD',
74
57
  description: 'The minimum stake for a validator.',
75
- ...bigintConfigHelper(DefaultL1ContractsConfig.ejectionThreshold)
58
+ ...bigintConfigHelper(BigInt(l1ContractsDefaultEnv.AZTEC_EJECTION_THRESHOLD))
76
59
  },
77
60
  localEjectionThreshold: {
78
61
  env: 'AZTEC_LOCAL_EJECTION_THRESHOLD',
79
62
  description: 'The local ejection threshold for a validator. Stricter than ejectionThreshold but local to a specific rollup',
80
- ...bigintConfigHelper(DefaultL1ContractsConfig.localEjectionThreshold)
63
+ ...bigintConfigHelper(BigInt(l1ContractsDefaultEnv.AZTEC_LOCAL_EJECTION_THRESHOLD))
81
64
  },
82
65
  slashingOffsetInRounds: {
83
66
  env: 'AZTEC_SLASHING_OFFSET_IN_ROUNDS',
84
67
  description: 'How many slashing rounds back we slash (ie when slashing in round N, we slash for offenses committed during epochs of round N-offset)',
85
- ...numberConfigHelper(DefaultL1ContractsConfig.slashingOffsetInRounds)
68
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_SLASHING_OFFSET_IN_ROUNDS)
86
69
  },
87
70
  slasherFlavor: {
88
71
  env: 'AZTEC_SLASHER_FLAVOR',
@@ -91,22 +74,22 @@ export const l1ContractsConfigMappings = {
91
74
  'empire',
92
75
  'tally',
93
76
  'none'
94
- ], DefaultL1ContractsConfig.slasherFlavor)
77
+ ], l1ContractsDefaultEnv.AZTEC_SLASHER_FLAVOR)
95
78
  },
96
79
  slashAmountSmall: {
97
80
  env: 'AZTEC_SLASH_AMOUNT_SMALL',
98
81
  description: 'Small slashing amount for light offenses',
99
- ...bigintConfigHelper(DefaultL1ContractsConfig.slashAmountSmall)
82
+ ...bigintConfigHelper(BigInt(l1ContractsDefaultEnv.AZTEC_SLASH_AMOUNT_SMALL))
100
83
  },
101
84
  slashAmountMedium: {
102
85
  env: 'AZTEC_SLASH_AMOUNT_MEDIUM',
103
86
  description: 'Medium slashing amount for moderate offenses',
104
- ...bigintConfigHelper(DefaultL1ContractsConfig.slashAmountMedium)
87
+ ...bigintConfigHelper(BigInt(l1ContractsDefaultEnv.AZTEC_SLASH_AMOUNT_MEDIUM))
105
88
  },
106
89
  slashAmountLarge: {
107
90
  env: 'AZTEC_SLASH_AMOUNT_LARGE',
108
91
  description: 'Large slashing amount for severe offenses',
109
- ...bigintConfigHelper(DefaultL1ContractsConfig.slashAmountLarge)
92
+ ...bigintConfigHelper(BigInt(l1ContractsDefaultEnv.AZTEC_SLASH_AMOUNT_LARGE))
110
93
  },
111
94
  slashingQuorum: {
112
95
  env: 'AZTEC_SLASHING_QUORUM',
@@ -116,28 +99,28 @@ export const l1ContractsConfigMappings = {
116
99
  slashingRoundSizeInEpochs: {
117
100
  env: 'AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS',
118
101
  description: 'The slashing round size',
119
- ...numberConfigHelper(DefaultL1ContractsConfig.slashingRoundSizeInEpochs)
102
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS)
120
103
  },
121
104
  slashingLifetimeInRounds: {
122
105
  env: 'AZTEC_SLASHING_LIFETIME_IN_ROUNDS',
123
106
  description: 'The slashing lifetime in rounds',
124
- ...numberConfigHelper(DefaultL1ContractsConfig.slashingLifetimeInRounds)
107
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_SLASHING_LIFETIME_IN_ROUNDS)
125
108
  },
126
109
  slashingExecutionDelayInRounds: {
127
110
  env: 'AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS',
128
111
  description: 'The slashing execution delay in rounds',
129
- ...numberConfigHelper(DefaultL1ContractsConfig.slashingExecutionDelayInRounds)
112
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS)
130
113
  },
131
114
  slashingVetoer: {
132
115
  env: 'AZTEC_SLASHING_VETOER',
133
116
  description: 'The slashing vetoer',
134
117
  parseEnv: (val)=>EthAddress.fromString(val),
135
- defaultValue: DefaultL1ContractsConfig.slashingVetoer
118
+ defaultValue: EthAddress.fromString(l1ContractsDefaultEnv.AZTEC_SLASHING_VETOER)
136
119
  },
137
120
  slashingDisableDuration: {
138
121
  env: 'AZTEC_SLASHING_DISABLE_DURATION',
139
122
  description: 'How long slashing can be disabled for in seconds when vetoer disables it',
140
- ...numberConfigHelper(DefaultL1ContractsConfig.slashingDisableDuration)
123
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_SLASHING_DISABLE_DURATION)
141
124
  },
142
125
  governanceProposerQuorum: {
143
126
  env: 'AZTEC_GOVERNANCE_PROPOSER_QUORUM',
@@ -147,25 +130,41 @@ export const l1ContractsConfigMappings = {
147
130
  governanceProposerRoundSize: {
148
131
  env: 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE',
149
132
  description: 'The governance proposing round size',
150
- ...numberConfigHelper(DefaultL1ContractsConfig.governanceProposerRoundSize)
133
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE)
134
+ },
135
+ governanceVotingDuration: {
136
+ env: 'AZTEC_GOVERNANCE_VOTING_DURATION',
137
+ description: 'Governance voting duration in seconds (only for local/devnet/next-net)',
138
+ ...numberConfigHelper(3600)
151
139
  },
152
140
  manaTarget: {
153
141
  env: 'AZTEC_MANA_TARGET',
154
142
  description: 'The mana target for the rollup',
155
- ...bigintConfigHelper(DefaultL1ContractsConfig.manaTarget)
143
+ ...bigintConfigHelper(BigInt(l1ContractsDefaultEnv.AZTEC_MANA_TARGET))
156
144
  },
157
145
  provingCostPerMana: {
158
146
  env: 'AZTEC_PROVING_COST_PER_MANA',
159
147
  description: 'The proving cost per mana',
160
- ...bigintConfigHelper(DefaultL1ContractsConfig.provingCostPerMana)
148
+ ...bigintConfigHelper(BigInt(l1ContractsDefaultEnv.AZTEC_PROVING_COST_PER_MANA))
149
+ },
150
+ initialEthPerFeeAsset: {
151
+ env: 'AZTEC_INITIAL_ETH_PER_FEE_ASSET',
152
+ description: 'The initial ETH per fee asset price (with 1e12 precision)',
153
+ ...bigintConfigHelper(BigInt(l1ContractsDefaultEnv.AZTEC_INITIAL_ETH_PER_FEE_ASSET))
161
154
  },
162
155
  exitDelaySeconds: {
163
156
  env: 'AZTEC_EXIT_DELAY_SECONDS',
164
157
  description: 'The delay before a validator can exit the set',
165
- ...numberConfigHelper(DefaultL1ContractsConfig.exitDelaySeconds)
158
+ ...numberConfigHelper(l1ContractsDefaultEnv.AZTEC_EXIT_DELAY_SECONDS)
166
159
  },
167
- ...l1TxUtilsConfigMappings
160
+ ...omitConfigMappings(l1TxUtilsConfigMappings, [
161
+ 'ethereumSlotDuration'
162
+ ])
168
163
  };
164
+ /**
165
+ * Default L1 contracts configuration derived from l1ContractsConfigMappings.
166
+ * Source of truth: spartan/environments/defaults.yml -> defaults.l1-contracts
167
+ */ export const DefaultL1ContractsConfig = getDefaultConfig(l1ContractsConfigMappings);
169
168
  export const genesisStateConfigMappings = {
170
169
  testAccounts: {
171
170
  env: 'TEST_ACCOUNTS',
@@ -14,6 +14,8 @@ export interface IEmpireBase {
14
14
  computeRound(slot: SlotNumber): Promise<bigint>;
15
15
  createSignalRequest(payload: Hex): L1TxRequest;
16
16
  createSignalRequestWithSignature(payload: Hex, slot: SlotNumber, chainId: number, signerAddress: Hex, signer: (msg: TypedDataDefinition) => Promise<Hex>): Promise<L1TxRequest>;
17
+ /** Checks if a payload was ever submitted to governance via submitRoundWinner. */
18
+ hasPayloadBeenProposed(payload: Hex, fromBlock: bigint): Promise<boolean>;
17
19
  }
18
20
  export declare function encodeSignal(payload: Hex): Hex;
19
21
  export declare function encodeSignalWithSignature(payload: Hex, signature: Signature): `0x${string}`;
@@ -27,4 +29,4 @@ export declare function encodeSignalWithSignature(payload: Hex, signature: Signa
27
29
  * @returns The EIP-712 signature
28
30
  */
29
31
  export declare function signSignalWithSig(signer: (msg: TypedDataDefinition) => Promise<Hex>, payload: Hex, slot: SlotNumber, instance: Hex, verifyingContract: Hex, chainId: number): Promise<Signature>;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1waXJlX2Jhc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvZW1waXJlX2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzVELE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLG1CQUFtQixFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUU5RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRCxNQUFNLFdBQVcsV0FBVztJQUMxQixJQUFJLE9BQU8sSUFBSSxVQUFVLENBQUM7SUFDMUIsWUFBWSxDQUNWLGFBQWEsRUFBRSxHQUFHLEVBQ2xCLEtBQUssRUFBRSxNQUFNLEdBQ1osT0FBTyxDQUFDO1FBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQztRQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQztRQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7UUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQ25ILFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFdBQVcsQ0FBQztJQUMvQyxnQ0FBZ0MsQ0FDOUIsT0FBTyxFQUFFLEdBQUcsRUFDWixJQUFJLEVBQUUsVUFBVSxFQUNoQixPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxHQUFHLEVBQ2xCLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQ2pELE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztDQUN6QjtBQUVELHdCQUFnQixZQUFZLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBTTlDO0FBRUQsd0JBQWdCLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsaUJBTTNFO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQ1osSUFBSSxFQUFFLFVBQVUsRUFDaEIsUUFBUSxFQUFFLEdBQUcsRUFDYixpQkFBaUIsRUFBRSxHQUFHLEVBQ3RCLE9BQU8sRUFBRSxNQUFNLEdBQ2QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQThCcEIifQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1waXJlX2Jhc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvZW1waXJlX2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzVELE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLG1CQUFtQixFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUU5RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRCxNQUFNLFdBQVcsV0FBVztJQUMxQixJQUFJLE9BQU8sSUFBSSxVQUFVLENBQUM7SUFDMUIsWUFBWSxDQUNWLGFBQWEsRUFBRSxHQUFHLEVBQ2xCLEtBQUssRUFBRSxNQUFNLEdBQ1osT0FBTyxDQUFDO1FBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQztRQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQztRQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7UUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQ25ILFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFdBQVcsQ0FBQztJQUMvQyxnQ0FBZ0MsQ0FDOUIsT0FBTyxFQUFFLEdBQUcsRUFDWixJQUFJLEVBQUUsVUFBVSxFQUNoQixPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxHQUFHLEVBQ2xCLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQ2pELE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QixrRkFBa0Y7SUFDbEYsc0JBQXNCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztDQUMzRTtBQUVELHdCQUFnQixZQUFZLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBTTlDO0FBRUQsd0JBQWdCLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsaUJBTTNFO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQ1osSUFBSSxFQUFFLFVBQVUsRUFDaEIsUUFBUSxFQUFFLEdBQUcsRUFDYixpQkFBaUIsRUFBRSxHQUFHLEVBQ3RCLE9BQU8sRUFBRSxNQUFNLEdBQ2QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQThCcEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"empire_base.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAsB,MAAM,MAAM,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,IAAI,OAAO,IAAI,UAAU,CAAC;IAC1B,YAAY,CACV,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnH,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,CAAC;IAC/C,gCAAgC,CAC9B,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,GACjD,OAAO,CAAC,WAAW,CAAC,CAAC;CACzB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAM9C;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,iBAM3E;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,EAClD,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,GAAG,EACb,iBAAiB,EAAE,GAAG,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CA8BpB"}
1
+ {"version":3,"file":"empire_base.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAsB,MAAM,MAAM,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,IAAI,OAAO,IAAI,UAAU,CAAC;IAC1B,YAAY,CACV,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnH,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,CAAC;IAC/C,gCAAgC,CAC9B,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,GACjD,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,kFAAkF;IAClF,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAM9C;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,iBAM3E;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,EAClD,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,GAAG,EACb,iBAAiB,EAAE,GAAG,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CA8BpB"}
@@ -31,6 +31,8 @@ export declare class EmpireSlashingProposerContract extends EventEmitter impleme
31
31
  getPayloadSignals(rollupAddress: Hex, round: bigint, payload: Hex): Promise<bigint>;
32
32
  createSignalRequest(payload: Hex): L1TxRequest;
33
33
  createSignalRequestWithSignature(payload: Hex, slot: SlotNumber, chainId: number, signerAddress: Hex, signer: (msg: TypedDataDefinition) => Promise<Hex>): Promise<L1TxRequest>;
34
+ /** Checks if a payload was ever submitted to governance via submitRoundWinner. */
35
+ hasPayloadBeenProposed(payload: Hex, fromBlock: bigint): Promise<boolean>;
34
36
  listenToSubmittablePayloads(callback: (args: {
35
37
  payload: `0x${string}`;
36
38
  round: bigint;
@@ -64,4 +66,4 @@ export declare class EmpireSlashingProposerContract extends EventEmitter impleme
64
66
  waitForRound(round: bigint, pollingIntervalSeconds?: number): Promise<boolean>;
65
67
  executeRound(txUtils: L1TxUtils, round: bigint | number): ReturnType<typeof txUtils.sendAndMonitorTransaction>;
66
68
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1waXJlX3NsYXNoaW5nX3Byb3Bvc2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL2VtcGlyZV9zbGFzaGluZ19wcm9wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSzNELE9BQU8sWUFBWSxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBR0wsS0FBSyxHQUFHLEVBQ1IsS0FBSyxHQUFHLEVBQ1IsS0FBSyxtQkFBbUIsRUFHekIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBOEQsTUFBTSxrQkFBa0IsQ0FBQztBQUVoSCxxQkFBYSw0QkFBNkIsU0FBUSxLQUFLO0lBQ3JELFlBQVksS0FBSyxFQUFFLE1BQU0sRUFFeEI7Q0FDRjtBQUVELHFCQUFhLDhCQUErQixTQUFRLFlBQWEsWUFBVyxXQUFXO2FBT25FLE1BQU0sRUFBRSxVQUFVO0lBTnBDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUErRDtJQUN0RixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBc0U7SUFFL0YsU0FBZ0IsSUFBSSxXQUFxQjtJQUV6QyxZQUNrQixNQUFNLEVBQUUsVUFBVSxFQUNsQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFRMUI7SUFFRCxJQUFXLE9BQU8sZUFFakI7SUFFTSxhQUFhLG9CQUVuQjtJQUVNLFlBQVksb0JBRWxCO0lBRU0sbUJBQW1CLG9CQUV6QjtJQUVNLHlCQUF5QixvQkFFL0I7SUFFTSxlQUFlLG9CQUVyQjtJQUVNLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFckQ7SUFFTSxXQUFXLDJCQUVqQjtJQUVZLFlBQVksQ0FDdkIsYUFBYSxFQUFFLEdBQUcsRUFDbEIsS0FBSyxFQUFFLE1BQU0sR0FDWixPQUFPLENBQUM7UUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDO1FBQUMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDO1FBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztRQUFDLFFBQVEsRUFBRSxPQUFPLENBQUE7S0FBRSxDQUFDLENBWWpIO0lBRU0saUJBQWlCLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV6RjtJQUVNLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsV0FBVyxDQUtwRDtJQUVZLGdDQUFnQyxDQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUNaLElBQUksRUFBRSxVQUFVLEVBQ2hCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLEdBQUcsRUFDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLG1CQUFtQixLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FDakQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQWF0QjtJQUVNLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtRQUFFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEtBQUssT0FBTywrQ0FleEc7SUFFTSx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUE7S0FBRSxLQUFLLE9BQU8sK0NBY3JHO0lBRU0sb0JBQW9CLENBQ3pCLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtRQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7UUFBQyxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUFDLFFBQVEsRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFBO0tBQUUsS0FBSyxPQUFPLCtDQWVoRztJQUVELDZFQUE2RTtJQUN0RSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FTMUQ7SUFFRCxxRUFBcUU7SUFDOUQsK0JBQStCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTs7Ozs7O2tCQUVqRDtJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixHQUFFLE1BQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBYXZGO0lBRVksWUFBWSxDQUN2QixPQUFPLEVBQUUsU0FBUyxFQUNsQixLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FDckIsVUFBVSxDQUFDLE9BQU8sT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBZ0R0RDtDQUNGIn0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1waXJlX3NsYXNoaW5nX3Byb3Bvc2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL2VtcGlyZV9zbGFzaGluZ19wcm9wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSzNELE9BQU8sWUFBWSxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBRUwsS0FBSyxHQUFHLEVBQ1IsS0FBSyxHQUFHLEVBQ1IsS0FBSyxtQkFBbUIsRUFHekIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBOEQsTUFBTSxrQkFBa0IsQ0FBQztBQUVoSCxxQkFBYSw0QkFBNkIsU0FBUSxLQUFLO0lBQ3JELFlBQVksS0FBSyxFQUFFLE1BQU0sRUFFeEI7Q0FDRjtBQUVELHFCQUFhLDhCQUErQixTQUFRLFlBQWEsWUFBVyxXQUFXO2FBT25FLE1BQU0sRUFBRSxVQUFVO0lBTnBDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUErRDtJQUN0RixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBc0U7SUFFL0YsU0FBZ0IsSUFBSSxXQUFxQjtJQUV6QyxZQUNrQixNQUFNLEVBQUUsVUFBVSxFQUNsQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFRMUI7SUFFRCxJQUFXLE9BQU8sZUFFakI7SUFFTSxhQUFhLG9CQUVuQjtJQUVNLFlBQVksb0JBRWxCO0lBRU0sbUJBQW1CLG9CQUV6QjtJQUVNLHlCQUF5QixvQkFFL0I7SUFFTSxlQUFlLG9CQUVyQjtJQUVNLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFckQ7SUFFTSxXQUFXLDJCQUVqQjtJQUVZLFlBQVksQ0FDdkIsYUFBYSxFQUFFLEdBQUcsRUFDbEIsS0FBSyxFQUFFLE1BQU0sR0FDWixPQUFPLENBQUM7UUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDO1FBQUMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDO1FBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztRQUFDLFFBQVEsRUFBRSxPQUFPLENBQUE7S0FBRSxDQUFDLENBWWpIO0lBRU0saUJBQWlCLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV6RjtJQUVNLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsV0FBVyxDQU1wRDtJQUVZLGdDQUFnQyxDQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUNaLElBQUksRUFBRSxVQUFVLEVBQ2hCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLEdBQUcsRUFDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLG1CQUFtQixLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FDakQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQWN0QjtJQUVELGtGQUFrRjtJQUNyRSxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUdyRjtJQUVNLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtRQUFFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEtBQUssT0FBTywrQ0FleEc7SUFFTSx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUE7S0FBRSxLQUFLLE9BQU8sK0NBY3JHO0lBRU0sb0JBQW9CLENBQ3pCLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtRQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7UUFBQyxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUFDLFFBQVEsRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFBO0tBQUUsS0FBSyxPQUFPLCtDQWVoRztJQUVELDZFQUE2RTtJQUN0RSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FVMUQ7SUFFRCxxRUFBcUU7SUFDOUQsK0JBQStCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTs7Ozs7O2tCQUVqRDtJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixHQUFFLE1BQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBYXZGO0lBRVksWUFBWSxDQUN2QixPQUFPLEVBQUUsU0FBUyxFQUNsQixLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FDckIsVUFBVSxDQUFDLE9BQU8sT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBbUN0RDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"empire_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_slashing_proposer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"empire_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_slashing_proposer.ts"],"names":[],"mappings":"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"}
@@ -81,6 +81,7 @@ export class EmpireSlashingProposerContract extends EventEmitter {
81
81
  createSignalRequest(payload) {
82
82
  return {
83
83
  to: this.address.toString(),
84
+ abi: EmpireSlashingProposerAbi,
84
85
  data: encodeSignal(payload)
85
86
  };
86
87
  }
@@ -88,9 +89,19 @@ export class EmpireSlashingProposerContract extends EventEmitter {
88
89
  const signature = await signSignalWithSig(signer, payload, slot, await this.getInstance(), this.address.toString(), chainId);
89
90
  return {
90
91
  to: this.address.toString(),
92
+ abi: EmpireSlashingProposerAbi,
91
93
  data: encodeSignalWithSignature(payload, signature)
92
94
  };
93
95
  }
96
+ /** Checks if a payload was ever submitted to governance via submitRoundWinner. */ async hasPayloadBeenProposed(payload, fromBlock) {
97
+ const events = await this.proposer.getEvents.PayloadSubmitted({
98
+ payload
99
+ }, {
100
+ fromBlock,
101
+ strict: true
102
+ });
103
+ return events.length > 0;
104
+ }
94
105
  listenToSubmittablePayloads(callback) {
95
106
  return this.proposer.watchEvent.PayloadSubmittable({}, {
96
107
  strict: true,
@@ -141,6 +152,7 @@ export class EmpireSlashingProposerContract extends EventEmitter {
141
152
  /** Creates an L1TxRequest to submit the round winner for the given round. */ buildExecuteRoundRequest(round) {
142
153
  return {
143
154
  to: this.address.toString(),
155
+ abi: EmpireSlashingProposerAbi,
144
156
  data: encodeFunctionData({
145
157
  abi: EmpireSlashingProposerAbi,
146
158
  functionName: 'submitRoundWinner',
@@ -172,18 +184,8 @@ export class EmpireSlashingProposerContract extends EventEmitter {
172
184
  if (typeof round === 'number') {
173
185
  round = BigInt(round);
174
186
  }
175
- const args = {
176
- abi: EmpireSlashingProposerAbi,
177
- functionName: 'submitRoundWinner',
178
- args: [
179
- round
180
- ]
181
- };
182
- const data = encodeFunctionData(args);
183
- const response = await txUtils.sendAndMonitorTransaction({
184
- to: this.address.toString(),
185
- data
186
- }, {
187
+ const request = this.buildExecuteRoundRequest(round);
188
+ const response = await txUtils.sendAndMonitorTransaction(request, {
187
189
  // Gas estimation is way off for this, likely because we are creating the contract/selector to call
188
190
  // for the actual slashing dynamically.
189
191
  gasLimitBufferPercentage: 50
@@ -194,10 +196,15 @@ export class EmpireSlashingProposerContract extends EventEmitter {
194
196
  throw err;
195
197
  });
196
198
  if (response.receipt.status === 'reverted') {
197
- const error = await txUtils.tryGetErrorFromRevertedTx(data, {
198
- ...args,
199
+ const args = {
200
+ abi: EmpireSlashingProposerAbi,
201
+ functionName: 'submitRoundWinner',
202
+ args: [
203
+ round
204
+ ],
199
205
  address: this.address.toString()
200
- }, undefined, []);
206
+ };
207
+ const error = await txUtils.tryGetErrorFromRevertedTx(request.data, args, undefined, []);
201
208
  if (error?.includes('ProposalAlreadyExecuted')) {
202
209
  throw new ProposalAlreadyExecutedError(round);
203
210
  }
@@ -1,19 +1,20 @@
1
1
  import { EthAddress } from '@aztec/foundation/eth-address';
2
2
  import { type Hex } from 'viem';
3
3
  import type { L1TxUtils } from '../l1_tx_utils/index.js';
4
+ import type { ViemClient } from '../types.js';
4
5
  export declare class FeeAssetHandlerContract {
5
- readonly txUtils: L1TxUtils;
6
+ readonly client: ViemClient;
6
7
  address: EthAddress;
7
- constructor(address: Hex | EthAddress, txUtils: L1TxUtils);
8
+ constructor(client: ViemClient, address: Hex | EthAddress);
8
9
  getOwner(): Promise<EthAddress>;
9
10
  getMintAmount(): Promise<bigint>;
10
- mint(recipient: Hex | EthAddress): Promise<{
11
+ mint(txUtils: L1TxUtils, recipient: Hex | EthAddress): Promise<{
11
12
  receipt: import("viem").TransactionReceipt;
12
13
  state: import("../l1_tx_utils/types.js").L1TxState;
13
14
  }>;
14
- setMintAmount(amount: bigint): Promise<{
15
+ setMintAmount(txUtils: L1TxUtils, amount: bigint): Promise<{
15
16
  receipt: import("viem").TransactionReceipt;
16
17
  state: import("../l1_tx_utils/types.js").L1TxState;
17
18
  }>;
18
19
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX2Fzc2V0X2hhbmRsZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvZmVlX2Fzc2V0X2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzNELE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBbUMsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQscUJBQWEsdUJBQXVCO2FBS2hCLE9BQU8sRUFBRSxTQUFTO0lBSjdCLE9BQU8sRUFBRSxVQUFVLENBQUM7SUFFM0IsWUFDRSxPQUFPLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFDVCxPQUFPLEVBQUUsU0FBUyxFQU1uQztJQUVZLFFBQVEsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBTzNDO0lBRU0sYUFBYSxvQkFPbkI7SUFFTSxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsR0FBRyxVQUFVOzs7T0FZdEM7SUFFTSxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU07OztPQVNsQztDQUNGIn0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX2Fzc2V0X2hhbmRsZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvZmVlX2Fzc2V0X2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzNELE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBbUMsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLHFCQUFhLHVCQUF1QjthQUloQixNQUFNLEVBQUUsVUFBVTtJQUg3QixPQUFPLEVBQUUsVUFBVSxDQUFDO0lBRTNCLFlBQ2tCLE1BQU0sRUFBRSxVQUFVLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEdBQUcsVUFBVSxFQU0xQjtJQUVZLFFBQVEsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBTzNDO0lBRU0sYUFBYSxvQkFPbkI7SUFFTSxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxHQUFHLFVBQVU7OztPQWExRDtJQUVNLGFBQWEsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNOzs7T0FVdEQ7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"fee_asset_handler.d.ts","sourceRoot":"","sources":["../../src/contracts/fee_asset_handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,KAAK,GAAG,EAAmC,MAAM,MAAM,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,qBAAa,uBAAuB;aAKhB,OAAO,EAAE,SAAS;IAJ7B,OAAO,EAAE,UAAU,CAAC;IAE3B,YACE,OAAO,EAAE,GAAG,GAAG,UAAU,EACT,OAAO,EAAE,SAAS,EAMnC;IAEY,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAO3C;IAEM,aAAa,oBAOnB;IAEM,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,UAAU;;;OAYtC;IAEM,aAAa,CAAC,MAAM,EAAE,MAAM;;;OASlC;CACF"}
1
+ {"version":3,"file":"fee_asset_handler.d.ts","sourceRoot":"","sources":["../../src/contracts/fee_asset_handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,KAAK,GAAG,EAAmC,MAAM,MAAM,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,qBAAa,uBAAuB;aAIhB,MAAM,EAAE,UAAU;IAH7B,OAAO,EAAE,UAAU,CAAC;IAE3B,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAEY,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAO3C;IAEM,aAAa,oBAOnB;IAEM,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,UAAU;;;OAa1D;IAEM,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;;;OAUtD;CACF"}
@@ -2,10 +2,10 @@ import { EthAddress } from '@aztec/foundation/eth-address';
2
2
  import { FeeAssetHandlerAbi } from '@aztec/l1-artifacts/FeeAssetHandlerAbi';
3
3
  import { encodeFunctionData, getContract } from 'viem';
4
4
  export class FeeAssetHandlerContract {
5
- txUtils;
5
+ client;
6
6
  address;
7
- constructor(address, txUtils){
8
- this.txUtils = txUtils;
7
+ constructor(client, address){
8
+ this.client = client;
9
9
  if (address instanceof EthAddress) {
10
10
  address = address.toString();
11
11
  }
@@ -15,7 +15,7 @@ export class FeeAssetHandlerContract {
15
15
  const contract = getContract({
16
16
  abi: FeeAssetHandlerAbi,
17
17
  address: this.address.toString(),
18
- client: this.txUtils.client
18
+ client: this.client
19
19
  });
20
20
  return EthAddress.fromString(await contract.read.owner());
21
21
  }
@@ -23,16 +23,17 @@ export class FeeAssetHandlerContract {
23
23
  const contract = getContract({
24
24
  abi: FeeAssetHandlerAbi,
25
25
  address: this.address.toString(),
26
- client: this.txUtils.client
26
+ client: this.client
27
27
  });
28
28
  return contract.read.mintAmount();
29
29
  }
30
- mint(recipient) {
30
+ mint(txUtils, recipient) {
31
31
  if (recipient instanceof EthAddress) {
32
32
  recipient = recipient.toString();
33
33
  }
34
- return this.txUtils.sendAndMonitorTransaction({
34
+ return txUtils.sendAndMonitorTransaction({
35
35
  to: this.address.toString(),
36
+ abi: FeeAssetHandlerAbi,
36
37
  data: encodeFunctionData({
37
38
  abi: FeeAssetHandlerAbi,
38
39
  functionName: 'mint',
@@ -42,9 +43,10 @@ export class FeeAssetHandlerContract {
42
43
  })
43
44
  });
44
45
  }
45
- setMintAmount(amount) {
46
- return this.txUtils.sendAndMonitorTransaction({
46
+ setMintAmount(txUtils, amount) {
47
+ return txUtils.sendAndMonitorTransaction({
47
48
  to: this.address.toString(),
49
+ abi: FeeAssetHandlerAbi,
48
50
  data: encodeFunctionData({
49
51
  abi: FeeAssetHandlerAbi,
50
52
  functionName: 'setMintAmount',