TonConnect by SVOI.dev - FreeTON webpage conncetion for browser extensions

Russian version below

Greetings! :slight_smile: I have good news.

As you know, our SVOI.dev team develops many different products for FreeTON, and a very significant part of them rely on the web (contrary to the opinion that all this is unnecessary, and let’s do debots :sweat_smile:)

Previously, we have already used in our projects a module that simplifies the integration of several browser wallets with a web page, however, as you understand, we wanted to popularize our extension - TONWallet.io, so this module was used only to integrate our wallet (and previously ExtraTON) and a clean ton-web-js module as an alternative for connection.

With the launch of a new product - TonPunks.com, we decided to support not only TONWallet, but also the very popular Crystal Wallet from Broxus. In the process of creating this product, it was also found that not all browsers can “run” the FreeTON WASM module, so we also implement the TonBackendProvider internal module which allows you to receive data from smart contracts without using the WASM module at all.

In the end, we separated the module into a separate mini-service, which we want to present to all service developers on FreeTON! :partying_face:

A little words about the module:

  • Full documentation is still in development, but in the examples folder you can see how this module can be used + all files of module are marked up using jsDoc.

  • Currently there are 2 extensions available: TONWallet and Crystal Wallet. ExtraTON now in progress

  • The module is designed according to the principle “take a minimum of extensions”. Therefore, even for situations where the extension is exists and active, the ton-client-js and ton-client-web functionality is used for runLocal and the formation of payload.

  • This is an ES6 module as it should be. All files are separated from each other, and no webpack is used

  • The backend is still in test mode, sometimes there may be no connection or temporary failures

Those wishing to send an issues or pull request - welcome! If you have questions or need help, you can ask in this thread on the forum or in my telegram @lailune

CTO of SVOI.dev Team,
Andrey Nedobylskiy


Всем привет! :slight_smile: Я с хорошей новостью.

Как вы знаете, наша команда SVOI.dev разрабатывает много различных продуктов для FreeTON, и очень значительная их часть опирается на веб (вопреки мнению, что это все не нужно, и давайте делать деботов :sweat_smile: ).

Ранее мы уже использовали у себя внутри модуль, упрощающий интеграцию нескольких браузерных кошельков с веб страницей, однако, как понимаете, мы хотели популяризировать наше расширение - TONWallet.io, поэтому этот модуль использовался только для интеграции нашего кошелька (а ранее ExtraTON) и чистого модуля ton-web-js как альтернативы.

С запуском нового продукта - TonPunks.com мы приняли решение реализовать поддержку не только TONWallet, но и очень популярного Crystal Wallet от Broxus. В процессе создания этого продукта также было выяснено, что не все браузеры могут адекватно “запускать” WASM модуль FreeTON, поэтому также был реализован внутренний модуль TonBackendProvider, который позволяет получать данные из контрактов вообще без использования WASM модуля.

В конце концов мы отделили модуль в отдельный мини-сервис, который и хотим представить всем разработчикам сервисов на FreeTON! :partying_face:

Немного о самом модуле:

  • Полноценная документация пока в разработке, но в папке examples вы можете посмотреть примеры, как этот модуль может быть использован + все файлы размечены с помощью jsDoc.

  • На текущий момент доступно 2 расширения: TONWallet и Crystal Wallet. В процессе интеграции сейчас ExtraTON

  • Модуль разработан по принципу “из расширений берем минимум”. Поэтому даже для ситуаций, когда расширение есть и активно, используется функционал ton-client-js и ton-client-web для runLocal и формирования payload

  • Это ES6 модуль с том виде, в котором он должен быть. Все файлы разделены друг от друга, и не используется webpack (и слава богу)

  • Бэкенд пока в тестовом режиме, может иногда отсутствовать подключение или временные сбои

Желающие отправить issue или pull request - welcome! Если есть вопросы или нужна помощь, можно спрашивать в этой теме на форуме или в моём ТГ @lailune

Андрей Недобылський,
CTO SVOI.dev

7 Likes

That is very cool & helpful. Thanks!

Good! Plz explain for devs, how you run contracts locally without WASM execution.

2 Likes

It’s not local running. Module sends calling data to server and runs it remotely :slight_smile:

2 Likes

Thx⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