Безопасно ли читать смарт-контракт ethereum напрямую для расчета передачи активов пользователям? - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть контракт, по которому пользователи могут торговать на 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, безопасен ли этот лог c?

Транзакции в ethereum выполняются либо полностью, либо не выполняются вообще, а также в порядке приоритета.

Но мне все еще интересно, может ли быть такой случай, когда returnAmount показывает неправильно, например, контракт получить баланс после транзакции другого пользователя?

1 Ответ

1 голос
/ 10 февраля 2020

Транзакции в ETH выполняются одна за другой, другие транзакции не могут мешать выполнению транзакции, когда она выполняется EVM.

...