Skip to content

Commit 9bef8a1

Browse files
committed
feat: stable devnet
1 parent a5940fa commit 9bef8a1

10 files changed

Lines changed: 48 additions & 66 deletions

File tree

packages/services/src/index.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,15 +109,16 @@ const kapi = new DevNetServiceConfig({
109109
});
110110

111111
const oracle = new DevNetServiceConfig({
112-
repository: {
113-
url: "git@github.com:lidofinance/lido-oracle.git",
114-
branch: "feat/oracle-v5-devnet-config",
115-
},
116-
workspace: "workspaces/oracle-v5",
112+
// TODO: revert when have stable branch
113+
// repository: {
114+
// url: "git@github.com:lidofinance/lido-oracle.git",
115+
// branch: "feat/oracle-v5-devnet-config",
116+
// },
117+
workspace: "workspaces/oracle-v5-vaults",
117118
name: "oracle" as const,
118119
constants: {
119120
HASH_CONSENSUS_AO_EPOCHS_PER_FRAME: 8,
120-
HASH_CONSENSUS_VEBO_EPOCHS_PER_FRAME: 8
121+
HASH_CONSENSUS_VEBO_EPOCHS_PER_FRAME: 8,
121122
},
122123
labels: {},
123124
});

src/commands/kapi/up.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
1-
import { command } from "@devnet/command";
1+
import { Params, command } from "@devnet/command";
22

