Ethereum 直接读取以太坊智能合约余额以计算资产转移给用户是否安全?

Ethereum 直接读取以太坊智能合约余额以计算资产转移给用户是否安全?,ethereum,solidity,Ethereum,Solidity,我有合同,用户可以通过合同在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 con

我有合同,用户可以通过合同在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显示不正确时,是否会出现这种情况,例如,合同在另一个用户的交易后获得余额?

ETH中的交易是一个接一个地执行的,其他交易在EVM运行时不能干扰交易的执行