Skip to content

Commit 0a63e68

Browse files
authored
Merge pull request #208 from lidofinance/feat/sepolia
feat: add Sepolia support
2 parents 6a72336 + a5eb329 commit 0a63e68

File tree

4 files changed

+116
-33
lines changed

4 files changed

+116
-33
lines changed

README.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -83,26 +83,29 @@ By default, you should start composing new scripts and test using forked network
8383
You have three forked networks to work with:
8484

8585
- `mainnet-fork`
86-
- `goerli-fork`
8786
- `holesky-fork`
87+
- `sepolia-fork`
8888

8989
To start new voting on the live networks you could proceed with:
9090

9191
- `mainnet`
92-
- `goerli`
9392
- `holesky`
93+
- `sepolia`
9494

95-
> Note: you can't run tests on the live networks.
95+
> [!CAUTION]
96+
> You can't run tests on the live networks.
9697
9798
In a typical weekly omnibus workflow, you need only `mainnet-fork` and
9899
`mainnet` networks. In case of large test campaign on Lido upgrades,
99-
it also could be useful to go with `goerli` and `goerli-fork` testnets first.
100-
101-
> **Holesky specifics.**
102-
> Due to Holesky not being supported by Infura yet, setting RPC URL for Holesky is different. Instead of setting `WEB3_INFURA_PROJECT_ID` env variable set `HOLESKY_RPC_URL`.
100+
it also could be useful to go with `holesky` and `holesky-fork` testnets first.
103101

102+
> [!WARNING]
104103
> **Holesky is partially supported.**
105104
> At the moment not all parameters are set in `configs/config_holesky.py` and acceptance/regression/snapshot tests are not operational.
105+
>
106+
> **Sepolia is partially supported.**
107+
> At the moment not all parameters are set in `configs/config_sepolia.py` and acceptance/regression/snapshot tests are not operational.
108+
106109

107110
### Environment variables setup
108111

configs/config_sepolia.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Use this config as address book only
2+
CHAIN_NETWORK_NAME = "sepolia"
3+
# DAO
4+
ARAGON_KERNEL = "0x6155bD199ECcc79Ff4e8B392f6cBD9c9874E8916"
5+
LDO_TOKEN = "0xd06dF83b8ad6D89C86a187fba4Eae918d497BdCB"
6+
# Standard (or forked) Aragon apps
7+
ACL = "0x8A1AA86d35b2EE8C9369618E7D7b40000cCD3295"
8+
AGENT = "0x32A0E5828B62AAb932362a4816ae03b860b65e83"
9+
FINANCE = "0x75c7b1D23f1cad7Fb4D60281d7069E46440BC179"
10+
VOTING = "0x39A0EbdEE54cB319f4F42141daaBDb6ba25D341A"
11+
TOKEN_MANAGER = "0xC73cd4B2A7c1CBC5BF046eB4A7019365558ABF66"
12+
# Our custom Aragon apps
13+
LIDO = "0x3e3FE7dBc6B4C189E7128855dD526361c49b40Af"
14+
LIDO_LEGACY_ORACLE = "0x3483c140EF7F2716460198Ff831a8e53F05F1606"
15+
LIDO_NODE_OPERATORS_REGISTRY = "0x33d6E15047E8644F8DDf5CD05d202dfE587DA6E3"
16+
# Aragon APM Repos
17+
VOTING_REPO = ""
18+
LIDO_LIDO_REPO = ""
19+
LIDO_NODE_OPERATORS_REGISTRY_REPO = ""
20+
LIDO_LEGACY_ORACLE_REPO = ""
21+
22+
DEPOSIT_SECURITY_MODULE_V1 = "0x6885E36BFcb68CB383DfE90023a462C03BCB2AE5"
23+
LIDO_DEPOSIT_SECURITY_MODULE = "0x6885E36BFcb68CB383DfE90023a462C03BCB2AE5"
24+
25+
DUMMY_IMPL = ""
26+
27+
LIDO_LOCATOR = "0x8f6254332f69557A72b0DA2D5F0Bc07d4CA991E7"
28+
BURNER = "0x61Bb0Ef69262d5EF1cc2873cf61766751D99B699"
29+
EXECUTION_LAYER_REWARDS_VAULT = "0x94B1B8e2680882f8652882e7F196169dE3d9a3B2"
30+
HASH_CONSENSUS_FOR_AO = "0x758D8c3CE794b3Dfe3b3A3482B7eD33de2109D95"
31+
ACCOUNTING_ORACLE = "0xd497Be005638efCf09F6BFC8DAFBBB0BB72cD991"
32+
HASH_CONSENSUS_FOR_VEBO = "0x098a952BD200005382aEb3229e38ae39A7616F56"
33+
LIDO_VALIDATORS_EXIT_BUS_ORACLE = "0x7637d44c9f2e9cA584a8B5D2EA493012A5cdaEB6"
34+
ORACLE_REPORT_SANITY_CHECKER = "0xbac2A471443F18aC5C31078b96C5797A78fCc680"
35+
LIDO_WITHDRAWAL_QUEUE = "0x1583C7b3f4C3B008720E6BcE5726336b0aB25fdd"
36+
GATE_SEAL = ""
37+
EIP712_STETH = "0x9726CA9AEFF4BC8FB8C084BdAbdB71608248E3f8"
38+
WITHDRAWAL_VAULT = "0xDe7318Afa67eaD6d6bbC8224dfCe5ed6e4b86d76"
39+
STAKING_ROUTER = "0x4F36aAEb18Ab56A4e380241bea6ebF215b9cb12c"
40+
ORACLE_DAEMON_CONFIG = "0x7bC76076b0f3879b4A750450C0Ccf02c6Ca11220"
41+
42+
INSURANCE_FUND = ""
43+
RELAY_ALLOWED_LIST = ""
44+
45+
LDO_HOLDER_ADDRESS_FOR_TESTS = "0x8360927B5BC431771C21E347eA29529b6eE94b78"
46+
LDO_VOTE_EXECUTORS_FOR_TESTS = [
47+
"0x32A0E5828B62AAb932362a4816ae03b860b65e83",
48+
"0x8360927B5BC431771C21E347eA29529b6eE94b78",
49+
"0xaa6bfBCD634EE744CB8FE522b29ADD23124593D3",
50+
]
51+
52+
ORACLE_COMMITTEE = []
53+
54+
DSM_GUARDIANS = []
55+
56+
WSTETH_TOKEN = "0xB82381A3fBD3FaFA77B3a7bE693342618240067b"
57+
CHAIN_DEPOSIT_CONTRACT = "0x7f02C3E3c98b133055B8B348B2Ac625669Ed295D"

network-config.yaml

Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,30 @@
11
live:
2-
- name: Ethereum
3-
networks:
4-
- chainid: 17000
5-
explorer: https://api-holesky.etherscan.io/api
6-
host: $HOLESKY_RPC_URL
7-
id: holesky
8-
# New backward-compatible multicall contract. multicall2 is missing on Holesky. See https://github.com/mds1/multicall
9-
multicall2: "0xcA11bde05977b3631167028862bE2a173976CA11"
10-
name: Holesky (Infura)
11-
provider: infura
2+
- name: Ethereum
3+
networks:
4+
- chainid: 17000
5+
explorer: https://api-holesky.etherscan.io/api
6+
host: https://holesky.infura.io/v3/$WEB3_INFURA_PROJECT_ID
7+
id: holesky
8+
# multicall2 is missing on Holesky. New backward-compatible multicall contract.
9+
# See https://github.com/mds1/multicall
10+
multicall2: "0xcA11bde05977b3631167028862bE2a173976CA11"
11+
name: Holesky (Infura)
12+
provider: infura
13+
14+
- name: Ethereum
15+
networks:
16+
- chainid: 11155111
17+
explorer: https://api-sepolia.etherscan.io/api
18+
host: https://sepolia.infura.io/v3/$WEB3_INFURA_PROJECT_ID
19+
id: sepolia
20+
# multicall2 is missing on Sepolia. New backward-compatible multicall contract.
21+
# See https://github.com/mds1/multicall
22+
multicall2: "0xcA11bde05977b3631167028862bE2a173976CA11"
23+
name: Sepolia (Infura)
24+
provider: infura
25+
1226
development:
27+
1328
- cmd: ./ganache.sh
1429
cmd_settings:
1530
accounts: 10
@@ -23,6 +38,7 @@ development:
2338
timeout: 360
2439
# https://github.com/mds1/multicall#multicall2-contract-addresses
2540
multicall2: "0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696"
41+
2642
- cmd: ./ganache.sh
2743
cmd_settings:
2844
accounts: 10
@@ -33,20 +49,35 @@ development:
3349
port: 8545
3450
host: http://127.0.0.1
3551
id: goerli-fork
36-
name: goerli-fork
52+
name: Ganache-CLI (Goerli Fork)
3753
timeout: 360
54+
3855
- cmd: ./ganache.sh
3956
cmd_settings:
4057
accounts: 10
4158
chain_id: 17000
42-
fork: $HOLESKY_RPC_URL
59+
fork: holesky
4360
gas_limit: 30000000
4461
mnemonic: brownie
4562
port: 8545
4663
host: http://127.0.0.1
4764
id: holesky-fork
48-
name: holesky-fork
65+
name: Ganache-CLI (Holesky Fork)
4966
timeout: 360
67+
68+
- cmd: ./ganache.sh
69+
cmd_settings:
70+
accounts: 10
71+
chain_id: 11155111
72+
fork: sepolia
73+
gas_limit: 30000000
74+
mnemonic: brownie
75+
port: 8545
76+
host: http://127.0.0.1
77+
id: sepolia-fork
78+
name: Ganache-CLI (Sepolia Fork)
79+
timeout: 360
80+
5081
- cmd: ./ganache.sh
5182
cmd_settings:
5283
accounts: 10
@@ -57,7 +88,7 @@ development:
5788
port: 8545
5889
host: http://127.0.0.1
5990
id: local-fork
60-
name: local-fork
91+
name: Ganache-CLI (Local Fork)
6192
explorer: https://api.etherscan.io/api
6293
timeout: 360
6394
# https://github.com/mds1/multicall#multicall2-contract-addresses

utils/config.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ def network_name() -> Optional[str]:
3232
elif network_name() in ("holesky", "holesky-fork"):
3333
print(f'Using {color("cyan")}config_holesky.py{color} addresses')
3434
from configs.config_holesky import *
35+
elif network_name() in ("sepolia", "sepolia-fork"):
36+
print(f'Using {color("yellow")}config_sepolia.py{color} addresses')
37+
from configs.config_sepolia import *
3538
else:
3639
print(f'Using {color("magenta")}config_mainnet.py{color} addresses')
3740
from configs.config_mainnet import *
@@ -46,6 +49,7 @@ def get_is_live() -> bool:
4649
"local-fork",
4750
"mainnet-fork",
4851
"holesky-fork",
52+
"sepolia-fork",
4953
]
5054
return network.show_active() not in dev_networks
5155

@@ -128,18 +132,6 @@ def prompt_bool() -> Optional[bool]:
128132
sys.stdout.write("Please respond with 'yes' or 'no'")
129133

130134

131-
def get_config_params() -> Dict[str, str]:
132-
if network_name() in ("goerli", "goerli-fork"):
133-
import configs.config_goerli
134-
135-
ret = {x: globals()[x] for x in dir(configs.config_goerli) if not x.startswith("__")}
136-
else:
137-
import configs.config_mainnet
138-
139-
ret = {x: globals()[x] for x in dir(configs.config_mainnet) if not x.startswith("__")}
140-
return ret
141-
142-
143135
class ContractsLazyLoader:
144136
@property
145137
def lido_v1(self) -> interface.LidoV1:

0 commit comments

Comments
 (0)