-
Notifications
You must be signed in to change notification settings - Fork 389
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Yield-earning Warp Routes with ERC4626 #2450
Comments
i would like to do this issue |
so i need to create PR to this hyperlane-token and try to deploy by use hyperlane-deploy, right ? |
We actually moved Warp Routes back to the monorepo, so you should make a PR to the monorepo and then yes use it in hyperlane-deploy (you will need to deploy your own NPM package for that during development) |
@vinhyenvodoi98 I would recommend reading up a bit more on the 4626 standard and how it works |
i have read it but i am having a bit of trouble demo it on testnet environment. |
You should be able to use any 4626 compatible token |
i want confirm about
|
for example
|
It's more generic then that, depends a lot of what A and B chain is. In general, for a warp route, there is a single Use sDAI for an easier example.
|
I would like to work on this issue |
@AceVikings |
@vinhyenvodoi98 I would say you had quite a lot of time on this ticket, so I'll open it up to the public again. If you end up getting your work completed with the full-scope, you obviously remain eligible |
Hey, could I be assigned this now ? |
Hey @AceVikings feel free to attempt this, When you open up the PR, tag our CTO @ nambrot for a review |
@RohanShrothrium and megabyte also asked, but Ace was first |
Got it, thanks! |
Hello, can I work on this? |
hey lee @ltyu - go for it! |
### Description Integrates ERC4626 compatible vaults. This PR assumes that the vault `asset` is the same as `wrappedToken` - `_transferFromSender()` deposits into the vault - `_transferTo()` withdraws from the vault - `sweep()` redeems excess shares for the vault asset - Uses internal `assetDeposited` store to keep track of assets deposited. Used to calculate excess shares to be withdrawn by owner - Makes minor changes to existing test files to allow new tests to inherit ### Drive-by changes <!-- Are there any minor or drive-by changes also included? --> ### Related issues - Implements #2450 ### Backward compatibility Yes ### Testing Manual/Unit Tests --------- Co-authored-by: Yorke Rhodes <[email protected]>
linking #3076 |
### Description Integrates ERC4626 compatible vaults. This PR assumes that the vault `asset` is the same as `wrappedToken` - `_transferFromSender()` deposits into the vault - `_transferTo()` withdraws from the vault - `sweep()` redeems excess shares for the vault asset - Uses internal `assetDeposited` store to keep track of assets deposited. Used to calculate excess shares to be withdrawn by owner - Makes minor changes to existing test files to allow new tests to inherit ### Drive-by changes <!-- Are there any minor or drive-by changes also included? --> ### Related issues - Implements #2450 ### Backward compatibility Yes ### Testing Manual/Unit Tests --------- Co-authored-by: Yorke Rhodes <[email protected]>
Context
Tokens that are held in Warp Route's
HypERC20Collateral
back the syntheticHypERC20
tokens on the remote chains. A warp route deployer may want to create a warp route that puts these tokens to productive use. ERC4626 standard was created to allow yield-sources to easily be used without custom integration.This bounty calls for a
HypERC20Collateral
variant that can deposit the underlying token into a 4626 vault (and withdraws it from the vault on unlock). When withdrawing, the user should get returned the original amount, with the yield accumulating in the warp route (which is tracked and withdrawable by the owner). The change itself should be pretty simple, so to complete this issue, you should also:This is especially compelling as that allows let's say app-rollup/chain operators to monetize the deposits and capture value from a service they are providing. Obviously this is fundamentally already possible, but having ready to go contracts/products for this use case is key.
The text was updated successfully, but these errors were encountered: