| | |
| | | import cc.mrbird.febs.common.utils.RedisUtils; |
| | | import cc.mrbird.febs.dapp.chain.ChainEnum; |
| | | import cc.mrbird.febs.dapp.chain.ChainService; |
| | | import cc.mrbird.febs.dapp.chain.ContractChainService; |
| | | import cc.mrbird.febs.dapp.dto.RecordInPageDto; |
| | | import cc.mrbird.febs.dapp.dto.TransferDto; |
| | | import cc.mrbird.febs.dapp.dto.WalletOperateDto; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | public void transfer(TransferDto transferDto) { |
| | | DappMemberEntity member = LoginUserUtil.getAppUser(); |
| | | |
| | | ChainService.getInstance(ChainEnum.BSC_USDT_SOURCE.name()).balanceOf(member.getAddress()); |
| | | ChainService.getInstance(ChainEnum.BSC_TFC_SOURCE.name()).balanceOf(member.getAddress()); |
| | | // ChainService.getInstance(ChainEnum.BSC_USDT_SOURCE.name()).balanceOf(member.getAddress()); |
| | | // ChainService.getInstance(ChainEnum.BSC_TFC_SOURCE.name()).balanceOf(member.getAddress()); |
| | | |
| | | DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), transferDto.getType(), 1, transferDto.getFee(), transferDto.getTxHash()); |
| | | fundFlow.setNewestPrice(transferDto.getPrice()); |
| | | dappFundFlowDao.insert(fundFlow); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, BigDecimal> calPrice() { |
| | | DappMemberEntity member = LoginUserUtil.getAppUser(); |
| | | |
| | | ContractChainService tfcInstance = ChainService.getInstance(ChainEnum.BSC_TFC_SOURCE.name()); |
| | | // u剩余数量 |
| | | BigDecimal sourceU = ChainService.getInstance(ChainEnum.BSC_USDT_SOURCE.name()).balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress()); |
| | | // 源池代币剩余数量 |
| | | BigDecimal sourceCoin = tfcInstance.balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress()); |
| | | // 用户代币剩余数量 |
| | | BigDecimal coin = tfcInstance.balanceOf(member.getAddress()); |
| | | BigDecimal x = sourceU.divide(sourceCoin, tfcInstance.decimals(), RoundingMode.HALF_DOWN); |
| | | BigDecimal y = sourceU.divide(sourceCoin.add(coin), tfcInstance.decimals(), RoundingMode.HALF_DOWN); |
| | | |
| | | HashMap<String, BigDecimal> map = new HashMap<>(); |
| | | map.put("x", BigDecimal.ONE); |
| | | map.put("y", BigDecimal.valueOf(0.8D)); |