Skip to content

Conversation

@clement-ux
Copy link
Contributor

@clement-ux clement-ux commented Dec 2, 2025

Description

Deploy Ethena ARM related contracts

Script

make deploy

Deployment

Contract / Name Address Owner
Ethena ARM proxy 0xCEDa2d856238aA0D12f6329de20B9115f07C366d 5/8 Multisig
Ethena ARM imple 0x6c181f2CA4224e42Cee8Fc7199c060261AD55d7d address(0)
Cap Manager proxy 0x687AFB5A52A15122fD5FC54A8B52cfd58346fb0C 5/8 Multisig
Cap Manager imple 0x7073F39ae371962C2469D72f01f907375bB11E08 address(0)
Unstaker 0 0x77789BB87eAdfC429440209F7d28ED55aC15f17a -
Unstaker 1 0x60CE563b5825Ff8ce932A2c8eCd32878639a4254 -
Unstaker 2 0xD88011b85685de9E5c0385Ef93c0E5A75666D043 -
Unstaker 3 0xD6F32654bAfb110A2DFbad18c8a25749c0A7f626 -
Unstaker 4 0x9C4a2B57310Ddc479A5D7b7d68Fa1e0425D35D41 -
Unstaker 5 0x7be23c73Ee70029Adf6a062dFbAE7B1518583630 -
Unstaker 6 0x6B444A63967059b52A7FB8F223a03EA693a936F9 -
Unstaker 7 0x39746c02FD20215cC6c33C2CCb49405a531F6AEa -
Unstaker 8 0xD0554178956c702baE69DAaceD35Bb747286bC49 -
Unstaker 9 0x87c782917FAB4c2D4D921E767B26f82E7b2A5FD3 -
Unstaker 10 0x9b7dB18B1da996a3BFa4a9224cA60d2a267e6065 -
Unstaker 11 0xE671E4BD15f26609DE99ef028Fa27A5A4c839182 -
Unstaker 12 0x84425544aB8b6c3c0Ca2a3c78A90d92089fA3a3d -
Unstaker 13 0x74C820df2b7D08EEB9cA9227B1aEc12D8A5C7B21 -
Unstaker 14 0x98e7d36007f864593330C1183aba85a49aA2D3e8 -
Unstaker 15 0x0F13DE7069020390741fbc9FFB6AA4931Ea4B28a -
Unstaker 16 0x9DbB3D287F6e47331758e32F981281c59606a300 -
Unstaker 17 0xCca8EE05d84be9b19632c803633Bb9Cc879548c7 -
Unstaker 18 0x6241882D5c39E423c040c178AB364a228C648d3C -
Unstaker 19 0xAA68295E2f05bb82143dF6937d99681916999Dda -
Unstaker 20 0x61b740C3a571237a7d978f4EE237Be15409523d2 -
Unstaker 21 0xA39f03ba9ff8Ce1491d7Df4cAEd20a884E03b46c -
Unstaker 22 0xff1F36047D5D0BFbD15D5fB0adcee4F3E4743E6d -
Unstaker 23 0x663671666dEeD69c6a3d0F4a7b4f87Ad8b727B61 -
Unstaker 24 0x642F99190FE78827404664Ea94931014e1c6cD7E -
Unstaker 25 0x0e98a4E0F840D98d54d891FC5cd1a2506E8DCF07 -
Unstaker 26 0x47D3aeda299fFfA802E2C1099F0501F67b75a4f6 -
Unstaker 27 0x3dBBa9614aBE1422136822e419344eDfB2A039A0 -
Unstaker 28 0xe2B5D52C636aC568e00F31C9fa96394BfEF49d1E -
Unstaker 29 0xC8Fc241F85e18325f1a32688B59139e44249B64B -
Unstaker 30 0x2440d433AB6A32A1206463Ef75A3E3dB4CC0a5d8 -
Unstaker 31 0xEBb379BC2f6ce49A20a14d2187B9876467994F24 -
Unstaker 32 0xCBC12a888B037138530c76718dC77B49ae2AAb0F -
Unstaker 33 0xAd090F45EF9f1b748843833C1055022e88bBbE81 -
Unstaker 34 0x5559CBF6b80dEE109149AcA01B5dE3Eac950A7ef -
Unstaker 35 0xc2776a7C73c41c732cF412A967703F699c75675E -
Unstaker 36 0xeB5C42d2B3edF5f61128bb7D36C2C7dabd24e45C -
Unstaker 37 0x58610F7984761217331A568e9FeBBF2F0D7cC41c -
Unstaker 38 0x28F1896eC1dc7342735F2D715C6f4333ff1C91a4 -
Unstaker 39 0x3df2d3acc03B7BB618c5257A14834B1B7f3ea85B -
Unstaker 40 0xde02336439Bb3894f983524cD451b19FB404f76D -
Unstaker 41 0x38bF73Ac771bf47A403ebA754F9070Ec9FAC0F5E -

