-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Overview
The goal with this spec is for defining a cross-chain omni pool design for LSTs. The pool will whitelist and aggregate LSTs and then we will upgrade our protocol-solidity / masp-protocol bridge to support this omni-pool token. The final design will resemble something like
Omni-pool token functionality.
Consider using ERC4262 to represent the webbXYZ token if it works, if not disregard.
DEPOSIT- Many tokens can mint shares ofwebbXYZproportional to the value of the underlyingXYZholdings. Since these are LSTs, 1 LSTS might be worth more than 1 XYZ token. Therefore, depositing 1 XYZ LST will yield > 1webbXYZ.WITHDRAW- BurningwebbXYZwill return any available token requested if available liquidity permits. We can consider supporting burning into multiple tokens.PRICING- Pricing for tokens is inXYZterms. There should be an oracle method (incorruptible on ideal chain, i.e. stETH on Ethereum) that tells us the underlying amount of tokens in the LST. https://learn.sanctum.so/docs/protocol/infinity/pricing-mechanism-of-infinity
Read up on Sanctum. The pool should support a swap functionality that allows users to swap between available liquidity on each side of the bridge. I don't know how we would immediately support cross-chain swap but possibly through intents.
SWAP- Liquidity provided to the omni pool is used to support swapping between them. Fees from the swapping mechanism are used to reward omni-pool token holders, i.e.webbXYZ.GOVERNANCE- Set fees for swapping between available pairs - https://learn.sanctum.so/docs/protocol/infinity/fee-mechanism-of-infinity (every asset hasinputFeeandoutputFee.GOVERNANCEAllocation strategy https://learn.sanctum.so/docs/protocol/infinity/allocation-strategy.
Bridging mechanism
The goal is to take webbXYZ tokens (the omni-pool tokens) and bridge them across chains. We can improve the protocol-solidity/masp-protocol private bridge by integrating it with this type of token. The docs for the privacy bridges can be found in
- https://docs.webb.tools/docs/protocols/masp/overview/
- https://docs.webb.tools/docs/protocols/single-asset-shielded-pool/overview/
The current bridge leverages a fully-connected graph topology (every anchor connected to each other). Instead we can explore a star-topology, where every anchor is connected to Tangle which hosts a RelayAnchor -- an anchor that maintains edges to all other chains. The flow would be as follows
- Deposits of assets happen on each respective chain / anchor (even the
RelayAnchor). - Transfers/Withdraws are all initiated on the
RelayAnchor. If the transfer/withdraw verifies successfully on Tangle, then we dispatch a cross-chain message to the destination chain indicated in the transfer/withdrawal which will trigger the asset withdrawal or the data transfer (inclusion of the spent nullifier and UTXO hash in the destination merkle tree).
