Нашли 1 очень серьезную уязвимость, специфическую именно для TON, о которой обязательно напишем пост позже.
Обращайтесь.
@TheOpenDevTeam x @TheOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
13👏29🔥21❤14 5🍾2
Наши дорогие коллеги из Torch finance принесли вкусное — они разработали единый стандарт vault-ов для TON-а. Всё на Tolk (пока только 1.0).
Данный стандарт призван упростить билдинг DeFi инструментов на TON, по аналогии с тем, как на EVM сетях есть куча open-source стандартов для задач разной сложности. Часто архитекторы в других сетях оперируют не кастомными решениями, а занимаются собиранием продукта из коструктора — готовых open-source стандартов, применимых в конкретной ситуации.
Сам vault представляет из себя контракт, принимающий на вход конкретный актив, и минтящий share — lp токены доли пользователя от общего размера vault-а.
Разработчик, кроме proposal, написал также еще и статью о стандарте, его возможных применениях, и назначении. Призываем всех разработчиков обратить внимание, а также посмотреть на сам код смарт-контракта в proposal — возможно, вы сможете что-то улучшить.
Осветили.
@TheOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33❤17 17🔥5
Разбираться будем на примере нашумевшего $GIFTSTR. Он имеет комиссию на покупку и продажу себя. Как это реализовано?
Если посмотреть на транзакцию продажи, то там всё просто — при отправке жетонов с целью продать jetton wallet отправителя парсит свой
forward_payload, и если находит там операцию продажи токена, отправляет 10% от депозита на jetton wallet команды. Это, к сожалению, ведёт к тому, что при неудавшемся свапе пользователь теряет 10% баланса. От этого крайне трудно избавиться, поэтому это не особо важно.При покупке жетона всё сложнее. Когда мы продаем жетон, $GIFTSTR контролирует момент продажи, потому что он начинается с jetton wallet $GIFTSTR. При покупке же jetton wallet участвует только в конце, когда свап прошёл, и надо выплатить пользователю его жетоны. Поэтому самый простой способ проверять покупку — это проверять, что жетоны отправляются с адреса волта Dedust. И действительно — в такой ситуации jetton wallet отправляет 10% от полученного количества жетонов на кошелек команды.
Но у этого есть побочный эффект. Если выплата с волта Dedust происходит по иным причинам (например, вывод ликвидности), то пользователь тоже будет терять 10% от полученных токенов, хотя никакого свапа не произошло. Поэтому, несмотря на 100% APY на Dedust, класть ликвидность в $GIFTSTR — крайне сомнительная затея.
@TheOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17 10👍8⚡3
Наверняка многие уже в курсе нового супер-скандала, где Storm trade ОБМАНУЛ и ЗАСКАМИЛ пользователя, написав в интерфейсе, что он в профите на десятки сотен процентов, а затем просто "закрыл позицию" без объяснения причин. Разбираемся, что произошло.
Что вчера случилось — на всех крупных рынках (в первую очередь CEX), вероятно, просто кончились лимитные заявки на покупку тона, именно поэтому "цена" на TON падала до 0.5$. Нужно понимать, что сама по себе без объёмов торгов эта цена мало что значит, вряд ли по ней было много спотовых сделок, однако как факт — маленький промежуток времени на рынке вполне можно было наблюдать практически пустой стакан.
Это означает две вещи:
После того, как MM проснулись, цена быстро ушла обратно ближе к 2$, и на момент написания поста уже вполне себе хорошо торгуется по цене около 2.2$.
Storm trade устроен иначе, не как CEX, — там нет стакана, нет в традиционном понимании лимитных заявок на покупку/продажу, там есть так называемый оракул (PYTH). В крайне упрощенном виде — это сервис, присылающий актуальные цены в блокчейн. На Storm trade в любой момент можно открыть любую позицию на любом рынке с любым плечом (главное, чтобы open interest позволил). Очевидно, что при такой гибкости требуются механизмы защиты протокола.
Когда вы открываете позицию, вы посылаете на смарт-контракт сообщение для создания ордера на открытие данной позиции. Это означает, что между нажатием вами кнопки в интерфейсе и открытием самой позиции есть довольно большой (по меркам волатильного рынка) временной промежуток. Если цена, по которой вы открывали позицию, и цена на момент обработки ордера сильно отличаются — позиция просто не откроется. По сути это slippage, как на любом DEX. Если внимательно изучить интерфейс Storm trade, то можно заметить, что пока открытие позиции обрабатывается — самой позиции ещё нету, а есть лишь ордер на её открытие, что вполне нормально и логично.
Slippage на perp DEX существует для того, чтобы потенциальный злоумышленник не мог указать случайную цену, заведомо отличающуюся от нынешней, и таким образом не мог открывать заведомо плюсовые сделки, выводя ликвидность из протокола. Такой баг мы находили у другого perp DEX на TON — Tradoor, и своевременно их предупредили, после чего баг был закрыт.
Поэтому никакого скама не произошло — ордер провисел 15 минут в блокчейне, а затем закрылся, т.к цена в нём не прошла проверку по slippage на индексере. Обидно, больно, неприятно, хочется топать ножками — но это так.
Важно понимать — perp DEX бывают разные. Например, в то время как Storm trade просто не открывал некоторые позиции из-за невероятной волатильности, аналогичные позиции на Drift protocol просто невозможно было открыть by design — в их orderbook стакане попросту не было заявок, торги прекратились на цене порядка 1.6$.
@TheOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
62🔥24💯22👍14 10💩9🙏6🤡4👎3🤮3❤1🕊1
Во всех сообщениях фигурирует ошибка 37, это "Not enough Toncoin". Блокчейн тут не при чем.
@TheOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
TON Monitoring
📦 Пользователи нового маркета стикеров Goodies столкнулись с массовыми проблемами при выводе TON, поскольку транзакции зависают в блокчейне.
😁21👍5❤3 3
Мы релизнули DAMM пулы. Факты:
Мемтокены. У нас можно максимально просто запустить свой. Факты:
Один из авторов канала запустил мем самого себя. Важно: никто ничего не обещает, не рекомендует, чистый фан. НИКАКИХ ПЛАНОВ НЕТ.
UPD: в данный момент торговать в DAMM пулах можно только на @bidask.
@TheOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥16 12👍10❤1🕊1
The Open Dev Blog
ВАЖНО: DAMM пулы не залисчены никуда, всё впереди. Если покупать, то только на @bidask, все остальные пулы — вероятный скам. Будьте осторожны, не ведитесь.
🔥5 3❤2🕊1
Пескарь спустя года решил вспомнить про функционал подписок на TON, снял деньги у 400 кошельков, огрёб хейта, после чего возместил всё из своего кармана.
Что такое подписка? Это адрес контракта, который добавляется в storage вашего кошелька. После этого с данного адреса можно совершать действия от вашего wallet контракта (например, отправлять TON за ежемесячную подписку). Это безопасная архитектура, ведь такие плагины списывают средства раз в какой-то промежуток времени.
Что за баг он обнаружил? При отказе от подписки можно было удалить контракт плагина из блокчейна, но не удалить сам адрес подписки из кошелька. Это означало, что если кто-либо заново задеплоит в блокчейн контракт вашей подписки на тот же адрес, то он снова сможет списать с вас деньги. Проверьте свои подписки, энтузиасты уже выкатили тулзу.
Что за баг он проэксплуатировал? Никакой. Бага не было, он просто снял TON за активные подписки, то есть сделал то, что эти подписки должны были делать последние 2 года (но не делали).
Чему нам надо научиться? Репортить баги. Не допускать их невозможно, это нормальная часть разработки, но для здоровой атмосферы в комьюнити нужно соблюдать этику. В своё время мы подали всем хороший пример, как заметили в одной из приваток.
Пескарь красавчик.
@TheOpenDevBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍17 11🎃8❤4💯1🦄1
Ton Core поучаствовала в 3-х апдейтах, которые начинаются или заканчиваются на букву C. Это:
Anonymous Poll
34%
USDC
54%
FunC
63%
tgBTC
60%
Cocoon
26%
СBidaskС
4%
Предположу в комментариях