Diff checker

make match file=src/contracts/Proxy.sol addr=0xCEDa2d856238aA0D12f6329de20B9115f07C366d
make match file=src/contracts/EthenaARM.sol addr=0x6c181f2CA4224e42Cee8Fc7199c060261AD55d7d
make match file=src/contracts/Proxy.sol addr=0x687AFB5A52A15122fD5FC54A8B52cfd58346fb0C
make match file=src/contracts/CapManager.sol addr=0x7073F39ae371962C2469D72f01f907375bB11E08
make match file=src/contracts/EthenaUnstaker.sol addr=0x77789BB87eAdfC429440209F7d28ED55aC15f17a
make match file=src/contracts/EthenaUnstaker.sol addr=0x60CE563b5825Ff8ce932A2c8eCd32878639a4254
make match file=src/contracts/EthenaUnstaker.sol addr=0xD88011b85685de9E5c0385Ef93c0E5A75666D043
make match file=src/contracts/EthenaUnstaker.sol addr=0xD6F32654bAfb110A2DFbad18c8a25749c0A7f626
make match file=src/contracts/EthenaUnstaker.sol addr=0x9C4a2B57310Ddc479A5D7b7d68Fa1e0425D35D41
make match file=src/contracts/EthenaUnstaker.sol addr=0x7be23c73Ee70029Adf6a062dFbAE7B1518583630
make match file=src/contracts/EthenaUnstaker.sol addr=0x6B444A63967059b52A7FB8F223a03EA693a936F9
make match file=src/contracts/EthenaUnstaker.sol addr=0x39746c02FD20215cC6c33C2CCb49405a531F6AEa
make match file=src/contracts/EthenaUnstaker.sol addr=0xD0554178956c702baE69DAaceD35Bb747286bC49
make match file=src/contracts/EthenaUnstaker.sol addr=0x87c782917FAB4c2D4D921E767B26f82E7b2A5FD3
make match file=src/contracts/EthenaUnstaker.sol addr=0x9b7dB18B1da996a3BFa4a9224cA60d2a267e6065
make match file=src/contracts/EthenaUnstaker.sol addr=0xE671E4BD15f26609DE99ef028Fa27A5A4c839182
make match file=src/contracts/EthenaUnstaker.sol addr=0x84425544aB8b6c3c0Ca2a3c78A90d92089fA3a3d
make match file=src/contracts/EthenaUnstaker.sol addr=0x74C820df2b7D08EEB9cA9227B1aEc12D8A5C7B21
make match file=src/contracts/EthenaUnstaker.sol addr=0x98e7d36007f864593330C1183aba85a49aA2D3e8
make match file=src/contracts/EthenaUnstaker.sol addr=0x0F13DE7069020390741fbc9FFB6AA4931Ea4B28a
make match file=src/contracts/EthenaUnstaker.sol addr=0x9DbB3D287F6e47331758e32F981281c59606a300
make match file=src/contracts/EthenaUnstaker.sol addr=0xCca8EE05d84be9b19632c803633Bb9Cc879548c7
make match file=src/contracts/EthenaUnstaker.sol addr=0x6241882D5c39E423c040c178AB364a228C648d3C
make match file=src/contracts/EthenaUnstaker.sol addr=0xAA68295E2f05bb82143dF6937d99681916999Dda
make match file=src/contracts/EthenaUnstaker.sol addr=0x61b740C3a571237a7d978f4EE237Be15409523d2
make match file=src/contracts/EthenaUnstaker.sol addr=0xA39f03ba9ff8Ce1491d7Df4cAEd20a884E03b46c
make match file=src/contracts/EthenaUnstaker.sol addr=0xff1F36047D5D0BFbD15D5fB0adcee4F3E4743E6d
make match file=src/contracts/EthenaUnstaker.sol addr=0x663671666dEeD69c6a3d0F4a7b4f87Ad8b727B61
make match file=src/contracts/EthenaUnstaker.sol addr=0x642F99190FE78827404664Ea94931014e1c6cD7E
make match file=src/contracts/EthenaUnstaker.sol addr=0x0e98a4E0F840D98d54d891FC5cd1a2506E8DCF07
make match file=src/contracts/EthenaUnstaker.sol addr=0x47D3aeda299fFfA802E2C1099F0501F67b75a4f6
make match file=src/contracts/EthenaUnstaker.sol addr=0x3dBBa9614aBE1422136822e419344eDfB2A039A0
make match file=src/contracts/EthenaUnstaker.sol addr=0xe2B5D52C636aC568e00F31C9fa96394BfEF49d1E
make match file=src/contracts/EthenaUnstaker.sol addr=0xC8Fc241F85e18325f1a32688B59139e44249B64B
make match file=src/contracts/EthenaUnstaker.sol addr=0x2440d433AB6A32A1206463Ef75A3E3dB4CC0a5d8
make match file=src/contracts/EthenaUnstaker.sol addr=0xEBb379BC2f6ce49A20a14d2187B9876467994F24
make match file=src/contracts/EthenaUnstaker.sol addr=0xCBC12a888B037138530c76718dC77B49ae2AAb0F
make match file=src/contracts/EthenaUnstaker.sol addr=0xAd090F45EF9f1b748843833C1055022e88bBbE81
make match file=src/contracts/EthenaUnstaker.sol addr=0x5559CBF6b80dEE109149AcA01B5dE3Eac950A7ef
make match file=src/contracts/EthenaUnstaker.sol addr=0xc2776a7C73c41c732cF412A967703F699c75675E
make match file=src/contracts/EthenaUnstaker.sol addr=0xeB5C42d2B3edF5f61128bb7D36C2C7dabd24e45C
make match file=src/contracts/EthenaUnstaker.sol addr=0x58610F7984761217331A568e9FeBBF2F0D7cC41c
make match file=src/contracts/EthenaUnstaker.sol addr=0x28F1896eC1dc7342735F2D715C6f4333ff1C91a4
make match file=src/contracts/EthenaUnstaker.sol addr=0x3df2d3acc03B7BB618c5257A14834B1B7f3ea85B
make match file=src/contracts/EthenaUnstaker.sol addr=0xde02336439Bb3894f983524cD451b19FB404f76D
make match file=src/contracts/EthenaUnstaker.sol addr=0x38bF73Ac771bf47A403ebA754F9070Ec9FAC0F5E

