我有合同,通过它用户可以在DEX上交易。
如下所示:
// transfer asset A from msg.sender
ERC20(AToken).transferFrom(msg.sender, address(this), amount);
// do trade A to B
... trade logic here
// get balance of asset B after trade
// asset B after trade gets to this contract address
uint256 returnAmount = ERC20(BToken).balanceOf(address(this));
// transfer asset B to msg.sender
ERC20(BToken).transfer(msg.sender, returnAmount);我想知道returnAmount,这逻辑是安全的吗?
以太坊中的事务要么完全执行,要么根本不执行,而且还按优先级顺序执行。
但我仍然在想,是否会有这样的情况,当returnAmount错误地显示,例如,合同在另一个用户的交易后获得余额?
发布于 2020-02-10 18:59:57
ETH中的事务是逐个执行的,当EVM运行事务时,其他事务不能干扰事务的执行。
https://stackoverflow.com/questions/60147040
复制相似问题