Skip to content

feat: ETH Phase 2 — WETH Savings Vault + 4 New Markets deployment scripts & fork tests#200

Draft
LuckyTian1725 wants to merge 5 commits into
lista-dao:masterfrom
LuckyTian1725:feature/eth-phase2-markets
Draft

feat: ETH Phase 2 — WETH Savings Vault + 4 New Markets deployment scripts & fork tests#200
LuckyTian1725 wants to merge 5 commits into
lista-dao:masterfrom
LuckyTian1725:feature/eth-phase2-markets

Conversation

@LuckyTian1725

@LuckyTian1725 LuckyTian1725 commented Jun 26, 2026

Copy link
Copy Markdown

Summary

Complete deployment scripts and fork tests for ETH Phase 2: deploying the WETH Savings Vault and creating 4 new markets on Ethereum mainnet Moolah.

The deployment pipeline consists of 7 ordered steps:

  1. Enable LLTV 80% (Admin TimeLock multisig — no script)
  2. Create 4 markets (forge script)
  3. Deploy WETH Savings Vault proxy (forge script)
  4. Configure WETH Vault — fee, caps, supply queue (forge script, env vars)
  5. Set liquidation whitelist — Moolah + Liquidator + PublicLiquidator (forge script, idempotent)
  6. Transfer vault roles to TimeLock/Safe (forge script)
  7. Update USDT/USDC vaults — generate calldata for TimeLock proposals (view-only script)

Change Type

  • Deploy script (new)
  • Test (new)
  • New contract
  • Upgrade (existing proxy)
  • Bug fix
  • Configuration change

Contracts Changed

Contract / Script File Type
CreateMarketPhase2Deploy script/eth/phase2/deploy_createMarket.sol new
MoolahVaultWETHDeploy script/eth/phase2/deploy_moolahVault_weth.sol new
MoolahVaultConfigWETHDeploy script/eth/phase2/deploy_moolahVaultConfig_weth.sol new
LiquidationWhitelistPhase2Deploy script/eth/phase2/deploy_liquidationWhitelist.sol new
MoolahVaultTransferRoleWETHDeploy script/eth/phase2/deploy_moolahVault_transferRole_weth.sol new
VaultConfigUsdtUsdcPhase2Deploy script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol new
EthPhase2ForkTest test/eth-phase2/EthPhase2Fork.t.sol new

Interface Changes

No on-chain interface changes. All scripts use existing Moolah/MoolahVault/Liquidator interfaces.

Environment variables consumed by scripts:

  • PRIVATE_KEY — deployer EOA private key (read by DeployBase._deployerKey())
  • WETH_VAULT — WETH vault proxy address (Step 4 and 6, set after Step 3 deployment)
  • WSTETH_CAP — wstETH market cap in wei (Step 4)
  • WBETH_CAP — wBETH market cap in wei (Step 4)

Storage Layout

N/A — no contract modifications, only new deploy scripts.

Access Control

Operation Executor Role
enableLltv(80%) Admin TimeLock (via Safe 0x08aE...) DEFAULT_ADMIN_ROLE on Moolah
createMarket (x4) Deployer EOA 0xd7e38... OPERATOR on Moolah
deploy + config WETH Vault Deployer EOA 0xd7e38... Vault owner (deployer at init)
liquidation whitelist Deployer EOA 0xd7e38... MANAGER on Moolah + Liquidator + PublicLiquidator
transfer vault roles Deployer EOA 0xd7e38... Vault admin (before handoff)
setCap (USDT/USDC vault) Manager TimeLock (via Safe 0x8d38...) CURATOR on Vault
setSupplyQueue (USDT/USDC) Allocator Safe 0x85CE... ALLOCATOR on Vault

Risk Assessment

Area Risk Note
Storage collision None No existing contract modifications
Fund safety None Scripts only create markets and configure vault; no fund movement
Access control None Standard role-based deployment; roles transferred to TimeLock post-deploy
Idempotency Safe Liquidation whitelist script (Step 5) includes pre-checks — skips already-whitelisted items instead of reverting
Oracle dependency Low Relies on ResilientOracle and SmartProvider — both already deployed and operational on mainnet

