Open kjioi7 opened 3 years ago
Немного упростим написанное Вами. Вы говорите что использование функции swapExactETHForTokens выдает ошибку, а использование функции swapETHForExactTokens проходит успешно. Я Вас уверяю, что данные функции работают идентично и никакой ошибки в них нет! Ваша транзакция скорее всего была отклонена по причине выхода за пределы проскальзывания.
P.S. на Вашем месте с данным контрактом 0x86A1012d437BBFf84fbDF62569D12d4FD3396F8c я бы не работал, тем более если не знаете что это за контракт, а то так можете попасть когда-нибудь на мошенников. Любой нормальный токен вообще не должен иметь никаких привязок с DEX-биржами, адрес пула ликвидности в этом токене просто должен иметь баланс и не более того. А открыв контракт данного токена и просто кинув взгляд на код уже видно что там явно прописаны адреса контракта factory и router Soy.Finance, плюс к этому в коде уже видны функции блокировки и разблокировки токенов, а так же предусмотрена смена владельца.... Так что для начала работы с каким-либо контрактом изучайте его код, либо ждите официальной информации по токену и его аудиту.
Пример: Выбираем пару для свапа: Clo\Calimoon контракт 0x86A1012d437BBFf84fbDF62569D12d4FD3396F8c Если указывать количество монет, которые хотим обменять (Clo) автоматически выставляет количество монет для получения (CaliMoon). После подтверждения обмена выдает ошибку: The transaction cannot succeed due to error: undefined. This is probably an issue with one of the tokens you are swapping.
Если для обмена указывать количество монет, которое хотим получить, вводим число для CaliMoon, свап проходит.
Проверил данный факт. При обмене реально выдает ошибку "The transaction cannot succeed due to error: undefined. This is probably an issue with one of the tokens you are swapping". Это проблема токена Calimoon, но никак не контрактов Soy.Finance. Так что думаю данный вопрос можно закрывать.
Пример: Выбираем пару для свапа: Clo\Calimoon контракт 0x86A1012d437BBFf84fbDF62569D12d4FD3396F8c Если указывать количество монет, которые хотим обменять (Clo) автоматически выставляет количество монет для получения (CaliMoon). После подтверждения обмена выдает ошибку: The transaction cannot succeed due to error: undefined. This is probably an issue with one of the tokens you are swapping. Если для обмена указывать количество монет, которое хотим получить, вводим число для CaliMoon, свап проходит.
Проверил данный факт. При обмене реально выдает ошибку "The transaction cannot succeed due to error: undefined. This is probably an issue with one of the tokens you are swapping". Это проблема токена Calimoon, но никак не контрактов Soy.Finance. Так что думаю данный вопрос можно закрывать.
Ты невнимателен. Была бы проблема с токеном, или ликвидностью, его не вышло бы менять.
А так меняется описанным методом, причем любая сумма.
Данная проблема возникает из-за того что CaliMoon токен берет комиссию за перевод. При вызове функции swapExactETHForTokens
через Soy Finance интерфейс указывается значение amountOutMin
согласно расчетам, но из-за того что токен контракт берет комиссию сума на выходе будет меньшей поэтому транзакция завершается неудачей.
Если установить amountOutMin = 0
, транзакция пройдет успешно. Вот пример:
swapExactETHForTokens
https://explorer.callisto.network/tx/0x47a06484cfb47933f25c21ee893c6452779955aa9654526b10fde19eceb35a37/token-transfers
swapETHForExactTokens
https://explorer.callisto.network/tx/0x39a8713e8b21d8e0b4d89b23e7847d6c92844cb7a7244825006277553a1fb58b/token-transfers
Поэтому это не ошибка контракта.
Пример: Выбираем пару для свапа: Clo\Calimoon контракт 0x86A1012d437BBFf84fbDF62569D12d4FD3396F8c Если указывать количество монет, которые хотим обменять (Clo) автоматически выставляет количество монет для получения (CaliMoon). После подтверждения обмена выдает ошибку: The transaction cannot succeed due to error: undefined. This is probably an issue with one of the tokens you are swapping.
Если для обмена указывать количество монет, которое хотим получить, вводим число для CaliMoon, свап проходит.