О проекте
Архивный TON-прототип: собственная система Tact-контрактов и парсер транзакций на TypeScript, написанный с нуля.
Архивный TON-прототип: собственная система Tact-контрактов и парсер транзакций на TypeScript, написанный с нуля.
TypeScript, Tact, TON, TonAPI, @ton/core
Архивный TON-прототип: собственная система Tact-контрактов и парсер транзакций на TypeScript, написанный с нуля.
Разработал систему взаимодействующих смарт-контрактов на Tact и с нуля написал её парсер транзакций на TypeScript. Парсер получает traces из TonAPI, обходит дерево внутренних сообщений и формирует структурированные данные о создании и покупке Jetton. PaperPump остаётся архивным прототипом.
Автор разворачивает Jetton через market-контракт. Покупатели двигают цену по кубической bonding curve; продавцы возвращают токены через Jetton wallet flow и получают TON из резерва market. Indexer преобразует on-chain активность в данные для API и интерфейса.
Внутренние сообщения TON связывают независимо развёрнутые контракты.
Создание и торговля
Factory, кривая, резерв TON
Master и контролируемый mint
Баланс и перевод владельца
События в данные приложения
С нуля написал парсер собственной системы Tact-контрактов на TypeScript с Express, TonAPI и @ton/core. Он распознаёт сообщения создания и покупки по opcode, обходит traces транзакций, читает результаты getter-методов контрактов и декодирует метаданные Jetton в структурированные отчёты.
При разработке в testnet стандартное форматирование адресов не добавляло test-only флаг. Raw-адрес TON не содержит этого флага. Вынес форматирование в общую функцию: она получает выбранную сеть и устанавливает testOnly для user-friendly адресов. То же значение сети определяет API endpoints и настраивает сериализацию HTTP-ответа. Это явное сохранение контекста отображения, без изменения адреса аккаунта или попыток определить сеть по нему.
Корневой контракт формирует StateInit и разворачивает отдельный PaperJetton master для каждого запуска.
Покупка запускает mint через master и кошелёк владельца. Продажа возвращается как TokenNotification, после чего токены сжигаются, а TON высвобождается.
Кубическая кривая использует целочисленную арифметику, явную точность и реализацию целого кубического корня для VM.
Ожидаемые адреса дочерних контрактов выводятся из code и data, а не принимаются как произвольный ввод.
Minter, collection и item-контракт моделируют ограниченную по времени активацию отдельно от владения токеном.
Логика Tact-контрактов и TypeScript-парсер, который преобразует traces транзакций в данные приложения.
Проект не был завершён или выпущен. В sell-flow осталась нерешённая проверка wallet sender, а subscription minter содержит незавершённый forwarding flow. Это пример Tact и мультиконтрактной архитектуры, а не production-протокол.
Контрактная карта создания, торговли по кубической кривой, сообщений Jetton wallet, индексации и незавершённой ветки subscription NFT.