Skip to content

Commit 4435d79

Browse files
committed
feat: csm -> staking module(s)
1 parent 4b0a732 commit 4435d79

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+502
-428
lines changed

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ CONSENSUS_CLIENT_URI=http://...
22
EXECUTION_CLIENT_URI=http://...
33
KEYS_API_URI=https://...
44
LIDO_LOCATOR_ADDRESS=0x1...
5-
CSM_MODULE_ADDRESS=0x...
5+
STAKING_MODULE_ADDRESS=0x...
66
MEMBER_PRIV_KEY=aaa...
77
PINATA_JWT=...
88
STORACHA_AUTH_SECRET=...

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ Describe how you tested the changes:
1414
## Checklist
1515
- [ ] Documentation updated (if required)
1616
- [ ] New tests added (if applicable)
17-
- [ ] `CSM_STATE_VERSION` is bumped (if the new version affects data in the cache)
17+
- [ ] `STAKING_MODULE_STATE_VERSION` is bumped (if the new version affects data in the cache)

.github/workflows/ci-daily-checks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
CONSENSUS_CLIENT_URI: ${{ secrets.CONSENSUS_CLIENT_URI }}
2323
KEYS_API_URI: ${{ secrets.KEYS_API_URI }}
2424
LIDO_LOCATOR_ADDRESS: ${{ secrets.LIDO_LOCATOR_ADDRESS }}
25-
CSM_MODULE_ADDRESS: ${{ secrets.CSM_MODULE_ADDRESS }}
25+
STAKING_MODULE_ADDRESS: ${{ secrets.CSM_MODULE_ADDRESS }}
2626
PINATA_JWT: ${{ secrets.PINATA_JWT }}
2727
PINATA_DEDICATED_GATEWAY_URL: ${{ secrets.PINATA_DEDICATED_GATEWAY_URL }}
2828
PINATA_DEDICATED_GATEWAY_TOKEN: ${{ secrets.PINATA_DEDICATED_GATEWAY_TOKEN}}

.github/workflows/mainnet_fork_tests.yml

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -26,38 +26,6 @@ jobs:
2626
steps:
2727
- uses: actions/checkout@v3
2828

29-
# TODO: Remove after upgrade to CSM v2 on Mainnet.
30-
- name: Checkout CSM repo
31-
uses: actions/checkout@v4
32-
with:
33-
repository: 'lidofinance/community-staking-module'
34-
ref: 'develop'
35-
path: 'testruns/community-staking-module'
36-
persist-credentials: false
37-
38-
- name: Install Foundry
39-
uses: foundry-rs/foundry-toolchain@v1
40-
with:
41-
version: ${{ env.FORGE_REV }}
42-
43-
- name: Install node
44-
uses: actions/setup-node@v4
45-
with:
46-
node-version-file: "testruns/community-staking-module/.nvmrc"
47-
cache: 'yarn'
48-
cache-dependency-path: "testruns/community-staking-module/yarn.lock"
49-
50-
- name: Install Just
51-
run: cargo install "[email protected]"
52-
53-
- name: Install dependencies
54-
working-directory: testruns/community-staking-module
55-
run: just deps
56-
57-
- name: Build contracts
58-
working-directory: testruns/community-staking-module
59-
run: just build
60-
6129
- name: Set up Python 3.12
6230
uses: actions/setup-python@v4
6331
with:
@@ -82,7 +50,7 @@ jobs:
8250
CONSENSUS_CLIENT_URI: ${{ secrets.CONSENSUS_CLIENT_URI }}
8351
KEYS_API_URI: ${{ secrets.KEYS_API_URI }}
8452
LIDO_LOCATOR_ADDRESS: "0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb"
85-
CSM_MODULE_ADDRESS: "0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F"
53+
STAKING_MODULE_ADDRESS: "0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F"
8654
PINATA_JWT: ${{ secrets.PINATA_JWT }}
8755
PINATA_DEDICATED_GATEWAY_URL: ${{ secrets.PINATA_DEDICATED_GATEWAY_URL }}
8856
PINATA_DEDICATED_GATEWAY_TOKEN: ${{ secrets.PINATA_DEDICATED_GATEWAY_TOKEN }}

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
TESTNET_EXECUTION_CLIENT_URI: ${{ secrets.TESTNET_EXECUTION_CLIENT_URI }}
4141
TESTNET_CONSENSUS_CLIENT_URI: ${{ secrets.TESTNET_CONSENSUS_CLIENT_URI }}
4242
TESTNET_KAPI_URI: ${{ secrets.TESTNET_KAPI_URI }}
43-
CSM_MODULE_ADDRESS: "0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F"
43+
STAKING_MODULE_ADDRESS: "0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F"
4444
PINATA_JWT: ${{ secrets.PINATA_JWT }}
4545
PINATA_DEDICATED_GATEWAY_URL: ${{ secrets.PINATA_DEDICATED_GATEWAY_URL }}
4646
PINATA_DEDICATED_GATEWAY_TOKEN: ${{ secrets.PINATA_DEDICATED_GATEWAY_TOKEN }}

