Ethereum — транзакция выполнена с задержкой

Я работаю над смарт-контрактом, который вызывает форк Uniswap для обмена токена A на токен B.

Перед обменом я проверяю текущие резервы пары (количество токенов A и B в парном контракте) и рассчитываю ожидаемую сумму, которую должен получить. Затем, если сумма > заданной суммы, я выполняю своп.

Когда я выполняю этот смарт-контракт на своем локальном компьютере и печатаю ожидаемую сумму в своем первом чеке => я получаю сумму X. Затем выполняется своп, и, как и ожидалось, я получаю именно ожидаемую сумму X. Я использую Hardhat и я разветвляем основную сеть для своих тестов.

Однако, когда я развертываю его в основной сети и выполняю транзакцию, он не работает все время. Когда транзакция находится в ожидании в течение длительного времени (перегруженная сеть), она проходит мою проверку (расчет ожидаемой суммы на основе текущих резервов парного контракта), но я получаю меньше ожидаемого.

Вот где я потерялся. Я могу понять, что транзакцию можно отменить, потому что она не проходит мою проверку (резервы пары изменились между моментом отправки транзакции и моментом ее выполнения), но я действительно не понимаю, как в та же транзакция, она может пройти проверку и вернуть мне меньшую сумму.

У вас есть какие-нибудь подсказки? Спасибо

0 ответов

Другие вопросы по тегам