Подключить форму бриджа на сайте

50 000 руб. за проект
07 декабря 2021, 13:27 • 5 откликов • 35 просмотров
Здравствуйте, имеется бэкенд, который позволяет организовать бридж между двумя блокчейнами, а именно Ethereum и Everscale (FreeTON).
Необходимо подключить этот бэкенд к сайту через форму web3 (подобие MetaMask).
Ниже представлена краткая последовательность действий:

1) Авторизация в metamask с проверкой выбранной сети
2) Экран где пользователь вводит amount в токенах
3) После ввода суммы, расчитывается количество TON для получения и minimum receive
4) Если у пользователя уже есть ERC20.allowance в пользу VaultWrapper тод формой кнопка Swap

Иначе кнопка Approve

Валидация:
amount >= IDexPair.expectedSpentAmount(10 ton, WTON_TIP3_ROOT)
amount >= IERC20(DAI_ADDRESS).balanceOf(адрес_юзера)

Сумма для получения = IDexPair.expectedAmount(amount, DAI_TIP3_ROOT) - 5.1 ton
Минимум для получения IDexPair.expectedAmount(amount, DAI_TIP3_ROOT) * (100% - slippage) - 5.1 ton

5) По нажатию Approve выполняется IERC20.approve на 100500 токенов, по окончании транзакции кнопка Approve сменяется кнопкой Swap
6) По нажатию Swap происходит вызов VaultWrapper.depositToFactory
7) Подписываемся на транзакции на адресе пользователя, когда увидим соответствующий onReceiveTONsFromBridgeCallback выводим результат обмена

Все необходимые данные по подключению (исходники бэкенда, коды смарт-контрактов) имеются.
Цена договорная.