Skip to content

feat: enable mainnet dSTAKE dLEND rollout#43

Merged
Git-on-my-level merged 5 commits intomainfrom
codex/dstake-dlend-support-analysis
Mar 12, 2026
Merged

feat: enable mainnet dSTAKE dLEND rollout#43
Git-on-my-level merged 5 commits intomainfrom
codex/dstake-dlend-support-analysis

Conversation

@Git-on-my-level
Copy link
Contributor

Summary

  • configure ethereum mainnet dSTAKE for dLEND reward-manager deployment and the intended 100% dLEND target state
  • rerun the dSTAKE dLEND rewards deploy by unmarking its mainnet migration and wiring Safe batching for claimer setup
  • add mainnet Safe rollout scripts for router role grants and dLEND target/default strategy updates without moving funds

Testing

  • yarn eslint deploy/08_dstake/04_dlend_rewards.ts deploy/31_dstake_dlend_mainnet/00_setup_ethereum_mainnet_dstake_dlend_role_grants_safe.ts deploy/31_dstake_dlend_mainnet/01_setup_ethereum_mainnet_dstake_dlend_safe.ts
  • yarn hardhat compile

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 837c81aa74

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +362 to +364
if (emissionOwner.toLowerCase() !== deployer.toLowerCase()) {
throw new Error(`Deployer ${deployer} is not EmissionManager owner ${emissionOwner}`);
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Validate Safe ownership before queueing setClaimer

EmissionManager.setClaimer is guarded by onlyOwner (contracts/dlend/periphery/rewards/EmissionManager.sol), but this branch only checks whether deployer is owner before falling back to Safe queuing. If deployer is not the owner and the configured Safe is also not the owner, the queued transaction will always revert at execution time, and because manualActions are only added when !executor.useSafe, the script no longer reports any actionable fallback for that case.

Useful? React with 👍 / 👎.

Comment on lines +145 to +149
await executor.tryOrQueue(
async () => {
throw new Error("Direct execution disabled: queue Safe transaction instead.");
},
() => ({ to: routerDeployment.address, value: "0", data: txData }),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Assert router roles before queuing Safe config updates

This script queues setVaultConfigs through Safe without first asserting that the Safe already has VAULT_MANAGER_ROLE/CONFIG_MANAGER_ROLE on the router. The dependency step (setup-ethereum-mainnet-dstake-dlend-role-grants-safe) only creates a role-grant batch and does not execute it on-chain, so this can produce a second batch that reverts if executed before the role-grant batch is mined.

Useful? React with 👍 / 👎.

@Git-on-my-level Git-on-my-level merged commit 1402951 into main Mar 12, 2026
4 checks passed
@Git-on-my-level Git-on-my-level deleted the codex/dstake-dlend-support-analysis branch March 12, 2026 09:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant