Ethereum 直接读取以太坊智能合约余额以计算资产转移给用户是否安全?
我有合同,用户可以通过合同在DEX上交易 像这样: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
// 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运行时不能干扰交易的执行