Deployment

  • Chain: Ethereum mainnet
  • Pre-requisite: Ramp A on WBTC/cbBTC StableSwap Pool to 10000 (Manager Safe, 24h+ before Step 2)
  • Multi-sig operations (2 days total):
    • Step 1: Admin TimeLock propose enableLltv(80%) -> 1 day delay -> Execute
    • Step 7: Manager TimeLock propose setCap -> 1 day delay -> Execute; Allocator Safe setSupplyQueue (direct)
  • Deployer EOA: 0xd7e38800201D6a42C408Bf79d8723740C4E7f631 (Steps 2-6, sequential in one session)
  • Post-deploy: Vault roles transferred to TimeLock — deployer loses all privileges

Test Plan

Fork test suite: test/eth-phase2/EthPhase2Fork.t.sol — forks ETH mainnet and calls real deploy scripts via .run().

Test Coverage
test_step0_rampA Ramp A from 5000 to 10000, verify after warp
test_step1_enableLltv80 Enable LLTV 80% on Moolah
test_step2_createMarkets Create 4 markets, verify lastUpdate != 0
test_step3_deployVault Deploy WETH vault proxy, verify asset/name/symbol
test_step4_configVault Configure fee/caps/queue, verify values match
test_step5_liquidationWhitelist Set whitelist on Moolah + Liquidator + PublicLiquidator (idempotent)
test_step6_transferRoles Transfer to TimeLock, deployer loses access
test_step7_calldataGeneration View-only calldata generation for USDT/USDC vaults
test_e2e_fullDeployment Full Steps 0-6 + comprehensive SOP compliance check (market params, vault config, whitelist, roles)
test_e2e_supplyAndBorrow_wstETH E2E functional: supply via vault then borrow on wstETH market
test_oracle_* (x3) Oracle sanity: wstETH, WETH, SmartProvider prices > 0

Run command:

forge test --match-contract EthPhase2ForkTest --fork-url $ETHEREUM_RPC_URL -vvv --via-ir

All 12 tests pass.

@hashdit-bot

hashdit-bot Bot commented Jun 26, 2026

Copy link
Copy Markdown

Pull Request Review

This PR adds a full Ethereum Phase 2 deployment workflow via new Foundry scripts for creating four markets, deploying/configuring a WETH savings vault, setting liquidation whitelists, transferring vault roles, and generating calldata for USDT/USDC vault updates. It also adds a comprehensive mainnet-fork test suite that executes the real scripts end-to-end and validates market parameters, role transitions, oracle sanity, and basic supply/borrow behavior. Additionally, foundry.toml is adjusted to disable forced recompilation by default (commented out) for faster local test cycles.

Sensitive Content

