@aztec/ethereum 0.0.1-commit.2ed92850 → 0.0.1-commit.2f68f620
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/client.d.ts +25 -3
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +60 -8
- package/dest/config.d.ts +8 -6
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +15 -11
- package/dest/contracts/chain_state_override.d.ts +78 -0
- package/dest/contracts/chain_state_override.d.ts.map +1 -0
- package/dest/contracts/chain_state_override.js +137 -0
- 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/fee_asset_price_oracle.d.ts +105 -0
- package/dest/contracts/fee_asset_price_oracle.d.ts.map +1 -0
- package/dest/contracts/fee_asset_price_oracle.js +656 -0
- package/dest/contracts/governance.d.ts +108 -33
- package/dest/contracts/governance.d.ts.map +1 -1
- package/dest/contracts/governance.js +198 -15
- package/dest/contracts/governance_proposer.d.ts +33 -1
- package/dest/contracts/governance_proposer.d.ts.map +1 -1
- package/dest/contracts/governance_proposer.js +57 -3
- package/dest/contracts/inbox.d.ts +3 -3
- package/dest/contracts/inbox.d.ts.map +1 -1
- package/dest/contracts/inbox.js +12 -7
- package/dest/contracts/index.d.ts +4 -3
- package/dest/contracts/index.d.ts.map +1 -1
- package/dest/contracts/index.js +3 -2
- package/dest/contracts/multicall.d.ts +127 -12
- package/dest/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +201 -93
- package/dest/contracts/outbox.d.ts +27 -4
- package/dest/contracts/outbox.d.ts.map +1 -1
- package/dest/contracts/outbox.js +34 -7
- package/dest/contracts/registry.d.ts +3 -1
- package/dest/contracts/registry.d.ts.map +1 -1
- package/dest/contracts/registry.js +30 -1
- package/dest/contracts/rollup.d.ts +5259 -29
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +392 -71
- package/dest/contracts/{tally_slashing_proposer.d.ts → slashing_proposer.d.ts} +3 -4
- package/dest/contracts/slashing_proposer.d.ts.map +1 -0
- package/dest/contracts/{tally_slashing_proposer.js → slashing_proposer.js} +18 -13
- package/dest/deploy_aztec_l1_contracts.d.ts +8 -11
- package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_aztec_l1_contracts.js +46 -34
- package/dest/deploy_l1_contract.js +3 -3
- package/dest/generated/l1-contracts-defaults.d.ts +2 -2
- package/dest/generated/l1-contracts-defaults.js +2 -2
- package/dest/l1_artifacts.d.ts +14259 -15724
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_artifacts.js +9 -24
- package/dest/l1_contract_addresses.d.ts +61 -65
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +101 -82
- package/dest/l1_reader.d.ts +5 -5
- package/dest/l1_reader.d.ts.map +1 -1
- package/dest/l1_reader.js +9 -7
- package/dest/l1_tx_utils/config.d.ts +7 -1
- package/dest/l1_tx_utils/config.d.ts.map +1 -1
- package/dest/l1_tx_utils/config.js +14 -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/factory.d.ts +18 -10
- package/dest/l1_tx_utils/factory.d.ts.map +1 -1
- package/dest/l1_tx_utils/factory.js +17 -7
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +1 -1
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +1 -1
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +15 -15
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +9 -15
- package/dest/l1_tx_utils/index-blobs.d.ts +3 -3
- package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -1
- package/dest/l1_tx_utils/index-blobs.js +2 -2
- package/dest/l1_tx_utils/index.d.ts +2 -1
- package/dest/l1_tx_utils/index.d.ts.map +1 -1
- package/dest/l1_tx_utils/index.js +1 -0
- package/dest/l1_tx_utils/l1_tx_utils.d.ts +26 -7
- package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/l1_tx_utils.js +101 -66
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +13 -8
- package/dest/l1_tx_utils/tx_delayer.d.ts +58 -0
- package/dest/l1_tx_utils/tx_delayer.d.ts.map +1 -0
- package/dest/{test → l1_tx_utils}/tx_delayer.js +67 -37
- package/dest/publisher_manager.d.ts +21 -6
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +81 -7
- package/dest/queries.d.ts +13 -2
- package/dest/queries.d.ts.map +1 -1
- package/dest/queries.js +62 -3
- package/dest/test/chain_monitor.d.ts +23 -3
- package/dest/test/chain_monitor.d.ts.map +1 -1
- package/dest/test/chain_monitor.js +38 -2
- package/dest/test/eth_cheat_codes.d.ts +12 -4
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/eth_cheat_codes.js +17 -4
- package/dest/test/index.d.ts +1 -3
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +0 -2
- package/dest/test/rollup_cheat_codes.d.ts +33 -3
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +68 -7
- package/dest/test/start_anvil.d.ts +23 -3
- package/dest/test/start_anvil.d.ts.map +1 -1
- package/dest/test/start_anvil.js +143 -29
- package/dest/test/upgrade_utils.js +2 -2
- package/dest/utils.d.ts +10 -2
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +94 -16
- package/package.json +6 -8
- package/src/client.ts +66 -2
- package/src/config.ts +24 -15
- package/src/contracts/chain_state_override.ts +200 -0
- package/src/contracts/fee_asset_handler.ts +2 -0
- package/src/contracts/fee_asset_price_oracle.ts +285 -0
- package/src/contracts/governance.ts +271 -12
- package/src/contracts/governance_proposer.ts +58 -2
- package/src/contracts/inbox.ts +13 -5
- package/src/contracts/index.ts +3 -2
- package/src/contracts/multicall.ts +243 -102
- package/src/contracts/outbox.ts +42 -8
- package/src/contracts/registry.ts +31 -1
- package/src/contracts/rollup.ts +443 -73
- package/src/contracts/{tally_slashing_proposer.ts → slashing_proposer.ts} +16 -14
- package/src/deploy_aztec_l1_contracts.ts +69 -42
- package/src/deploy_l1_contract.ts +3 -3
- package/src/generated/l1-contracts-defaults.ts +2 -2
- package/src/l1_artifacts.ts +12 -35
- package/src/l1_contract_addresses.ts +120 -94
- package/src/l1_reader.ts +17 -10
- package/src/l1_tx_utils/config.ts +20 -0
- package/src/l1_tx_utils/constants.ts +2 -2
- package/src/l1_tx_utils/factory.ts +31 -31
- package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +1 -1
- package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +1 -1
- package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +43 -54
- package/src/l1_tx_utils/index-blobs.ts +2 -2
- package/src/l1_tx_utils/index.ts +1 -0
- package/src/l1_tx_utils/l1_tx_utils.ts +99 -48
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +13 -8
- package/src/{test → l1_tx_utils}/tx_delayer.ts +93 -56
- package/src/publisher_manager.ts +107 -10
- package/src/queries.ts +70 -4
- package/src/test/chain_monitor.ts +65 -3
- package/src/test/eth_cheat_codes.ts +16 -4
- package/src/test/index.ts +0 -2
- package/src/test/rollup_cheat_codes.ts +73 -6
- package/src/test/start_anvil.ts +177 -29
- package/src/test/upgrade_utils.ts +2 -2
- package/src/utils.ts +98 -18
- package/dest/contracts/empire_slashing_proposer.d.ts +0 -67
- package/dest/contracts/empire_slashing_proposer.d.ts.map +0 -1
- package/dest/contracts/empire_slashing_proposer.js +0 -209
- package/dest/contracts/tally_slashing_proposer.d.ts.map +0 -1
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +0 -26
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +0 -1
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +0 -26
- package/dest/test/delayed_tx_utils.d.ts +0 -13
- package/dest/test/delayed_tx_utils.d.ts.map +0 -1
- package/dest/test/delayed_tx_utils.js +0 -28
- package/dest/test/tx_delayer.d.ts +0 -36
- package/dest/test/tx_delayer.d.ts.map +0 -1
- package/src/contracts/empire_slashing_proposer.ts +0 -270
- package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +0 -77
- package/src/test/delayed_tx_utils.ts +0 -52
|
@@ -5,13 +5,12 @@ import { Buffer32 } from '@aztec/foundation/buffer';
|
|
|
5
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
6
|
import { type Hex, type Log, type TypedDataDefinition } from 'viem';
|
|
7
7
|
/**
|
|
8
|
-
* Wrapper around the
|
|
8
|
+
* Wrapper around the SlashingProposer contract that provides
|
|
9
9
|
* a TypeScript interface for interacting with the consensus-based slashing system.
|
|
10
10
|
*/
|
|
11
|
-
export declare class
|
|
11
|
+
export declare class SlashingProposerContract {
|
|
12
12
|
readonly client: ViemClient;
|
|
13
13
|
private readonly contract;
|
|
14
|
-
readonly type: "tally";
|
|
15
14
|
constructor(client: ViemClient, address: Hex | EthAddress);
|
|
16
15
|
get address(): EthAddress;
|
|
17
16
|
getQuorumSize(): Promise<bigint>;
|
|
@@ -137,4 +136,4 @@ export declare class TallySlashingProposerContract {
|
|
|
137
136
|
* @returns An array of numbers representing the slash votes
|
|
138
137
|
*/
|
|
139
138
|
export declare function decodeSlashConsensusVotes(buffer: Buffer): number[];
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhc2hpbmdfcHJvcG9zZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvc2xhc2hpbmdfcHJvcG9zZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFNM0QsT0FBTyxFQUVMLEtBQUssR0FBRyxFQUNSLEtBQUssR0FBRyxFQUNSLEtBQUssbUJBQW1CLEVBR3pCLE1BQU0sTUFBTSxDQUFDO0FBRWQ7OztHQUdHO0FBQ0gscUJBQWEsd0JBQXdCO2FBSWpCLE1BQU0sRUFBRSxVQUFVO0lBSHBDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFnRTtJQUV6RixZQUNrQixNQUFNLEVBQUUsVUFBVSxFQUNsQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFPMUI7SUFFRCxJQUFXLE9BQU8sZUFFakI7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV0QztJQUVNLFlBQVksSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJDO0lBRU0sZ0JBQWdCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV6QztJQUVNLG9CQUFvQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFN0M7SUFFTSxtQkFBbUIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRTVDO0lBRU0seUJBQXlCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUVsRDtJQUVNLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxDQUFD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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/slashing_proposer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
import { tryExtractEvent } from '@aztec/ethereum/utils';
|
|
1
|
+
import { mergeAbis, tryExtractEvent } from '@aztec/ethereum/utils';
|
|
2
2
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
5
5
|
import { hexToBuffer } from '@aztec/foundation/string';
|
|
6
|
-
import {
|
|
6
|
+
import { SlasherAbi } from '@aztec/l1-artifacts/SlasherAbi';
|
|
7
|
+
import { SlashingProposerAbi } from '@aztec/l1-artifacts/SlashingProposerAbi';
|
|
7
8
|
import { encodeFunctionData, getContract } from 'viem';
|
|
8
9
|
/**
|
|
9
|
-
* Wrapper around the
|
|
10
|
+
* Wrapper around the SlashingProposer contract that provides
|
|
10
11
|
* a TypeScript interface for interacting with the consensus-based slashing system.
|
|
11
|
-
*/ export class
|
|
12
|
+
*/ export class SlashingProposerContract {
|
|
12
13
|
client;
|
|
13
14
|
contract;
|
|
14
|
-
type;
|
|
15
15
|
constructor(client, address){
|
|
16
16
|
this.client = client;
|
|
17
|
-
this.type = 'tally';
|
|
18
17
|
this.contract = getContract({
|
|
19
18
|
address: typeof address === 'string' ? address : address.toString(),
|
|
20
|
-
abi:
|
|
19
|
+
abi: SlashingProposerAbi,
|
|
21
20
|
client
|
|
22
21
|
});
|
|
23
22
|
}
|
|
@@ -117,10 +116,10 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
117
116
|
}));
|
|
118
117
|
}
|
|
119
118
|
/** Tries to extract a VoteCast event from the given logs. */ tryExtractVoteCastEvent(logs) {
|
|
120
|
-
return tryExtractEvent(logs, this.address.toString(),
|
|
119
|
+
return tryExtractEvent(logs, this.address.toString(), SlashingProposerAbi, 'VoteCast');
|
|
121
120
|
}
|
|
122
121
|
/** Tries to extract a RoundExecuted event from the given logs. */ tryExtractRoundExecutedEvent(logs) {
|
|
123
|
-
return tryExtractEvent(logs, this.address.toString(),
|
|
122
|
+
return tryExtractEvent(logs, this.address.toString(), SlashingProposerAbi, 'RoundExecuted');
|
|
124
123
|
}
|
|
125
124
|
/**
|
|
126
125
|
* Create a transaction to vote for slashing offenses
|
|
@@ -133,8 +132,9 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
133
132
|
const signature = Signature.fromString(await signer(typedData));
|
|
134
133
|
return {
|
|
135
134
|
to: this.contract.address,
|
|
135
|
+
abi: SlashingProposerAbi,
|
|
136
136
|
data: encodeFunctionData({
|
|
137
|
-
abi:
|
|
137
|
+
abi: SlashingProposerAbi,
|
|
138
138
|
functionName: 'vote',
|
|
139
139
|
args: [
|
|
140
140
|
votes,
|
|
@@ -145,7 +145,7 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
145
145
|
}
|
|
146
146
|
/** Returns the typed data definition to EIP712-sign for voting */ buildVoteTypedData(votes, slot) {
|
|
147
147
|
const domain = {
|
|
148
|
-
name: '
|
|
148
|
+
name: 'SlashingProposer',
|
|
149
149
|
version: '1',
|
|
150
150
|
chainId: this.client.chain.id,
|
|
151
151
|
verifyingContract: this.contract.address
|
|
@@ -204,8 +204,9 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
204
204
|
*/ buildVoteRequestWithSignature(votes, signature) {
|
|
205
205
|
return {
|
|
206
206
|
to: this.contract.address,
|
|
207
|
+
abi: SlashingProposerAbi,
|
|
207
208
|
data: encodeFunctionData({
|
|
208
|
-
abi:
|
|
209
|
+
abi: SlashingProposerAbi,
|
|
209
210
|
functionName: 'vote',
|
|
210
211
|
args: [
|
|
211
212
|
votes,
|
|
@@ -222,8 +223,12 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
222
223
|
*/ buildExecuteRoundRequest(round, committees) {
|
|
223
224
|
return {
|
|
224
225
|
to: this.contract.address,
|
|
226
|
+
abi: mergeAbis([
|
|
227
|
+
SlashingProposerAbi,
|
|
228
|
+
SlasherAbi
|
|
229
|
+
]),
|
|
225
230
|
data: encodeFunctionData({
|
|
226
|
-
abi:
|
|
231
|
+
abi: SlashingProposerAbi,
|
|
227
232
|
functionName: 'executeRound',
|
|
228
233
|
args: [
|
|
229
234
|
round,
|
|
@@ -6,7 +6,6 @@ import type { Hex } from 'viem';
|
|
|
6
6
|
import type { L1ContractsConfig } from './config.js';
|
|
7
7
|
import { RollupContract } from './contracts/rollup.js';
|
|
8
8
|
import type { L1ContractAddresses } from './l1_contract_addresses.js';
|
|
9
|
-
import type { L1TxUtilsConfig } from './l1_tx_utils/config.js';
|
|
10
9
|
import type { ExtendedViemWalletClient } from './types.js';
|
|
11
10
|
export interface G2PointJson {
|
|
12
11
|
x0: string;
|
|
@@ -27,9 +26,10 @@ export interface ValidatorJson {
|
|
|
27
26
|
publicKeyInG2: G2PointJson;
|
|
28
27
|
}
|
|
29
28
|
/**
|
|
30
|
-
* Gets the path to the l1-contracts foundry artifacts directory.
|
|
31
|
-
*
|
|
32
|
-
*
|
|
29
|
+
* Gets the path to the l1-contracts foundry artifacts directory bundled inside @aztec/l1-artifacts.
|
|
30
|
+
* Resolved through the package (its "." export -> dest/index.js) so it works whether the package is
|
|
31
|
+
* linked via portal (monorepo) or installed under node_modules (published npm) — resolution follows
|
|
32
|
+
* the symlink in the portal case. The bundled foundry subtree sits alongside dest/, at <pkg>/l1-contracts.
|
|
33
33
|
*/
|
|
34
34
|
export declare function getL1ContractsPath(): string;
|
|
35
35
|
/**
|
|
@@ -50,7 +50,6 @@ export declare function computeValidatorData(operator: Operator): ValidatorJson;
|
|
|
50
50
|
export interface RollupUpgradeAddresses {
|
|
51
51
|
rollupAddress: string;
|
|
52
52
|
verifierAddress: string;
|
|
53
|
-
slashFactoryAddress: string;
|
|
54
53
|
inboxAddress: string;
|
|
55
54
|
outboxAddress: string;
|
|
56
55
|
feeJuicePortalAddress: string;
|
|
@@ -62,7 +61,6 @@ export interface RollupUpgradeAddresses {
|
|
|
62
61
|
export interface ForgeRollupUpgradeResult {
|
|
63
62
|
rollupAddress: Hex;
|
|
64
63
|
verifierAddress: Hex;
|
|
65
|
-
slashFactoryAddress: Hex;
|
|
66
64
|
inboxAddress: Hex;
|
|
67
65
|
outboxAddress: Hex;
|
|
68
66
|
feeJuicePortalAddress: Hex;
|
|
@@ -156,7 +154,7 @@ export type VerificationRecord = {
|
|
|
156
154
|
constructorArgsHex: Hex;
|
|
157
155
|
libraries: VerificationLibraryEntry[];
|
|
158
156
|
};
|
|
159
|
-
export interface DeployAztecL1ContractsArgs extends Omit<L1ContractsConfig,
|
|
157
|
+
export interface DeployAztecL1ContractsArgs extends Omit<L1ContractsConfig, 'gasLimitBufferPercentage' | 'maxGwei' | 'maxBlobGwei' | 'priorityFeeBumpPercentage' | 'priorityFeeRetryBumpPercentage' | 'minimumPriorityFeePerGas' | 'maxSpeedUpAttempts' | 'checkIntervalMs' | 'stallTimeMs' | 'txTimeoutMs' | 'cancelTxOnTimeout' | 'txCancellationFinalTimeoutMs' | 'txUnseenConsideredDroppedMs' | 'enableDelayer' | 'txDelayerMaxInclusionTimeIntoSlot'> {
|
|
160
158
|
/** The vk tree root. */
|
|
161
159
|
vkTreeRoot: Fr;
|
|
162
160
|
/** The hash of the protocol contracts. */
|
|
@@ -211,7 +209,7 @@ export declare function getDeployAztecL1ContractsEnvVars(args: DeployAztecL1Cont
|
|
|
211
209
|
readonly AZTEC_EXIT_DELAY_SECONDS: string;
|
|
212
210
|
readonly AZTEC_PROVING_COST_PER_MANA: string;
|
|
213
211
|
readonly AZTEC_INITIAL_ETH_PER_FEE_ASSET: string;
|
|
214
|
-
readonly
|
|
212
|
+
readonly AZTEC_SLASHER_ENABLED: "false" | "true";
|
|
215
213
|
readonly AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: string;
|
|
216
214
|
readonly AZTEC_SLASHING_QUORUM: string | undefined;
|
|
217
215
|
readonly AZTEC_SLASHING_OFFSET_IN_ROUNDS: string;
|
|
@@ -242,7 +240,7 @@ export declare function getDeployRollupForUpgradeEnvVars(args: Omit<DeployAztecL
|
|
|
242
240
|
readonly AZTEC_EXIT_DELAY_SECONDS: string;
|
|
243
241
|
readonly AZTEC_PROVING_COST_PER_MANA: string;
|
|
244
242
|
readonly AZTEC_INITIAL_ETH_PER_FEE_ASSET: string;
|
|
245
|
-
readonly
|
|
243
|
+
readonly AZTEC_SLASHER_ENABLED: "false" | "true";
|
|
246
244
|
readonly AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: string;
|
|
247
245
|
readonly AZTEC_SLASHING_QUORUM: string | undefined;
|
|
248
246
|
readonly AZTEC_SLASHING_OFFSET_IN_ROUNDS: string;
|
|
@@ -255,6 +253,5 @@ export declare function getDeployRollupForUpgradeEnvVars(args: Omit<DeployAztecL
|
|
|
255
253
|
*/
|
|
256
254
|
export declare const deployRollupForUpgrade: (privateKey: `0x${string}`, rpcUrl: string, chainId: number, registryAddress: EthAddress, args: Omit<DeployAztecL1ContractsArgs, "activationThreshold" | "ejectionThreshold" | "governanceProposerQuorum" | "governanceProposerRoundSize" | "zkPassportArgs">) => Promise<{
|
|
257
255
|
rollup: RollupContract;
|
|
258
|
-
slashFactoryAddress: `0x${string}`;
|
|
259
256
|
}>;
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2F6dGVjX2wxX2NvbnRyYWN0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcGxveV9henRlY19sMV9jb250cmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU8zQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFpRjNELE1BQU0sV0FBVyxXQUFXO0lBQzFCLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7Q0FDWjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxhQUFhO0lBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixxQ0FBcUM7SUFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixrRUFBa0U7SUFDbEUsYUFBYSxFQUFFLFdBQVcsQ0FBQztDQUM1QjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGtCQUFrQixJQUFJ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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_aztec_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_aztec_l1_contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAwB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy_aztec_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_aztec_l1_contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,24 +4,25 @@ import { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
4
4
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
5
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
6
6
|
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
7
|
-
import { fileURLToPath } from '@aztec/foundation/url';
|
|
8
7
|
import { bn254 } from '@noble/curves/bn254';
|
|
9
8
|
import { spawn } from 'child_process';
|
|
10
9
|
import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'fs';
|
|
10
|
+
import { createRequire } from 'node:module';
|
|
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';
|
|
18
18
|
import { RollupContract } from './contracts/rollup.js';
|
|
19
19
|
const logger = createLogger('ethereum:deploy_aztec_l1_contracts');
|
|
20
|
+
const require = createRequire(import.meta.url);
|
|
20
21
|
const JSON_DEPLOY_RESULT_PREFIX = 'JSON DEPLOY RESULT:';
|
|
21
22
|
/**
|
|
22
|
-
* Runs a process
|
|
23
|
-
*
|
|
24
|
-
*
|
|
23
|
+
* Runs a process and parses JSON deploy results from stdout.
|
|
24
|
+
* Lines starting with JSON_DEPLOY_RESULT_PREFIX are parsed and returned.
|
|
25
|
+
* All other stdout goes to logger.info, stderr goes to logger.warn.
|
|
25
26
|
*/ function runProcess(command, args, env, cwd) {
|
|
26
27
|
const { promise, resolve, reject } = promiseWithResolvers();
|
|
27
28
|
const proc = spawn(command, args, {
|
|
@@ -37,27 +38,42 @@ const JSON_DEPLOY_RESULT_PREFIX = 'JSON DEPLOY RESULT:';
|
|
|
37
38
|
]
|
|
38
39
|
});
|
|
39
40
|
let result;
|
|
41
|
+
let parseError;
|
|
42
|
+
let settled = false;
|
|
40
43
|
readline.createInterface({
|
|
41
44
|
input: proc.stdout
|
|
42
45
|
}).on('line', (line)=>{
|
|
43
46
|
const trimmedLine = line.trim();
|
|
44
47
|
if (trimmedLine.startsWith(JSON_DEPLOY_RESULT_PREFIX)) {
|
|
45
48
|
const jsonStr = trimmedLine.slice(JSON_DEPLOY_RESULT_PREFIX.length).trim();
|
|
46
|
-
|
|
47
|
-
|
|
49
|
+
try {
|
|
50
|
+
result = JSON.parse(jsonStr);
|
|
51
|
+
} catch {
|
|
52
|
+
parseError = new Error(`Failed to parse deploy result JSON: ${jsonStr.slice(0, 200)}`);
|
|
53
|
+
}
|
|
48
54
|
} else {
|
|
49
55
|
logger.info(line);
|
|
50
56
|
}
|
|
51
57
|
});
|
|
52
58
|
readline.createInterface({
|
|
53
59
|
input: proc.stderr
|
|
54
|
-
}).on('line', logger.
|
|
60
|
+
}).on('line', logger.warn.bind(logger));
|
|
55
61
|
proc.on('error', (error)=>{
|
|
62
|
+
if (settled) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
settled = true;
|
|
56
66
|
reject(new Error(`Failed to spawn ${command}: ${error.message}`));
|
|
57
67
|
});
|
|
58
68
|
proc.on('close', (code)=>{
|
|
69
|
+
if (settled) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
settled = true;
|
|
59
73
|
if (code !== 0) {
|
|
60
|
-
reject(new Error(`${command} exited with code ${code}
|
|
74
|
+
reject(new Error(`${command} exited with code ${code}`));
|
|
75
|
+
} else if (parseError) {
|
|
76
|
+
reject(parseError);
|
|
61
77
|
} else {
|
|
62
78
|
resolve(result);
|
|
63
79
|
}
|
|
@@ -80,14 +96,12 @@ async function maybeForgeForceProductionBuild(l1ContractsPath, script, chainId)
|
|
|
80
96
|
}
|
|
81
97
|
}
|
|
82
98
|
/**
|
|
83
|
-
* Gets the path to the l1-contracts foundry artifacts directory.
|
|
84
|
-
*
|
|
85
|
-
*
|
|
99
|
+
* Gets the path to the l1-contracts foundry artifacts directory bundled inside @aztec/l1-artifacts.
|
|
100
|
+
* Resolved through the package (its "." export -> dest/index.js) so it works whether the package is
|
|
101
|
+
* linked via portal (monorepo) or installed under node_modules (published npm) — resolution follows
|
|
102
|
+
* the symlink in the portal case. The bundled foundry subtree sits alongside dest/, at <pkg>/l1-contracts.
|
|
86
103
|
*/ export function getL1ContractsPath() {
|
|
87
|
-
|
|
88
|
-
// Go up from yarn-project/ethereum/dest to yarn-project, then to l1-artifacts/l1-contracts
|
|
89
|
-
const l1ContractsPath = resolve(currentDir, '..', '..', 'l1-artifacts', 'l1-contracts');
|
|
90
|
-
return l1ContractsPath;
|
|
104
|
+
return resolve(dirname(require.resolve('@aztec/l1-artifacts')), '..', 'l1-contracts');
|
|
91
105
|
}
|
|
92
106
|
// Cached deployment directory
|
|
93
107
|
let preparedDeployDir;
|
|
@@ -137,6 +151,9 @@ function cleanupDeployDir() {
|
|
|
137
151
|
const foundryTomlPath = join(basePath, 'foundry.toml');
|
|
138
152
|
let foundryToml = readFileSync(foundryTomlPath, 'utf-8');
|
|
139
153
|
const solcPathMatch = foundryToml.match(/solc\s*=\s*"\.\/solc-([^"]+)"/);
|
|
154
|
+
// Did we find a hardcoded solc path that we need to make absolute?
|
|
155
|
+
// This code path happens in CI currently as we bundle solc there to avoid race conditions when
|
|
156
|
+
// downloading solc.
|
|
140
157
|
if (solcPathMatch) {
|
|
141
158
|
const solcVersion = solcPathMatch[1];
|
|
142
159
|
const absoluteSolcPath = join(basePath, `solc-${solcVersion}`);
|
|
@@ -225,11 +242,8 @@ function cleanupDeployDir() {
|
|
|
225
242
|
if (isVerifiableChain && !process.env.ETHERSCAN_API_KEY) {
|
|
226
243
|
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.`);
|
|
227
244
|
}
|
|
228
|
-
|
|
229
|
-
const MAGIC_ANVIL_BATCH_SIZE = 8;
|
|
230
|
-
// Anvil seems to stall with unbounded batch size. Otherwise no max batch size is desirable.
|
|
245
|
+
const scriptPath = join(getL1ContractsPath(), 'scripts', 'forge_broadcast.js');
|
|
231
246
|
const forgeArgs = [
|
|
232
|
-
'script',
|
|
233
247
|
FORGE_SCRIPT,
|
|
234
248
|
'--sig',
|
|
235
249
|
'run()',
|
|
@@ -237,11 +251,6 @@ function cleanupDeployDir() {
|
|
|
237
251
|
privateKey,
|
|
238
252
|
'--rpc-url',
|
|
239
253
|
rpcUrl,
|
|
240
|
-
'--broadcast',
|
|
241
|
-
...chainId === foundry.id ? [
|
|
242
|
-
'--batch-size',
|
|
243
|
-
MAGIC_ANVIL_BATCH_SIZE.toString()
|
|
244
|
-
] : [],
|
|
245
254
|
...shouldVerify ? [
|
|
246
255
|
'--verify'
|
|
247
256
|
] : []
|
|
@@ -252,7 +261,10 @@ function cleanupDeployDir() {
|
|
|
252
261
|
FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
|
|
253
262
|
...getDeployAztecL1ContractsEnvVars(args)
|
|
254
263
|
};
|
|
255
|
-
const result = await runProcess(
|
|
264
|
+
const result = await runProcess(process.execPath, [
|
|
265
|
+
scriptPath,
|
|
266
|
+
...forgeArgs
|
|
267
|
+
], forgeEnv, l1ContractsPath);
|
|
256
268
|
if (!result) {
|
|
257
269
|
throw new Error('Forge script did not output deployment result');
|
|
258
270
|
}
|
|
@@ -297,7 +309,6 @@ function cleanupDeployDir() {
|
|
|
297
309
|
governanceProposerAddress: EthAddress.fromString(result.governanceProposerAddress),
|
|
298
310
|
governanceAddress: EthAddress.fromString(result.governanceAddress),
|
|
299
311
|
stakingAssetAddress: EthAddress.fromString(result.stakingAssetAddress),
|
|
300
|
-
slashFactoryAddress: result.slashFactoryAddress ? EthAddress.fromString(result.slashFactoryAddress) : undefined,
|
|
301
312
|
feeAssetHandlerAddress: result.feeAssetHandlerAddress ? EthAddress.fromString(result.feeAssetHandlerAddress) : undefined,
|
|
302
313
|
stakingAssetHandlerAddress: result.stakingAssetHandlerAddress ? EthAddress.fromString(result.stakingAssetHandlerAddress) : undefined,
|
|
303
314
|
zkPassportVerifierAddress: result.zkPassportVerifierAddress ? EthAddress.fromString(result.zkPassportVerifierAddress) : undefined,
|
|
@@ -348,7 +359,7 @@ export function getDeployRollupForUpgradeEnvVars(args) {
|
|
|
348
359
|
AZTEC_EXIT_DELAY_SECONDS: args.exitDelaySeconds.toString(),
|
|
349
360
|
AZTEC_PROVING_COST_PER_MANA: args.provingCostPerMana.toString(),
|
|
350
361
|
AZTEC_INITIAL_ETH_PER_FEE_ASSET: args.initialEthPerFeeAsset.toString(),
|
|
351
|
-
|
|
362
|
+
AZTEC_SLASHER_ENABLED: args.slasherEnabled ? 'true' : 'false',
|
|
352
363
|
AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: args.slashingRoundSizeInEpochs.toString(),
|
|
353
364
|
AZTEC_SLASHING_QUORUM: args.slashingQuorum?.toString(),
|
|
354
365
|
AZTEC_SLASHING_OFFSET_IN_ROUNDS: args.slashingOffsetInRounds.toString(),
|
|
@@ -364,16 +375,15 @@ export function getDeployRollupForUpgradeEnvVars(args) {
|
|
|
364
375
|
const l1ContractsPath = prepareL1ContractsForDeployment();
|
|
365
376
|
const FORGE_SCRIPT = 'script/deploy/DeployRollupForUpgrade.s.sol';
|
|
366
377
|
await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
|
|
378
|
+
const scriptPath = join(getL1ContractsPath(), 'scripts', 'forge_broadcast.js');
|
|
367
379
|
const forgeArgs = [
|
|
368
|
-
'script',
|
|
369
380
|
FORGE_SCRIPT,
|
|
370
381
|
'--sig',
|
|
371
382
|
'run()',
|
|
372
383
|
'--private-key',
|
|
373
384
|
privateKey,
|
|
374
385
|
'--rpc-url',
|
|
375
|
-
rpcUrl
|
|
376
|
-
'--broadcast'
|
|
386
|
+
rpcUrl
|
|
377
387
|
];
|
|
378
388
|
const forgeEnv = {
|
|
379
389
|
FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
|
|
@@ -382,7 +392,10 @@ export function getDeployRollupForUpgradeEnvVars(args) {
|
|
|
382
392
|
NETWORK: getActiveNetworkName(),
|
|
383
393
|
...getDeployRollupForUpgradeEnvVars(args)
|
|
384
394
|
};
|
|
385
|
-
const result = await runProcess(
|
|
395
|
+
const result = await runProcess(process.execPath, [
|
|
396
|
+
scriptPath,
|
|
397
|
+
...forgeArgs
|
|
398
|
+
], forgeEnv, l1ContractsPath);
|
|
386
399
|
if (!result) {
|
|
387
400
|
throw new Error('Forge script did not output deployment result');
|
|
388
401
|
}
|
|
@@ -392,7 +405,6 @@ export function getDeployRollupForUpgradeEnvVars(args) {
|
|
|
392
405
|
// Create RollupContract wrapper for the deployed rollup
|
|
393
406
|
const rollup = new RollupContract(extendedClient, result.rollupAddress);
|
|
394
407
|
return {
|
|
395
|
-
rollup
|
|
396
|
-
slashFactoryAddress: result.slashFactoryAddress
|
|
408
|
+
rollup
|
|
397
409
|
};
|
|
398
410
|
};
|
|
@@ -5,7 +5,7 @@ import { concatHex, encodeAbiParameters, encodeDeployData, getContractAddress, n
|
|
|
5
5
|
import { DEPLOYER_ADDRESS } from './deploy_aztec_l1_contracts.js';
|
|
6
6
|
import { RegisterNewRollupVersionPayloadArtifact } from './l1_artifacts.js';
|
|
7
7
|
import { getL1TxUtilsConfigEnvVars } from './l1_tx_utils/config.js';
|
|
8
|
-
import {
|
|
8
|
+
import { createL1TxUtils } from './l1_tx_utils/factory.js';
|
|
9
9
|
import { formatViemError } from './utils.js';
|
|
10
10
|
export class L1Deployer {
|
|
11
11
|
client;
|
|
@@ -28,7 +28,7 @@ export class L1Deployer {
|
|
|
28
28
|
this.salt = maybeSalt ? padHex(numberToHex(maybeSalt), {
|
|
29
29
|
size: 32
|
|
30
30
|
}) : undefined;
|
|
31
|
-
this.l1TxUtils =
|
|
31
|
+
this.l1TxUtils = createL1TxUtils(this.client, {
|
|
32
32
|
logger: this.logger,
|
|
33
33
|
dateProvider
|
|
34
34
|
}, {
|
|
@@ -130,7 +130,7 @@ export class L1Deployer {
|
|
|
130
130
|
let { l1TxUtils } = opts;
|
|
131
131
|
if (!l1TxUtils) {
|
|
132
132
|
const config = getL1TxUtilsConfigEnvVars();
|
|
133
|
-
l1TxUtils =
|
|
133
|
+
l1TxUtils = createL1TxUtils(extendedClient, {
|
|
134
134
|
logger
|
|
135
135
|
}, {
|
|
136
136
|
...config,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Default L1 contracts configuration values from network-defaults.yml */
|
|
2
2
|
export declare const l1ContractsDefaultEnv: {
|
|
3
3
|
readonly ETHEREUM_SLOT_DURATION: 12;
|
|
4
|
-
readonly AZTEC_SLOT_DURATION:
|
|
4
|
+
readonly AZTEC_SLOT_DURATION: 72;
|
|
5
5
|
readonly AZTEC_EPOCH_DURATION: 32;
|
|
6
6
|
readonly AZTEC_TARGET_COMMITTEE_SIZE: 48;
|
|
7
7
|
readonly AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2;
|
|
@@ -15,7 +15,7 @@ export declare const l1ContractsDefaultEnv: {
|
|
|
15
15
|
readonly AZTEC_MANA_TARGET: 100000000;
|
|
16
16
|
readonly AZTEC_PROVING_COST_PER_MANA: 100;
|
|
17
17
|
readonly AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000;
|
|
18
|
-
readonly
|
|
18
|
+
readonly AZTEC_SLASHER_ENABLED: true;
|
|
19
19
|
readonly AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: 4;
|
|
20
20
|
readonly AZTEC_SLASHING_LIFETIME_IN_ROUNDS: 5;
|
|
21
21
|
readonly AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS: 0;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Do not edit manually - run yarn generate to regenerate
|
|
3
3
|
/** Default L1 contracts configuration values from network-defaults.yml */ export const l1ContractsDefaultEnv = {
|
|
4
4
|
ETHEREUM_SLOT_DURATION: 12,
|
|
5
|
-
AZTEC_SLOT_DURATION:
|
|
5
|
+
AZTEC_SLOT_DURATION: 72,
|
|
6
6
|
AZTEC_EPOCH_DURATION: 32,
|
|
7
7
|
AZTEC_TARGET_COMMITTEE_SIZE: 48,
|
|
8
8
|
AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2,
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
AZTEC_MANA_TARGET: 100000000,
|
|
17
17
|
AZTEC_PROVING_COST_PER_MANA: 100,
|
|
18
18
|
AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000,
|
|
19
|
-
|
|
19
|
+
AZTEC_SLASHER_ENABLED: true,
|
|
20
20
|
AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: 4,
|
|
21
21
|
AZTEC_SLASHING_LIFETIME_IN_ROUNDS: 5,
|
|
22
22
|
AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS: 0,
|