Про проєкт
Архівний 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.