Cross-chain liquidity mining

The cross-chain bridge allows any token from one network to be transferred to other networks in terms of wrapped token issued by the DotOracle bridge contract. For example, transferring 100 USDT from Ethereum to Binance Smart Chain (BSC) will result in 100 dtoUSDT wrapped token issued on BSC.
However, there is an issue with this approach: there is a USDT token on BSC already and users on BSC are familiar with this USDT. Theoretically, 1 dtoUSDT is equivalent to 1 USDT on BSC. The question remains: how to exchange 1 dtoUSDT to 1 USDT BSC as the USDT BSC has been extensively used on BSC.
We implement for a liquidity mining program where:
- There is a liquidity pool that has dtoUSDT and the existing USDT on BSC
- Any user with dtoUSDT on BSC can deposit dtoUSDT into the pool
- Any user with the existing USDT on BSC can deposit USDT into the pool
- The depositors of dtoUSDT and the existing USDT are called liquidity providers
- Liquidity providers are not required to provide both tokens in the pool
- Liquidity providers do not suffer from impermanent loss as in other liquidity mining
- Any user can swap 1 dtoUSDT to 1 USDT, N dtoUSDT to N USDT, and vice versa, depending on the liquidity in the pool
- Liquidity providers can choose to remove liquidity from the pool any time. A liquidity provider can choose to withdraw USDT and/or dtoUSDT, depending on the liquidity in the pool.
- If there is not enough USDT to remove for a USDT liquidity provider, the provider can choose to remove with dtoUSDT, with which the provider can transfer dtoUSDT back to the original blockchain Ethereum to receive the origin USDT on Ethereum.
- For example, if a liquidity provider provides 100 USDT to the dtoUSDT/USDT pool, and wants to remove liquidity from the pool when there remains 40 USDT and 1000 dtoUSDT in the pool. The provider can remove 40 USDT and 60 dtoUSDT or 100 dtoUSDT. The provider can therefore swap 100 dtoUSDT back to 100 USDT on Ethereum.
- Liquidity providers will be rewarded from two sources
- DTO token
- Swap fees from dtoUSDT to USDT and back
- This liquidity mining can be applied to any token
