@@ -20,7 +20,7 @@ The repository contains bash scripts for deploying the DAO across various enviro
20
20
21
21
- Local Node Deployment - ` scripts/dao-local-deploy.sh ` (Supports Ganache, Anvil, Hardhat Network, and other local
22
22
Ethereum nodes)
23
- - Holešky Testnet Deployment – ` scripts/dao-holesky-deploy.sh `
23
+ - Holesky Testnet Deployment – ` scripts/dao-holesky-deploy.sh `
24
24
25
25
The protocol requires configuration of numerous parameters for a scratch deployment. The default configurations are
26
26
stored in JSON files named ` deployed-<deploy env>-defaults.json ` , where ` <deploy env> ` represents the target
@@ -102,7 +102,7 @@ mnemonic.
102
102
103
103
Follow these steps for local deployment:
104
104
105
- 1 . Run ` yarn install ` (get sure repo dependencies are installed)
105
+ 1 . Run ` yarn install ` (ensure repo dependencies are installed)
106
106
2 . Run the node on port 8555 (for the commands, see subsections below)
107
107
3 . Run the deploy script ` bash scripts/dao-local-deploy.sh ` from root repo directory
108
108
4 . Check out the deploy artifacts in ` deployed-local.json `
@@ -121,9 +121,9 @@ anvil -p 8555 --mnemonic "test test test test test test test test test test test
121
121
yarn hardhat node
122
122
```
123
123
124
- ### Holešky Testnet Deployment
124
+ ### Holesky Testnet Deployment
125
125
126
- To do Holešky deployment, the following parameters must be set up via env variables:
126
+ To do Holesky deployment, the following parameters must be set up via env variables:
127
127
128
128
- ` DEPLOYER ` . The deployer address. The deployer must own its private key. To ensure proper operation, it should have an
129
129
adequate amount of ether. The total deployment gas cost is approximately 120,000,000 gas, and this cost can vary based
@@ -134,27 +134,27 @@ To do Holešky deployment, the following parameters must be set up via env varia
134
134
- ` GAS_MAX_FEE ` . Gas max fee. By default set to ` 100 `
135
135
- ` GATE_SEAL_FACTORY ` . Address of the [ GateSeal Factory] ( https://github.com/lidofinance/gate-seals ) contract. Must be
136
136
deployed in advance. Can be set to any ` 0x0000000000000000000000000000000000000000 ` to debug deployment
137
- - ` WITHDRAWAL_QUEUE_BASE_URI ` . BaseURI for WithdrawalQueueERC712 . By default not set (left an empty string)
137
+ - ` WITHDRAWAL_QUEUE_BASE_URI ` . BaseURI for WithdrawalQueueERC721 . By default not set (left an empty string)
138
138
- ` DSM_PREDEFINED_ADDRESS ` . Address to use instead of deploying ` DepositSecurityModule ` or ` null ` otherwise. If used,
139
139
the deposits can be made by calling ` Lido.deposit ` from the address.
140
140
141
141
Also you need to specify ` DEPLOYER ` private key in ` accounts.json ` under ` /eth/holesky ` like ` "holesky": ["<key>"] ` . See
142
142
` accounts.sample.json ` for an example.
143
143
144
- To start the deployment, run (the env variables must already defined) from the root repo directory:
144
+ To start the deployment, run (the env variables must already be defined) from the root repo directory, e.g. :
145
145
146
146
``` shell
147
147
bash scripts/scratch/dao-holesky-deploy.sh
148
148
```
149
149
150
- Deploy artifacts information will be stored in ` deployed-holesky.json ` .
150
+ Deployment artifacts information will be stored in ` deployed-holesky.json ` .
151
151
152
152
## Post-Deployment Tasks
153
153
154
154
### Publishing Sources to Etherscan
155
155
156
156
``` shell
157
- NETWORK= < PUT-YOUR-VALUE > RPC_URL= < PUT-YOUR-VALUE > bash ./scripts/verify-contracts-code.sh
157
+ yarn verify:deployed --network < network > (--file < path-to-deployed-json > )
158
158
```
159
159
160
160
#### Issues with verification of part of the contracts deployed from factories
@@ -169,18 +169,18 @@ There are some contracts deployed from other contracts for which automatic hardh
169
169
- ` CallsScript ` -- Aragon internal contract
170
170
- ` EVMScriptRegistry ` -- Aragon internal contract
171
171
172
- The workaround used during Holešky deployment is to deploy auxiliary instances of these contracts standalone and verify
172
+ The workaround used during Holesky deployment is to deploy auxiliary instances of these contracts standalone and verify
173
173
them via hardhat Etherscan plugin. After this Etherscan will mark the target contracts as verified by "Similar Match
174
174
Source Code".
175
175
176
- NB, that some contracts require additional auxiliary contract to be deployed. Namely, the constructor of
176
+ Note that some contracts require additional auxiliary contracts to be deployed. Namely, the constructor of
177
177
` AppProxyPinned ` depends on proxy implementation ("base" in Aragon terms) contract with ` initialize() ` function and
178
178
` Kernel ` contract, which must return the implementation by call ` kernel().getApp(KERNEL_APP_BASES_NAMESPACE, _appId) ` .
179
179
See ` @aragon/os/contracts/apps/AppProxyBase.sol ` for the details.
180
180
181
181
### Initialization to Fully Operational State
182
182
183
- In order to make the protocol fully operational, the additional steps are required:
183
+ In order to make the protocol fully operational, the following additional steps are required:
184
184
185
185
- add oracle committee members to ` HashConsensus ` contracts for ` AccountingOracle ` and ` ValidatorsExitBusOracle ` :
186
186
` HashConsensus.addMember ` ;
@@ -194,7 +194,7 @@ In order to make the protocol fully operational, the additional steps are requir
194
194
- set staking limits for the Node Operators: ` NodeOperatorsRegistry.setNodeOperatorStakingLimit ` .
195
195
196
196
> [ !NOTE]
197
- > That part of the actions require prior granting of the required roles, e.g. ` STAKING_MODULE_MANAGE_ROLE ` for
197
+ > Some of these actions require prior granting of the required roles, e.g. ` STAKING_MODULE_MANAGE_ROLE ` for
198
198
> ` StakingRouter.addStakingModule ` :
199
199
200
200
``` js
@@ -215,7 +215,7 @@ await stakingRouter.renounceRole(STAKING_MODULE_MANAGE_ROLE, agent.address, { fr
215
215
216
216
## Protocol Parameters
217
217
218
- This section describes part of the parameters and their values used at the deployment. The values are specified in
218
+ This section describes part of the parameters and their values used during deployment. The values are specified in
219
219
` deployed-testnet-defaults.json ` .
220
220
221
221
### OracleDaemonConfig
@@ -225,23 +225,23 @@ This section describes part of the parameters and their values used at the deplo
225
225
# See https://research.lido.fi/t/withdrawals-for-lido-on-ethereum-bunker-mode-design-and-implementation/3890/4
226
226
# and https://snapshot.org/#/lido-snapshot.eth/proposal/0xa4eb1220a15d46a1825d5a0f44de1b34644d4aa6bb95f910b86b29bb7654e330
227
227
# NB: BASE_REWARD_FACTOR: https://ethereum.github.io/consensus-specs/specs/phase0/beacon-chain/#rewards-and-penalties
228
- NORMALIZED_CL_REWARD_PER_EPOCH = 64
229
- NORMALIZED_CL_REWARD_MISTAKE_RATE_BP = 1000 # 10%
230
- REBASE_CHECK_NEAREST_EPOCH_DISTANCE = 1
231
- REBASE_CHECK_DISTANT_EPOCH_DISTANCE = 23 # 10% of AO 225 epochs frame
232
- VALIDATOR_DELAYED_TIMEOUT_IN_SLOTS = 7200 # 1 day
228
+ NORMALIZED_CL_REWARD_PER_EPOCH = 64
229
+ NORMALIZED_CL_REWARD_MISTAKE_RATE_BP = 1000 # 10%
230
+ REBASE_CHECK_NEAREST_EPOCH_DISTANCE = 1
231
+ REBASE_CHECK_DISTANT_EPOCH_DISTANCE = 23 # 10% of AO 225 epochs frame
232
+ VALIDATOR_DELAYED_TIMEOUT_IN_SLOTS = 7200 # 1 day
233
233
234
234
# See https://snapshot.org/#/lido-snapshot.eth/proposal/0xa4eb1220a15d46a1825d5a0f44de1b34644d4aa6bb95f910b86b29bb7654e330 for "Requirement not be considered Delinquent"
235
- VALIDATOR_DELINQUENT_TIMEOUT_IN_SLOTS = 28800 # 4 days
235
+ VALIDATOR_DELINQUENT_TIMEOUT_IN_SLOTS = 28800 # 4 days
236
236
237
237
# See "B.3.I" of https://snapshot.org/#/lido-snapshot.eth/proposal/0xa4eb1220a15d46a1825d5a0f44de1b34644d4aa6bb95f910b86b29bb7654e330
238
- NODE_OPERATOR_NETWORK_PENETRATION_THRESHOLD_BP = 100 # 1% network penetration for a single NO
238
+ NODE_OPERATOR_NETWORK_PENETRATION_THRESHOLD_BP = 100 # 1% network penetration for a single NO
239
239
240
240
# Time period of historical observations used for prediction of the rewards amount
241
241
# see https://research.lido.fi/t/withdrawals-for-lido-on-ethereum-bunker-mode-design-and-implementation/3890/4
242
- PREDICTION_DURATION_IN_SLOTS = 50400 # 7 days
242
+ PREDICTION_DURATION_IN_SLOTS = 50400 # 7 days
243
243
244
244
# Max period of delay for requests finalization in case of bunker due to negative rebase
245
245
# twice min governance response time - 3 days voting duration
246
- FINALIZATION_MAX_NEGATIVE_REBASE_EPOCH_SHIFT = 1350 # 6 days
246
+ FINALIZATION_MAX_NEGATIVE_REBASE_EPOCH_SHIFT = 1350 # 6 days
247
247
```
0 commit comments