@clement-ux clement-ux self-assigned this Dec 2, 2025
@clement-ux clement-ux added the Deployment Deploys smart contracts to the network. label Dec 2, 2025
@clement-ux clement-ux marked this pull request as ready for review December 2, 2025 10:14
Copy link
Collaborator

@naddison36 naddison36 left a comment

Choose a reason for hiding this comment

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

I've verified the deployment

@naddison36
Copy link
Collaborator

@clement-ux can you transfer the owner of the Cap Manager implementation contract to a zero address.
Thanks

@clement-ux
Copy link
Contributor Author

clement-ux commented Dec 2, 2025

@clement-ux can you transfer the owner of the Cap Manager implementation contract to a zero address.
Thanks

@naddison36 Done in this tx.

@naddison36 naddison36 merged commit 30061d4 into nicka/ethena Dec 2, 2025
8 checks passed
@naddison36 naddison36 deleted the clement/deploy-ethena-arm branch December 2, 2025 11:13
naddison36 added a commit that referenced this pull request Dec 2, 2025
* Removed unused event from Ether.fi ARM
Added more Natspec

* WIP Ethena ARM

* Ethena ARM processes

* Add support for base assets that appreciate against the liquidity asset

* Deploy script for Ethena ARM

* Fix build

* Refactored EthenaARM so there can be multiple cooldown requests