Blockchain Address:

  • 0xf820fB4680712CD7263a0D3D024D5b5aEA82Fd70 (Ethereum contract) in script/eth/phase2/deploy_createMarket.sol — hardcoded Moolah core address
  • 0x5Bf5c3B5f5c29dBC647d2557Cc22B00ED29f301C (Ethereum contract) in script/eth/phase2/deploy_liquidationWhitelist.sol — hardcoded Liquidator
  • 0x796302e041d1715a8b1f16Fd7d7CBA38bb031DE5 (Ethereum contract) in script/eth/phase2/deploy_liquidationWhitelist.sol — hardcoded PublicLiquidator
  • 0xd10a024602E042dcb9C19e21682c3b896c8B0d30 (Ethereum address) in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — fee recipient
  • 0x1d60bBBEF79Fb9540D271Dbb01925380323A8f66 (Ethereum address) in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — skim recipient
  • 0xa18ae79AEDA3e711E0CD64cfe1Cd06402d400D61 (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — admin timelock
  • 0x375fdA2Bf66f4CE85EAB29AB6407dCd4a4C428BA (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — manager/curator timelock
  • 0x85CE862C5BB61938FFcc97DA4A80C8aaE43C6A27 (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — allocator
  • 0x28643FFD79256719D6AcbCF25Cb44576cAeBCf12 (Ethereum contract) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDT vault
  • 0x9651Ae50a5763c6f9B883f9d50e8116281CFcab2 (Ethereum contract) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDC vault

Private Key / Seed Phrase / Mnemonic / Secret Material:

  • 0xac0...ff80 (Private Key) in test/eth-phase2/EthPhase2Fork.t.sol — hardcoded test private key constant (TEST_KEY)

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

@LuckyTian1725 LuckyTian1725 force-pushed the feature/eth-phase2-markets branch from 0dd96b7 to 6415d3f Compare June 26, 2026 03:35
@hashdit-bot

hashdit-bot Bot commented Jun 26, 2026

Copy link
Copy Markdown

Pull Request Review

This PR adds a full Ethereum Phase 2 deployment toolkit in Solidity scripts, covering creation of four new Moolah markets, deployment/configuration of a new WETH savings vault, liquidation whitelist setup, and post-deployment role handoff to timelocks/safes. It also adds a view-only script to generate timelock calldata for updating existing USDT/USDC vault queues and caps. A comprehensive fork test suite is included to execute and validate all steps end-to-end against mainnet state and SOP parameters.

Sensitive Content

Blockchain Address:

  • 0xf820fB4680712CD7263a0D3D024D5b5aEA82Fd70 (Ethereum contract) in script/eth/phase2/deploy_createMarket.sol — Moolah contract address
  • 0x5Bf5c3B5f5c29dBC647d2557Cc22B00ED29f301C (Ethereum contract) in script/eth/phase2/deploy_liquidationWhitelist.sol — Liquidator contract address
  • 0x796302e041d1715a8b1f16Fd7d7CBA38bb031DE5 (Ethereum contract) in script/eth/phase2/deploy_liquidationWhitelist.sol — PublicLiquidator contract address
  • 0xa18ae79AEDA3e711E0CD64cfe1Cd06402d400D61 (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — Admin timelock role recipient
  • 0x375fdA2Bf66f4CE85EAB29AB6407dCd4a4C428BA (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — Manager/Curator role recipient
  • 0x85CE862C5BB61938FFcc97DA4A80C8aaE43C6A27 (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — Allocator role recipient
  • 0x28643FFD79256719D6AcbCF25Cb44576cAeBCf12 (Ethereum contract) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDT vault address
  • 0x9651Ae50a5763c6f9B883f9d50e8116281CFcab2 (Ethereum contract) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDC vault address

Private Key / Seed Phrase / Mnemonic / Secret Material:

  • 0xac09...ff80 (Private Key) in test/eth-phase2/EthPhase2Fork.t.sol — hardcoded Foundry test key (present in test file)

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

- Step 2: deploy_createMarket.sol — create 4 new markets (wstETH/WETH, wBETH/WETH, WBTC_cbBTC/USDT, WBTC_cbBTC/USDC)
- Step 3: deploy_moolahVault_weth.sol — deploy WETH Savings Vault (ERC1967 proxy)
- Step 4: deploy_moolahVaultConfig_weth.sol — configure vault fee, caps, supply queue (env vars)
- Step 5: deploy_liquidationWhitelist.sol — set liquidation whitelist with idempotent pre-checks
- Step 6: deploy_moolahVault_transferRole_weth.sol — transfer vault roles to TimeLock
- Step 7: deploy_vaultConfig_usdt_usdc.sol — generate calldata for USDT/USDC vault updates
- Fork test: EthPhase2Fork.t.sol — full E2E test with SOP compliance verification
@LuckyTian1725 LuckyTian1725 force-pushed the feature/eth-phase2-markets branch from 6415d3f to ca7f587 Compare June 26, 2026 03:45
@hashdit-bot

hashdit-bot Bot commented Jun 26, 2026

Copy link
Copy Markdown

Pull Request Review

This PR adds a full Ethereum Phase 2 deployment pipeline via new Foundry scripts, covering market creation, WETH vault deployment/configuration, liquidation whitelisting, role transfer, and view-only calldata generation for USDT/USDC vault updates. It also introduces a comprehensive mainnet-fork test suite that executes the real scripts end-to-end and validates SOP-aligned market IDs/params, oracle sanity, and supply/borrow behavior. No existing core contract logic is modified; changes are operational scripts and tests.

Sensitive Content

Blockchain Address:

  • 0xf820fB4680712CD7263a0D3D024D5b5aEA82Fd70 (Ethereum contract) in script/eth/phase2/deploy_createMarket.sol — Moolah core contract
  • 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 (Ethereum address) in multiple new scripts — WETH token
  • 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 (Ethereum address) in multiple new scripts — wstETH token
  • 0xa2E3356610840701BDf5611a53974510Ae27E2e1 (Ethereum address) in multiple new scripts — wBETH token
  • 0xdAC17F958D2ee523a2206206994597C13D831ec7 (Ethereum address) in multiple new scripts — USDT token
  • 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 (Ethereum address) in multiple new scripts — USDC token
  • 0x5432E4FE5736B9B7ddc1Be34ac45bdB557f2bE22 (Ethereum address) in multiple new scripts — WBTC/cbBTC LP collateral
  • 0xA64FE284EB8279B9b63946DD51813b0116099301 (Ethereum contract) in multiple new scripts — ResilientOracle
  • 0x893666d84B374f96Ab500f56728283eeBB94A9ac (Ethereum contract) in multiple new scripts — SmartProvider
  • 0x8b7d334d243b74D63C4b963893267A0F5240F990 (Ethereum contract) in multiple new scripts — IRM
  • 0x5Bf5c3B5f5c29dBC647d2557Cc22B00ED29f301C (Ethereum contract) in script/eth/phase2/deploy_liquidationWhitelist.sol — Liquidator
  • 0x796302e041d1715a8b1f16Fd7d7CBA38bb031DE5 (Ethereum contract) in script/eth/phase2/deploy_liquidationWhitelist.sol — PublicLiquidator
  • 0x08E83A96F4dA5DecC0e6E9084dDe049A3E84ca04 (Ethereum address) in script/eth/phase2/deploy_liquidationWhitelist.sol — bot whitelist address
  • 0xd10a024602E042dcb9C19e21682c3b896c8B0d30 (Ethereum address) in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — fee recipient
  • 0x1d60bBBEF79Fb9540D271Dbb01925380323A8f66 (Ethereum address) in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — skim recipient
  • 0x91fC4BA20685339781888eCA3E9E1c12d40F0e13 (Ethereum address) in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — bot role address
  • 0xa18ae79AEDA3e711E0CD64cfe1Cd06402d400D61 (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — admin timelock
  • 0x375fdA2Bf66f4CE85EAB29AB6407dCd4a4C428BA (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — manager/curator timelock
  • 0x85CE862C5BB61938FFcc97DA4A80C8aaE43C6A27 (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — allocator
  • 0x28643FFD79256719D6AcbCF25Cb44576cAeBCf12 (Ethereum contract) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDT vault
  • 0x9651Ae50a5763c6f9B883f9d50e8116281CFcab2 (Ethereum contract) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDC vault
  • 0x0c1BFFa53Cf93220381D88C8FA1bf823a932Aa23 (Ethereum address) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDT/USDC LP
  • 0x50dce7e3b24510Ec6eC2F7ad3b2035aa32861aeC (Ethereum contract) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDT/USDC SmartProvider

Private Key / Seed Phrase / Mnemonic / Secret Material:

  • 0xac0...ff80 (Private Key) in test/eth-phase2/EthPhase2Fork.t.sol — hardcoded Foundry test private key

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

@hashdit-bot

hashdit-bot Bot commented Jun 26, 2026

Copy link
Copy Markdown

Pull Request Review

This PR adds a full Ethereum Phase 2 deployment workflow through new Foundry scripts for creating four markets, deploying/configuring a WETH savings vault, whitelisting liquidation actors/providers, transferring vault roles to timelocks/safes, and generating calldata for USDT/USDC vault updates. It also introduces a comprehensive mainnet-fork test suite that executes the scripts end-to-end and validates market params, oracle availability, vault config, whitelist state, and role handoff behavior. Overall, the changes are operational/deployment-oriented and do not modify existing on-chain contract logic.

Sensitive Content

Blockchain Address:

  • 0xf820fB4680712CD7263a0D3D024D5b5aEA82Fd70 (Ethereum contract) in multiple deployment scripts — configured Moolah core contract
  • 0x5Bf5c3B5f5c29dBC647d2557Cc22B00ED29f301C (Ethereum contract) in script/eth/phase2/deploy_liquidationWhitelist.sol — Liquidator contract
  • 0x796302e041d1715a8b1f16Fd7d7CBA38bb031DE5 (Ethereum contract) in script/eth/phase2/deploy_liquidationWhitelist.sol — PublicLiquidator contract
  • 0xa18ae79AEDA3e711E0CD64cfe1Cd06402d400D61 (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — admin timelock role recipient
  • 0x375fdA2Bf66f4CE85EAB29AB6407dCd4a4C428BA (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — manager/curator role recipient
  • 0x85CE862C5BB61938FFcc97DA4A80C8aaE43C6A27 (Ethereum address) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — allocator role recipient
  • 0xd10a024602E042dcb9C19e21682c3b896c8B0d30 (Ethereum address) in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — fee recipient
  • 0x1d60bBBEF79Fb9540D271Dbb01925380323A8f66 (Ethereum address) in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — skim recipient
  • 0x91fC4BA20685339781888eCA3E9E1c12d40F0e13 (Ethereum address) in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — bot role
  • 0x28643FFD79256719D6AcbCF25Cb44576cAeBCf12 and 0x9651Ae50a5763c6f9B883f9d50e8116281CFcab2 (Ethereum contracts) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — existing USDT/USDC vaults

Private Key / Seed Phrase / Mnemonic / Secret Material:

  • 0xac09...ff80 (Private Key) in test/eth-phase2/EthPhase2Fork.t.sol — hardcoded Foundry test key (in test file)

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

@hashdit-bot

hashdit-bot Bot commented Jun 26, 2026

Copy link
Copy Markdown

Pull Request Review

This PR adds a full Ethereum Phase 2 deployment workflow as new Foundry scripts: creating four new markets, deploying/configuring a WETH savings vault proxy, transferring vault roles to timelocks/safes, and generating view-only calldata for USDT/USDC vault updates. It also introduces an extensive fork-test suite that executes the real scripts end-to-end and validates SOP compliance for market params, oracle setup, whitelist configuration, and post-deploy role handoff. No existing protocol contracts are modified; changes are limited to deployment/test tooling.

Sensitive Content

Blockchain Address:

  • 0xf820fB4680712CD7263a0D3D024D5b5aEA82Fd70 in script/eth/phase2/deploy_createMarket.sol — Moolah contract address
  • 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 in script/eth/phase2/deploy_createMarket.sol — WETH token address
  • 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 in script/eth/phase2/deploy_createMarket.sol — wstETH token address
  • 0xa2E3356610840701BDf5611a53974510Ae27E2e1 in script/eth/phase2/deploy_createMarket.sol — wBETH token address
  • 0xdAC17F958D2ee523a2206206994597C13D831ec7 in script/eth/phase2/deploy_createMarket.sol — USDT token address
  • 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 in script/eth/phase2/deploy_createMarket.sol — USDC token address
  • 0x5432E4FE5736B9B7ddc1Be34ac45bdB557f2bE22 in script/eth/phase2/deploy_createMarket.sol — WBTC/cbBTC LP collateral
  • 0xA64FE284EB8279B9b63946DD51813b0116099301 in script/eth/phase2/deploy_createMarket.sol — oracle address
  • 0x893666d84B374f96Ab500f56728283eeBB94A9ac in script/eth/phase2/deploy_createMarket.sol — smart provider
  • 0x8b7d334d243b74D63C4b963893267A0F5240F990 in script/eth/phase2/deploy_createMarket.sol — IRM
  • 0xd10a024602E042dcb9C19e21682c3b896c8B0d30 in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — fee recipient
  • 0x1d60bBBEF79Fb9540D271Dbb01925380323A8f66 in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — skim recipient
  • 0x91fC4BA20685339781888eCA3E9E1c12d40F0e13 in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — bot role address
  • 0xa18ae79AEDA3e711E0CD64cfe1Cd06402d400D61 in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — admin timelock
  • 0x375fdA2Bf66f4CE85EAB29AB6407dCd4a4C428BA in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — manager timelock
  • 0x85CE862C5BB61938FFcc97DA4A80C8aaE43C6A27 in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — allocator safe

Private Key / Seed Phrase / Mnemonic / Secret Material:

  • 0xac0...ff80 (Private Key) in test/eth-phase2/EthPhase2Fork.t.sol — hardcoded Foundry test key (in test file)

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

@hashdit-bot

hashdit-bot Bot commented Jun 27, 2026

Copy link
Copy Markdown

Pull Request Review

This PR adds a full Ethereum Phase 2 deployment workflow using new Foundry scripts to create four new markets, deploy and configure a WETH savings vault, transfer vault roles to timelocks/safes, and generate timelock calldata for USDT/USDC vault updates. It also introduces a comprehensive fork-test suite that executes the real deployment scripts end-to-end and validates SOP compliance (market params/IDs, vault config, whitelist setup, and role handoff). No protocol contract logic changes are included; the changes are operational scripts plus tests.

Sensitive Content

Blockchain Address:

  • 0xf820fB4680712CD7263a0D3D024D5b5aEA82Fd70 (Ethereum contract) in script/eth/phase2/deploy_createMarket.sol — Moolah mainnet address
  • 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 (Ethereum token) in multiple script files — WETH token address
  • 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 (Ethereum token) in multiple script files — wstETH token address
  • 0xa2E3356610840701BDf5611a53974510Ae27E2e1 (Ethereum token) in multiple script files — wBETH token address
  • 0xdAC17F958D2ee523a2206206994597C13D831ec7 (Ethereum token) in multiple script files — USDT token address
  • 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 (Ethereum token) in multiple script files — USDC token address
  • 0x5432E4FE5736B9B7ddc1Be34ac45bdB557f2bE22 (Ethereum contract/token) in multiple script files — WBTC/cbBTC LP collateral
  • 0xA64FE284EB8279B9b63946DD51813b0116099301 (Ethereum oracle) in multiple script files — ResilientOracle
  • 0x893666d84B374f96Ab500f56728283eeBB94A9ac (Ethereum oracle) in multiple script files — SmartProvider
  • 0x8b7d334d243b74D63C4b963893267A0F5240F990 (Ethereum contract) in multiple script files — IRM
  • 0xd10a024602E042dcb9C19e21682c3b896c8B0d30 (Ethereum EOA) in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — fee recipient
  • 0x1d60bBBEF79Fb9540D271Dbb01925380323A8f66 (Ethereum EOA) in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — skim recipient
  • 0x91fC4BA20685339781888eCA3E9E1c12d40F0e13 (Ethereum EOA) in script/eth/phase2/deploy_moolahVaultConfig_weth.sol — bot role address
  • 0xa18ae79AEDA3e711E0CD64cfe1Cd06402d400D61 (Ethereum timelock) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — admin role target
  • 0x375fdA2Bf66f4CE85EAB29AB6407dCd4a4C428BA (Ethereum timelock) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — manager/curator role target
  • 0x85CE862C5BB61938FFcc97DA4A80C8aaE43C6A27 (Ethereum safe) in script/eth/phase2/deploy_moolahVault_transferRole_weth.sol — allocator role target
  • 0x28643FFD79256719D6AcbCF25Cb44576cAeBCf12 (Ethereum vault) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDT vault
  • 0x9651Ae50a5763c6f9B883f9d50e8116281CFcab2 (Ethereum vault) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDC vault
  • 0x0c1BFFa53Cf93220381D88C8FA1bf823a932Aa23 (Ethereum LP token) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDT/USDC LP
  • 0x50dce7e3b24510Ec6eC2F7ad3b2035aa32861aeC (Ethereum oracle) in script/eth/phase2/deploy_vaultConfig_usdt_usdc.sol — USDT/USDC SmartProvider

Private Key / Seed Phrase / Mnemonic / Secret Material:

  • 0xac09...ff80 (Private Key) in test/eth-phase2/EthPhase2Fork.t.sol — hardcoded Foundry default test private key (in test file)

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

@hashdit-bot

hashdit-bot Bot commented Jun 27, 2026

Copy link
Copy Markdown

Pull Request Review

This PR adds a full Ethereum Phase 2 deployment workflow via new Foundry scripts and a comprehensive mainnet-fork test suite. The scripts cover creating four new markets, deploying/configuring a WETH savings vault, transferring vault roles to timelocks/safes, and generating calldata for USDT/USDC vault updates, with a Sepolia-only setup script for mock infrastructure. The fork tests execute these scripts end-to-end and validate SOP alignment for market params, vault config, liquidation whitelists, role handoff, and functional supply/borrow behavior.

Sensitive Content

Blockchain Address:

  • 0xd7e38800201D6a42C408Bf79d8723740C4E7f631 (Ethereum EOA) in PR description — deployer EOA for steps 2–6

Private Key / Seed Phrase / Mnemonic / Secret Material:

  • 0xac09...ff80 (Private Key) in test/eth-phase2/EthPhase2Fork.t.sol — hardcoded Foundry test private key constant

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

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