README.md

Lines changed: 79 additions & 80 deletions
Large diffs are not rendered by default.

docker-compose.yml

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ services:
2323

2424
postgres:
2525
image: postgres:15
26-
container_name: csm-oracle-postgres
26+
container_name: staking-module-oracle-postgres
2727
environment:
2828
POSTGRES_USER: ${PERFORMANCE_DB_ADMIN_USER:-postgres}
2929
POSTGRES_PASSWORD: ${PERFORMANCE_DB_ADMIN_PASSWORD:-postgres}
@@ -43,7 +43,7 @@ services:
4343
# For external PostgreSQL: set PERFORMANCE_DB_HOST to your external host
4444
init-db:
4545
image: postgres:15
46-
container_name: csm-oracle-init-db
46+
container_name: staking-module-oracle-init-db
4747
depends_on:
4848
postgres:
4949
condition: service_healthy
@@ -62,7 +62,7 @@ services:
6262

6363
performance-collector:
6464
build: .
65-
container_name: csm-oracle-performance-collector
65+
container_name: staking-module-oracle-performance-collector
6666
command: ["-m", "src.main", "performance_collector"]
6767
depends_on:
6868
init-db:
@@ -80,7 +80,7 @@ services:
8080

8181
performance-web:
8282
build: .
83-
container_name: csm-oracle-performance-web
83+
container_name: staking-module-oracle-performance-web
8484
command: ["-m", "src.main", "performance_web_server"]
8585
depends_on:
8686
init-db:
@@ -94,15 +94,15 @@ services:
9494
test: ["CMD", "curl", "-f", "http://localhost:9020/health"]
9595

9696
# ---------------------------------------------------------------------------
97-
# CSM Oracle
97+
# Staking Module Oracles
9898
# ---------------------------------------------------------------------------
9999

100100
csm-oracle:
101101
build: .
102102
container_name: csm-oracle
103103
command: ["-m", "src.main", "csm"]
104104
environment:
105-
CSM_MODULE_ADDRESS: ${CSM_MODULE_ADDRESS}
105+
STAKING_MODULE_ADDRESS: ${STAKING_MODULE_ADDRESS}
106106
CONSENSUS_CLIENT_URI: ${CONSENSUS_CLIENT_URI}
107107
EXECUTION_CLIENT_URI: ${EXECUTION_CLIENT_URI}
108108
KEYS_API_URI: ${KEYS_API_URI}
@@ -119,6 +119,28 @@ services:
119119
<<: *healthcheck-defaults
120120
test: ["CMD", "curl", "-f", "http://localhost:9010/healthcheck"]
121121

122+
# cm-oracle:
123+
# build: .
124+
# container_name: cm-oracle
125+
# command: ["-m", "src.main", "cm"]
126+
# environment:
127+
# STAKING_MODULE_ADDRESS: ${STAKING_MODULE_ADDRESS}
128+
# CONSENSUS_CLIENT_URI: ${CONSENSUS_CLIENT_URI}
129+
# EXECUTION_CLIENT_URI: ${EXECUTION_CLIENT_URI}
130+
# KEYS_API_URI: ${KEYS_API_URI}
131+
# PERFORMANCE_COLLECTOR_URI: http://performance-web:9020/
132+
# LIDO_IPFS_HOST: ${LIDO_IPFS_HOST:-}
133+
# LIDO_IPFS_TOKEN: ${LIDO_IPFS_TOKEN:-}
134+
# PROMETHEUS_PORT: 9000
135+
# HEALTHCHECK_SERVER_PORT: 9010
136+
# ports:
137+
# - "${CSM_ORACLE_PROMETHEUS_PORT:-9002}:9000"
138+
# - "${CSM_ORACLE_HEALTH_PORT:-9012}:9010"
139+
# restart: unless-stopped
140+
# healthcheck:
141+
# <<: *healthcheck-defaults
142+
# test: ["CMD", "curl", "-f", "http://localhost:9010/healthcheck"]
143+
122144
volumes:
123145
postgres-data:
124146

docs/development.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@ export KEYS_API_URI=...
4040
export LIDO_LOCATOR_ADDRESS=...
4141
```
4242

43-
Required variables for CSM module
43+
Required variables for Staking Module Oracle
4444

4545
```bash
4646
export EXECUTION_CLIENT_URI=...
4747
export CONSENSUS_CLIENT_URI=...
4848
export KEYS_API_URI=...
4949
export LIDO_LOCATOR_ADDRESS=...
50-
export CSM_MODULE_ADDRESS=...
50+
export STAKING_MODULE_ADDRESS=...
5151
export MAX_CYCLE_LIFETIME_IN_SECONDS=60000 # Reasonable high value to make sure the oracle has enough time to process the whole frame.
5252
```
5353

@@ -67,6 +67,7 @@ Where `<module>` is one of:
6767
- `accounting`
6868
- `ejector`
6969
- `csm`
70+
- `cm`
7071
- `check`
7172

7273
## Code quality

src/constants.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from packaging.version import Version
22

33
from src.types import Gwei
4+
from src.variables import STAKING_MODULE_ADDRESS
45

56
# https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#misc
67
FAR_FUTURE_EPOCH = 2**64 - 1
@@ -50,7 +51,7 @@
5051
SHARE_RATE_PRECISION_E27 = 10**PRECISION_E27
5152
TOTAL_BASIS_POINTS = 10000
5253

53-
# Lido CSM constants for network performance calculation
54+
# Lido Staking Module constants for network performance calculation
5455
ATTESTATIONS_WEIGHT = 54
5556
BLOCKS_WEIGHT = 8
5657
SYNC_WEIGHT = 2
@@ -62,7 +63,7 @@
6263
UINT256_MAX = 2**256 - 1
6364

6465
ALLOWED_KAPI_VERSION = Version('1.5.0')
65-
CSM_STATE_VERSION = 1
66-
CSM_LOGS_VERSION = 1
66+
STAKING_MODULE_STATE_VERSION = 1
67+
STAKING_MODULE_LOGS_VERSION = 1
6768

6869
GENESIS_VALIDATORS_ROOT = bytes([0] * 32) # all zeros for deposits

src/main.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,13 @@ def main(module: OracleModule):
4444
return ejector_entrypoint.run()
4545

4646
if module is OracleModule.CSM:
47-
from src.modules.oracles.csm import entrypoint as csm_entrypoint
47+
from src.modules.oracles.staking_modules.community_staking import entrypoint as csm_entrypoint
4848
return csm_entrypoint.run()
4949

50+
if module is OracleModule.CM:
51+
from src.modules.oracles.staking_modules.curated import entrypoint as cm_entrypoint
52+
return cm_entrypoint.run()
53+
5054
raise ValueError(f'Unknown module {module}')
5155

5256

0 commit comments

Comments
 (0)