33
export const KapiUp = command.cli({
44
description: "Start Kapi",
5-
params: {},
6-
async handler({ dre: { state, network, services } }) {
5+
params: {
6+
csm: Params.boolean({
7+
description: "Use CSM module.",
8+
default: true,
9+
}),
10+
},
11+
async handler({ params, dre: { state, network, services } }) {
712
const { elPrivate } = await state.getChain();
813

914
const { kapi } = services;
1015

1116
const { locator, stakingRouter, curatedModule } = await state.getLido();
12-
const { module: csmModule } = await state.getCSM();
17+
18+
let csmModule = "";
19+
if (params.csm) {
20+
csmModule = (await state.getCSM()).module;
21+
}
1322

1423
const env = {
1524
...kapi.config.constants,

src/commands/lido-core/activate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export const ActivateLidoProtocol = command.cli({
3636
);
3737

3838
const currentEpoch = await clClient.getHeadEpoch();
39-
const initialEpoch = epochPerFrame + currentEpoch + 2;
39+
const initialEpoch = epochPerFrame + currentEpoch;
4040

4141
const activateCoreSh = lidoCLI.sh({ env: deployEnv });
4242

src/commands/lido-core/deploy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export const DeployLidoContracts = command.cli({
6565
SLOTS_PER_EPOCH: constants.SLOTS_PER_EPOCH,
6666
};
6767

68-
await lidoCore.sh({ env: deployEnv })`bash -c yarn install`;
68+
await lidoCore.sh({ env: deployEnv })`bash -c yarn install`; // Fix for hardhat not found error
6969
await lidoCore.sh({ env: deployEnv })`bash -c scripts/dao-deploy.sh`;
7070

7171
await dre.runCommand(LidoCoreUpdateState, {});

src/commands/oracles/up.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
1-
import { command } from "@devnet/command";
1+
import { Params, command } from "@devnet/command";
22

33
export const OracleUp = command.cli({
44
description: "Start Oracle(s)",
5-
params: {},
6-
async handler({ dre: { state, network, services } }) {
5+
params: {
6+
csm: Params.boolean({
7+
description: "Use CSM module.",
8+
default: true,
9+
}),
10+
},
11+
async handler({ params, dre: { state, network, services } }) {
712
const { oracle } = services;
813

914
const { elPrivate, clPrivate } = await state.getChain();
@@ -12,9 +17,13 @@ export const OracleUp = command.cli({
1217
// const name = state.getOrError("network.name");
1318

1419
const { locator } = await state.getLido();
15-
const { module: csmModule } = await state.getCSM();
1620
const { oracle1, oracle2, oracle3 } = await state.getNamedWallet();
1721

22+
let csmModule = "";
23+
if (params.csm) {
24+
csmModule = (await state.getCSM()).module;
25+
}
26+
1827
const env = {
1928
CHAIN_ID: "32382",
2029
EXECUTION_CLIENT_URI: elPrivate,

src/commands/stands/pectra-vaults.ts

Lines changed: 3 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@ import { BlockscoutUp } from "../blockscout/up.js";
44
import { KurtosisGetInfo } from "../chain/info.js";
55
import { KurtosisUp } from "../chain/up.js";
66
import { CouncilUp } from "../council/up.js";
7-
import { ActivateCSM } from "../csm/activate.js";
8-
import { LidoAddCSMOperatorWithKeys } from "../csm/add-operator.js";
9-
import { DeployCSVerifier } from "../csm/add-verifier.js";
10-
import { DeployCSMContracts } from "../csm/deploy.js";
117
import { DataBusDeploy } from "../data-bus/deploy.js";
128
import { DSMBotsUp } from "../dsm-bots/up.js";
139
import { GitCheckout } from "../git/checkout.js";
@@ -40,17 +36,12 @@ export const PectraVaultsDevNetUp = command.cli({
4036
}),
4137
},
4238
async handler({ params, dre, dre: { logger } }) {
43-
await dre.runCommand(KurtosisUp, { preset: "pectra-devnet6-vaults" });
39+
await dre.runCommand(KurtosisUp, { preset: "pectra-vaults" });
4440
logger.log("✅ Network initialized.");
4541

4642
await dre.runCommand(BlockscoutUp, {});
4743
logger.log("✅ BlockScout launched for transaction visualization.");
4844

49-
if (!params.full) {
50-
await dre.runCommand(KurtosisGetInfo, {});
51-
return;
52-
}
53-
5445
await dre.runCommand(GitCheckout, {
5546
service: "lidoCore",
5647
ref: "feat/vaults",
@@ -62,37 +53,23 @@ export const PectraVaultsDevNetUp = command.cli({
6253
await dre.runCommand(DeployLidoContracts, deployArgs);
6354
logger.log("✅ Lido contracts deployed.");
6455

65-
logger.log("🚀 Deploying CSM contracts...");
66-
await dre.runCommand(DeployCSMContracts, deployArgs);
67-
logger.log("✅ CSM contracts deployed.");
68-
6956
logger.log("🚀 Activating Lido Core protocol...");
7057
await dre.runCommand(ActivateLidoProtocol, {});
7158
logger.log("✅ Lido Core protocol activated.");
7259

73-
logger.log("🚀 Activating CSM protocol...");
74-
await dre.runCommand(ActivateCSM, {});
75-
logger.log("✅ CSM protocol activated.");
76-
7760
if (!params.dsm) {
7861
logger.log("🚀 Replacing DSM with an EOA...");
7962
await dre.runCommand(ReplaceDSM, {});
8063
logger.log("✅ DSM replaced with an EOA.");
8164
}
8265

8366
const NOR_DEVNET_OPERATOR = "devnet_nor_1";
84-
const CSM_DEVNET_OPERATOR = "devnet_csm_1";
8567

8668
logger.log("🚀 Generating and allocating keys for NOR Module...");
8769
await dre.runCommand(GenerateLidoDevNetKeys, {});
8870
await dre.runCommand(UseLidoDevNetKeys, { name: NOR_DEVNET_OPERATOR });
8971
logger.log("✅ NOR Module keys generated and allocated.");
9072

91-
logger.log("🚀 Generating and allocating keys for CSM Module...");
92-
await dre.runCommand(GenerateLidoDevNetKeys, {});
93-
await dre.runCommand(UseLidoDevNetKeys, { name: CSM_DEVNET_OPERATOR });
94-
logger.log("✅ CSM Module keys generated and allocated.");
95-
9673
logger.log("🚀 Adding NOR operator...");
9774
await dre.runCommand(LidoAddOperator, { name: NOR_DEVNET_OPERATOR });
9875
logger.log(`✅ Operator ${NOR_DEVNET_OPERATOR} added.`);
@@ -105,18 +82,12 @@ export const PectraVaultsDevNetUp = command.cli({
10582
await dre.runCommand(LidoSetStakingLimit, { operatorId: 0, limit: 30 });
10683
logger.log("✅ Staking limit for NOR increased.");
10784

108-
logger.log("🚀 Adding CSM operator with keys...");
109-
await dre.runCommand(LidoAddCSMOperatorWithKeys, {
110-
name: CSM_DEVNET_OPERATOR,
111-
});
112-
logger.log(`✅ Keys for operator ${CSM_DEVNET_OPERATOR} added.`);
113-
11485
logger.log("🚀 Run KAPI service.");
115-
await dre.runCommand(KapiUp, {});
86+
await dre.runCommand(KapiUp, { csm: false });
11687
logger.log("✅ KAPI service started.");
11788

11889
logger.log("🚀 Run Oracle service.");
119-
await dre.runCommand(OracleUp, {});
90+
await dre.runCommand(OracleUp, { csm: false });
12091
logger.log("✅ Oracle service started.");
12192

12293
if (params.dsm) {
@@ -139,18 +110,10 @@ export const PectraVaultsDevNetUp = command.cli({
139110
await dre.runCommand(LidoDeposit, { id: 1, deposits: 30, ...depositArgs });
140111
logger.log("✅ Deposit to NOR completed.");
141112

142-
logger.log("🚀 Making deposit to CSM...");
143-
await dre.runCommand(LidoDeposit, { id: 3, deposits: 30, ...depositArgs });
144-
logger.log("✅ Deposit to CSM completed.");
145-
146113
logger.log("🚀 Adding keys to the validator...");
147114
await dre.runCommand(ValidatorAdd, {});
148115
logger.log("✅ Validator keys added.");
149116

150-
logger.log("🚀 Deploying new CSM Verifier...");
151-
await dre.runCommand(DeployCSVerifier, deployArgs);
152-
logger.log("✅ New CSM Verifier deployed.");
153-
154117
await dre.runCommand(KurtosisGetInfo, {});
155118

156119
logger.log("");

src/commands/stands/pectra.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ import { OracleUp } from "../oracles/up.js";
2525
import { ValidatorAdd } from "../validator/add.js";
2626

2727
export const PectraDevNetUp = command.cli({
28-
description:
29-
"Base Pectra test stand.",
28+
description: "Base Pectra test stand.",
3029
params: {
3130
full: Params.boolean({
3231
description:
@@ -114,10 +113,10 @@ export const PectraDevNetUp = command.cli({
114113
logger.log(`✅ Keys for operator ${CSM_DEVNET_OPERATOR} added.`);
115114

116115
logger.log("🚀 Run KAPI service.");
117-
await dre.runCommand(KapiUp, {});
116+
await dre.runCommand(KapiUp, { csm: true });
118117

119118
logger.log("🚀 Run Oracle service.");
120-
await dre.runCommand(OracleUp, {});
119+
await dre.runCommand(OracleUp, { csm: true });
121120

122121
if (params.dsm) {
123122
logger.log("🚀 Deploying Data-bus...");

tsconfig.tsbuildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"root":["./src/commands/config.ts","./src/commands/down.ts","./src/commands/wallet.ts","./src/commands/assertoor/down.ts","./src/commands/assertoor/info.ts","./src/commands/assertoor/up.ts","./src/commands/blockscout/down.ts","./src/commands/blockscout/info.ts","./src/commands/blockscout/restart.ts","./src/commands/blockscout/up.ts","./src/commands/chain/artifacts.ts","./src/commands/chain/down.ts","./src/commands/chain/fork.ts","./src/commands/chain/info.ts","./src/commands/chain/up.ts","./src/commands/chain/update.ts","./src/commands/council/down.ts","./src/commands/council/logs.ts","./src/commands/council/up.ts","./src/commands/csm/activate.ts","./src/commands/csm/add-operator.ts","./src/commands/csm/add-verifier.ts","./src/commands/csm/deploy.ts","./src/commands/csm/install.ts","./src/commands/csm/update-state.ts","./src/commands/data-bus/deploy.ts","./src/commands/data-bus/install.ts","./src/commands/data-bus/update-state.ts","./src/commands/dsm-bots/down.ts","./src/commands/dsm-bots/logs.ts","./src/commands/dsm-bots/up.ts","./src/commands/git/checkout.ts","./src/commands/git/pull.ts","./src/commands/kapi/down.ts","./src/commands/kapi/logs.ts","./src/commands/kapi/up.ts","./src/commands/lido-cli/install.ts","./src/commands/lido-core/activate.ts","./src/commands/lido-core/add-keys.ts","./src/commands/lido-core/add-operator.ts","./src/commands/lido-core/deploy-tw.ts","./src/commands/lido-core/deploy.ts","./src/commands/lido-core/deposit.ts","./src/commands/lido-core/install.ts","./src/commands/lido-core/prepare-repository.ts","./src/commands/lido-core/replace-dsm.ts","./src/commands/lido-core/set-staking-limit.ts","./src/commands/lido-core/update-state.ts","./src/commands/lido-core/verify.ts","./src/commands/lido-core/keys/generate.ts","./src/commands/lido-core/keys/use.ts","./src/commands/oracles/down.ts","./src/commands/oracles/logs.ts","./src/commands/oracles/up.ts","./src/commands/stands/pectra-tw.ts","./src/commands/stands/pectra-vaults.ts","./src/commands/stands/pectra.ts","./src/commands/system/docs.ts","./src/commands/system/server.ts","./src/commands/validator/add.ts","./src/commands/validator/voluntary-exit.ts","./src/commands/validator/keys/generate.ts","./src/commands/validator/keys/test-generate.ts","./src/commands/voting/add-account.ts","./src/commands/voting/auto-vote.ts","./src/commands/voting/enact-after-pectra.ts","./src/commands/voting/enact-before-pectra.ts","./src/commands/voting/enact-tw.ts","./src/commands/voting/install.ts","./src/commands/voting/prepare-pectra.ts"],"version":"5.7.3"}
1+
{"root":["./src/commands/config.ts","./src/commands/down.ts","./src/commands/wallet.ts","./src/commands/assertoor/down.ts","./src/commands/assertoor/info.ts","./src/commands/assertoor/up.ts","./src/commands/blockscout/down.ts","./src/commands/blockscout/info.ts","./src/commands/blockscout/restart.ts","./src/commands/blockscout/up.ts","./src/commands/chain/artifacts.ts","./src/commands/chain/down.ts","./src/commands/chain/fork.ts","./src/commands/chain/info.ts","./src/commands/chain/up.ts","./src/commands/chain/update.ts","./src/commands/council/down.ts","./src/commands/council/logs.ts","./src/commands/council/up.ts","./src/commands/csm/activate.ts","./src/commands/csm/add-operator.ts","./src/commands/csm/add-verifier.ts","./src/commands/csm/deploy.ts","./src/commands/csm/install.ts","./src/commands/csm/update-state.ts","./src/commands/data-bus/deploy.ts","./src/commands/data-bus/install.ts","./src/commands/data-bus/update-state.ts","./src/commands/dsm-bots/down.ts","./src/commands/dsm-bots/logs.ts","./src/commands/dsm-bots/up.ts","./src/commands/git/checkout.ts","./src/commands/git/pull.ts","./src/commands/kapi/down.ts","./src/commands/kapi/logs.ts","./src/commands/kapi/up.ts","./src/commands/lido-cli/install.ts","./src/commands/lido-core/activate.ts","./src/commands/lido-core/add-keys.ts","./src/commands/lido-core/add-operator.ts","./src/commands/lido-core/deploy-tw.ts","./src/commands/lido-core/deploy.ts","./src/commands/lido-core/deposit.ts","./src/commands/lido-core/install.ts","./src/commands/lido-core/prepare-repository.ts","./src/commands/lido-core/replace-dsm.ts","./src/commands/lido-core/set-staking-limit.ts","./src/commands/lido-core/update-state.ts","./src/commands/lido-core/verify.ts","./src/commands/lido-core/keys/generate.ts","./src/commands/lido-core/keys/use.ts","./src/commands/oracles/down.ts","./src/commands/oracles/logs.ts","./src/commands/oracles/up.ts","./src/commands/stands/pectra-only-contracts.ts","./src/commands/stands/pectra-tw.ts","./src/commands/stands/pectra-vaults.ts","./src/commands/stands/pectra.ts","./src/commands/system/docs.ts","./src/commands/system/server.ts","./src/commands/validator/add.ts","./src/commands/validator/voluntary-exit.ts","./src/commands/validator/keys/generate.ts","./src/commands/validator/keys/test-generate.ts","./src/commands/voting/add-account.ts","./src/commands/voting/auto-vote.ts","./src/commands/voting/enact-after-pectra.ts","./src/commands/voting/enact-before-pectra.ts","./src/commands/voting/enact-tw.ts","./src/commands/voting/install.ts","./src/commands/voting/prepare-pectra.ts"],"version":"5.7.3"}

workspaces/kurtosis/pectra-devnet6-vaults.yml renamed to workspaces/kurtosis/pectra-vaults.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
participants_matrix:
22
el:
33
- el_type: geth
4-
el_image: ethpandaops/geth:prague-devnet-6-c070db6
4+
el_image: docker.ethquokkaops.io/dh/ethereum/client-go:v1.15.2
55
el_extra_params: [--gcmode=archive]
66
cl:
77
- cl_type: teku
8-
cl_image: consensys/teku:develop
8+
cl_image: docker.ethquokkaops.io/dh/consensys/teku:25.2.0
99
use_separate_vc: true
1010
cl_extra_env_vars: { "JAVA_TOOL_OPTIONS": "-XX:UseSVE=0" }
1111
vc_extra_env_vars: { "JAVA_TOOL_OPTIONS": "-XX:UseSVE=0" }
1212

13-
- cl_type: lighthouse
14-
cl_image: ethpandaops/lighthouse:unstable-95cec45
15-
use_separate_vc: true
13+
- cl_type: prysm
14+
cl_image: docker.ethquokkaops.io/dh/prysmaticlabs/prysm-beacon-chain:v5.3.0
15+
vc_image: docker.ethquokkaops.io/dh/prysmaticlabs/prysm-validator:v5.3.0
1616

1717
network_params:
1818
network_id: "32382"

workspaces/oracle-v5-vaults

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../lido-oracle

0 commit comments

Comments
 (0)