UXDProtocol / uxd-program

Implementation of a program that manages on chain accounts to mint and redeem Redeemables tokens (UXD), hedged by a delta neutral position on underlying DEXes.
https://uxd.fi/
Other
21 stars 5 forks source link

[Rebalancing] Router Redeem IX #250

Closed crypto-vincent closed 1 year ago

crypto-vincent commented 1 year ago

This PR introduces a new IX:

Example maths values for a scenario of 2 mints in a row (20, then 120):

# First Redeem
# Weights set to 0%, 100%, 0% (identity overflowing, mercurial underflowing)
[redeem]
[redeem:redeemable_amount:20000000]
[redeem:identity_depository.redeemable_amount_under_management:29999999]
[redeem:mercurial_vault_depository_0.redeemable_amount_under_management:119999999]
[redeem:credix_lp_depository_0.redeemable_amount_under_management:149999998]
[redeem:depositories_target_redeemable_amount.identity_depository:0]
[redeem:depositories_target_redeemable_amount.mercurial_vault_depository_0:279999996]
[redeem:depositories_target_redeemable_amount.credix_lp_depository_0:0]
[redeem:depositories_redeemable_amount.identity_depository:20000000]
[redeem:depositories_redeemable_amount.mercurial_vault_depository_0:0]
[redeem:depositories_redeemable_amount.credix_lp_depository_0:0]

# Second redeem
# Weights unchanged, mercurial underflowing is still being redeemed from, because no other source available
[redeem]
[redeem:redeemable_amount:120000000]
[redeem:identity_depository.redeemable_amount_under_management:9999999]
[redeem:mercurial_vault_depository_0.redeemable_amount_under_management:119999999]
[redeem:credix_lp_depository_0.redeemable_amount_under_management:149999998]
[redeem:depositories_target_redeemable_amount.identity_depository:0]
[redeem:depositories_target_redeemable_amount.mercurial_vault_depository_0:159999996]
[redeem:depositories_target_redeemable_amount.credix_lp_depository_0:0]
[redeem:depositories_redeemable_amount.identity_depository:9999999]
[redeem:depositories_redeemable_amount.mercurial_vault_depository_0:110000001]
[redeem:depositories_redeemable_amount.credix_lp_depository_0:0]

Note: this PR is a follow up to: https://github.com/UXDProtocol/uxd-program/pull/246