@aztec/ethereum 0.0.1-commit.ec5f612 → 0.0.1-commit.ec7ac5448
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 +10 -2
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +13 -7
- package/dest/config.d.ts +8 -6
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +11 -9
- package/dest/contracts/chain_state_override.d.ts +38 -0
- package/dest/contracts/chain_state_override.d.ts.map +1 -0
- package/dest/contracts/chain_state_override.js +100 -0
- package/dest/contracts/inbox.d.ts +3 -3
- package/dest/contracts/inbox.d.ts.map +1 -1
- package/dest/contracts/inbox.js +5 -6
- package/dest/contracts/index.d.ts +3 -3
- package/dest/contracts/index.d.ts.map +1 -1
- package/dest/contracts/index.js +2 -2
- package/dest/contracts/multicall.d.ts +51 -2
- package/dest/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +85 -0
- 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 +40 -16
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +200 -50
- 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} +13 -15
- package/dest/deploy_aztec_l1_contracts.d.ts +3 -6
- package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_aztec_l1_contracts.js +2 -4
- package/dest/generated/l1-contracts-defaults.d.ts +1 -1
- package/dest/generated/l1-contracts-defaults.js +1 -1
- package/dest/l1_artifacts.d.ts +8640 -15423
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_artifacts.js +9 -24
- package/dest/l1_contract_addresses.d.ts +1 -5
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +0 -6
- package/dest/l1_reader.d.ts +3 -1
- package/dest/l1_reader.d.ts.map +1 -1
- package/dest/l1_reader.js +6 -1
- package/dest/l1_tx_utils/l1_tx_utils.d.ts +5 -1
- package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/l1_tx_utils.js +40 -21
- 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 +8 -4
- package/dest/publisher_manager.d.ts +21 -7
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +81 -7
- package/dest/queries.js +3 -3
- package/dest/test/chain_monitor.d.ts +22 -3
- package/dest/test/chain_monitor.d.ts.map +1 -1
- package/dest/test/chain_monitor.js +33 -2
- package/dest/test/eth_cheat_codes.d.ts +6 -4
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/eth_cheat_codes.js +6 -4
- package/dest/test/rollup_cheat_codes.d.ts +5 -1
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +9 -1
- 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/utils.d.ts +1 -1
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +16 -12
- package/package.json +5 -7
- package/src/client.ts +10 -2
- package/src/config.ts +21 -13
- package/src/contracts/chain_state_override.ts +147 -0
- package/src/contracts/inbox.ts +4 -4
- package/src/contracts/index.ts +2 -2
- package/src/contracts/multicall.ts +65 -1
- package/src/contracts/registry.ts +31 -1
- package/src/contracts/rollup.ts +222 -53
- package/src/contracts/{tally_slashing_proposer.ts → slashing_proposer.ts} +14 -16
- package/src/deploy_aztec_l1_contracts.ts +1 -5
- package/src/generated/l1-contracts-defaults.ts +1 -1
- package/src/l1_artifacts.ts +12 -35
- package/src/l1_contract_addresses.ts +0 -7
- package/src/l1_reader.ts +13 -1
- package/src/l1_tx_utils/l1_tx_utils.ts +31 -8
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +8 -4
- package/src/publisher_manager.ts +105 -10
- package/src/queries.ts +3 -3
- package/src/test/chain_monitor.ts +60 -3
- package/src/test/eth_cheat_codes.ts +6 -4
- package/src/test/rollup_cheat_codes.ts +11 -1
- package/src/test/start_anvil.ts +177 -29
- package/src/utils.ts +17 -14
- package/dest/contracts/empire_slashing_proposer.d.ts +0 -69
- package/dest/contracts/empire_slashing_proposer.d.ts.map +0 -1
- package/dest/contracts/empire_slashing_proposer.js +0 -216
- package/dest/contracts/tally_slashing_proposer.d.ts.map +0 -1
- package/src/contracts/empire_slashing_proposer.ts +0 -265
package/dest/contracts/rollup.js
CHANGED
|
@@ -376,25 +376,19 @@ import { Buffer32 } from '@aztec/foundation/buffer';
|
|
|
376
376
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
377
377
|
import { memoize } from '@aztec/foundation/decorators';
|
|
378
378
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
379
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
379
380
|
import { makeBackoff, retry } from '@aztec/foundation/retry';
|
|
380
381
|
import { EscapeHatchAbi } from '@aztec/l1-artifacts/EscapeHatchAbi';
|
|
381
382
|
import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
|
|
382
383
|
import { RollupStorage } from '@aztec/l1-artifacts/RollupStorage';
|
|
383
384
|
import chunk from 'lodash.chunk';
|
|
384
|
-
import { encodeFunctionData, getContract, hexToBigInt, keccak256 } from 'viem';
|
|
385
|
+
import { encodeAbiParameters, encodeFunctionData, getContract, hexToBigInt, keccak256 } from 'viem';
|
|
385
386
|
import { getPublicClient } from '../client.js';
|
|
386
387
|
import { formatViemError } from '../utils.js';
|
|
387
|
-
import { EmpireSlashingProposerContract } from './empire_slashing_proposer.js';
|
|
388
388
|
import { GSEContract } from './gse.js';
|
|
389
389
|
import { SlasherContract } from './slasher_contract.js';
|
|
390
|
-
import {
|
|
390
|
+
import { SlashingProposerContract } from './slashing_proposer.js';
|
|
391
391
|
import { checkBlockTag } from './utils.js';
|
|
392
|
-
export var SlashingProposerType = /*#__PURE__*/ function(SlashingProposerType) {
|
|
393
|
-
SlashingProposerType[SlashingProposerType["None"] = 0] = "None";
|
|
394
|
-
SlashingProposerType[SlashingProposerType["Tally"] = 1] = "Tally";
|
|
395
|
-
SlashingProposerType[SlashingProposerType["Empire"] = 2] = "Empire";
|
|
396
|
-
return SlashingProposerType;
|
|
397
|
-
}({});
|
|
398
392
|
/**
|
|
399
393
|
* Status of a validator/attester in the staking system.
|
|
400
394
|
* Matches the Status enum in StakingLib.sol
|
|
@@ -499,6 +493,16 @@ export class RollupContract {
|
|
|
499
493
|
2,
|
|
500
494
|
"getGenesisArchiveTreeRoot"
|
|
501
495
|
],
|
|
496
|
+
[
|
|
497
|
+
memoize,
|
|
498
|
+
2,
|
|
499
|
+
"getVkTreeRoot"
|
|
500
|
+
],
|
|
501
|
+
[
|
|
502
|
+
memoize,
|
|
503
|
+
2,
|
|
504
|
+
"getProtocolContractsHash"
|
|
505
|
+
],
|
|
502
506
|
[
|
|
503
507
|
memoize,
|
|
504
508
|
2,
|
|
@@ -507,6 +511,7 @@ export class RollupContract {
|
|
|
507
511
|
], []));
|
|
508
512
|
}
|
|
509
513
|
rollup;
|
|
514
|
+
logger;
|
|
510
515
|
static cachedStfStorageSlot;
|
|
511
516
|
cachedEscapeHatch;
|
|
512
517
|
static get checkBlobStorageSlot() {
|
|
@@ -530,7 +535,7 @@ export class RollupContract {
|
|
|
530
535
|
}
|
|
531
536
|
constructor(client, address){
|
|
532
537
|
this.client = client;
|
|
533
|
-
_initProto(this);
|
|
538
|
+
this.logger = (_initProto(this), createLogger('ethereum:rollup'));
|
|
534
539
|
if (address instanceof EthAddress) {
|
|
535
540
|
address = address.toString();
|
|
536
541
|
}
|
|
@@ -555,34 +560,10 @@ export class RollupContract {
|
|
|
555
560
|
return undefined;
|
|
556
561
|
}
|
|
557
562
|
const proposerAddress = await slasher.getProposer();
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
type: 'function',
|
|
561
|
-
name: 'SLASHING_PROPOSER_TYPE',
|
|
562
|
-
inputs: [],
|
|
563
|
-
outputs: [
|
|
564
|
-
{
|
|
565
|
-
name: '',
|
|
566
|
-
type: 'uint8',
|
|
567
|
-
internalType: 'enum SlasherFlavor'
|
|
568
|
-
}
|
|
569
|
-
],
|
|
570
|
-
stateMutability: 'view'
|
|
571
|
-
}
|
|
572
|
-
];
|
|
573
|
-
const proposer = getContract({
|
|
574
|
-
address: proposerAddress.toString(),
|
|
575
|
-
abi: proposerAbi,
|
|
576
|
-
client: this.client
|
|
577
|
-
});
|
|
578
|
-
const proposerType = await proposer.read.SLASHING_PROPOSER_TYPE();
|
|
579
|
-
if (proposerType === 1..valueOf()) {
|
|
580
|
-
return new TallySlashingProposerContract(this.client, proposerAddress);
|
|
581
|
-
} else if (proposerType === 2..valueOf()) {
|
|
582
|
-
return new EmpireSlashingProposerContract(this.client, proposerAddress);
|
|
583
|
-
} else {
|
|
584
|
-
throw new Error(`Unknown slashing proposer type: ${proposerType}`);
|
|
563
|
+
if (proposerAddress.isZero()) {
|
|
564
|
+
return undefined;
|
|
585
565
|
}
|
|
566
|
+
return new SlashingProposerContract(this.client, proposerAddress);
|
|
586
567
|
}
|
|
587
568
|
getL1StartBlock() {
|
|
588
569
|
return this.rollup.read.L1_BLOCK_AT_GENESIS();
|
|
@@ -640,18 +621,35 @@ export class RollupContract {
|
|
|
640
621
|
0n
|
|
641
622
|
]));
|
|
642
623
|
}
|
|
624
|
+
async getVkTreeRoot() {
|
|
625
|
+
const slot = BigInt(RollupContract.stfStorageSlot) + 3n;
|
|
626
|
+
const value = await this.client.getStorageAt({
|
|
627
|
+
address: this.address,
|
|
628
|
+
slot: `0x${slot.toString(16)}`
|
|
629
|
+
});
|
|
630
|
+
return Fr.fromString(value ?? '0x0');
|
|
631
|
+
}
|
|
632
|
+
async getProtocolContractsHash() {
|
|
633
|
+
const slot = BigInt(RollupContract.stfStorageSlot) + 4n;
|
|
634
|
+
const value = await this.client.getStorageAt({
|
|
635
|
+
address: this.address,
|
|
636
|
+
slot: `0x${slot.toString(16)}`
|
|
637
|
+
});
|
|
638
|
+
return Fr.fromString(value ?? '0x0');
|
|
639
|
+
}
|
|
643
640
|
/**
|
|
644
641
|
* Returns rollup constants used for epoch queries.
|
|
645
642
|
* Return type is `L1RollupConstants` which is defined in stdlib,
|
|
646
643
|
* so we cant reference it until we move this contract to that package.
|
|
647
644
|
*/ async getRollupConstants() {
|
|
648
|
-
const [l1StartBlock, l1GenesisTime, slotDuration, epochDuration, proofSubmissionEpochs, targetCommitteeSize] = await Promise.all([
|
|
645
|
+
const [l1StartBlock, l1GenesisTime, slotDuration, epochDuration, proofSubmissionEpochs, targetCommitteeSize, rollupManaLimit] = await Promise.all([
|
|
649
646
|
this.getL1StartBlock(),
|
|
650
647
|
this.getL1GenesisTime(),
|
|
651
648
|
this.getSlotDuration(),
|
|
652
649
|
this.getEpochDuration(),
|
|
653
650
|
this.getProofSubmissionEpochs(),
|
|
654
|
-
this.getTargetCommitteeSize()
|
|
651
|
+
this.getTargetCommitteeSize(),
|
|
652
|
+
this.getManaLimit()
|
|
655
653
|
]);
|
|
656
654
|
return {
|
|
657
655
|
l1StartBlock,
|
|
@@ -659,7 +657,8 @@ export class RollupContract {
|
|
|
659
657
|
slotDuration,
|
|
660
658
|
epochDuration: Number(epochDuration),
|
|
661
659
|
proofSubmissionEpochs: Number(proofSubmissionEpochs),
|
|
662
|
-
targetCommitteeSize
|
|
660
|
+
targetCommitteeSize,
|
|
661
|
+
rollupManaLimit: Number(rollupManaLimit)
|
|
663
662
|
};
|
|
664
663
|
}
|
|
665
664
|
async getSlasherAddress() {
|
|
@@ -705,7 +704,11 @@ export class RollupContract {
|
|
|
705
704
|
BigInt(epoch)
|
|
706
705
|
]);
|
|
707
706
|
return isOpen;
|
|
708
|
-
} catch
|
|
707
|
+
} catch (err) {
|
|
708
|
+
this.logger.warn('isEscapeHatchOpen failed (treating as closed); RPC or contract error may cause liveness risk', {
|
|
709
|
+
epoch: Number(epoch),
|
|
710
|
+
error: err
|
|
711
|
+
});
|
|
709
712
|
return false;
|
|
710
713
|
}
|
|
711
714
|
}
|
|
@@ -737,8 +740,9 @@ export class RollupContract {
|
|
|
737
740
|
async getCheckpointNumber() {
|
|
738
741
|
return CheckpointNumber.fromBigInt(await this.rollup.read.getPendingCheckpointNumber());
|
|
739
742
|
}
|
|
740
|
-
async getProvenCheckpointNumber() {
|
|
741
|
-
|
|
743
|
+
async getProvenCheckpointNumber(options) {
|
|
744
|
+
await checkBlockTag(options?.blockNumber, this.client);
|
|
745
|
+
return CheckpointNumber.fromBigInt(await this.rollup.read.getProvenCheckpointNumber(options));
|
|
742
746
|
}
|
|
743
747
|
async getSlotNumber() {
|
|
744
748
|
return SlotNumber.fromBigInt(await this.rollup.read.getCurrentSlot());
|
|
@@ -937,9 +941,8 @@ export class RollupContract {
|
|
|
937
941
|
* @return [slot, checkpointNumber, timeOfNextL1Slot] - If you can propose, the L2 slot number, checkpoint number and
|
|
938
942
|
* timestamp of the next L1 block
|
|
939
943
|
* @throws otherwise
|
|
940
|
-
*/ async
|
|
941
|
-
const
|
|
942
|
-
const timeOfNextL1Slot = latestBlock.timestamp + BigInt(slotDuration);
|
|
944
|
+
*/ async canProposeAt(archive, account, timestamp, stateOverride = []) {
|
|
945
|
+
const timeOfNextL1Slot = timestamp;
|
|
943
946
|
const who = typeof account === 'string' ? account : account.address;
|
|
944
947
|
try {
|
|
945
948
|
const { result: [slot, checkpointNumber] } = await this.client.simulateContract({
|
|
@@ -952,7 +955,7 @@ export class RollupContract {
|
|
|
952
955
|
who
|
|
953
956
|
],
|
|
954
957
|
account,
|
|
955
|
-
stateOverride
|
|
958
|
+
stateOverride
|
|
956
959
|
});
|
|
957
960
|
return {
|
|
958
961
|
slot: SlotNumber.fromBigInt(slot),
|
|
@@ -990,6 +993,139 @@ export class RollupContract {
|
|
|
990
993
|
}
|
|
991
994
|
];
|
|
992
995
|
}
|
|
996
|
+
/**
|
|
997
|
+
* Returns a state override that sets tempCheckpointLogs[checkpointNumber].feeHeader to the compressed fee header.
|
|
998
|
+
* Used when simulating a propose call where the parent checkpoint hasn't landed on L1 yet (pipelining).
|
|
999
|
+
*/ async makeFeeHeaderOverride(checkpointNumber, feeHeader) {
|
|
1000
|
+
const { epochDuration, proofSubmissionEpochs } = await this.getRollupConstants();
|
|
1001
|
+
const roundaboutSize = BigInt(epochDuration * (proofSubmissionEpochs + 1) + 1);
|
|
1002
|
+
const circularIndex = BigInt(checkpointNumber) % roundaboutSize;
|
|
1003
|
+
// tempCheckpointLogs is at offset 2 in RollupStore
|
|
1004
|
+
const tempCheckpointLogsMappingBase = hexToBigInt(RollupContract.stfStorageSlot) + 2n;
|
|
1005
|
+
// Solidity mapping slot: keccak256(abi.encode(key, baseSlot))
|
|
1006
|
+
const structBaseSlot = hexToBigInt(keccak256(encodeAbiParameters([
|
|
1007
|
+
{
|
|
1008
|
+
type: 'uint256'
|
|
1009
|
+
},
|
|
1010
|
+
{
|
|
1011
|
+
type: 'uint256'
|
|
1012
|
+
}
|
|
1013
|
+
], [
|
|
1014
|
+
circularIndex,
|
|
1015
|
+
tempCheckpointLogsMappingBase
|
|
1016
|
+
])));
|
|
1017
|
+
// feeHeader is the 7th field (offset 6) in CompressedTempCheckpointLog
|
|
1018
|
+
const feeHeaderSlot = structBaseSlot + 6n;
|
|
1019
|
+
const compressed = RollupContract.compressFeeHeader(feeHeader);
|
|
1020
|
+
return [
|
|
1021
|
+
{
|
|
1022
|
+
address: this.address,
|
|
1023
|
+
stateDiff: [
|
|
1024
|
+
{
|
|
1025
|
+
slot: `0x${feeHeaderSlot.toString(16).padStart(64, '0')}`,
|
|
1026
|
+
value: `0x${compressed.toString(16).padStart(64, '0')}`
|
|
1027
|
+
}
|
|
1028
|
+
]
|
|
1029
|
+
}
|
|
1030
|
+
];
|
|
1031
|
+
}
|
|
1032
|
+
/**
|
|
1033
|
+
* Returns a state override that sets archives[checkpointNumber] to the given archive value.
|
|
1034
|
+
* Used when simulating a canProposeAtTime call where the local archive differs from L1
|
|
1035
|
+
* (e.g. pipelining where the parent checkpoint hasn't landed on L1 yet).
|
|
1036
|
+
*/ makeArchiveOverride(checkpointNumber, archive) {
|
|
1037
|
+
const archivesMappingBase = hexToBigInt(RollupContract.stfStorageSlot) + 1n;
|
|
1038
|
+
const archiveSlot = hexToBigInt(keccak256(encodeAbiParameters([
|
|
1039
|
+
{
|
|
1040
|
+
type: 'uint256'
|
|
1041
|
+
},
|
|
1042
|
+
{
|
|
1043
|
+
type: 'uint256'
|
|
1044
|
+
}
|
|
1045
|
+
], [
|
|
1046
|
+
BigInt(checkpointNumber),
|
|
1047
|
+
archivesMappingBase
|
|
1048
|
+
])));
|
|
1049
|
+
return [
|
|
1050
|
+
{
|
|
1051
|
+
address: this.address,
|
|
1052
|
+
stateDiff: [
|
|
1053
|
+
{
|
|
1054
|
+
slot: `0x${archiveSlot.toString(16).padStart(64, '0')}`,
|
|
1055
|
+
value: archive.toString()
|
|
1056
|
+
}
|
|
1057
|
+
]
|
|
1058
|
+
}
|
|
1059
|
+
];
|
|
1060
|
+
}
|
|
1061
|
+
/** Merges multiple StateOverride arrays, combining stateDiff entries for the same address. */ static mergeStateOverrides(...overrides) {
|
|
1062
|
+
const byAddress = new Map();
|
|
1063
|
+
for (const override of overrides){
|
|
1064
|
+
for (const entry of override){
|
|
1065
|
+
const key = entry.address.toLowerCase();
|
|
1066
|
+
const existing = byAddress.get(key);
|
|
1067
|
+
if (existing) {
|
|
1068
|
+
existing.stateDiff.push(...entry.stateDiff ?? []);
|
|
1069
|
+
if (entry.balance !== undefined) {
|
|
1070
|
+
existing.balance = entry.balance;
|
|
1071
|
+
}
|
|
1072
|
+
} else {
|
|
1073
|
+
byAddress.set(key, {
|
|
1074
|
+
address: entry.address,
|
|
1075
|
+
balance: entry.balance,
|
|
1076
|
+
stateDiff: [
|
|
1077
|
+
...entry.stateDiff ?? []
|
|
1078
|
+
]
|
|
1079
|
+
});
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
return [
|
|
1084
|
+
...byAddress.values()
|
|
1085
|
+
];
|
|
1086
|
+
}
|
|
1087
|
+
/** Compresses a FeeHeader into a uint256 matching FeeHeaderLib.compress() in FeeStructs.sol. */ static compressFeeHeader(feeHeader) {
|
|
1088
|
+
const MASK_48_BITS = (1n << 48n) - 1n;
|
|
1089
|
+
const MASK_64_BITS = (1n << 64n) - 1n;
|
|
1090
|
+
const MASK_63_BITS = (1n << 63n) - 1n;
|
|
1091
|
+
let value = BigInt(feeHeader.manaUsed) & (1n << 32n) - 1n; // bits [0:31]
|
|
1092
|
+
value |= (feeHeader.excessMana < MASK_48_BITS ? feeHeader.excessMana : MASK_48_BITS) << 32n; // bits [32:79]
|
|
1093
|
+
value |= (BigInt(feeHeader.ethPerFeeAsset) & MASK_48_BITS) << 80n; // bits [80:127]
|
|
1094
|
+
value |= (feeHeader.congestionCost < MASK_64_BITS ? feeHeader.congestionCost : MASK_64_BITS) << 128n; // bits [128:191]
|
|
1095
|
+
value |= (feeHeader.proverCost < MASK_63_BITS ? feeHeader.proverCost : MASK_63_BITS) << 192n; // bits [192:254]
|
|
1096
|
+
value |= 1n << 255n; // preheat flag
|
|
1097
|
+
return value;
|
|
1098
|
+
}
|
|
1099
|
+
/** Computes the fee header for a child checkpoint given parent fee header and child data.
|
|
1100
|
+
* Must stay in sync with Solidity FeeLib.sol (computeNewEthPerFeeAsset, clampedAdd). */ static computeChildFeeHeader(parentFeeHeader, childManaUsed, feeAssetPriceModifier, manaTarget) {
|
|
1101
|
+
const MIN_ETH_PER_FEE_ASSET = 100n;
|
|
1102
|
+
const MAX_ETH_PER_FEE_ASSET = 100_000_000_000_000n; // 1e14, matches FeeLib.sol
|
|
1103
|
+
// excessMana = clampedAdd(parent.excessMana + parent.manaUsed, -manaTarget)
|
|
1104
|
+
const sum = parentFeeHeader.excessMana + parentFeeHeader.manaUsed;
|
|
1105
|
+
const excessMana = sum > manaTarget ? sum - manaTarget : 0n;
|
|
1106
|
+
// ethPerFeeAsset = computeNewEthPerFeeAsset(max(parent.ethPerFeeAsset, MIN), modifier)
|
|
1107
|
+
const parentPrice = parentFeeHeader.ethPerFeeAsset > MIN_ETH_PER_FEE_ASSET ? parentFeeHeader.ethPerFeeAsset : MIN_ETH_PER_FEE_ASSET;
|
|
1108
|
+
let newPrice;
|
|
1109
|
+
if (feeAssetPriceModifier >= 0n) {
|
|
1110
|
+
newPrice = parentPrice * (10_000n + feeAssetPriceModifier) / 10_000n;
|
|
1111
|
+
} else {
|
|
1112
|
+
const absMod = -feeAssetPriceModifier;
|
|
1113
|
+
newPrice = parentPrice * (10_000n - absMod) / 10_000n;
|
|
1114
|
+
}
|
|
1115
|
+
if (newPrice < MIN_ETH_PER_FEE_ASSET) {
|
|
1116
|
+
newPrice = MIN_ETH_PER_FEE_ASSET;
|
|
1117
|
+
}
|
|
1118
|
+
if (newPrice > MAX_ETH_PER_FEE_ASSET) {
|
|
1119
|
+
newPrice = MAX_ETH_PER_FEE_ASSET;
|
|
1120
|
+
}
|
|
1121
|
+
return {
|
|
1122
|
+
excessMana,
|
|
1123
|
+
manaUsed: childManaUsed,
|
|
1124
|
+
ethPerFeeAsset: newPrice,
|
|
1125
|
+
congestionCost: 0n,
|
|
1126
|
+
proverCost: 0n
|
|
1127
|
+
};
|
|
1128
|
+
}
|
|
993
1129
|
/** Creates a request to Rollup#invalidateBadAttestation to be simulated or sent */ buildInvalidateBadAttestationRequest(checkpointNumber, attestationsAndSigners, committee, invalidIndex) {
|
|
994
1130
|
return {
|
|
995
1131
|
to: this.address,
|
|
@@ -1031,11 +1167,25 @@ export class RollupContract {
|
|
|
1031
1167
|
prover
|
|
1032
1168
|
]);
|
|
1033
1169
|
}
|
|
1034
|
-
getManaMinFeeAt(timestamp, inFeeAsset) {
|
|
1170
|
+
getManaMinFeeAt(timestamp, inFeeAsset, stateOverride) {
|
|
1035
1171
|
return this.rollup.read.getManaMinFeeAt([
|
|
1036
1172
|
timestamp,
|
|
1037
1173
|
inFeeAsset
|
|
1174
|
+
], {
|
|
1175
|
+
stateOverride
|
|
1176
|
+
});
|
|
1177
|
+
}
|
|
1178
|
+
async getManaMinFeeComponentsAt(timestamp, inFeeAsset) {
|
|
1179
|
+
const result = await this.rollup.read.getManaMinFeeComponentsAt([
|
|
1180
|
+
timestamp,
|
|
1181
|
+
inFeeAsset
|
|
1038
1182
|
]);
|
|
1183
|
+
return {
|
|
1184
|
+
sequencerCost: result.sequencerCost,
|
|
1185
|
+
proverCost: result.proverCost,
|
|
1186
|
+
congestionCost: result.congestionCost,
|
|
1187
|
+
congestionMultiplier: result.congestionMultiplier
|
|
1188
|
+
};
|
|
1039
1189
|
}
|
|
1040
1190
|
async getSlotAt(timestamp) {
|
|
1041
1191
|
return SlotNumber.fromBigInt(await this.rollup.read.getSlotAt([
|
|
@@ -1086,10 +1236,10 @@ export class RollupContract {
|
|
|
1086
1236
|
prover
|
|
1087
1237
|
]);
|
|
1088
1238
|
}
|
|
1089
|
-
async getAttesters() {
|
|
1239
|
+
async getAttesters(timestamp) {
|
|
1090
1240
|
const attesterSize = await this.getActiveAttesterCount();
|
|
1091
1241
|
const gse = new GSEContract(this.client, await this.getGSE());
|
|
1092
|
-
const ts = (await this.client.getBlock()).timestamp;
|
|
1242
|
+
const ts = timestamp ?? (await this.client.getBlock()).timestamp;
|
|
1093
1243
|
const indices = Array.from({
|
|
1094
1244
|
length: attesterSize
|
|
1095
1245
|
}, (_, i)=>BigInt(i));
|
|
@@ -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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"}
|
|
@@ -4,21 +4,19 @@ 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
6
|
import { SlasherAbi } from '@aztec/l1-artifacts/SlasherAbi';
|
|
7
|
-
import {
|
|
7
|
+
import { SlashingProposerAbi } from '@aztec/l1-artifacts/SlashingProposerAbi';
|
|
8
8
|
import { encodeFunctionData, getContract } from 'viem';
|
|
9
9
|
/**
|
|
10
|
-
* Wrapper around the
|
|
10
|
+
* Wrapper around the SlashingProposer contract that provides
|
|
11
11
|
* a TypeScript interface for interacting with the consensus-based slashing system.
|
|
12
|
-
*/ export class
|
|
12
|
+
*/ export class SlashingProposerContract {
|
|
13
13
|
client;
|
|
14
14
|
contract;
|
|
15
|
-
type;
|
|
16
15
|
constructor(client, address){
|
|
17
16
|
this.client = client;
|
|
18
|
-
this.type = 'tally';
|
|
19
17
|
this.contract = getContract({
|
|
20
18
|
address: typeof address === 'string' ? address : address.toString(),
|
|
21
|
-
abi:
|
|
19
|
+
abi: SlashingProposerAbi,
|
|
22
20
|
client
|
|
23
21
|
});
|
|
24
22
|
}
|
|
@@ -118,10 +116,10 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
118
116
|
}));
|
|
119
117
|
}
|
|
120
118
|
/** Tries to extract a VoteCast event from the given logs. */ tryExtractVoteCastEvent(logs) {
|
|
121
|
-
return tryExtractEvent(logs, this.address.toString(),
|
|
119
|
+
return tryExtractEvent(logs, this.address.toString(), SlashingProposerAbi, 'VoteCast');
|
|
122
120
|
}
|
|
123
121
|
/** Tries to extract a RoundExecuted event from the given logs. */ tryExtractRoundExecutedEvent(logs) {
|
|
124
|
-
return tryExtractEvent(logs, this.address.toString(),
|
|
122
|
+
return tryExtractEvent(logs, this.address.toString(), SlashingProposerAbi, 'RoundExecuted');
|
|
125
123
|
}
|
|
126
124
|
/**
|
|
127
125
|
* Create a transaction to vote for slashing offenses
|
|
@@ -134,9 +132,9 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
134
132
|
const signature = Signature.fromString(await signer(typedData));
|
|
135
133
|
return {
|
|
136
134
|
to: this.contract.address,
|
|
137
|
-
abi:
|
|
135
|
+
abi: SlashingProposerAbi,
|
|
138
136
|
data: encodeFunctionData({
|
|
139
|
-
abi:
|
|
137
|
+
abi: SlashingProposerAbi,
|
|
140
138
|
functionName: 'vote',
|
|
141
139
|
args: [
|
|
142
140
|
votes,
|
|
@@ -147,7 +145,7 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
147
145
|
}
|
|
148
146
|
/** Returns the typed data definition to EIP712-sign for voting */ buildVoteTypedData(votes, slot) {
|
|
149
147
|
const domain = {
|
|
150
|
-
name: '
|
|
148
|
+
name: 'SlashingProposer',
|
|
151
149
|
version: '1',
|
|
152
150
|
chainId: this.client.chain.id,
|
|
153
151
|
verifyingContract: this.contract.address
|
|
@@ -206,9 +204,9 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
206
204
|
*/ buildVoteRequestWithSignature(votes, signature) {
|
|
207
205
|
return {
|
|
208
206
|
to: this.contract.address,
|
|
209
|
-
abi:
|
|
207
|
+
abi: SlashingProposerAbi,
|
|
210
208
|
data: encodeFunctionData({
|
|
211
|
-
abi:
|
|
209
|
+
abi: SlashingProposerAbi,
|
|
212
210
|
functionName: 'vote',
|
|
213
211
|
args: [
|
|
214
212
|
votes,
|
|
@@ -226,11 +224,11 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
226
224
|
return {
|
|
227
225
|
to: this.contract.address,
|
|
228
226
|
abi: mergeAbis([
|
|
229
|
-
|
|
227
|
+
SlashingProposerAbi,
|
|
230
228
|
SlasherAbi
|
|
231
229
|
]),
|
|
232
230
|
data: encodeFunctionData({
|
|
233
|
-
abi:
|
|
231
|
+
abi: SlashingProposerAbi,
|
|
234
232
|
functionName: 'executeRound',
|
|
235
233
|
args: [
|
|
236
234
|
round,
|
|
@@ -49,7 +49,6 @@ export declare function computeValidatorData(operator: Operator): ValidatorJson;
|
|
|
49
49
|
export interface RollupUpgradeAddresses {
|
|
50
50
|
rollupAddress: string;
|
|
51
51
|
verifierAddress: string;
|
|
52
|
-
slashFactoryAddress: string;
|
|
53
52
|
inboxAddress: string;
|
|
54
53
|
outboxAddress: string;
|
|
55
54
|
feeJuicePortalAddress: string;
|
|
@@ -61,7 +60,6 @@ export interface RollupUpgradeAddresses {
|
|
|
61
60
|
export interface ForgeRollupUpgradeResult {
|
|
62
61
|
rollupAddress: Hex;
|
|
63
62
|
verifierAddress: Hex;
|
|
64
|
-
slashFactoryAddress: Hex;
|
|
65
63
|
inboxAddress: Hex;
|
|
66
64
|
outboxAddress: Hex;
|
|
67
65
|
feeJuicePortalAddress: Hex;
|
|
@@ -210,7 +208,7 @@ export declare function getDeployAztecL1ContractsEnvVars(args: DeployAztecL1Cont
|
|
|
210
208
|
readonly AZTEC_EXIT_DELAY_SECONDS: string;
|
|
211
209
|
readonly AZTEC_PROVING_COST_PER_MANA: string;
|
|
212
210
|
readonly AZTEC_INITIAL_ETH_PER_FEE_ASSET: string;
|
|
213
|
-
readonly
|
|
211
|
+
readonly AZTEC_SLASHER_ENABLED: "false" | "true";
|
|
214
212
|
readonly AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: string;
|
|
215
213
|
readonly AZTEC_SLASHING_QUORUM: string | undefined;
|
|
216
214
|
readonly AZTEC_SLASHING_OFFSET_IN_ROUNDS: string;
|
|
@@ -241,7 +239,7 @@ export declare function getDeployRollupForUpgradeEnvVars(args: Omit<DeployAztecL
|
|
|
241
239
|
readonly AZTEC_EXIT_DELAY_SECONDS: string;
|
|
242
240
|
readonly AZTEC_PROVING_COST_PER_MANA: string;
|
|
243
241
|
readonly AZTEC_INITIAL_ETH_PER_FEE_ASSET: string;
|
|
244
|
-
readonly
|
|
242
|
+
readonly AZTEC_SLASHER_ENABLED: "false" | "true";
|
|
245
243
|
readonly AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: string;
|
|
246
244
|
readonly AZTEC_SLASHING_QUORUM: string | undefined;
|
|
247
245
|
readonly AZTEC_SLASHING_OFFSET_IN_ROUNDS: string;
|
|
@@ -254,6 +252,5 @@ export declare function getDeployRollupForUpgradeEnvVars(args: Omit<DeployAztecL
|
|
|
254
252
|
*/
|
|
255
253
|
export declare const deployRollupForUpgrade: (privateKey: `0x${string}`, rpcUrl: string, chainId: number, registryAddress: EthAddress, args: Omit<DeployAztecL1ContractsArgs, "activationThreshold" | "ejectionThreshold" | "governanceProposerQuorum" | "governanceProposerRoundSize" | "zkPassportArgs">) => Promise<{
|
|
256
254
|
rollup: RollupContract;
|
|
257
|
-
slashFactoryAddress: `0x${string}`;
|
|
258
255
|
}>;
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2F6dGVjX2wxX2NvbnRyYWN0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcGxveV9henRlY19sMV9jb250cmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU0zQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUErRTNELE1BQU0sV0FBVyxXQUFXO0lBQzFCLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7Q0FDWjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxhQUFhO0lBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixxQ0FBcUM7SUFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixrRUFBa0U7SUFDbEUsYUFBYSxFQUFFLFdBQVcsQ0FBQztDQUM1QjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0Isa0JBQWtCLElBQUksTUFBTSxDQUszQztBQWdCRDs7OztHQUlHO0FBQ0gsd0JBQWdCLCtCQUErQixJQUFJLE1BQU0sQ0EwQ3hEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxHQUFHLGFBQWEsQ0FvQnRFO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsc0JBQXNCO0lBQ3JDLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsZUFBZSxFQUFFLE1BQU0sQ0FBQztJQUN4QixZQUFZLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLGFBQWEsRUFBRSxNQUFNLENBQUM7Q0FDdkI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMsYUFBYSxFQUFFLEdBQUcsQ0FBQztJQUNuQixlQUFlLEVBQUUsR0FBRyxDQUFDO0lBQ3JCLFlBQVksRUFBRSxHQUFHLENBQUM7SUFDbEIsYUFBYSxFQUFFLEdBQUcsQ0FBQztJQUNuQixxQkFBcUIsRUFBRSxHQUFHLENBQUM7SUFDM0IsYUFBYSxFQUFFLE1BQU0sQ0FBQztDQUN2QjtBQUVELE1BQU0sV0FBVyw0QkFBNkIsU0FBUSx3QkFBd0I7SUFDNUUsZUFBZSxFQUFFLEdBQUcsQ0FBQztJQUNyQixlQUFlLEVBQUUsR0FBRyxDQUFDO0lBQ3JCLG1CQUFtQixFQUFFLEdBQUcsQ0FBQztJQUN6QixVQUFVLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDakIsd0JBQXdCLEVBQUUsR0FBRyxDQUFDO0lBQzlCLGlCQUFpQixFQUFFLEdBQUcsQ0FBQztJQUN2Qix5QkFBeUIsRUFBRSxHQUFHLENBQUM7SUFDL0IsaUJBQWlCLEVBQUUsR0FBRyxDQUFDO0lBQ3ZCLHVCQUF1QixDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQzlCLHNCQUFzQixDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQzdCLDBCQUEwQixDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ2pDLHlCQUF5QixDQUFDLEVBQUUsR0FBRyxDQUFDO0NBQ2pDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCx3QkFBc0Isc0JBQXNCLENBQzFDLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLEtBQUssTUFBTSxFQUFFLEVBQ3pCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsSUFBSSxFQUFFLDBCQUEwQixHQUMvQixPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0F3STNDO0FBRUQsZUFBTyxNQUFNLGdCQUFnQixFQUFFLEdBQWtELENBQUM7QUFFbEYsTUFBTSxNQUFNLFFBQVEsR0FBRztJQUNyQixRQUFRLEVBQUUsVUFBVSxDQUFDO0lBQ3JCLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkIsY0FBYyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUNyQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLE1BQU0sZ0NBQWdDLEdBQUc7SUFDN0MsbUNBQW1DO0lBQ25DLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQztJQUNuQyxtREFBbUQ7SUFDbkQsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUM7SUFDekMsOENBQThDO0lBQzlDLGFBQWEsRUFBRSxNQUFNLENBQUM7Q0FDdkIsQ0FBQztBQUVGLE1BQU0sV0FBVyxjQUFjO0lBQzdCLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRztRQUNsQixDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUFDO1lBQ3BDLEtBQUssRUFBRSxNQUFNLENBQUM7WUFDZCxNQUFNLEVBQUUsTUFBTSxDQUFDO1NBQ2hCLENBQUMsQ0FBQztLQUNKLENBQUM7Q0FDSDtBQUVELE1BQU0sV0FBVyxTQUFTO0lBQ3hCLGNBQWMsRUFBRSxjQUFjLENBQUM7SUFDL0IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztDQUNoRDtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGlCQUFpQixDQUFDLElBQUksU0FBUyxHQUFHLEdBQUcsU0FBUyxPQUFPLEVBQUUsR0FBRyxHQUFHO0lBQzVFOztPQUVHO0lBQ0gsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiOztPQUVHO0lBQ0gsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQjs7T0FFRztJQUNILGdCQUFnQixFQUFFLEdBQUcsQ0FBQztJQUN0Qjs7T0FFRztJQUNILFNBQVMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztDQUN2QjtBQUVELE1BQU0sTUFBTSx3QkFBd0IsR0FBRztJQUNyQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixPQUFPLEVBQUUsTUFBTSxDQUFDO0NBQ2pCLENBQUM7QUFFRixNQUFNLE1BQU0sa0JBQWtCLEdBQUc7SUFDL0IsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsa0JBQWtCLEVBQUUsR0FBRyxDQUFDO0lBQ3hCLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxDQUFDO0NBQ3ZDLENBQUM7QUFFRixNQUFNLFdBQVcsMEJBQ2YsU0FBUSxJQUFJLENBQ1YsaUJBQWlCLEVBQ2YsMEJBQTBCLEdBQzFCLFNBQVMsR0FDVCxhQUFhLEdBQ2IsMkJBQTJCLEdBQzNCLGdDQUFnQyxHQUNoQywwQkFBMEIsR0FDMUIsb0JBQW9CLEdBQ3BCLGlCQUFpQixHQUNqQixhQUFhLEdBQ2IsYUFBYSxHQUNiLG1CQUFtQixHQUNuQiw4QkFBOEIsR0FDOUIsNkJBQTZCLEdBQzdCLGVBQWUsR0FDZixtQ0FBbUMsQ0FDdEM7SUFDRCx3QkFBd0I7SUFDeEIsVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUNmLDBDQUEwQztJQUMxQyxxQkFBcUIsRUFBRSxFQUFFLENBQUM7SUFDMUIsNENBQTRDO0lBQzVDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztJQUN2QixzREFBc0Q7SUFDdEQsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUMvQixpSEFBaUg7SUFDakgsNEJBQTRCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEMsK0RBQStEO0lBQy9ELFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUN2QiwyQkFBMkI7SUFDM0IsY0FBYyxDQUFDLEVBQUUsY0FBYyxDQUFDO0lBQ2hDLHFGQUFxRjtJQUNyRixvQkFBb0IsQ0FBQyxFQUFFLFVBQVUsQ0FBQztDQUNuQztBQUVELE1BQU0sV0FBVyxjQUFjO0lBQzdCLDBDQUEwQztJQUMxQyxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUMxQixxREFBcUQ7SUFDckQsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQzFCO0FBR0Qsd0JBQWdCLGdDQUFnQyxDQUFDLElBQUksRUFBRSwwQkFBMEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBWWhGO0FBR0Qsd0JBQWdCLGdDQUFnQyxDQUM5QyxJQUFJLEVBQUUsSUFBSSxDQUNSLDBCQUEwQixFQUN4QiwwQkFBMEIsR0FDMUIsNkJBQTZCLEdBQzdCLG1CQUFtQixHQUNuQixxQkFBcUIsR0FDckIsbUJBQW1CLENBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQ0Y7QUFFRDs7R0FFRztBQUNILGVBQU8sTUFBTSxzQkFBc0I7O0VBZ0RsQyxDQUFDIn0=
|
|
@@ -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;AAIpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAM3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAKhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AA+E3D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,aAAa,EAAE,WAAW,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAgBD;;;;GAIG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,CA0CxD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAoBtE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"deploy_aztec_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_aztec_l1_contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -310,7 +310,6 @@ function cleanupDeployDir() {
|
|
|
310
310
|
governanceProposerAddress: EthAddress.fromString(result.governanceProposerAddress),
|
|
311
311
|
governanceAddress: EthAddress.fromString(result.governanceAddress),
|
|
312
312
|
stakingAssetAddress: EthAddress.fromString(result.stakingAssetAddress),
|
|
313
|
-
slashFactoryAddress: result.slashFactoryAddress ? EthAddress.fromString(result.slashFactoryAddress) : undefined,
|
|
314
313
|
feeAssetHandlerAddress: result.feeAssetHandlerAddress ? EthAddress.fromString(result.feeAssetHandlerAddress) : undefined,
|
|
315
314
|
stakingAssetHandlerAddress: result.stakingAssetHandlerAddress ? EthAddress.fromString(result.stakingAssetHandlerAddress) : undefined,
|
|
316
315
|
zkPassportVerifierAddress: result.zkPassportVerifierAddress ? EthAddress.fromString(result.zkPassportVerifierAddress) : undefined,
|
|
@@ -361,7 +360,7 @@ export function getDeployRollupForUpgradeEnvVars(args) {
|
|
|
361
360
|
AZTEC_EXIT_DELAY_SECONDS: args.exitDelaySeconds.toString(),
|
|
362
361
|
AZTEC_PROVING_COST_PER_MANA: args.provingCostPerMana.toString(),
|
|
363
362
|
AZTEC_INITIAL_ETH_PER_FEE_ASSET: args.initialEthPerFeeAsset.toString(),
|
|
364
|
-
|
|
363
|
+
AZTEC_SLASHER_ENABLED: args.slasherEnabled ? 'true' : 'false',
|
|
365
364
|
AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: args.slashingRoundSizeInEpochs.toString(),
|
|
366
365
|
AZTEC_SLASHING_QUORUM: args.slashingQuorum?.toString(),
|
|
367
366
|
AZTEC_SLASHING_OFFSET_IN_ROUNDS: args.slashingOffsetInRounds.toString(),
|
|
@@ -407,7 +406,6 @@ export function getDeployRollupForUpgradeEnvVars(args) {
|
|
|
407
406
|
// Create RollupContract wrapper for the deployed rollup
|
|
408
407
|
const rollup = new RollupContract(extendedClient, result.rollupAddress);
|
|
409
408
|
return {
|
|
410
|
-
rollup
|
|
411
|
-
slashFactoryAddress: result.slashFactoryAddress
|
|
409
|
+
rollup
|
|
412
410
|
};
|
|
413
411
|
};
|
|
@@ -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;
|
|
@@ -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,
|