@aztec/ethereum 3.0.0-nightly.20250911 → 3.0.0-nightly.20250913
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/config.d.ts +6 -0
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +15 -3
- package/dest/contracts/rollup.d.ts +10 -4
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +27 -2
- package/dest/contracts/slasher_contract.d.ts +10 -0
- package/dest/contracts/slasher_contract.d.ts.map +1 -1
- package/dest/contracts/slasher_contract.js +18 -0
- package/dest/deploy_l1_contracts.d.ts +4 -4
- package/dest/deploy_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_l1_contracts.js +47 -20
- package/dest/l1_artifacts.d.ts +3539 -3003
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils.js +4 -1
- package/dest/queries.d.ts.map +1 -1
- package/dest/queries.js +6 -2
- package/dest/test/chain_monitor.d.ts +4 -0
- package/dest/test/chain_monitor.d.ts.map +1 -1
- package/dest/test/chain_monitor.js +57 -11
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +10 -161
- package/package.json +5 -5
- package/src/config.ts +18 -2
- package/src/contracts/rollup.ts +37 -4
- package/src/contracts/slasher_contract.ts +22 -0
- package/src/deploy_l1_contracts.ts +62 -16
- package/src/l1_tx_utils.ts +11 -2
- package/src/queries.ts +7 -1
- package/src/test/chain_monitor.ts +64 -8
- package/src/utils.ts +13 -185
package/dest/config.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export type L1ContractsConfig = {
|
|
|
16
16
|
aztecEpochDuration: number;
|
|
17
17
|
/** The target validator committee size. */
|
|
18
18
|
aztecTargetCommitteeSize: number;
|
|
19
|
+
/** The number of epochs to lag behind the current epoch for validator selection. */
|
|
20
|
+
lagInEpochs: number;
|
|
19
21
|
/** The number of epochs after an epoch ends that proofs are still accepted. */
|
|
20
22
|
aztecProofSubmissionEpochs: number;
|
|
21
23
|
/** The deposit amount for a validator */
|
|
@@ -36,6 +38,8 @@ export type L1ContractsConfig = {
|
|
|
36
38
|
slashingVetoer: EthAddress;
|
|
37
39
|
/** How many slashing rounds back we slash (ie when slashing in round N, we slash for offenses committed during epochs of round N-offset) */
|
|
38
40
|
slashingOffsetInRounds: number;
|
|
41
|
+
/** How long slashing can be disabled for in seconds when vetoer disables it */
|
|
42
|
+
slashingDisableDuration: number;
|
|
39
43
|
/** Type of slasher proposer */
|
|
40
44
|
slasherFlavor: 'empire' | 'tally' | 'none';
|
|
41
45
|
/** Minimum amount that can be slashed in tally slashing */
|
|
@@ -60,6 +64,7 @@ export declare const DefaultL1ContractsConfig: {
|
|
|
60
64
|
aztecSlotDuration: number;
|
|
61
65
|
aztecEpochDuration: number;
|
|
62
66
|
aztecTargetCommitteeSize: number;
|
|
67
|
+
lagInEpochs: number;
|
|
63
68
|
aztecProofSubmissionEpochs: number;
|
|
64
69
|
activationThreshold: bigint;
|
|
65
70
|
ejectionThreshold: bigint;
|
|
@@ -77,6 +82,7 @@ export declare const DefaultL1ContractsConfig: {
|
|
|
77
82
|
exitDelaySeconds: number;
|
|
78
83
|
slasherFlavor: "tally";
|
|
79
84
|
slashingOffsetInRounds: number;
|
|
85
|
+
slashingDisableDuration: number;
|
|
80
86
|
};
|
|
81
87
|
export declare const getGovernanceConfiguration: (networkName: NetworkNames) => {
|
|
82
88
|
proposeConfig: {
|
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAOlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,kBAAkB,CAAC;AAEjF,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,+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,+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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAOlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,kBAAkB,CAAC;AAEjF,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,WAAW,EAAE,MAAM,CAAC;IACpB,+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;;;;;;;;;;;;;;;;;;;;;;;;CAwBR,CAAC;AA2D9B,eAAO,MAAM,0BAA0B,GAAI,aAAa,YAAY;;;;;;;;;;;;CAanE,CAAC;AAaF,eAAO,MAAM,eAAe,GAAI,aAAa,YAAY;;;;;CAUxD,CAAC;AAkCF,eAAO,MAAM,oBAAoB,GAAI,aAAa,YAAY;;;;;;CAa7D,CAAC;AAmCF,eAAO,MAAM,mBAAmB,GAAI,aAAa,YAAY;;;;;;CAa5D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CAkI3E,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAW7E,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,iBAAiB,CAE/D;AAED,wBAAgB,4BAA4B,IAAI,kBAAkB,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,eAAe,CAAC,GAAG,IAAI,CAmH3F"}
|
package/dest/config.js
CHANGED
|
@@ -6,6 +6,7 @@ export const DefaultL1ContractsConfig = {
|
|
|
6
6
|
aztecSlotDuration: 36,
|
|
7
7
|
aztecEpochDuration: 32,
|
|
8
8
|
aztecTargetCommitteeSize: 48,
|
|
9
|
+
lagInEpochs: 2,
|
|
9
10
|
aztecProofSubmissionEpochs: 1,
|
|
10
11
|
activationThreshold: BigInt(100e18),
|
|
11
12
|
ejectionThreshold: BigInt(50e18),
|
|
@@ -22,7 +23,8 @@ export const DefaultL1ContractsConfig = {
|
|
|
22
23
|
provingCostPerMana: BigInt(100),
|
|
23
24
|
exitDelaySeconds: 2 * 24 * 60 * 60,
|
|
24
25
|
slasherFlavor: 'tally',
|
|
25
|
-
slashingOffsetInRounds: 2
|
|
26
|
+
slashingOffsetInRounds: 2,
|
|
27
|
+
slashingDisableDuration: 5 * 24 * 60 * 60
|
|
26
28
|
};
|
|
27
29
|
const LocalGovernanceConfiguration = {
|
|
28
30
|
proposeConfig: {
|
|
@@ -216,6 +218,11 @@ export const l1ContractsConfigMappings = {
|
|
|
216
218
|
description: 'The target validator committee size.',
|
|
217
219
|
...numberConfigHelper(DefaultL1ContractsConfig.aztecTargetCommitteeSize)
|
|
218
220
|
},
|
|
221
|
+
lagInEpochs: {
|
|
222
|
+
env: 'AZTEC_LAG_IN_EPOCHS',
|
|
223
|
+
description: 'The number of epochs to lag behind the current epoch for validator selection.',
|
|
224
|
+
...numberConfigHelper(DefaultL1ContractsConfig.lagInEpochs)
|
|
225
|
+
},
|
|
219
226
|
aztecProofSubmissionEpochs: {
|
|
220
227
|
env: 'AZTEC_PROOF_SUBMISSION_EPOCHS',
|
|
221
228
|
description: 'The number of epochs after an epoch ends that proofs are still accepted.',
|
|
@@ -291,6 +298,11 @@ export const l1ContractsConfigMappings = {
|
|
|
291
298
|
parseEnv: (val)=>EthAddress.fromString(val),
|
|
292
299
|
defaultValue: DefaultL1ContractsConfig.slashingVetoer
|
|
293
300
|
},
|
|
301
|
+
slashingDisableDuration: {
|
|
302
|
+
env: 'AZTEC_SLASHING_DISABLE_DURATION',
|
|
303
|
+
description: 'How long slashing can be disabled for in seconds when vetoer disables it',
|
|
304
|
+
...numberConfigHelper(DefaultL1ContractsConfig.slashingDisableDuration)
|
|
305
|
+
},
|
|
294
306
|
governanceProposerQuorum: {
|
|
295
307
|
env: 'AZTEC_GOVERNANCE_PROPOSER_QUORUM',
|
|
296
308
|
description: 'The governance proposing quorum',
|
|
@@ -354,12 +366,12 @@ export function getGenesisStateConfigEnvVars() {
|
|
|
354
366
|
errors.push(`aztecSlotDuration (${config.aztecSlotDuration}) must be a multiple of ethereumSlotDuration (${config.ethereumSlotDuration})`);
|
|
355
367
|
}
|
|
356
368
|
// EmpireBase constructor validations for governance/slashing proposers
|
|
357
|
-
// From: require(QUORUM_SIZE > ROUND_SIZE / 2, Errors.
|
|
369
|
+
// From: require(QUORUM_SIZE > ROUND_SIZE / 2, Errors.EmpireBase__InvalidQuorumAndRoundSize(QUORUM_SIZE, ROUND_SIZE));
|
|
358
370
|
const { governanceProposerQuorum, governanceProposerRoundSize } = config;
|
|
359
371
|
if (governanceProposerQuorum !== undefined && governanceProposerQuorum <= Math.floor(governanceProposerRoundSize / 2)) {
|
|
360
372
|
errors.push(`governanceProposerQuorum (${governanceProposerQuorum}) must be greater than half of governanceProposerRoundSize (${Math.floor(governanceProposerRoundSize / 2)})`);
|
|
361
373
|
}
|
|
362
|
-
// From: require(QUORUM_SIZE <= ROUND_SIZE, Errors.
|
|
374
|
+
// From: require(QUORUM_SIZE <= ROUND_SIZE, Errors.EmpireBase__QuorumCannotBeLargerThanRoundSize(QUORUM_SIZE, ROUND_SIZE));
|
|
363
375
|
if (governanceProposerQuorum !== undefined && governanceProposerQuorum > governanceProposerRoundSize) {
|
|
364
376
|
errors.push(`governanceProposerQuorum (${governanceProposerQuorum}) cannot be larger than governanceProposerRoundSize (${governanceProposerRoundSize})`);
|
|
365
377
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
2
|
import type { ViemSignature } from '@aztec/foundation/eth-signature';
|
|
3
3
|
import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
|
|
4
|
-
import { type Account, type GetContractReturnType, type Hex, type StateOverride } from 'viem';
|
|
4
|
+
import { type Account, type GetContractReturnType, type Hex, type StateOverride, type WatchContractEventReturnType } from 'viem';
|
|
5
5
|
import type { DeployL1ContractsReturnType } from '../deploy_l1_contracts.js';
|
|
6
6
|
import type { L1ContractAddresses } from '../l1_contract_addresses.js';
|
|
7
7
|
import type { L1ReaderConfig } from '../l1_reader.js';
|
|
@@ -82,6 +82,7 @@ export declare class RollupContract {
|
|
|
82
82
|
getTargetCommitteeSize(): Promise<bigint>;
|
|
83
83
|
getEjectionThreshold(): Promise<bigint>;
|
|
84
84
|
getLocalEjectionThreshold(): Promise<bigint>;
|
|
85
|
+
getLagInEpochs(): Promise<bigint>;
|
|
85
86
|
getActivationThreshold(): Promise<bigint>;
|
|
86
87
|
getExitDelay(): Promise<bigint>;
|
|
87
88
|
getManaTarget(): Promise<bigint>;
|
|
@@ -147,7 +148,9 @@ export declare class RollupContract {
|
|
|
147
148
|
}>;
|
|
148
149
|
getTimestampForSlot(slot: bigint): Promise<bigint>;
|
|
149
150
|
getEntryQueueLength(): Promise<bigint>;
|
|
150
|
-
|
|
151
|
+
getNextFlushableEpoch(): Promise<bigint>;
|
|
152
|
+
getCurrentEpochNumber(): Promise<bigint>;
|
|
153
|
+
getEpochNumberForBlock(blockNumber: bigint): Promise<bigint>;
|
|
151
154
|
getRollupAddresses(): Promise<L1RollupContractAddresses>;
|
|
152
155
|
getFeeJuicePortal(): Promise<EthAddress>;
|
|
153
156
|
getEpochNumberForSlotNumber(slotNumber: bigint): Promise<bigint>;
|
|
@@ -239,7 +242,10 @@ export declare class RollupContract {
|
|
|
239
242
|
listenToSlasherChanged(callback: (args: {
|
|
240
243
|
oldSlasher: `0x${string}`;
|
|
241
244
|
newSlasher: `0x${string}`;
|
|
242
|
-
}) => unknown):
|
|
245
|
+
}) => unknown): WatchContractEventReturnType;
|
|
246
|
+
listenToBlockInvalidated(callback: (args: {
|
|
247
|
+
blockNumber: bigint;
|
|
248
|
+
}) => unknown): WatchContractEventReturnType;
|
|
243
249
|
getSlashEvents(l1BlockHash: Hex): Promise<{
|
|
244
250
|
amount: bigint;
|
|
245
251
|
attester: EthAddress;
|
|
@@ -247,6 +253,6 @@ export declare class RollupContract {
|
|
|
247
253
|
listenToSlash(callback: (args: {
|
|
248
254
|
amount: bigint;
|
|
249
255
|
attester: EthAddress;
|
|
250
|
-
}) => unknown):
|
|
256
|
+
}) => unknown): WatchContractEventReturnType;
|
|
251
257
|
}
|
|
252
258
|
//# sourceMappingURL=rollup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/contracts/rollup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAI1D,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,qBAAqB,EAC1B,KAAK,GAAG,EACR,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/contracts/rollup.ts"],"names":[],"mappings":"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"}
|
package/dest/contracts/rollup.js
CHANGED
|
@@ -125,6 +125,9 @@ export class RollupContract {
|
|
|
125
125
|
getLocalEjectionThreshold() {
|
|
126
126
|
return this.rollup.read.getLocalEjectionThreshold();
|
|
127
127
|
}
|
|
128
|
+
getLagInEpochs() {
|
|
129
|
+
return this.rollup.read.getLagInEpochs();
|
|
130
|
+
}
|
|
128
131
|
getActivationThreshold() {
|
|
129
132
|
return this.rollup.read.getActivationThreshold();
|
|
130
133
|
}
|
|
@@ -298,8 +301,13 @@ export class RollupContract {
|
|
|
298
301
|
getEntryQueueLength() {
|
|
299
302
|
return this.rollup.read.getEntryQueueLength();
|
|
300
303
|
}
|
|
301
|
-
|
|
302
|
-
|
|
304
|
+
getNextFlushableEpoch() {
|
|
305
|
+
return this.rollup.read.getNextFlushableEpoch();
|
|
306
|
+
}
|
|
307
|
+
getCurrentEpochNumber() {
|
|
308
|
+
return this.rollup.read.getCurrentEpoch();
|
|
309
|
+
}
|
|
310
|
+
getEpochNumberForBlock(blockNumber) {
|
|
303
311
|
return this.rollup.read.getEpochForBlock([
|
|
304
312
|
BigInt(blockNumber)
|
|
305
313
|
]);
|
|
@@ -571,6 +579,20 @@ export class RollupContract {
|
|
|
571
579
|
}
|
|
572
580
|
});
|
|
573
581
|
}
|
|
582
|
+
listenToBlockInvalidated(callback) {
|
|
583
|
+
return this.rollup.watchEvent.BlockInvalidated({}, {
|
|
584
|
+
onLogs: (logs)=>{
|
|
585
|
+
for (const log of logs){
|
|
586
|
+
const args = log.args;
|
|
587
|
+
if (args.blockNumber !== undefined) {
|
|
588
|
+
callback({
|
|
589
|
+
blockNumber: args.blockNumber
|
|
590
|
+
});
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
});
|
|
595
|
+
}
|
|
574
596
|
async getSlashEvents(l1BlockHash) {
|
|
575
597
|
const events = await this.rollup.getEvents.Slashed({}, {
|
|
576
598
|
blockHash: l1BlockHash,
|
|
@@ -620,6 +642,9 @@ _ts_decorate([
|
|
|
620
642
|
_ts_decorate([
|
|
621
643
|
memoize
|
|
622
644
|
], RollupContract.prototype, "getLocalEjectionThreshold", null);
|
|
645
|
+
_ts_decorate([
|
|
646
|
+
memoize
|
|
647
|
+
], RollupContract.prototype, "getLagInEpochs", null);
|
|
623
648
|
_ts_decorate([
|
|
624
649
|
memoize
|
|
625
650
|
], RollupContract.prototype, "getActivationThreshold", null);
|
|
@@ -15,11 +15,21 @@ export declare class SlasherContract {
|
|
|
15
15
|
* @returns True if the payload is vetoed, false otherwise
|
|
16
16
|
*/
|
|
17
17
|
isPayloadVetoed(payloadAddress: EthAddress): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Checks if slashing is currently enabled. Slashing can be disabled by the vetoer.
|
|
20
|
+
* @returns True if slashing is enabled, false otherwise
|
|
21
|
+
*/
|
|
22
|
+
isSlashingEnabled(): Promise<boolean>;
|
|
18
23
|
/**
|
|
19
24
|
* Gets the current vetoer address.
|
|
20
25
|
* @returns The vetoer address
|
|
21
26
|
*/
|
|
22
27
|
getVetoer(): Promise<EthAddress>;
|
|
28
|
+
/**
|
|
29
|
+
* Gets the disable duration by the vetoer.
|
|
30
|
+
* @returns The disable duration in seconds
|
|
31
|
+
*/
|
|
32
|
+
getSlashingDisableDuration(): Promise<number>;
|
|
23
33
|
/**
|
|
24
34
|
* Gets the current governance address.
|
|
25
35
|
* @returns The governance address
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slasher_contract.d.ts","sourceRoot":"","sources":["../../src/contracts/slasher_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAM3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IALtB,OAAO,CAAC,QAAQ,CAAuD;gBAGpD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,EACnB,GAAG,yCAAmC;IASzD;;;;OAIG;IACU,eAAe,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1E;;;OAGG;IACU,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAK7C;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAKjD;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;CAIhD"}
|
|
1
|
+
{"version":3,"file":"slasher_contract.d.ts","sourceRoot":"","sources":["../../src/contracts/slasher_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAM3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IALtB,OAAO,CAAC,QAAQ,CAAuD;gBAGpD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,EACnB,GAAG,yCAAmC;IASzD;;;;OAIG;IACU,eAAe,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1E;;;OAGG;IACU,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IASlD;;;OAGG;IACU,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAK7C;;;OAGG;IACU,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC;IAK1D;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAKjD;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;CAIhD"}
|
|
@@ -34,6 +34,17 @@ import { getContract } from 'viem';
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
+
* Checks if slashing is currently enabled. Slashing can be disabled by the vetoer.
|
|
38
|
+
* @returns True if slashing is enabled, false otherwise
|
|
39
|
+
*/ async isSlashingEnabled() {
|
|
40
|
+
try {
|
|
41
|
+
return await this.contract.read.isSlashingEnabled();
|
|
42
|
+
} catch (error) {
|
|
43
|
+
this.log.error(`Error checking if slashing is enabled`, error);
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
37
48
|
* Gets the current vetoer address.
|
|
38
49
|
* @returns The vetoer address
|
|
39
50
|
*/ async getVetoer() {
|
|
@@ -41,6 +52,13 @@ import { getContract } from 'viem';
|
|
|
41
52
|
return EthAddress.fromString(vetoer);
|
|
42
53
|
}
|
|
43
54
|
/**
|
|
55
|
+
* Gets the disable duration by the vetoer.
|
|
56
|
+
* @returns The disable duration in seconds
|
|
57
|
+
*/ async getSlashingDisableDuration() {
|
|
58
|
+
const duration = await this.contract.read.SLASHING_DISABLE_DURATION();
|
|
59
|
+
return Number(duration);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
44
62
|
* Gets the current governance address.
|
|
45
63
|
* @returns The governance address
|
|
46
64
|
*/ async getGovernance() {
|
|
@@ -122,7 +122,7 @@ export declare const deploySharedContracts: (l1Client: ExtendedViemWalletClient,
|
|
|
122
122
|
* @param logger - The logger.
|
|
123
123
|
* @param txUtilsConfig - The L1 tx utils config.
|
|
124
124
|
*/
|
|
125
|
-
export declare const deployRollupForUpgrade: (extendedClient: ExtendedViemWalletClient, args: Omit<DeployL1ContractsArgs, "governanceProposerQuorum" | "governanceProposerRoundSize" | "ejectionThreshold" | "activationThreshold">, registryAddress: EthAddress, logger: Logger, txUtilsConfig: L1TxUtilsConfig) => Promise<{
|
|
125
|
+
export declare const deployRollupForUpgrade: (extendedClient: ExtendedViemWalletClient, args: Omit<DeployL1ContractsArgs, "governanceProposerQuorum" | "governanceProposerRoundSize" | "ejectionThreshold" | "activationThreshold">, registryAddress: EthAddress, logger: Logger, txUtilsConfig: L1TxUtilsConfig, flushEntryQueue?: boolean) => Promise<{
|
|
126
126
|
rollup: RollupContract;
|
|
127
127
|
slashFactoryAddress: EthAddress;
|
|
128
128
|
}>;
|
|
@@ -131,12 +131,12 @@ export declare const deployUpgradePayload: (deployer: L1Deployer, addresses: Pic
|
|
|
131
131
|
/**
|
|
132
132
|
* Deploys a new rollup contract, funds and initializes the fee juice portal, and initializes the validator set.
|
|
133
133
|
*/
|
|
134
|
-
export declare const deployRollup: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, args: Omit<DeployL1ContractsArgs, "governanceProposerQuorum" | "governanceProposerRoundSize" | "ejectionThreshold" | "activationThreshold">, addresses: Pick<L1ContractAddresses, "feeJuiceAddress" | "registryAddress" | "rewardDistributorAddress" | "stakingAssetAddress" | "gseAddress" | "governanceAddress">, logger: Logger) => Promise<{
|
|
134
|
+
export declare const deployRollup: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, args: Omit<DeployL1ContractsArgs, "governanceProposerQuorum" | "governanceProposerRoundSize" | "ejectionThreshold" | "activationThreshold">, addresses: Pick<L1ContractAddresses, "feeJuiceAddress" | "registryAddress" | "rewardDistributorAddress" | "stakingAssetAddress" | "gseAddress" | "governanceAddress">, flushEntryQueue: boolean, logger: Logger) => Promise<{
|
|
135
135
|
rollup: RollupContract;
|
|
136
136
|
slashFactoryAddress: EthAddress;
|
|
137
137
|
}>;
|
|
138
138
|
export declare const handoverToGovernance: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, registryAddress: EthAddress, gseAddress: EthAddress, coinIssuerAddress: EthAddress, feeAssetAddress: EthAddress, governanceAddress: EthAddress, logger: Logger, acceleratedTestDeployments: boolean | undefined) => Promise<void>;
|
|
139
|
-
export declare const addMultipleValidators: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, gseAddress: Hex, rollupAddress: Hex, stakingAssetAddress: Hex, validators: Operator[], acceleratedTestDeployments: boolean | undefined, logger: Logger) => Promise<void>;
|
|
139
|
+
export declare const addMultipleValidators: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, gseAddress: Hex, rollupAddress: Hex, stakingAssetAddress: Hex, validators: Operator[], acceleratedTestDeployments: boolean | undefined, flushEntryQueue: boolean, logger: Logger) => Promise<void>;
|
|
140
140
|
/**
|
|
141
141
|
* Initialize the fee asset handler and make it a minter on the fee asset.
|
|
142
142
|
* @note This function will only be used for testing purposes.
|
|
@@ -159,7 +159,7 @@ export declare const cheat_initializeFeeAssetHandler: (extendedClient: ExtendedV
|
|
|
159
159
|
* @param args - Arguments for initialization of L1 contracts
|
|
160
160
|
* @returns A list of ETH addresses of the deployed contracts.
|
|
161
161
|
*/
|
|
162
|
-
export declare const deployL1Contracts: (rpcUrls: string[], account: HDAccount | PrivateKeyAccount, chain: Chain, logger: Logger, args: DeployL1ContractsArgs, txUtilsConfig?: L1TxUtilsConfig, createVerificationJson?: string | false) => Promise<DeployL1ContractsReturnType>;
|
|
162
|
+
export declare const deployL1Contracts: (rpcUrls: string[], account: HDAccount | PrivateKeyAccount, chain: Chain, logger: Logger, args: DeployL1ContractsArgs, txUtilsConfig?: L1TxUtilsConfig, createVerificationJson?: string | false, flushEntryQueue?: boolean) => Promise<DeployL1ContractsReturnType>;
|
|
163
163
|
export declare class L1Deployer {
|
|
164
164
|
readonly client: ExtendedViemWalletClient;
|
|
165
165
|
private acceleratedTestDeployments;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_l1_contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAwB,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_l1_contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { keccak256String } from '@aztec/foundation/crypto';
|
|
|
4
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
5
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
6
6
|
import { createLogger } from '@aztec/foundation/log';
|
|
7
|
+
import { retryUntil } from '@aztec/foundation/retry';
|
|
7
8
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
8
9
|
import { mkdir, writeFile } from 'fs/promises';
|
|
9
10
|
import { concatHex, encodeAbiParameters, encodeDeployData, encodeFunctionData, getAddress, getContract, getContractAddress, numberToHex, padHex } from 'viem';
|
|
@@ -239,10 +240,10 @@ const getZkPassportVerifierAddress = async (deployer, args)=>{
|
|
|
239
240
|
* @param registryAddress - The address of the registry.
|
|
240
241
|
* @param logger - The logger.
|
|
241
242
|
* @param txUtilsConfig - The L1 tx utils config.
|
|
242
|
-
*/ export const deployRollupForUpgrade = async (extendedClient, args, registryAddress, logger, txUtilsConfig)=>{
|
|
243
|
+
*/ export const deployRollupForUpgrade = async (extendedClient, args, registryAddress, logger, txUtilsConfig, flushEntryQueue = true)=>{
|
|
243
244
|
const deployer = new L1Deployer(extendedClient, args.salt, undefined, args.acceleratedTestDeployments, logger, txUtilsConfig);
|
|
244
245
|
const addresses = await RegistryContract.collectAddresses(extendedClient, registryAddress, 'canonical');
|
|
245
|
-
const { rollup, slashFactoryAddress } = await deployRollup(extendedClient, deployer, args, addresses, logger);
|
|
246
|
+
const { rollup, slashFactoryAddress } = await deployRollup(extendedClient, deployer, args, addresses, flushEntryQueue, logger);
|
|
246
247
|
await deployer.waitForDeployments();
|
|
247
248
|
return {
|
|
248
249
|
rollup,
|
|
@@ -280,7 +281,7 @@ function slasherFlavorToSolidityEnum(flavor) {
|
|
|
280
281
|
}
|
|
281
282
|
/**
|
|
282
283
|
* Deploys a new rollup contract, funds and initializes the fee juice portal, and initializes the validator set.
|
|
283
|
-
*/ export const deployRollup = async (extendedClient, deployer, args, addresses, logger)=>{
|
|
284
|
+
*/ export const deployRollup = async (extendedClient, deployer, args, addresses, flushEntryQueue, logger)=>{
|
|
284
285
|
if (!addresses.gseAddress) {
|
|
285
286
|
throw new Error('GSE address is required when deploying');
|
|
286
287
|
}
|
|
@@ -302,6 +303,7 @@ function slasherFlavorToSolidityEnum(flavor) {
|
|
|
302
303
|
aztecSlotDuration: BigInt(args.aztecSlotDuration),
|
|
303
304
|
aztecEpochDuration: BigInt(args.aztecEpochDuration),
|
|
304
305
|
targetCommitteeSize: BigInt(args.aztecTargetCommitteeSize),
|
|
306
|
+
lagInEpochs: BigInt(args.lagInEpochs),
|
|
305
307
|
aztecProofSubmissionEpochs: BigInt(args.aztecProofSubmissionEpochs),
|
|
306
308
|
slashingQuorum: BigInt(args.slashingQuorum ?? args.slashingRoundSizeInEpochs * args.aztecEpochDuration / 2 + 1),
|
|
307
309
|
slashingRoundSize: BigInt(args.slashingRoundSizeInEpochs * args.aztecEpochDuration),
|
|
@@ -322,7 +324,8 @@ function slasherFlavorToSolidityEnum(flavor) {
|
|
|
322
324
|
args.slashAmountMedium,
|
|
323
325
|
args.slashAmountLarge
|
|
324
326
|
],
|
|
325
|
-
localEjectionThreshold: args.localEjectionThreshold
|
|
327
|
+
localEjectionThreshold: args.localEjectionThreshold,
|
|
328
|
+
slashingDisableDuration: BigInt(args.slashingDisableDuration ?? 0n)
|
|
326
329
|
};
|
|
327
330
|
const genesisStateArgs = {
|
|
328
331
|
vkTreeRoot: args.vkTreeRoot.toString(),
|
|
@@ -438,7 +441,7 @@ function slasherFlavorToSolidityEnum(flavor) {
|
|
|
438
441
|
if (args.initialValidators && await gseContract.read.isRollupRegistered([
|
|
439
442
|
rollupContract.address
|
|
440
443
|
])) {
|
|
441
|
-
await addMultipleValidators(extendedClient, deployer, addresses.gseAddress.toString(), rollupAddress.toString(), addresses.stakingAssetAddress.toString(), args.initialValidators, args.acceleratedTestDeployments, logger);
|
|
444
|
+
await addMultipleValidators(extendedClient, deployer, addresses.gseAddress.toString(), rollupAddress.toString(), addresses.stakingAssetAddress.toString(), args.initialValidators, args.acceleratedTestDeployments, flushEntryQueue, logger);
|
|
442
445
|
}
|
|
443
446
|
// If the owner is not the Governance contract, transfer ownership to the Governance contract
|
|
444
447
|
logger.verbose(addresses.governanceAddress.toString());
|
|
@@ -580,7 +583,7 @@ export const handoverToGovernance = async (extendedClient, deployer, registryAdd
|
|
|
580
583
|
* @param validators - The validators to initialize.
|
|
581
584
|
* @param acceleratedTestDeployments - Whether to use accelerated test deployments.
|
|
582
585
|
* @param logger - The logger.
|
|
583
|
-
*/ export const addMultipleValidators = async (extendedClient, deployer, gseAddress, rollupAddress, stakingAssetAddress, validators, acceleratedTestDeployments, logger)=>{
|
|
586
|
+
*/ export const addMultipleValidators = async (extendedClient, deployer, gseAddress, rollupAddress, stakingAssetAddress, validators, acceleratedTestDeployments, flushEntryQueue, logger)=>{
|
|
584
587
|
const rollup = new RollupContract(extendedClient, rollupAddress);
|
|
585
588
|
const activationThreshold = await rollup.getActivationThreshold();
|
|
586
589
|
if (validators && validators.length > 0) {
|
|
@@ -637,22 +640,46 @@ export const handoverToGovernance = async (extendedClient, deployer, registryAdd
|
|
|
637
640
|
functionName: 'addValidators',
|
|
638
641
|
args: [
|
|
639
642
|
validatorsTuples,
|
|
640
|
-
true
|
|
643
|
+
/* skip flushing */ true
|
|
641
644
|
]
|
|
642
645
|
})
|
|
643
646
|
}, {
|
|
644
647
|
gasLimit: 40_000_000n
|
|
645
648
|
});
|
|
646
|
-
await
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
649
|
+
let queueLength = await rollup.getEntryQueueLength();
|
|
650
|
+
while(flushEntryQueue && queueLength > 0n){
|
|
651
|
+
logger.info(`Flushing entry queue with ${queueLength} entries`);
|
|
652
|
+
try {
|
|
653
|
+
await deployer.l1TxUtils.sendAndMonitorTransaction({
|
|
654
|
+
to: rollupAddress,
|
|
655
|
+
data: encodeFunctionData({
|
|
656
|
+
abi: RollupArtifact.contractAbi,
|
|
657
|
+
functionName: 'flushEntryQueue',
|
|
658
|
+
args: []
|
|
659
|
+
})
|
|
660
|
+
}, {
|
|
661
|
+
gasLimit: 20_000_000n
|
|
662
|
+
});
|
|
663
|
+
} catch (err) {
|
|
664
|
+
logger.warn('Failed to flush queue', {
|
|
665
|
+
err
|
|
666
|
+
});
|
|
667
|
+
}
|
|
668
|
+
queueLength = await rollup.getEntryQueueLength();
|
|
669
|
+
// check if we drained the queue enough here so we can avoid sleep
|
|
670
|
+
if (queueLength === 0n) {
|
|
671
|
+
break;
|
|
672
|
+
}
|
|
673
|
+
logger.info(`Waiting for next flushable epoch to flush remaining ${queueLength} entries`);
|
|
674
|
+
await retryUntil(async ()=>{
|
|
675
|
+
const [currentEpoch, flushableEpoch] = await Promise.all([
|
|
676
|
+
rollup.getCurrentEpochNumber(),
|
|
677
|
+
rollup.getNextFlushableEpoch()
|
|
678
|
+
]);
|
|
679
|
+
logger.debug(`Next flushable epoch is ${flushableEpoch} (current epoch is ${currentEpoch})`);
|
|
680
|
+
return currentEpoch >= flushableEpoch;
|
|
681
|
+
}, 'wait for next flushable epoch', 3600, 12);
|
|
682
|
+
}
|
|
656
683
|
} else {
|
|
657
684
|
await deployer.l1TxUtils.sendAndMonitorTransaction({
|
|
658
685
|
to: multiAdder.toString(),
|
|
@@ -661,7 +688,7 @@ export const handoverToGovernance = async (extendedClient, deployer, registryAdd
|
|
|
661
688
|
functionName: 'addValidators',
|
|
662
689
|
args: [
|
|
663
690
|
validatorsTuples,
|
|
664
|
-
|
|
691
|
+
/* skip flushing */ !flushEntryQueue
|
|
665
692
|
]
|
|
666
693
|
})
|
|
667
694
|
}, {
|
|
@@ -717,7 +744,7 @@ export const cheat_initializeFeeAssetHandler = async (extendedClient, deployer,
|
|
|
717
744
|
* @param logger - A logger object.
|
|
718
745
|
* @param args - Arguments for initialization of L1 contracts
|
|
719
746
|
* @returns A list of ETH addresses of the deployed contracts.
|
|
720
|
-
*/ export const deployL1Contracts = async (rpcUrls, account, chain, logger, args, txUtilsConfig = getL1TxUtilsConfigEnvVars(), createVerificationJson = false)=>{
|
|
747
|
+
*/ export const deployL1Contracts = async (rpcUrls, account, chain, logger, args, txUtilsConfig = getL1TxUtilsConfigEnvVars(), createVerificationJson = false, flushEntryQueue = true)=>{
|
|
721
748
|
logger.info(`Deploying L1 contracts with config: ${jsonStringify(args)}`);
|
|
722
749
|
validateConfig(args);
|
|
723
750
|
const l1Client = createExtendedL1Client(rpcUrls, account, chain);
|
|
@@ -753,7 +780,7 @@ export const cheat_initializeFeeAssetHandler = async (extendedClient, deployer,
|
|
|
753
780
|
rewardDistributorAddress,
|
|
754
781
|
stakingAssetAddress,
|
|
755
782
|
governanceAddress
|
|
756
|
-
}, logger);
|
|
783
|
+
}, flushEntryQueue, logger);
|
|
757
784
|
logger.verbose('Waiting for rollup and slash factory to be deployed');
|
|
758
785
|
await deployer.waitForDeployments();
|
|
759
786
|
// Now that the rollup has been deployed and added to the registry, transfer ownership to governance
|