* Add Test for Ethena ARM (#149)

* Add EthenaARM integration tests and shared setup

* Rename test file

* Add integration tests for swapTokensForExactTokens functionality in EthenaARM

* Refactor swapExactTokensForTokens tests for clarity and correctness

* Remove unused IERC721Receiver import from EthenaARM contract

* Ethena ARM: Unstake request v1 (#150)

* Enhance EthenaARM to support multiple unstaker contracts for parallel cooldown requests

* Fix type casting for last used unstaker index to ensure proper indexing

* Simplify array management

* Implement request delay for unstake requests and update visibility of state variables

* Refactor comments in EthenaARM contract for clarity and consistency

* Remove unused imports and clean up comments in EthenaARM contract

* Refactor EthenaARM contract to use constant for maximum unstakers and update related code for clarity

* Added snapMarket Hardhat task

* Updated Ethena process diagram

* EthenaARM Tests (#153)

* wip add unstaker deployment script

* Refactor deployUnstakers function to use constant for max unstakers

* Rename setUnstaker function to setUnstakers for clarity

* Deploy unstakers and set ownership in DeployEthenaARMScript

* Make unstakers array public for improved accessibility

* Add tests for request/claim withdraw

* Add more test for request/claim

* Fix error message for request delay in requestBaseWithdrawal function

* Simplify cooldown amount handling in EthenaARM contract

* Add tests for swapping SUSDE to USDE with outstanding withdrawals and insufficient liquidity

* Refactor cooldown handling in EthenaARM and EthenaUnstaker contracts to use UserCooldown struct

* Refactor import statements in DeployEthenaARMScript to consolidate IWETH and IStakedUSDe imports

* [Ethena ARM] - Invariant Testing (#156)

* Add mock for sUSDe contract.

* Add Medusa VM interface.

* Add base contracts and setup for EthenaARM invariant tests

* Simplify MockSUSDE

* Add unstakers

* Prepare list for target functions

* Fix rewards calculation

* Add label and assume functions to Vm interface

* Improve invariant setup

* wip add targets for susde contract

* add logs

* Update SUSDE target functions to reflect completed implementations

* Add Morpho target functions

* Add Find library for user request retrieval in testing

* Add ARM deposit/request/claim target functions

* Add MockMorpho contract and update tests for utilization rate functionality

* Fix claimable request check in Find library by updating variable usage

* Make MockMorpho more realistic

* Add target functions for allocate liquidity on ARM.

* Add target function for setting prices in TargetFunctions contract

* add target functions for swaps

* Fix ClaimRequest checks

* Add target for fees management

* Add target functions for base request/claim withdraw

* Add Math library with utility functions for absolute values, min/max, and comparisons

* Add ghost values

* Add initial swaps invariant

* implement properties

* Add invariant functions for swap and liquidity properties

* Add after-invariant checks and unit tests for ARM functionality

* Add test target for Ethena invariant checks

* Refactor CI workflow to include Ethena invariant tests and adjust Foundry profiles for improved testing parameters

* Reduce invariant test runs in CI profile from 1000 to 500 for improved performance

* Remove redundant invariant checks for USDe balance and ARM total assets in Properties contract

* Add exchange rate checks to target functions for improved invariants

* fmt

* Update Foundry version to 1.4.4 and enforce fail on revert in CI profile

* try to fix CI

* try again

* externalize fetching user with ARM shares

* fmt

* [Ethena ARM] Support Medusa Fuzzer (#160)

* wip

* Add crytic-export directory to .gitignore for improved build cleanliness

* Disable assertion testing and update property test prefix in medusa.json

* Refactor code structure for improved readability and maintainability

* Update .gitignore to ignore the crytic-export directory instead of its contents

* Rename FuzzerFoundry_EthenaARM file

* Refactor EthenaARM contracts to use state variables for label availability and update medusa.json for improved assertion testing configurations

* Update invariant profile settings for reduced runs and depth

* restore default values

* remove crytic export

* improve tests

* try something

* try again

* add medusa ci

* skip fuzzer during contract compilation

* try again

* add previous work

* Update invariant properties in Properties.sol to reflect current state

* Update USDe balance requirement and remove dead address redemption logic

* bump to latest forge version

* Update Foundry version specification from "latest" to "stable" in CI workflow

* small adjustment

* increase ci runs

* remove one invariant

* adjust comment

* update contract titles and descriptions for FuzzerFoundry and FuzzerMedusa

* add ethena invariant test to test-invariants target

* Added Ethena contract dependency diagram

* Fix tuple unpacking in withdrawalRequests to maintain consistency in Properties and TargetFunctions

* Update propertyI to check for greater than or equal condition in Properties contract

* Ethena ARM deployment script (#162)

* Update Ethena ARM deploy script

* Added DEBUG_HIDE_DATE to setActionVars Hardhat task

* Added Aave v2 USDe Vault

* [Ethena ARM] Add smoke tests. (#163)

* Add ethena smoke tests

* add allocate test

* Add allocation tests for AAVE market with and without yield

* fmt

---------

Co-authored-by: Clément <55331875+clement-ux@users.noreply.github.com>

* Added days option to snap Hardhat task

* Added siUSD and iUSD tokens

* Add match target to Makefile for contract verification

* [Ethena ARM] Deploy contracts (#170)

* Deploy Ethena ARM

* Add match target to Makefile for contract verification

* remove incorrect invariant

---------

Co-authored-by: Clément <55331875+clement-ux@users.noreply.github.com>
Co-authored-by: Clément <clemmoller@gmail.com>
naddison36 added a commit that referenced this pull request Dec 3, 2025
* Removed unused event from Ether.fi ARM
Added more Natspec

* WIP Ethena ARM

* Ethena ARM processes

* Add support for base assets that appreciate against the liquidity asset

* Deploy script for Ethena ARM

* Fix build

* Refactored EthenaARM so there can be multiple cooldown requests

* Add Test for Ethena ARM (#149)

* Add EthenaARM integration tests and shared setup

* Rename test file

* Add integration tests for swapTokensForExactTokens functionality in EthenaARM

* Refactor swapExactTokensForTokens tests for clarity and correctness

* Remove unused IERC721Receiver import from EthenaARM contract

* Ethena ARM: Unstake request v1 (#150)

* Enhance EthenaARM to support multiple unstaker contracts for parallel cooldown requests

* Fix type casting for last used unstaker index to ensure proper indexing

* Simplify array management

* Implement request delay for unstake requests and update visibility of state variables

* Refactor comments in EthenaARM contract for clarity and consistency

* Remove unused imports and clean up comments in EthenaARM contract

* Refactor EthenaARM contract to use constant for maximum unstakers and update related code for clarity

* Added snapMarket Hardhat task

* Updated Ethena process diagram

* EthenaARM Tests (#153)

* wip add unstaker deployment script

* Refactor deployUnstakers function to use constant for max unstakers

* Rename setUnstaker function to setUnstakers for clarity

* Deploy unstakers and set ownership in DeployEthenaARMScript

* Make unstakers array public for improved accessibility

* Add tests for request/claim withdraw

* Add more test for request/claim

* Fix error message for request delay in requestBaseWithdrawal function

* Simplify cooldown amount handling in EthenaARM contract

* Add tests for swapping SUSDE to USDE with outstanding withdrawals and insufficient liquidity

* Refactor cooldown handling in EthenaARM and EthenaUnstaker contracts to use UserCooldown struct

* Refactor import statements in DeployEthenaARMScript to consolidate IWETH and IStakedUSDe imports

* [Ethena ARM] - Invariant Testing (#156)

* Add mock for sUSDe contract.

* Add Medusa VM interface.

* Add base contracts and setup for EthenaARM invariant tests

* Simplify MockSUSDE

* Add unstakers

* Prepare list for target functions

* Fix rewards calculation

* Add label and assume functions to Vm interface

* Improve invariant setup

* wip add targets for susde contract

* add logs

* Update SUSDE target functions to reflect completed implementations

* Add Morpho target functions

* Add Find library for user request retrieval in testing

* Add ARM deposit/request/claim target functions

* Add MockMorpho contract and update tests for utilization rate functionality

* Fix claimable request check in Find library by updating variable usage

* Make MockMorpho more realistic

* Add target functions for allocate liquidity on ARM.

* Add target function for setting prices in TargetFunctions contract

* add target functions for swaps

* Fix ClaimRequest checks

* Add target for fees management

* Add target functions for base request/claim withdraw

* Add Math library with utility functions for absolute values, min/max, and comparisons

* Add ghost values

* Add initial swaps invariant

* implement properties

* Add invariant functions for swap and liquidity properties

* Add after-invariant checks and unit tests for ARM functionality

* Add test target for Ethena invariant checks

* Refactor CI workflow to include Ethena invariant tests and adjust Foundry profiles for improved testing parameters

* Reduce invariant test runs in CI profile from 1000 to 500 for improved performance

* Remove redundant invariant checks for USDe balance and ARM total assets in Properties contract

* Add exchange rate checks to target functions for improved invariants

* fmt

* Update Foundry version to 1.4.4 and enforce fail on revert in CI profile

* try to fix CI

* try again

* externalize fetching user with ARM shares

* fmt

* [Ethena ARM] Support Medusa Fuzzer (#160)

* wip

* Add crytic-export directory to .gitignore for improved build cleanliness

* Disable assertion testing and update property test prefix in medusa.json

* Refactor code structure for improved readability and maintainability

* Update .gitignore to ignore the crytic-export directory instead of its contents

* Rename FuzzerFoundry_EthenaARM file

* Refactor EthenaARM contracts to use state variables for label availability and update medusa.json for improved assertion testing configurations

* Update invariant profile settings for reduced runs and depth

* restore default values

* remove crytic export

* improve tests

* try something

* try again

* add medusa ci

* skip fuzzer during contract compilation

* try again

* add previous work

* Update invariant properties in Properties.sol to reflect current state

* Update USDe balance requirement and remove dead address redemption logic

* bump to latest forge version

* Update Foundry version specification from "latest" to "stable" in CI workflow

* small adjustment

* increase ci runs

* remove one invariant

* adjust comment

* update contract titles and descriptions for FuzzerFoundry and FuzzerMedusa

* add ethena invariant test to test-invariants target

* Added Ethena contract dependency diagram

* Fix tuple unpacking in withdrawalRequests to maintain consistency in Properties and TargetFunctions

* Update propertyI to check for greater than or equal condition in Properties contract

* Ethena ARM deployment script (#162)

* Update Ethena ARM deploy script

* Added DEBUG_HIDE_DATE to setActionVars Hardhat task

* Added Aave v2 USDe Vault

* [Ethena ARM] Add smoke tests. (#163)

* Add ethena smoke tests

* add allocate test

* Add allocation tests for AAVE market with and without yield

* fmt

---------

Co-authored-by: Clément <55331875+clement-ux@users.noreply.github.com>

* Added days option to snap Hardhat task

* Added siUSD and iUSD tokens

* Add match target to Makefile for contract verification

* [Ethena ARM] Deploy contracts (#170)

* Deploy Ethena ARM

* Add match target to Makefile for contract verification

* remove incorrect invariant

* Refactor allocate function to clarify return value handling from static call

* Update ARM name references to include Ethena in subtask descriptions

* Add Ethena to ARM name options in snap task and liquidity asset mapping

* Update depositARM, request and claim task to support Ethena ARM and enhance ARM name options

* Update setPrices subtask to include Ethena in ARM name options

* Add Ethena support in swap and tasks descriptions

* Add Ethena withdrawal tasks and status retrieval functionality

* Add ethena actions

* Add Ethena action variables for fee collection and withdrawal tasks

* Fix smoke tests

* Update README.md to rename EtherFi withdrawal command to Ethena withdrawal

* fmt

* Unwrapped sUSDe to USDe in snap for Ethena

* Increased the Ethena allocate threshold in Action

* Add Ethena Action config to rollup
Updated the ARM ABI used by Defender Actions

* Fix Ethena auto claim withdrawals

---------

Co-authored-by: Nicholas Addison <nick@addisonbrown.com.au>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Deployment Deploys smart contracts to the network.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants