@aztec/ethereum 3.0.0-nightly.20250908 → 3.0.0-nightly.20250911
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 +3 -4
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +88 -44
- package/dest/contracts/empire_slashing_proposer.d.ts +1 -1
- package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.js +1 -1
- package/dest/contracts/rollup.d.ts +6 -11
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +26 -83
- package/dest/deploy_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_l1_contracts.js +7 -7
- package/dest/l1_artifacts.d.ts +864 -261
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_tx_utils.d.ts +4 -2
- package/dest/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils.js +17 -12
- package/dest/l1_tx_utils_with_blobs.d.ts +2 -1
- package/dest/l1_tx_utils_with_blobs.d.ts.map +1 -1
- package/dest/l1_tx_utils_with_blobs.js +7 -5
- package/dest/queries.d.ts.map +1 -1
- package/dest/queries.js +6 -11
- package/package.json +5 -5
- package/src/config.ts +98 -47
- package/src/contracts/empire_slashing_proposer.ts +6 -2
- package/src/contracts/rollup.ts +26 -97
- package/src/deploy_l1_contracts.ts +5 -7
- package/src/l1_tx_utils.ts +17 -7
- package/src/l1_tx_utils_with_blobs.ts +8 -2
- package/src/queries.ts +6 -7
package/dest/config.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export type L1ContractsConfig = {
|
|
|
22
22
|
activationThreshold: bigint;
|
|
23
23
|
/** The minimum stake for a validator. */
|
|
24
24
|
ejectionThreshold: bigint;
|
|
25
|
+
/** The local ejection threshold for a validator. Stricter than ejectionThreshold but local to a specific rollup */
|
|
26
|
+
localEjectionThreshold: bigint;
|
|
25
27
|
/** The slashing quorum, i.e. how many slots must signal for the same payload in a round for it to be submittable to the Slasher (defaults to slashRoundSize / 2 + 1) */
|
|
26
28
|
slashingQuorum?: number;
|
|
27
29
|
/** The slashing round size, i.e. how many epochs are in a slashing round */
|
|
@@ -61,6 +63,7 @@ export declare const DefaultL1ContractsConfig: {
|
|
|
61
63
|
aztecProofSubmissionEpochs: number;
|
|
62
64
|
activationThreshold: bigint;
|
|
63
65
|
ejectionThreshold: bigint;
|
|
66
|
+
localEjectionThreshold: bigint;
|
|
64
67
|
slashAmountSmall: bigint;
|
|
65
68
|
slashAmountMedium: bigint;
|
|
66
69
|
slashAmountLarge: bigint;
|
|
@@ -88,10 +91,6 @@ export declare const getGovernanceConfiguration: (networkName: NetworkNames) =>
|
|
|
88
91
|
requiredYeaMargin: bigint;
|
|
89
92
|
minimumVotes: bigint;
|
|
90
93
|
};
|
|
91
|
-
export declare const getGSEConfiguration: (networkName: NetworkNames) => {
|
|
92
|
-
activationThreshold: bigint;
|
|
93
|
-
ejectionThreshold: bigint;
|
|
94
|
-
};
|
|
95
94
|
export declare const getRewardConfig: (networkName: NetworkNames) => {
|
|
96
95
|
sequencerBps: number;
|
|
97
96
|
rewardDistributor: `0x${string}`;
|
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,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,+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;;;;;;;;;;;;;;;;;;;;;;CAsBR,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,CAwH3E,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
|
@@ -9,6 +9,7 @@ export const DefaultL1ContractsConfig = {
|
|
|
9
9
|
aztecProofSubmissionEpochs: 1,
|
|
10
10
|
activationThreshold: BigInt(100e18),
|
|
11
11
|
ejectionThreshold: BigInt(50e18),
|
|
12
|
+
localEjectionThreshold: BigInt(98e18),
|
|
12
13
|
slashAmountSmall: BigInt(10e18),
|
|
13
14
|
slashAmountMedium: BigInt(20e18),
|
|
14
15
|
slashAmountLarge: BigInt(50e18),
|
|
@@ -36,6 +37,19 @@ const LocalGovernanceConfiguration = {
|
|
|
36
37
|
requiredYeaMargin: 4n * 10n ** 16n,
|
|
37
38
|
minimumVotes: 400n * 10n ** 18n
|
|
38
39
|
};
|
|
40
|
+
const StagingPublicGovernanceConfiguration = {
|
|
41
|
+
proposeConfig: {
|
|
42
|
+
lockDelay: 60n * 60n * 24n * 30n,
|
|
43
|
+
lockAmount: DefaultL1ContractsConfig.activationThreshold * 100n
|
|
44
|
+
},
|
|
45
|
+
votingDelay: 60n,
|
|
46
|
+
votingDuration: 60n * 60n,
|
|
47
|
+
executionDelay: 60n,
|
|
48
|
+
gracePeriod: 60n * 60n * 24n * 7n,
|
|
49
|
+
quorum: 3n * 10n ** 17n,
|
|
50
|
+
requiredYeaMargin: 4n * 10n ** 16n,
|
|
51
|
+
minimumVotes: DefaultL1ContractsConfig.ejectionThreshold * 200n
|
|
52
|
+
};
|
|
39
53
|
const TestnetGovernanceConfiguration = {
|
|
40
54
|
proposeConfig: {
|
|
41
55
|
lockDelay: 60n * 60n * 24n,
|
|
@@ -49,46 +63,37 @@ const TestnetGovernanceConfiguration = {
|
|
|
49
63
|
requiredYeaMargin: 4n * 10n ** 16n,
|
|
50
64
|
minimumVotes: DefaultL1ContractsConfig.ejectionThreshold * 200n
|
|
51
65
|
};
|
|
66
|
+
const StagingIgnitionGovernanceConfiguration = {
|
|
67
|
+
proposeConfig: {
|
|
68
|
+
lockDelay: 60n * 60n * 24n * 30n,
|
|
69
|
+
lockAmount: DefaultL1ContractsConfig.activationThreshold * 100n
|
|
70
|
+
},
|
|
71
|
+
votingDelay: 60n,
|
|
72
|
+
votingDuration: 60n * 60n,
|
|
73
|
+
executionDelay: 60n,
|
|
74
|
+
gracePeriod: 60n * 60n * 24n * 7n,
|
|
75
|
+
quorum: 3n * 10n ** 17n,
|
|
76
|
+
requiredYeaMargin: 4n * 10n ** 16n,
|
|
77
|
+
minimumVotes: DefaultL1ContractsConfig.ejectionThreshold * 200n
|
|
78
|
+
};
|
|
52
79
|
export const getGovernanceConfiguration = (networkName)=>{
|
|
53
80
|
switch(networkName){
|
|
54
|
-
case 'alpha-testnet':
|
|
55
|
-
case 'testnet':
|
|
56
|
-
return TestnetGovernanceConfiguration;
|
|
57
81
|
case 'local':
|
|
58
82
|
return LocalGovernanceConfiguration;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
const TestnetGSEConfiguration = {
|
|
64
|
-
activationThreshold: BigInt(100e18),
|
|
65
|
-
ejectionThreshold: BigInt(50e18)
|
|
66
|
-
};
|
|
67
|
-
const LocalGSEConfiguration = {
|
|
68
|
-
activationThreshold: BigInt(100e18),
|
|
69
|
-
ejectionThreshold: BigInt(50e18)
|
|
70
|
-
};
|
|
71
|
-
export const getGSEConfiguration = (networkName)=>{
|
|
72
|
-
switch(networkName){
|
|
73
|
-
case 'alpha-testnet':
|
|
83
|
+
case 'staging-public':
|
|
84
|
+
return StagingPublicGovernanceConfiguration;
|
|
74
85
|
case 'testnet':
|
|
75
|
-
return
|
|
76
|
-
case '
|
|
77
|
-
return
|
|
86
|
+
return TestnetGovernanceConfiguration;
|
|
87
|
+
case 'staging-ignition':
|
|
88
|
+
return StagingIgnitionGovernanceConfiguration;
|
|
78
89
|
default:
|
|
79
|
-
throw new Error(
|
|
90
|
+
throw new Error(`Unrecognized network name: ${networkName}`);
|
|
80
91
|
}
|
|
81
92
|
};
|
|
82
93
|
// Making a default config here as we are only using it thought the deployment
|
|
83
94
|
// and do not expect to be using different setups, so having environment variables
|
|
84
95
|
// for it seems overkill
|
|
85
|
-
const
|
|
86
|
-
sequencerBps: 5000,
|
|
87
|
-
rewardDistributor: EthAddress.ZERO.toString(),
|
|
88
|
-
booster: EthAddress.ZERO.toString(),
|
|
89
|
-
blockReward: BigInt(50e18)
|
|
90
|
-
};
|
|
91
|
-
const TestnetRewardConfig = {
|
|
96
|
+
const DefaultRewardConfig = {
|
|
92
97
|
sequencerBps: 5000,
|
|
93
98
|
rewardDistributor: EthAddress.ZERO.toString(),
|
|
94
99
|
booster: EthAddress.ZERO.toString(),
|
|
@@ -96,13 +101,13 @@ const TestnetRewardConfig = {
|
|
|
96
101
|
};
|
|
97
102
|
export const getRewardConfig = (networkName)=>{
|
|
98
103
|
switch(networkName){
|
|
99
|
-
case 'alpha-testnet':
|
|
100
|
-
case 'testnet':
|
|
101
|
-
return TestnetRewardConfig;
|
|
102
104
|
case 'local':
|
|
103
|
-
|
|
105
|
+
case 'staging-public':
|
|
106
|
+
case 'testnet':
|
|
107
|
+
case 'staging-ignition':
|
|
108
|
+
return DefaultRewardConfig;
|
|
104
109
|
default:
|
|
105
|
-
throw new Error(
|
|
110
|
+
throw new Error(`Unrecognized network name: ${networkName}`);
|
|
106
111
|
}
|
|
107
112
|
};
|
|
108
113
|
const LocalRewardBoostConfig = {
|
|
@@ -112,6 +117,13 @@ const LocalRewardBoostConfig = {
|
|
|
112
117
|
k: 1000000,
|
|
113
118
|
minimum: 100000
|
|
114
119
|
};
|
|
120
|
+
const StagingPublicRewardBoostConfig = {
|
|
121
|
+
increment: 200000,
|
|
122
|
+
maxScore: 5000000,
|
|
123
|
+
a: 5000,
|
|
124
|
+
k: 1000000,
|
|
125
|
+
minimum: 100000
|
|
126
|
+
};
|
|
115
127
|
const TestnetRewardBoostConfig = {
|
|
116
128
|
increment: 125000,
|
|
117
129
|
maxScore: 15000000,
|
|
@@ -119,15 +131,25 @@ const TestnetRewardBoostConfig = {
|
|
|
119
131
|
k: 1000000,
|
|
120
132
|
minimum: 100000
|
|
121
133
|
};
|
|
134
|
+
const StagingIgnitionRewardBoostConfig = {
|
|
135
|
+
increment: 200000,
|
|
136
|
+
maxScore: 5000000,
|
|
137
|
+
a: 5000,
|
|
138
|
+
k: 1000000,
|
|
139
|
+
minimum: 100000
|
|
140
|
+
};
|
|
122
141
|
export const getRewardBoostConfig = (networkName)=>{
|
|
123
142
|
switch(networkName){
|
|
124
|
-
case 'alpha-testnet':
|
|
125
|
-
case 'testnet':
|
|
126
|
-
return TestnetRewardBoostConfig;
|
|
127
143
|
case 'local':
|
|
128
144
|
return LocalRewardBoostConfig;
|
|
145
|
+
case 'staging-public':
|
|
146
|
+
return StagingPublicRewardBoostConfig;
|
|
147
|
+
case 'testnet':
|
|
148
|
+
return TestnetRewardBoostConfig;
|
|
149
|
+
case 'staging-ignition':
|
|
150
|
+
return StagingIgnitionRewardBoostConfig;
|
|
129
151
|
default:
|
|
130
|
-
throw new Error(
|
|
152
|
+
throw new Error(`Unrecognized network name: ${networkName}`);
|
|
131
153
|
}
|
|
132
154
|
};
|
|
133
155
|
// Similar to the above, no need for environment variables for this.
|
|
@@ -136,24 +158,41 @@ const LocalEntryQueueConfig = {
|
|
|
136
158
|
bootstrapFlushSize: 0n,
|
|
137
159
|
normalFlushSizeMin: 48n,
|
|
138
160
|
normalFlushSizeQuotient: 2n,
|
|
139
|
-
maxQueueFlushSize:
|
|
161
|
+
maxQueueFlushSize: 32n
|
|
162
|
+
};
|
|
163
|
+
const StagingPublicEntryQueueConfig = {
|
|
164
|
+
bootstrapValidatorSetSize: 48n,
|
|
165
|
+
bootstrapFlushSize: 48n,
|
|
166
|
+
normalFlushSizeMin: 1n,
|
|
167
|
+
normalFlushSizeQuotient: 2475n,
|
|
168
|
+
maxQueueFlushSize: 32n
|
|
140
169
|
};
|
|
141
170
|
const TestnetEntryQueueConfig = {
|
|
142
171
|
bootstrapValidatorSetSize: 750n,
|
|
143
|
-
bootstrapFlushSize:
|
|
172
|
+
bootstrapFlushSize: 48n,
|
|
173
|
+
normalFlushSizeMin: 1n,
|
|
174
|
+
normalFlushSizeQuotient: 2475n,
|
|
175
|
+
maxQueueFlushSize: 32n
|
|
176
|
+
};
|
|
177
|
+
const StagingIgnitionEntryQueueConfig = {
|
|
178
|
+
bootstrapValidatorSetSize: 750n,
|
|
179
|
+
bootstrapFlushSize: 48n,
|
|
144
180
|
normalFlushSizeMin: 1n,
|
|
145
181
|
normalFlushSizeQuotient: 2475n,
|
|
146
182
|
maxQueueFlushSize: 32n
|
|
147
183
|
};
|
|
148
184
|
export const getEntryQueueConfig = (networkName)=>{
|
|
149
185
|
switch(networkName){
|
|
150
|
-
case 'alpha-testnet':
|
|
151
|
-
case 'testnet':
|
|
152
|
-
return TestnetEntryQueueConfig;
|
|
153
186
|
case 'local':
|
|
154
187
|
return LocalEntryQueueConfig;
|
|
188
|
+
case 'staging-public':
|
|
189
|
+
return StagingPublicEntryQueueConfig;
|
|
190
|
+
case 'testnet':
|
|
191
|
+
return TestnetEntryQueueConfig;
|
|
192
|
+
case 'staging-ignition':
|
|
193
|
+
return StagingIgnitionEntryQueueConfig;
|
|
155
194
|
default:
|
|
156
|
-
throw new Error(
|
|
195
|
+
throw new Error(`Unrecognized network name: ${networkName}`);
|
|
157
196
|
}
|
|
158
197
|
};
|
|
159
198
|
export const l1ContractsConfigMappings = {
|
|
@@ -192,6 +231,11 @@ export const l1ContractsConfigMappings = {
|
|
|
192
231
|
description: 'The minimum stake for a validator.',
|
|
193
232
|
...bigintConfigHelper(DefaultL1ContractsConfig.ejectionThreshold)
|
|
194
233
|
},
|
|
234
|
+
localEjectionThreshold: {
|
|
235
|
+
env: 'AZTEC_LOCAL_EJECTION_THRESHOLD',
|
|
236
|
+
description: 'The local ejection threshold for a validator. Stricter than ejectionThreshold but local to a specific rollup',
|
|
237
|
+
...bigintConfigHelper(DefaultL1ContractsConfig.localEjectionThreshold)
|
|
238
|
+
},
|
|
195
239
|
slashingOffsetInRounds: {
|
|
196
240
|
env: 'AZTEC_SLASHING_OFFSET_IN_ROUNDS',
|
|
197
241
|
description: 'How many slashing rounds back we slash (ie when slashing in round N, we slash for offenses committed during epochs of round N-offset)',
|
|
@@ -12,7 +12,7 @@ export declare class EmpireSlashingProposerContract extends EventEmitter impleme
|
|
|
12
12
|
private readonly logger;
|
|
13
13
|
private readonly proposer;
|
|
14
14
|
readonly type: "empire";
|
|
15
|
-
constructor(client: ViemClient, address: Hex);
|
|
15
|
+
constructor(client: ViemClient, address: Hex | EthAddress);
|
|
16
16
|
get address(): EthAddress;
|
|
17
17
|
getQuorumSize(): Promise<bigint>;
|
|
18
18
|
getRoundSize(): Promise<bigint>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empire_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_slashing_proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAK3D,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,GAAG,EACR,KAAK,mBAAmB,EAGzB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,KAAK,WAAW,EAA8D,MAAM,kBAAkB,CAAC;AAEhH,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,KAAK,EAAE,MAAM;CAG1B;AAED,qBAAa,8BAA+B,SAAQ,YAAa,YAAW,WAAW;aAOnE,MAAM,EAAE,UAAU;IANpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+D;IACtF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsE;IAE/F,SAAgB,IAAI,EAAG,QAAQ,CAAU;gBAGvB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"empire_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_slashing_proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAK3D,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,GAAG,EACR,KAAK,mBAAmB,EAGzB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,KAAK,WAAW,EAA8D,MAAM,kBAAkB,CAAC;AAEhH,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,KAAK,EAAE,MAAM;CAG1B;AAED,qBAAa,8BAA+B,SAAQ,YAAa,YAAW,WAAW;aAOnE,MAAM,EAAE,UAAU;IANpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+D;IACtF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsE;IAE/F,SAAgB,IAAI,EAAG,QAAQ,CAAU;gBAGvB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU;IAU3B,IAAW,OAAO,eAEjB;IAEM,aAAa;IAIb,YAAY;IAIZ,mBAAmB;IAInB,yBAAyB;IAIzB,eAAe;IAIf,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C,WAAW;IAIL,YAAY,CACvB,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAI/E,iBAAiB,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAInF,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW;IAOxC,gCAAgC,CAC3C,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,GACjD,OAAO,CAAC,WAAW,CAAC;IAehB,2BAA2B,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO;IAiBlG,wBAAwB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO;IAgB/F,oBAAoB,CACzB,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO;IAiBjG,6EAA6E;IACtE,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAW3D,qEAAqE;IAC9D,+BAA+B,CAAC,IAAI,EAAE,GAAG,EAAE;;;;;;;IAIlD;;;;;;OAMG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,sBAAsB,GAAE,MAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAe3E,YAAY,CACvB,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,UAAU,CAAC,OAAO,OAAO,CAAC,yBAAyB,CAAC;CAiDxD"}
|
|
@@ -19,7 +19,7 @@ export class EmpireSlashingProposerContract extends EventEmitter {
|
|
|
19
19
|
constructor(client, address){
|
|
20
20
|
super(), this.client = client, this.logger = createLogger('ethereum:contracts:empire_slashing_proposer'), this.type = 'empire';
|
|
21
21
|
this.proposer = getContract({
|
|
22
|
-
address,
|
|
22
|
+
address: typeof address === 'string' ? address : address.toString(),
|
|
23
23
|
abi: EmpireSlashingProposerAbi,
|
|
24
24
|
client
|
|
25
25
|
});
|
|
@@ -81,6 +81,7 @@ export declare class RollupContract {
|
|
|
81
81
|
getSlotDuration(): Promise<bigint>;
|
|
82
82
|
getTargetCommitteeSize(): Promise<bigint>;
|
|
83
83
|
getEjectionThreshold(): Promise<bigint>;
|
|
84
|
+
getLocalEjectionThreshold(): Promise<bigint>;
|
|
84
85
|
getActivationThreshold(): Promise<bigint>;
|
|
85
86
|
getExitDelay(): Promise<bigint>;
|
|
86
87
|
getManaTarget(): Promise<bigint>;
|
|
@@ -101,11 +102,11 @@ export declare class RollupContract {
|
|
|
101
102
|
epochDuration: number;
|
|
102
103
|
proofSubmissionEpochs: number;
|
|
103
104
|
}>;
|
|
104
|
-
|
|
105
|
+
getSlasherAddress(): Promise<`0x${string}`>;
|
|
105
106
|
/**
|
|
106
107
|
* Returns a SlasherContract instance for interacting with the slasher contract.
|
|
107
108
|
*/
|
|
108
|
-
getSlasherContract(): Promise<SlasherContract>;
|
|
109
|
+
getSlasherContract(): Promise<SlasherContract | undefined>;
|
|
109
110
|
getOwner(): Promise<`0x${string}`>;
|
|
110
111
|
getActiveAttesterCount(): Promise<bigint>;
|
|
111
112
|
getSlashingProposerAddress(): Promise<EthAddress>;
|
|
@@ -155,6 +156,7 @@ export declare class RollupContract {
|
|
|
155
156
|
ViemHeader,
|
|
156
157
|
ViemCommitteeAttestations,
|
|
157
158
|
`0x${string}`[],
|
|
159
|
+
ViemSignature,
|
|
158
160
|
`0x${string}`,
|
|
159
161
|
`0x${string}`,
|
|
160
162
|
{
|
|
@@ -162,13 +164,6 @@ export declare class RollupContract {
|
|
|
162
164
|
ignoreSignatures: boolean;
|
|
163
165
|
}
|
|
164
166
|
], account: `0x${string}` | Account): Promise<void>;
|
|
165
|
-
/**
|
|
166
|
-
* Packs an array of committee attestations into the format expected by the Solidity contract
|
|
167
|
-
*
|
|
168
|
-
* @param attestations - Array of committee attestations with addresses and signatures
|
|
169
|
-
* @returns Packed attestations with bitmap and tightly packed signature/address data
|
|
170
|
-
*/
|
|
171
|
-
static packAttestations(attestations: ViemCommitteeAttestation[]): ViemCommitteeAttestations;
|
|
172
167
|
/**
|
|
173
168
|
* @notice Calls `canProposeAtTime` with the time of the next Ethereum block and the sender address
|
|
174
169
|
*
|
|
@@ -192,9 +187,9 @@ export declare class RollupContract {
|
|
|
192
187
|
*/
|
|
193
188
|
makePendingBlockNumberOverride(forcePendingBlockNumber: number | undefined): Promise<StateOverride>;
|
|
194
189
|
/** Creates a request to Rollup#invalidateBadAttestation to be simulated or sent */
|
|
195
|
-
buildInvalidateBadAttestationRequest(blockNumber: number,
|
|
190
|
+
buildInvalidateBadAttestationRequest(blockNumber: number, attestationsAndSigners: ViemCommitteeAttestations, committee: EthAddress[], invalidIndex: number): L1TxRequest;
|
|
196
191
|
/** Creates a request to Rollup#invalidateInsufficientAttestations to be simulated or sent */
|
|
197
|
-
buildInvalidateInsufficientAttestationsRequest(blockNumber: number,
|
|
192
|
+
buildInvalidateInsufficientAttestationsRequest(blockNumber: number, attestationsAndSigners: ViemCommitteeAttestations, committee: EthAddress[]): L1TxRequest;
|
|
198
193
|
/** Calls getHasSubmitted directly. Returns whether the given prover has submitted a proof with the given length for the given epoch. */
|
|
199
194
|
getHasSubmittedProof(epochNumber: number, numberOfBlocksInEpoch: number, prover: Hex | EthAddress): Promise<boolean>;
|
|
200
195
|
getManaBaseFeeAt(timestamp: bigint, inFeeAsset: boolean): Promise<bigint>;
|
|
@@ -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;
|
|
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
|
@@ -8,9 +8,8 @@ import { memoize } from '@aztec/foundation/decorators';
|
|
|
8
8
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
9
9
|
import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
|
|
10
10
|
import { RollupStorage } from '@aztec/l1-artifacts/RollupStorage';
|
|
11
|
-
import { SlasherAbi } from '@aztec/l1-artifacts/SlasherAbi';
|
|
12
11
|
import chunk from 'lodash.chunk';
|
|
13
|
-
import { encodeFunctionData,
|
|
12
|
+
import { encodeFunctionData, getContract, hexToBigInt, keccak256 } from 'viem';
|
|
14
13
|
import { getPublicClient } from '../client.js';
|
|
15
14
|
import { formatViemError } from '../utils.js';
|
|
16
15
|
import { EmpireSlashingProposerContract } from './empire_slashing_proposer.js';
|
|
@@ -68,16 +67,11 @@ export class RollupContract {
|
|
|
68
67
|
return this.rollup;
|
|
69
68
|
}
|
|
70
69
|
async getSlashingProposer() {
|
|
71
|
-
const
|
|
72
|
-
if (
|
|
70
|
+
const slasher = await this.getSlasherContract();
|
|
71
|
+
if (!slasher) {
|
|
73
72
|
return undefined;
|
|
74
73
|
}
|
|
75
|
-
const
|
|
76
|
-
address: slasherAddress,
|
|
77
|
-
abi: SlasherAbi,
|
|
78
|
-
client: this.client
|
|
79
|
-
});
|
|
80
|
-
const proposerAddress = await slasher.read.PROPOSER();
|
|
74
|
+
const proposerAddress = await slasher.getProposer();
|
|
81
75
|
const proposerAbi = [
|
|
82
76
|
{
|
|
83
77
|
type: 'function',
|
|
@@ -94,7 +88,7 @@ export class RollupContract {
|
|
|
94
88
|
}
|
|
95
89
|
];
|
|
96
90
|
const proposer = getContract({
|
|
97
|
-
address: proposerAddress,
|
|
91
|
+
address: proposerAddress.toString(),
|
|
98
92
|
abi: proposerAbi,
|
|
99
93
|
client: this.client
|
|
100
94
|
});
|
|
@@ -128,6 +122,9 @@ export class RollupContract {
|
|
|
128
122
|
getEjectionThreshold() {
|
|
129
123
|
return this.rollup.read.getEjectionThreshold();
|
|
130
124
|
}
|
|
125
|
+
getLocalEjectionThreshold() {
|
|
126
|
+
return this.rollup.read.getLocalEjectionThreshold();
|
|
127
|
+
}
|
|
131
128
|
getActivationThreshold() {
|
|
132
129
|
return this.rollup.read.getActivationThreshold();
|
|
133
130
|
}
|
|
@@ -175,14 +172,17 @@ export class RollupContract {
|
|
|
175
172
|
proofSubmissionEpochs: Number(proofSubmissionEpochs)
|
|
176
173
|
};
|
|
177
174
|
}
|
|
178
|
-
|
|
175
|
+
getSlasherAddress() {
|
|
179
176
|
return this.rollup.read.getSlasher();
|
|
180
177
|
}
|
|
181
178
|
/**
|
|
182
179
|
* Returns a SlasherContract instance for interacting with the slasher contract.
|
|
183
180
|
*/ async getSlasherContract() {
|
|
184
|
-
const slasherAddress = await this.
|
|
185
|
-
|
|
181
|
+
const slasherAddress = EthAddress.fromString(await this.getSlasherAddress());
|
|
182
|
+
if (slasherAddress.isZero()) {
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
return new SlasherContract(this.client, slasherAddress);
|
|
186
186
|
}
|
|
187
187
|
getOwner() {
|
|
188
188
|
return this.rollup.read.owner();
|
|
@@ -191,13 +191,11 @@ export class RollupContract {
|
|
|
191
191
|
return this.rollup.read.getActiveAttesterCount();
|
|
192
192
|
}
|
|
193
193
|
async getSlashingProposerAddress() {
|
|
194
|
-
const
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
});
|
|
200
|
-
return EthAddress.fromString(await slasher.read.PROPOSER());
|
|
194
|
+
const slasher = await this.getSlasherContract();
|
|
195
|
+
if (!slasher) {
|
|
196
|
+
return EthAddress.ZERO;
|
|
197
|
+
}
|
|
198
|
+
return await slasher.getProposer();
|
|
201
199
|
}
|
|
202
200
|
getBlockReward() {
|
|
203
201
|
return this.rollup.read.getBlockReward();
|
|
@@ -352,64 +350,6 @@ export class RollupContract {
|
|
|
352
350
|
}
|
|
353
351
|
}
|
|
354
352
|
/**
|
|
355
|
-
* Packs an array of committee attestations into the format expected by the Solidity contract
|
|
356
|
-
*
|
|
357
|
-
* @param attestations - Array of committee attestations with addresses and signatures
|
|
358
|
-
* @returns Packed attestations with bitmap and tightly packed signature/address data
|
|
359
|
-
*/ static packAttestations(attestations) {
|
|
360
|
-
const length = attestations.length;
|
|
361
|
-
// Calculate bitmap size (1 bit per attestation, rounded up to nearest byte)
|
|
362
|
-
const bitmapSize = Math.ceil(length / 8);
|
|
363
|
-
const signatureIndices = new Uint8Array(bitmapSize);
|
|
364
|
-
// Calculate total data size needed
|
|
365
|
-
let totalDataSize = 0;
|
|
366
|
-
for(let i = 0; i < length; i++){
|
|
367
|
-
const signature = attestations[i].signature;
|
|
368
|
-
// Check if signature is empty (v = 0)
|
|
369
|
-
const isEmpty = signature.v === 0;
|
|
370
|
-
if (!isEmpty) {
|
|
371
|
-
totalDataSize += 65; // v (1) + r (32) + s (32)
|
|
372
|
-
} else {
|
|
373
|
-
totalDataSize += 20; // address only
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
const signaturesOrAddresses = new Uint8Array(totalDataSize);
|
|
377
|
-
let dataIndex = 0;
|
|
378
|
-
// Pack the data
|
|
379
|
-
for(let i = 0; i < length; i++){
|
|
380
|
-
const attestation = attestations[i];
|
|
381
|
-
const signature = attestation.signature;
|
|
382
|
-
// Check if signature is empty
|
|
383
|
-
const isEmpty = signature.v === 0;
|
|
384
|
-
if (!isEmpty) {
|
|
385
|
-
// Set bit in bitmap (bit 7-0 in each byte, left to right)
|
|
386
|
-
const byteIndex = Math.floor(i / 8);
|
|
387
|
-
const bitIndex = 7 - i % 8;
|
|
388
|
-
signatureIndices[byteIndex] |= 1 << bitIndex;
|
|
389
|
-
// Pack signature: v + r + s
|
|
390
|
-
signaturesOrAddresses[dataIndex] = signature.v;
|
|
391
|
-
dataIndex++;
|
|
392
|
-
// Pack r (32 bytes)
|
|
393
|
-
const rBytes = Buffer.from(signature.r.slice(2), 'hex');
|
|
394
|
-
signaturesOrAddresses.set(rBytes, dataIndex);
|
|
395
|
-
dataIndex += 32;
|
|
396
|
-
// Pack s (32 bytes)
|
|
397
|
-
const sBytes = Buffer.from(signature.s.slice(2), 'hex');
|
|
398
|
-
signaturesOrAddresses.set(sBytes, dataIndex);
|
|
399
|
-
dataIndex += 32;
|
|
400
|
-
} else {
|
|
401
|
-
// Pack address only (20 bytes)
|
|
402
|
-
const addrBytes = Buffer.from(attestation.addr.slice(2), 'hex');
|
|
403
|
-
signaturesOrAddresses.set(addrBytes, dataIndex);
|
|
404
|
-
dataIndex += 20;
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
return {
|
|
408
|
-
signatureIndices: `0x${Buffer.from(signatureIndices).toString('hex')}`,
|
|
409
|
-
signaturesOrAddresses: `0x${Buffer.from(signaturesOrAddresses).toString('hex')}`
|
|
410
|
-
};
|
|
411
|
-
}
|
|
412
|
-
/**
|
|
413
353
|
* @notice Calls `canProposeAtTime` with the time of the next Ethereum block and the sender address
|
|
414
354
|
*
|
|
415
355
|
* @dev Throws if unable to propose
|
|
@@ -473,7 +413,7 @@ export class RollupContract {
|
|
|
473
413
|
}
|
|
474
414
|
];
|
|
475
415
|
}
|
|
476
|
-
/** Creates a request to Rollup#invalidateBadAttestation to be simulated or sent */ buildInvalidateBadAttestationRequest(blockNumber,
|
|
416
|
+
/** Creates a request to Rollup#invalidateBadAttestation to be simulated or sent */ buildInvalidateBadAttestationRequest(blockNumber, attestationsAndSigners, committee, invalidIndex) {
|
|
477
417
|
return {
|
|
478
418
|
to: this.address,
|
|
479
419
|
data: encodeFunctionData({
|
|
@@ -481,14 +421,14 @@ export class RollupContract {
|
|
|
481
421
|
functionName: 'invalidateBadAttestation',
|
|
482
422
|
args: [
|
|
483
423
|
BigInt(blockNumber),
|
|
484
|
-
|
|
424
|
+
attestationsAndSigners,
|
|
485
425
|
committee.map((addr)=>addr.toString()),
|
|
486
426
|
BigInt(invalidIndex)
|
|
487
427
|
]
|
|
488
428
|
})
|
|
489
429
|
};
|
|
490
430
|
}
|
|
491
|
-
/** Creates a request to Rollup#invalidateInsufficientAttestations to be simulated or sent */ buildInvalidateInsufficientAttestationsRequest(blockNumber,
|
|
431
|
+
/** Creates a request to Rollup#invalidateInsufficientAttestations to be simulated or sent */ buildInvalidateInsufficientAttestationsRequest(blockNumber, attestationsAndSigners, committee) {
|
|
492
432
|
return {
|
|
493
433
|
to: this.address,
|
|
494
434
|
data: encodeFunctionData({
|
|
@@ -496,7 +436,7 @@ export class RollupContract {
|
|
|
496
436
|
functionName: 'invalidateInsufficientAttestations',
|
|
497
437
|
args: [
|
|
498
438
|
BigInt(blockNumber),
|
|
499
|
-
|
|
439
|
+
attestationsAndSigners,
|
|
500
440
|
committee.map((addr)=>addr.toString())
|
|
501
441
|
]
|
|
502
442
|
})
|
|
@@ -677,6 +617,9 @@ _ts_decorate([
|
|
|
677
617
|
_ts_decorate([
|
|
678
618
|
memoize
|
|
679
619
|
], RollupContract.prototype, "getEjectionThreshold", null);
|
|
620
|
+
_ts_decorate([
|
|
621
|
+
memoize
|
|
622
|
+
], RollupContract.prototype, "getLocalEjectionThreshold", null);
|
|
680
623
|
_ts_decorate([
|
|
681
624
|
memoize
|
|
682
625
|
], RollupContract.prototype, "getActivationThreshold", null);
|
|
@@ -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;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EACL,KAAK,KAAK,EACV,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,GAAG,EACR,KAAK,iBAAiB,EAUvB,MAAM,MAAM,CAAC;AAKd,OAAO,EACL,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_l1_contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { concatHex, encodeAbiParameters, encodeDeployData, encodeFunctionData, g
|
|
|
10
10
|
import { foundry } from 'viem/chains';
|
|
11
11
|
import { isAnvilTestChain } from './chain.js';
|
|
12
12
|
import { createExtendedL1Client } from './client.js';
|
|
13
|
-
import { getEntryQueueConfig,
|
|
13
|
+
import { getEntryQueueConfig, getGovernanceConfiguration, getRewardBoostConfig, getRewardConfig, validateConfig } from './config.js';
|
|
14
14
|
import { GSEContract } from './contracts/gse.js';
|
|
15
15
|
import { deployMulticall3 } from './contracts/multicall.js';
|
|
16
16
|
import { RegistryContract } from './contracts/registry.js';
|
|
@@ -22,7 +22,7 @@ import { ZK_PASSPORT_DOMAIN, ZK_PASSPORT_SCOPE, ZK_PASSPORT_VERIFIER_ADDRESS } f
|
|
|
22
22
|
export const DEPLOYER_ADDRESS = '0x4e59b44847b379578588920cA78FbF26c0B4956C';
|
|
23
23
|
const networkName = getActiveNetworkName();
|
|
24
24
|
export const deploySharedContracts = async (l1Client, deployer, args, logger)=>{
|
|
25
|
-
logger.info(`Deploying shared contracts for network
|
|
25
|
+
logger.info(`Deploying shared contracts for network configuration: ${networkName}`);
|
|
26
26
|
const txHashes = [];
|
|
27
27
|
const feeAssetAddress = await deployer.deploy(FeeAssetArtifact, [
|
|
28
28
|
'FeeJuice',
|
|
@@ -36,12 +36,11 @@ export const deploySharedContracts = async (l1Client, deployer, args, logger)=>{
|
|
|
36
36
|
l1Client.account.address
|
|
37
37
|
]);
|
|
38
38
|
logger.verbose(`Deployed Staking Asset at ${stakingAssetAddress}`);
|
|
39
|
-
const gseConfiguration = getGSEConfiguration(networkName);
|
|
40
39
|
const gseAddress = await deployer.deploy(GSEArtifact, [
|
|
41
40
|
l1Client.account.address,
|
|
42
41
|
stakingAssetAddress.toString(),
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
args.activationThreshold,
|
|
43
|
+
args.ejectionThreshold
|
|
45
44
|
]);
|
|
46
45
|
logger.verbose(`Deployed GSE at ${gseAddress}`);
|
|
47
46
|
const registryAddress = await deployer.deploy(RegistryArtifact, [
|
|
@@ -322,7 +321,8 @@ function slasherFlavorToSolidityEnum(flavor) {
|
|
|
322
321
|
args.slashAmountSmall,
|
|
323
322
|
args.slashAmountMedium,
|
|
324
323
|
args.slashAmountLarge
|
|
325
|
-
]
|
|
324
|
+
],
|
|
325
|
+
localEjectionThreshold: args.localEjectionThreshold
|
|
326
326
|
};
|
|
327
327
|
const genesisStateArgs = {
|
|
328
328
|
vkTreeRoot: args.vkTreeRoot.toString(),
|
|
@@ -814,7 +814,7 @@ export const cheat_initializeFeeAssetHandler = async (extendedClient, deployer,
|
|
|
814
814
|
});
|
|
815
815
|
// Include Slasher and SlashingProposer (if deployed) in verification data
|
|
816
816
|
try {
|
|
817
|
-
const slasherAddrHex = await rollup.
|
|
817
|
+
const slasherAddrHex = await rollup.getSlasherAddress();
|
|
818
818
|
const slasherAddr = EthAddress.fromString(slasherAddrHex);
|
|
819
819
|
if (!slasherAddr.isZero()) {
|
|
820
820
|
// Slasher constructor: (address _vetoer, address _governance)
|