centrifuge / apps

Monorepo for Centrifuge frontends, including Centrifuge App, onboarding api, and Fabric design system.
GNU Lesser General Public License v3.0
27 stars 16 forks source link

feat: Allow investing/redeeming from Asset Hub #2440

Open mustermeiszer opened 2 months ago

mustermeiszer commented 2 months ago

To ease the lives of investors from Asset Hub (AH) we can provide a way to invest/redeem from these chains without the need to switch to Centrifuge Chain.

NOTE - The investor ALWAYS needs to be connected to AH to control the tranche tokens on Centrifuge Chain. In the UI the Portfolio will be confusing then, the USDC is held on AH whereas the tranche tokens are held on Centrifuge.

Monitoring the success of the calls on Centrifuge can be done by linking from the XCM Hash to the associated subscan page here. Note that we need one link per XCM message sent.

Investing

Connected and executed call from AH

Invest

This assumes that either PoolCurrency or a currency that can be swapped via pallet-token-mux is held on AH by the user.

utility.batchAll
* polkadotXcm.limitedReserveTransferAsset(..)
* polkadotXcm.send(INVEST_TRANSACT)

Example:

Cancel Invest

utility.batchAll
* polkadotXcm.send()

Collecting Investments

utility.batchAll
* polkadotXcm.send()

Redeeming

Connected and executed call from AH

Redeem

utility.batchAll
* polkadotXcm.send()

Cancel Redeem

utility.batchAll
* polkadotXcm.send()

Collecting Redemptions

utility.batchAll
* polkadotXcm.send()

Portfolio

It is mandatory, that the UI checks for the holdings of the derived account on Centrifuge chain and displays them too in the portfolio overview.

Derived Account

mustermeiszer commented 2 months ago

Best would be to bring in this full ticket so that users see where their funds lie that they can control.

mustermeiszer commented 2 months ago

Testing

Testing this will be very hard, as all test networks do not have an actual AH atm... Easiest should be to start a new AH parachain in our dev cluster and use that one.