Skip to content

Commit

Permalink
Merge pull request #208 from lidofinance/feat/sepolia
Browse files Browse the repository at this point in the history
feat: add Sepolia support
  • Loading branch information
tamtamchik authored Apr 24, 2024
2 parents 6a72336 + a5eb329 commit 0a63e68
Show file tree
Hide file tree
Showing 4 changed files with 116 additions and 33 deletions.
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,26 +83,29 @@ By default, you should start composing new scripts and test using forked network
You have three forked networks to work with:

- `mainnet-fork`
- `goerli-fork`
- `holesky-fork`
- `sepolia-fork`

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

- `mainnet`
- `goerli`
- `holesky`
- `sepolia`

> Note: you can't run tests on the live networks.
> [!CAUTION]
> You can't run tests on the live networks.
In a typical weekly omnibus workflow, you need only `mainnet-fork` and
`mainnet` networks. In case of large test campaign on Lido upgrades,
it also could be useful to go with `goerli` and `goerli-fork` testnets first.

> **Holesky specifics.**
> 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`.
it also could be useful to go with `holesky` and `holesky-fork` testnets first.

> [!WARNING]
> **Holesky is partially supported.**
> At the moment not all parameters are set in `configs/config_holesky.py` and acceptance/regression/snapshot tests are not operational.
>
> **Sepolia is partially supported.**
> At the moment not all parameters are set in `configs/config_sepolia.py` and acceptance/regression/snapshot tests are not operational.

### Environment variables setup

Expand Down
57 changes: 57 additions & 0 deletions configs/config_sepolia.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Use this config as address book only
CHAIN_NETWORK_NAME = "sepolia"
# DAO
ARAGON_KERNEL = "0x6155bD199ECcc79Ff4e8B392f6cBD9c9874E8916"
LDO_TOKEN = "0xd06dF83b8ad6D89C86a187fba4Eae918d497BdCB"
# Standard (or forked) Aragon apps
ACL = "0x8A1AA86d35b2EE8C9369618E7D7b40000cCD3295"
AGENT = "0x32A0E5828B62AAb932362a4816ae03b860b65e83"
FINANCE = "0x75c7b1D23f1cad7Fb4D60281d7069E46440BC179"
VOTING = "0x39A0EbdEE54cB319f4F42141daaBDb6ba25D341A"
TOKEN_MANAGER = "0xC73cd4B2A7c1CBC5BF046eB4A7019365558ABF66"
# Our custom Aragon apps
LIDO = "0x3e3FE7dBc6B4C189E7128855dD526361c49b40Af"
LIDO_LEGACY_ORACLE = "0x3483c140EF7F2716460198Ff831a8e53F05F1606"
LIDO_NODE_OPERATORS_REGISTRY = "0x33d6E15047E8644F8DDf5CD05d202dfE587DA6E3"
# Aragon APM Repos
VOTING_REPO = ""
LIDO_LIDO_REPO = ""
LIDO_NODE_OPERATORS_REGISTRY_REPO = ""
LIDO_LEGACY_ORACLE_REPO = ""

DEPOSIT_SECURITY_MODULE_V1 = "0x6885E36BFcb68CB383DfE90023a462C03BCB2AE5"
LIDO_DEPOSIT_SECURITY_MODULE = "0x6885E36BFcb68CB383DfE90023a462C03BCB2AE5"

DUMMY_IMPL = ""

LIDO_LOCATOR = "0x8f6254332f69557A72b0DA2D5F0Bc07d4CA991E7"
BURNER = "0x61Bb0Ef69262d5EF1cc2873cf61766751D99B699"
EXECUTION_LAYER_REWARDS_VAULT = "0x94B1B8e2680882f8652882e7F196169dE3d9a3B2"
HASH_CONSENSUS_FOR_AO = "0x758D8c3CE794b3Dfe3b3A3482B7eD33de2109D95"
ACCOUNTING_ORACLE = "0xd497Be005638efCf09F6BFC8DAFBBB0BB72cD991"
HASH_CONSENSUS_FOR_VEBO = "0x098a952BD200005382aEb3229e38ae39A7616F56"
LIDO_VALIDATORS_EXIT_BUS_ORACLE = "0x7637d44c9f2e9cA584a8B5D2EA493012A5cdaEB6"
ORACLE_REPORT_SANITY_CHECKER = "0xbac2A471443F18aC5C31078b96C5797A78fCc680"
LIDO_WITHDRAWAL_QUEUE = "0x1583C7b3f4C3B008720E6BcE5726336b0aB25fdd"
GATE_SEAL = ""
EIP712_STETH = "0x9726CA9AEFF4BC8FB8C084BdAbdB71608248E3f8"
WITHDRAWAL_VAULT = "0xDe7318Afa67eaD6d6bbC8224dfCe5ed6e4b86d76"
STAKING_ROUTER = "0x4F36aAEb18Ab56A4e380241bea6ebF215b9cb12c"
ORACLE_DAEMON_CONFIG = "0x7bC76076b0f3879b4A750450C0Ccf02c6Ca11220"

INSURANCE_FUND = ""
RELAY_ALLOWED_LIST = ""

LDO_HOLDER_ADDRESS_FOR_TESTS = "0x8360927B5BC431771C21E347eA29529b6eE94b78"
LDO_VOTE_EXECUTORS_FOR_TESTS = [
"0x32A0E5828B62AAb932362a4816ae03b860b65e83",
"0x8360927B5BC431771C21E347eA29529b6eE94b78",
"0xaa6bfBCD634EE744CB8FE522b29ADD23124593D3",
]

ORACLE_COMMITTEE = []

DSM_GUARDIANS = []

WSTETH_TOKEN = "0xB82381A3fBD3FaFA77B3a7bE693342618240067b"
CHAIN_DEPOSIT_CONTRACT = "0x7f02C3E3c98b133055B8B348B2Ac625669Ed295D"
59 changes: 45 additions & 14 deletions network-config.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,30 @@
live:
- name: Ethereum
networks:
- chainid: 17000
explorer: https://api-holesky.etherscan.io/api
host: $HOLESKY_RPC_URL
id: holesky
# New backward-compatible multicall contract. multicall2 is missing on Holesky. See https://github.com/mds1/multicall
multicall2: "0xcA11bde05977b3631167028862bE2a173976CA11"
name: Holesky (Infura)
provider: infura
- name: Ethereum
networks:
- chainid: 17000
explorer: https://api-holesky.etherscan.io/api
host: https://holesky.infura.io/v3/$WEB3_INFURA_PROJECT_ID
id: holesky
# multicall2 is missing on Holesky. New backward-compatible multicall contract.
# See https://github.com/mds1/multicall
multicall2: "0xcA11bde05977b3631167028862bE2a173976CA11"
name: Holesky (Infura)
provider: infura

- name: Ethereum
networks:
- chainid: 11155111
explorer: https://api-sepolia.etherscan.io/api
host: https://sepolia.infura.io/v3/$WEB3_INFURA_PROJECT_ID
id: sepolia
# multicall2 is missing on Sepolia. New backward-compatible multicall contract.
# See https://github.com/mds1/multicall
multicall2: "0xcA11bde05977b3631167028862bE2a173976CA11"
name: Sepolia (Infura)
provider: infura

development:

- cmd: ./ganache.sh
cmd_settings:
accounts: 10
Expand All @@ -23,6 +38,7 @@ development:
timeout: 360
# https://github.com/mds1/multicall#multicall2-contract-addresses
multicall2: "0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696"

- cmd: ./ganache.sh
cmd_settings:
accounts: 10
Expand All @@ -33,20 +49,35 @@ development:
port: 8545
host: http://127.0.0.1
id: goerli-fork
name: goerli-fork
name: Ganache-CLI (Goerli Fork)
timeout: 360

- cmd: ./ganache.sh
cmd_settings:
accounts: 10
chain_id: 17000
fork: $HOLESKY_RPC_URL
fork: holesky
gas_limit: 30000000
mnemonic: brownie
port: 8545
host: http://127.0.0.1
id: holesky-fork
name: holesky-fork
name: Ganache-CLI (Holesky Fork)
timeout: 360

- cmd: ./ganache.sh
cmd_settings:
accounts: 10
chain_id: 11155111
fork: sepolia
gas_limit: 30000000
mnemonic: brownie
port: 8545
host: http://127.0.0.1
id: sepolia-fork
name: Ganache-CLI (Sepolia Fork)
timeout: 360

- cmd: ./ganache.sh
cmd_settings:
accounts: 10
Expand All @@ -57,7 +88,7 @@ development:
port: 8545
host: http://127.0.0.1
id: local-fork
name: local-fork
name: Ganache-CLI (Local Fork)
explorer: https://api.etherscan.io/api
timeout: 360
# https://github.com/mds1/multicall#multicall2-contract-addresses
Expand Down
16 changes: 4 additions & 12 deletions utils/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ def network_name() -> Optional[str]:
elif network_name() in ("holesky", "holesky-fork"):
print(f'Using {color("cyan")}config_holesky.py{color} addresses')
from configs.config_holesky import *
elif network_name() in ("sepolia", "sepolia-fork"):
print(f'Using {color("yellow")}config_sepolia.py{color} addresses')
from configs.config_sepolia import *
else:
print(f'Using {color("magenta")}config_mainnet.py{color} addresses')
from configs.config_mainnet import *
Expand All @@ -46,6 +49,7 @@ def get_is_live() -> bool:
"local-fork",
"mainnet-fork",
"holesky-fork",
"sepolia-fork",
]
return network.show_active() not in dev_networks

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


def get_config_params() -> Dict[str, str]:
if network_name() in ("goerli", "goerli-fork"):
import configs.config_goerli

ret = {x: globals()[x] for x in dir(configs.config_goerli) if not x.startswith("__")}
else:
import configs.config_mainnet

ret = {x: globals()[x] for x in dir(configs.config_mainnet) if not x.startswith("__")}
return ret


class ContractsLazyLoader:
@property
def lido_v1(self) -> interface.LidoV1:
Expand Down

0 comments on commit 0a63e68

Please sign in to comment.