Если у кого-либо при мыслях о том заливать ли ликвидность для фарма на ston fi возникало недоумение, почему в интерфейсе не пишется как долго ещё будет продолжаться буст пула - то есть небольшой лайфхак:
1. Заходите на страницу с пулов в браузере
2. Открываете инспектор в браузере на network, обновляете страницу
3. Ищите запрос на rpc.ston.fi с методом "farm.balance_list_by_pool"
В ответе будет куча инфы, которую по каким-то причинам решили не показывать в интерфейсе: сколько ликвы участвует в фарме, какой минимальный срок через который можно будет вывести ликву и самое главное какой рейт раздачи наград и сколько ещё осталось, удачного диора!
1. Заходите на страницу с пулов в браузере
2. Открываете инспектор в браузере на network, обновляете страницу
3. Ищите запрос на rpc.ston.fi с методом "farm.balance_list_by_pool"
В ответе будет куча инфы, которую по каким-то причинам решили не показывать в интерфейсе: сколько ликвы участвует в фарме, какой минимальный срок через который можно будет вывести ликву и самое главное какой рейт раздачи наград и сколько ещё осталось, удачного диора!
Как сайты-обозреватели блокчейна понимают, какой перед ними контракт?
Tonviewer часто пишет у себя так называемый "Сontract type" на странице с информацией о каком-либо адресе в блокчейне.
Пример, еще пример.
Никто без посторонней помощи не может напрямую прочитать код контракта из сети, как бы вас не убеждали в прозрачности всей системы. Обозреватели блокчейна просто ищут определенные get-методы в контракте, которые можно вызывать, зная название метода.
У разных контрактов есть разные ключевые get-методы, по которым обозреватели блокчейна его определяют. У кошелька с жеттонами это "get_wallet_data", у контракта токена - "get_jetton_data" и т.д
Таким образом, на самом деле если tonviewer или tonscan пишут, что перед вами jetton_wallet, то есть кошелек с жеттонами, это вовсе не означает, что вы в безопасности. Это может быть кошелек, с которого злоумышленник в любой момент может вывести все средства, это может быть вообще не кошелек, а какой-то совсем другой контракт.
И если кто-то убеждает вас, что tonviewer "аппрувнул" его контракт, подписав его тип - это либо некомпетентность, либо попытка обмана вас.
Для примера написал простенький контрактик, который определяется tonviewer-ом тремя разными типами. Судя по всему, больше трёх он не умеет отображать, а так бы сделал все типы сразу.
Вот его адрес:
https://testnet.tonviewer.com/kQDa7hIG0U4swiXmRJ6014vR8EDJQGFLcGEqr8Fxvoi_SCAM
Tonviewer часто пишет у себя так называемый "Сontract type" на странице с информацией о каком-либо адресе в блокчейне.
Пример, еще пример.
Никто без посторонней помощи не может напрямую прочитать код контракта из сети, как бы вас не убеждали в прозрачности всей системы. Обозреватели блокчейна просто ищут определенные get-методы в контракте, которые можно вызывать, зная название метода.
У разных контрактов есть разные ключевые get-методы, по которым обозреватели блокчейна его определяют. У кошелька с жеттонами это "get_wallet_data", у контракта токена - "get_jetton_data" и т.д
Таким образом, на самом деле если tonviewer или tonscan пишут, что перед вами jetton_wallet, то есть кошелек с жеттонами, это вовсе не означает, что вы в безопасности. Это может быть кошелек, с которого злоумышленник в любой момент может вывести все средства, это может быть вообще не кошелек, а какой-то совсем другой контракт.
И если кто-то убеждает вас, что tonviewer "аппрувнул" его контракт, подписав его тип - это либо некомпетентность, либо попытка обмана вас.
Для примера написал простенький контрактик, который определяется tonviewer-ом тремя разными типами. Судя по всему, больше трёх он не умеет отображать, а так бы сделал все типы сразу.
Вот его адрес:
https://testnet.tonviewer.com/kQDa7hIG0U4swiXmRJ6014vR8EDJQGFLcGEqr8Fxvoi_SCAM
Немногие знают, это в целом какая-то странно непопулярная информация, что на Ton можно взять себе адрес с красивым окончанием. Например, контракт к прошлому посту имеет окончание "_SCAM". Из известных контрактов можно ещё вспомнить адрес токена $SCALE -
Причём это не ещё один финансовый рычаг Дурова, их нигде не продают (хотя можно попробовать!). Эти адреса можно посчитать.
Вообще для этого есть репозиторий на github. Если вы разбираетесь, то пользуйтесь.
Красивый адрес контракта ничего, конечно, не означает. Любой скамер может намайнить себе адрес "..._CHECKED" (при наличии у него достаточной мощности, она нужна немалая), и занять его для своих будущих злодеяний. Поэтому не ведитесь на (иногда недешевый) понт.
EQBlqsm144Dq6SjbPI4jjZvA1hqTIP3CvHovbIfW_t-SCALE
.Причём это не ещё один финансовый рычаг Дурова, их нигде не продают (хотя можно попробовать!). Эти адреса можно посчитать.
Вообще для этого есть репозиторий на github. Если вы разбираетесь, то пользуйтесь.
Красивый адрес контракта ничего, конечно, не означает. Любой скамер может намайнить себе адрес "..._CHECKED" (при наличии у него достаточной мощности, она нужна немалая), и занять его для своих будущих злодеяний. Поэтому не ведитесь на (иногда недешевый) понт.
Чекеры контрактов
Канал @skamshot попросил нас разобрать тему полезности и возможности нахождения ханипотов в контрактах в контексте блокчейна Ton.
Первое, что нужно понимать - код контракта, который вы можете найти на github и информация, которая хранится в блокчейне - это разные сущности. Это работает так и на Ton, и на EVM блокчейнах (Ethereum, Polygon, Avalanche).
Это происходит из-за того, что код, который программисты пишут, "компилируется", то есть перегоняется из человекочитаемого формата в машиночитаемый - нули и единицы, которые распознаются виртуальной машиной блокчейна как инструкции к работе. Именно поэтому просто взять и прочитать, что делает контракт, пользуясь только глазами, не получится.
На EVM блокчейнах для этого есть довольно развитая индустрия "декомпиляторов" - программ, которые из машиночитаемого формата пытаются сделать человекочитаемый. Это нетривиальная задача, причем ее нетривиальность довольно сложно объяснить, поэтому пропустим.
На Ton-е лично я видел что-то подобное, но страшно сырое, поэтому считаю, что декомпиляторов на Ton-е пока нет. При этом никакая архитектурная особенность не мешает им появиться в будущем.
Канал @skamshot попросил нас разобрать тему полезности и возможности нахождения ханипотов в контрактах в контексте блокчейна Ton.
Первое, что нужно понимать - код контракта, который вы можете найти на github и информация, которая хранится в блокчейне - это разные сущности. Это работает так и на Ton, и на EVM блокчейнах (Ethereum, Polygon, Avalanche).
Это происходит из-за того, что код, который программисты пишут, "компилируется", то есть перегоняется из человекочитаемого формата в машиночитаемый - нули и единицы, которые распознаются виртуальной машиной блокчейна как инструкции к работе. Именно поэтому просто взять и прочитать, что делает контракт, пользуясь только глазами, не получится.
На EVM блокчейнах для этого есть довольно развитая индустрия "декомпиляторов" - программ, которые из машиночитаемого формата пытаются сделать человекочитаемый. Это нетривиальная задача, причем ее нетривиальность довольно сложно объяснить, поэтому пропустим.
На Ton-е лично я видел что-то подобное, но страшно сырое, поэтому считаю, что декомпиляторов на Ton-е пока нет. При этом никакая архитектурная особенность не мешает им появиться в будущем.
The Open Dev Blog
Чекеры контрактов Канал @skamshot попросил нас разобрать тему полезности и возможности нахождения ханипотов в контрактах в контексте блокчейна Ton. Первое, что нужно понимать - код контракта, который вы можете найти на github и информация, которая хранится…
Поэтому единственный способ проверить, что делает контракт - это "эмулировать" транзакцию, то есть имитировать работу контракта, основываясь на его машиночитаемой версии.
На Ton-e это возможно. Поэтому сделать проверку ханипотов вполне реально. Например, есть @ruton_checker_bot. Я не могу ручаться за его достоверность, но знаю нескольких людей, которые им пользуются. Создатель отказался выдавать нам, какие проверки его бот проводит. Это хороший знак. За сколько-то звёзд можем сделать стресс тест этого бота - определит ли он ханипоты, которые мы напишем?
Однако важно понимать несколько деталей. Что на Ton, что на EVM сетях, что на Solana невозможно программно полностью защититься от ханипотов или ошибок в написании контракта. Ситуаций, где у пользователей заберут все деньги, может быть неисчислимо много. Например, контракт даёт покупать и продавать до какого-то времени или блока, или имеет возможность накрутить владельцу количество токенов.
Более того, у Ton-а есть скам преимущество относительно других сетей. На FunC есть функция, позволяющая сменить код контракта на любой другой. На EVM сетях такого нет, чтобы изменить код там, нужно идти на ухищрения, которые легко заметить постороннему человеку. Таким образом, благодаря этому "преимуществу" Ton, любой из известных вам непубличных контрактов в сети в любой момент может сменить свой код и вывести все ваши деньги. Например, такая возможность есть у ston fi.
Но как же тогда доверять кому-либо? Для этого проекты открывают свой код и предлагают всем желающим найти в нём ошибки. Так сделал, например, тот же ston fi. На Ton-е эта культура пока что не развита, но мы обязательно к ней придём путём проб и ошибок.
На Ton-e это возможно. Поэтому сделать проверку ханипотов вполне реально. Например, есть @ruton_checker_bot. Я не могу ручаться за его достоверность, но знаю нескольких людей, которые им пользуются. Создатель отказался выдавать нам, какие проверки его бот проводит. Это хороший знак. За сколько-то звёзд можем сделать стресс тест этого бота - определит ли он ханипоты, которые мы напишем?
Однако важно понимать несколько деталей. Что на Ton, что на EVM сетях, что на Solana невозможно программно полностью защититься от ханипотов или ошибок в написании контракта. Ситуаций, где у пользователей заберут все деньги, может быть неисчислимо много. Например, контракт даёт покупать и продавать до какого-то времени или блока, или имеет возможность накрутить владельцу количество токенов.
Более того, у Ton-а есть скам преимущество относительно других сетей. На FunC есть функция, позволяющая сменить код контракта на любой другой. На EVM сетях такого нет, чтобы изменить код там, нужно идти на ухищрения, которые легко заметить постороннему человеку. Таким образом, благодаря этому "преимуществу" Ton, любой из известных вам непубличных контрактов в сети в любой момент может сменить свой код и вывести все ваши деньги. Например, такая возможность есть у ston fi.
Но как же тогда доверять кому-либо? Для этого проекты открывают свой код и предлагают всем желающим найти в нём ошибки. Так сделал, например, тот же ston fi. На Ton-е эта культура пока что не развита, но мы обязательно к ней придём путём проб и ошибок.
Разработчики централизованных приложений (например, кликеров с последующим минтом токенов), работающих с блокчейном, всегда могут (и, по-моему, должны) снять с себя обязанность платить комиссию за админские действия, которые делаются для пользователя. Например, вывод средств или минт токенов, но при каком-то оффчейн условии.
Возникает вопрос - а как, например, сделать ончейн минт токенов при условии, что пользователь накликает 10к раз в оффчейн кликере?
Ответ прост. Пользователь сам может сообщать смарт-контрактам о выполненном условии, отправлять транзакции и выводить свои средства, исполняя при этом по сути админские функции.
Возникает второй вопрос - как помешать пользователю вывести все средства с контракта или сминтить себе весь саплай, если он исполняет обязанности админа и отправляет за него транзакции?
Для этого в Ton-е (и он в этом не одинок) существует механизм permit-а. Бэкенд приложения подписывает для пользователя сообщение, которое он отправляет в смарт-контракт (и выплачивает комиссию блокчейна). Пользователь не может изменить сообщение, поскольку оно подписано приватным ключом шифрования (грубо говоря, мнемоник фразой, как от вашего tonkeeper) на бэкенде. Нашей мнемоник фразы у пользователя нет, поэтому подписать другое сообщение за нас пользователь не может.
Это можно сравнить с банковскими чеками, которые использовались в 19-20 веках. Ваш друг брал свою чековую книжку и выписывал на ваше имя чек. Вы с этим чеком приходили в банк и получали деньги. Комиссией блокчейна в этой ситуации можно считать прогулку до банка).
В EVM блокчейнах по аналогии был даже придуман отдельный тип токена - ERC-2612. Что-то подобное хотел на досуге написать для Ton-а.
Бумажные чеки, конечно, было подделать очень легко. Permit-ы подделать с нынешними вычислительными мощностями фактически невозможно, поэтому можно быть спокойным.
Правда, в процессе внедрения подобного механизма в смарт-контракты можно накосячить примерно 350 раз. Но об этом расскажу из личного опыта как-нибудь в другой раз)
Возникает вопрос - а как, например, сделать ончейн минт токенов при условии, что пользователь накликает 10к раз в оффчейн кликере?
Ответ прост. Пользователь сам может сообщать смарт-контрактам о выполненном условии, отправлять транзакции и выводить свои средства, исполняя при этом по сути админские функции.
Возникает второй вопрос - как помешать пользователю вывести все средства с контракта или сминтить себе весь саплай, если он исполняет обязанности админа и отправляет за него транзакции?
Для этого в Ton-е (и он в этом не одинок) существует механизм permit-а. Бэкенд приложения подписывает для пользователя сообщение, которое он отправляет в смарт-контракт (и выплачивает комиссию блокчейна). Пользователь не может изменить сообщение, поскольку оно подписано приватным ключом шифрования (грубо говоря, мнемоник фразой, как от вашего tonkeeper) на бэкенде. Нашей мнемоник фразы у пользователя нет, поэтому подписать другое сообщение за нас пользователь не может.
Это можно сравнить с банковскими чеками, которые использовались в 19-20 веках. Ваш друг брал свою чековую книжку и выписывал на ваше имя чек. Вы с этим чеком приходили в банк и получали деньги. Комиссией блокчейна в этой ситуации можно считать прогулку до банка).
В EVM блокчейнах по аналогии был даже придуман отдельный тип токена - ERC-2612. Что-то подобное хотел на досуге написать для Ton-а.
Бумажные чеки, конечно, было подделать очень легко. Permit-ы подделать с нынешними вычислительными мощностями фактически невозможно, поэтому можно быть спокойным.
Правда, в процессе внедрения подобного механизма в смарт-контракты можно накосячить примерно 350 раз. Но об этом расскажу из личного опыта как-нибудь в другой раз)
Нам стоит написать, если:
⚫️ Вам нужна разработка ончейн или частично ончейн решения для вашего продукта. Например, необычного токена с бэкендом, отвечающим за это.
⚫️ Вы хотите получить консультацию/аудит по проектировке или безопасности вашей архитектуры/готового решения.
⚫️ Вы админ канала/медиа и хотите получить комментарий, разбор по интересующей вас теме, связанной с глубоким пониманием работы блокчейна Ton или проектов на нём.
По всем этим вопросам можно написать контактам в био канала.
По всем этим вопросам можно написать контактам в био канала.
Please open Telegram to view this post
VIEW IN TELEGRAM
The Open Dev Blog pinned «Нам стоит написать, если: ⚫️ Вам нужна разработка ончейн или частично ончейн решения для вашего продукта. Например, необычного токена с бэкендом, отвечающим за это. ⚫️ Вы хотите получить консультацию/аудит по проектировке или безопасности вашей архитектуры/готового…»
Сегодня-завтра будет пост про недавно найденный баг у крупных проектов на Ton. В будущем вам будет интересна тема безопасности в нашем блокчейне?
Anonymous Poll
98%
Да
2%
Нет
Уязвимость в коллаборации EVAA и coffee swap
На позапрошлой неделе EVAA запустили у себя в приложении возможность свапа токенов на базе dex агрегатора coffee swap. По сути это просто другой интерфейс для swap.coffee, однако в рамках коллаборации за каждый свапнутый доллар пользователю начисляются EVAA XP и токены кофисвапа $CES (но не более чем какое-то количество на одного пользователя в сутки).
Сам по себе фарм XP и $CES на легитимных свапах большого смысла не имеет, поскольку на комиссии блокчейна\комиссии ston fi\dedust уходило скорее всего бы больше токенов при свапах, чем сколько можно было бы получить $CES (ну а с EVAA XP вообще сложно было бы просчитать экономическую целесообразность).
Однако присутствовала небольшая простая уловка, благодаря которой можно было бы спокойно получать по 10$ и 25к XP в день на адрес без больших затрат. Схема заключается в том что можно было спокойно создать собственные 2 токена, залить для обоих из них совершенно небольшую ликвидность к, например, тону, также затем залить ликвидность между двумя этими токенами. Таким образом, когда мы попытались бы обменять эти токены друг к другу, то бэкенд кофисвапа оценивал цены обоих токенов по той небольшой ликвидности, которую бы мы залили к тону, а вот саму возможность свапать токены друг на друга осуществлял бы пул ликвидности между двумя токенами, благодаря чему их цена бы по сути не менялась в долларовом эквиваленте.
Информация была передана команде EVAA (и также команде swap.coffee через них). Бага была исправлена уже почти неделю назад, спасибо им за оперативность🫡.
На позапрошлой неделе EVAA запустили у себя в приложении возможность свапа токенов на базе dex агрегатора coffee swap. По сути это просто другой интерфейс для swap.coffee, однако в рамках коллаборации за каждый свапнутый доллар пользователю начисляются EVAA XP и токены кофисвапа $CES (но не более чем какое-то количество на одного пользователя в сутки).
Сам по себе фарм XP и $CES на легитимных свапах большого смысла не имеет, поскольку на комиссии блокчейна\комиссии ston fi\dedust уходило скорее всего бы больше токенов при свапах, чем сколько можно было бы получить $CES (ну а с EVAA XP вообще сложно было бы просчитать экономическую целесообразность).
Однако присутствовала небольшая простая уловка, благодаря которой можно было бы спокойно получать по 10$ и 25к XP в день на адрес без больших затрат. Схема заключается в том что можно было спокойно создать собственные 2 токена, залить для обоих из них совершенно небольшую ликвидность к, например, тону, также затем залить ликвидность между двумя этими токенами. Таким образом, когда мы попытались бы обменять эти токены друг к другу, то бэкенд кофисвапа оценивал цены обоих токенов по той небольшой ликвидности, которую бы мы залили к тону, а вот саму возможность свапать токены друг на друга осуществлял бы пул ликвидности между двумя токенами, благодаря чему их цена бы по сути не менялась в долларовом эквиваленте.
Информация была передана команде EVAA (и также команде swap.coffee через них). Бага была исправлена уже почти неделю назад, спасибо им за оперативность🫡.
Сколько заработал Dedust на бустах пулов?
Немногие знают, но dedust берёт комиссию в 0.5% от буста своих пулов (от тех, которые идут не от TON Foundation). То есть все средства, которые можно нафармить предоставляя ликвидность в пулы изначально облагаются налогом в 0.5% и идут напрямую на кошелёк, контролируемый командой dedust.
Суммарно dedust заработал только на этих комиссиях приблизительно 91.000$ по нынешнему курсу токенов (на самом деле чуть меньше из-за того что часть этих токенов сами по себе малоликвидны). Это означает что суммарные бусты пулов от пользователей составляют около 18м$.
Основную часть составляют бусты в токенах Hydra (наверняка вы видели реварды в них во многих пулах ликвидности), а также из крупных SCALE (токен самого dedust), TOM (малоликвидный токен), JETTON (планово хотят раздать на бусты где-то 10% от всего саплая токена)
Также из интересного - dedust не разрешает пользователям бустить пулы при помощи TON, USDT. А токены, которыми можно это делать находятся в вайтлисте.
Немногие знают, но dedust берёт комиссию в 0.5% от буста своих пулов (от тех, которые идут не от TON Foundation). То есть все средства, которые можно нафармить предоставляя ликвидность в пулы изначально облагаются налогом в 0.5% и идут напрямую на кошелёк, контролируемый командой dedust.
Суммарно dedust заработал только на этих комиссиях приблизительно 91.000$ по нынешнему курсу токенов (на самом деле чуть меньше из-за того что часть этих токенов сами по себе малоликвидны). Это означает что суммарные бусты пулов от пользователей составляют около 18м$.
Основную часть составляют бусты в токенах Hydra (наверняка вы видели реварды в них во многих пулах ликвидности), а также из крупных SCALE (токен самого dedust), TOM (малоликвидный токен), JETTON (планово хотят раздать на бусты где-то 10% от всего саплая токена)
Также из интересного - dedust не разрешает пользователям бустить пулы при помощи TON, USDT. А токены, которыми можно это делать находятся в вайтлисте.
Упавшая транзакция (то есть failed) еще не означает, что изменения в память контракта не были внесены.
Мы все привыкли, что если контракт упал при исполнении, то нам возвращается или не возвращается bounce, и никакие изменения, касающиеся этого контракта, кроме баланса контракта и упавшего сообщения, в блокчейн не вносятся.
Это не так. В FunC есть великолепная функция commit(), которая позволяет сохранить состояние в блокчейне, даже если после вызова этой функции контракт упал. Это помогает в сложных структурах контрактов, когда, например, нужно вернуть деньги пользователю с контракта, который напрямую с пользователем не взаимодействует (и поэтому bounce не сработает).
А еще так можно скамить) Прикрываться упавшей транзакцией, делая вид, что, например, не получилось сменить админа токена. Не ведитесь на уверения, что "так быть не может" (на EVM блокчейнах так действительно не может быть).
Для примера написал простенький контракт. Вот так он работает - транзакция упала, но он все равно отправил аж 3 сообщения на другие адреса, и ни одно из них не bounce.
Мы все привыкли, что если контракт упал при исполнении, то нам возвращается или не возвращается bounce, и никакие изменения, касающиеся этого контракта, кроме баланса контракта и упавшего сообщения, в блокчейн не вносятся.
Это не так. В FunC есть великолепная функция commit(), которая позволяет сохранить состояние в блокчейне, даже если после вызова этой функции контракт упал. Это помогает в сложных структурах контрактов, когда, например, нужно вернуть деньги пользователю с контракта, который напрямую с пользователем не взаимодействует (и поэтому bounce не сработает).
А еще так можно скамить) Прикрываться упавшей транзакцией, делая вид, что, например, не получилось сменить админа токена. Не ведитесь на уверения, что "так быть не может" (на EVM блокчейнах так действительно не может быть).
Для примера написал простенький контракт. Вот так он работает - транзакция упала, но он все равно отправил аж 3 сообщения на другие адреса, и ни одно из них не bounce.
Как зайти в Storm Trade от имени любого пользователя?
Когда вы заходите на шторм трейд, для каждого пользователя должен отрисоваться интерфейс со всеми актуальными трейдами, ликвидностью в пулах, RP, ачивками и тд.
Так как у шторм трейда нет никакой авторизации помимо ton connect (обычного подключения кошелька), то абсолютно любой может посмотреть интерфейс и всю актуальную информацию (включая, например выставленные стоп лоссы, тейк профиты, цены ликвидаций позиций) абсолютно любого другого пользователя. Сделать это достаточно просто:
1. Подключаете свой кошелёк в браузере
2. Находите адрес кошелька пользователя, от имени кого вы хотели бы посмотреть интерфейс шторм трейда
3. Открываете Developer Tools (F12\command+option+I) и вписываете в консоли
В целом это может быть полезно для снайпинга залива ликвидности - чтобы, например, подгадывать моменты, когда вот-вот должно ликвидировать очень крупную позицию и вся его margin пойдёт в vault для поставщиков ликвидности (ну или наоборот чтобы выводить ликвидность когда удачного трейдера вот-вот сработает take profit на большую позицию)
Адреса трейдеров можно смотреть по транзакциям на волты с опкодом
TON Vault - https://tonviewer.com/EQDpJnZP89Jyxz3euDaXXFUhwCWtaOeRmiUJTi3jGYgF8fnj
USDT Vault - https://tonviewer.com/EQAz6ehNfL7_8NI7OVh1Qg46HsuC4kFpK-icfqK9J3Frd6CJ
NOT Vault - https://tonviewer.com/EQAG8_BzwlWkmqb9zImr9RJjjgZZCLMOQXP9PR0B1PYHvfSS
Либо также как вариант: в tonviewer можно смотреть на самых крупных держателей SLP токенов, чтобы увидеть кто сколько из китов заработал на предоставлении ликвидности
На самом деле тут большой простор для реализации снайпер бота, который будет подсказывать когда лучше заводить и выводить ликвидность - но необходимо полностью учитывать математику всех видов комиссий шторм трейда при самостоятельной индексации этих контрактов, либо же полагаться на api шторм трейда, что, конечно, не так надёжно, зато проще.
Когда вы заходите на шторм трейд, для каждого пользователя должен отрисоваться интерфейс со всеми актуальными трейдами, ликвидностью в пулах, RP, ачивками и тд.
Так как у шторм трейда нет никакой авторизации помимо ton connect (обычного подключения кошелька), то абсолютно любой может посмотреть интерфейс и всю актуальную информацию (включая, например выставленные стоп лоссы, тейк профиты, цены ликвидаций позиций) абсолютно любого другого пользователя. Сделать это достаточно просто:
1. Подключаете свой кошелёк в браузере
2. Находите адрес кошелька пользователя, от имени кого вы хотели бы посмотреть интерфейс шторм трейда
3. Открываете Developer Tools (F12\command+option+I) и вписываете в консоли
window.tonConnect.connector.account.address = ‘нужный вам адрес’
В целом это может быть полезно для снайпинга залива ликвидности - чтобы, например, подгадывать моменты, когда вот-вот должно ликвидировать очень крупную позицию и вся его margin пойдёт в vault для поставщиков ликвидности (ну или наоборот чтобы выводить ликвидность когда удачного трейдера вот-вот сработает take profit на большую позицию)
Адреса трейдеров можно смотреть по транзакциям на волты с опкодом
0xe0db7753
:TON Vault - https://tonviewer.com/EQDpJnZP89Jyxz3euDaXXFUhwCWtaOeRmiUJTi3jGYgF8fnj
USDT Vault - https://tonviewer.com/EQAz6ehNfL7_8NI7OVh1Qg46HsuC4kFpK-icfqK9J3Frd6CJ
NOT Vault - https://tonviewer.com/EQAG8_BzwlWkmqb9zImr9RJjjgZZCLMOQXP9PR0B1PYHvfSS
Либо также как вариант: в tonviewer можно смотреть на самых крупных держателей SLP токенов, чтобы увидеть кто сколько из китов заработал на предоставлении ликвидности
На самом деле тут большой простор для реализации снайпер бота, который будет подсказывать когда лучше заводить и выводить ликвидность - но необходимо полностью учитывать математику всех видов комиссий шторм трейда при самостоятельной индексации этих контрактов, либо же полагаться на api шторм трейда, что, конечно, не так надёжно, зато проще.
Пост про новый стандарт в TON готовится, а пока завезли для вас разбор интересного способа скама, которым с нами поделился наш подписчик.
Суть проста - кнопка "отправьте нам весь ваш баланс, получите 500к, 1кк, 1ккк долларов, сколько захотите". И действительно - пользователь нажимает кнопку и видит эмуляцию транзакции как на скрине - он отправляет N ton, а получает несметные богатства.
На удивление это очень продвинутый способ скама, для которого нужно подкорректировать смарт-контракт jetton-wallet. Нужно внести два изменения: сделать так, чтобы любой юзер мог пользоваться любым кошельком жетона, и чтобы при отправке жетонов они не вычитались из баланса.(для всего этого нужно удалить 3 строчки в коде контракта jetton-wallet)
Пользователь отправляет деньги на адрес чужого(!) кошелька с жетонами с указанием отправить себе 500к токенов (сколько угодно, зависит лишь от жадности). Кошелек жетонов отрабатывает согласно новому коду - не проверяет, кто прислал транзакцию, и послушно "пересылает" 500к жетонов отправителю. Коды операции совпадают с пересылкой жетонов, и обозреватели блокчейна отображают это как обычный трансфер. Все это становится возможным, т.к мы ранее поменяли смарт-контракт, и он больше не проверяет, есть ли у него на балансе нужная сумма.
Но почему же tonkeeper определяет этот токен как USDT, и даже подписывает цену токена? Тут всё просто - при деплое кошелька жетонов мы указали jetton_master оригинального USDT, и поэтому обозреватели блокчейна определяют его как настоящий доллар.
Написал и опубликовал пример кода, с которого был сделан скриншот. Для того, чтобы им скамить, нужно вносить дополнительные правки, поэтому никому я этим жизнь не упрощаю.
!!! Осторожно, не пользуйтесь этим кодом, если не разбираетесь в его работе досконально, вы можете безвозвратно потерять свои деньги !!!
Это не единственный способ скамить таким образом, я лишь продемонстрировал самый простой вариант. Всегда проверяйте адрес сайта, на котором вы находитесь, и не доверяйте вслепую тому, что вам рисуется на экране.
@theOpenDevBlog
Суть проста - кнопка "отправьте нам весь ваш баланс, получите 500к, 1кк, 1ккк долларов, сколько захотите". И действительно - пользователь нажимает кнопку и видит эмуляцию транзакции как на скрине - он отправляет N ton, а получает несметные богатства.
На удивление это очень продвинутый способ скама, для которого нужно подкорректировать смарт-контракт jetton-wallet. Нужно внести два изменения: сделать так, чтобы любой юзер мог пользоваться любым кошельком жетона, и чтобы при отправке жетонов они не вычитались из баланса.
Пользователь отправляет деньги на адрес чужого(!) кошелька с жетонами с указанием отправить себе 500к токенов (сколько угодно, зависит лишь от жадности). Кошелек жетонов отрабатывает согласно новому коду - не проверяет, кто прислал транзакцию, и послушно "пересылает" 500к жетонов отправителю. Коды операции совпадают с пересылкой жетонов, и обозреватели блокчейна отображают это как обычный трансфер. Все это становится возможным, т.к мы ранее поменяли смарт-контракт, и он больше не проверяет, есть ли у него на балансе нужная сумма.
Но почему же tonkeeper определяет этот токен как USDT, и даже подписывает цену токена? Тут всё просто - при деплое кошелька жетонов мы указали jetton_master оригинального USDT, и поэтому обозреватели блокчейна определяют его как настоящий доллар.
Написал и опубликовал пример кода, с которого был сделан скриншот. Для того, чтобы им скамить, нужно вносить дополнительные правки, поэтому никому я этим жизнь не упрощаю.
!!! Осторожно, не пользуйтесь этим кодом, если не разбираетесь в его работе досконально, вы можете безвозвратно потерять свои деньги !!!
Это не единственный способ скамить таким образом, я лишь продемонстрировал самый простой вариант. Всегда проверяйте адрес сайта, на котором вы находитесь, и не доверяйте вслепую тому, что вам рисуется на экране.
@theOpenDevBlog
The Open Dev Blog
Упавшая транзакция (то есть failed) еще не означает, что изменения в память контракта не были внесены. Мы все привыкли, что если контракт упал при исполнении, то нам возвращается или не возвращается bounce, и никакие изменения, касающиеся этого контракта…
Как узнать, что смарт-контракт внёс какие-то изменения в блокчейн, даже если он упал при исполнении?
Всё просто - в tonviewer можно посмотреть так называемую action фазу. Если ее нет, или она "skipped", то контракт никаких изменений не вносил.
Например, как тут.(нужно нажать на кружочек с восклицательным знаком и посмотреть на информацию внизу 😬) Как видите, compute фаза есть, а справа от нее пусто.
А вот в случае с моим контрактом, несмотря на ошибки при исполнении кода, action фаза отображается. При этом можно заметить, что "total actions" указано как 3, то есть за каждое исходящее сообщение было совершено одно действие (action). Таким образом, смарт-контракт в свои данные никаких изменений не вносил, только отправил 3 сообщения.
Если "total actions" больше, чем число исходящих сообщений, то смарт-контракт внёс изменения в свои ончейн данные.
@theOpenDevBlog
Всё просто - в tonviewer можно посмотреть так называемую action фазу. Если ее нет, или она "skipped", то контракт никаких изменений не вносил.
Например, как тут.
А вот в случае с моим контрактом, несмотря на ошибки при исполнении кода, action фаза отображается. При этом можно заметить, что "total actions" указано как 3, то есть за каждое исходящее сообщение было совершено одно действие (action). Таким образом, смарт-контракт в свои данные никаких изменений не вносил, только отправил 3 сообщения.
Если "total actions" больше, чем число исходящих сообщений, то смарт-контракт внёс изменения в свои ончейн данные.
@theOpenDevBlog
Сколько Aqua Protocol заработал с минта Nomis Score NFT?
В июле этого года к окончанию фарминга в боте Aqua Protocol был приурочен минт Nomis Score - NFT, показывающий "рейтинг" вашего кошелька. Разумеется, это была рефералка - минт одной NFT стоил 1.1 TON, часть средств уходило создателям проекта, а часть - человеку, который привёл аудиторию, то есть на кошелёк julia-innovator.ton.
Экономика такая: для обычного юзера награда за реферала 0.1 TON, но для julia-innovator.ton наградой было 50% от общей прибыли протокола (примерно 0.5 TON).
Реализовано все это в духе нашего поста про подписи. Пользователь получает параметр signature, который передается в транзакции от его кошелька, и который не позволяет подделать данные в сообщении.
На удивление, Aqua заработал с этой активности всего 774 тона, приведя при этом 1586 пользователей. Эти данные только из смарт-контрактов Nomis, платили ли они дополнительно - неизвестно.
Сами же основатели Nomis заработали 21488 TON, судя по данным блокчейна. По нынешнему курсу это порядка 122к$.
Данные взяты из re::doubt.
Friendly remainder - ничего, разумеется, криминального в рефералке нет, но это нигде не афишировалось, и я очень удивился, когда это увидел.
В июле этого года к окончанию фарминга в боте Aqua Protocol был приурочен минт Nomis Score - NFT, показывающий "рейтинг" вашего кошелька. Разумеется, это была рефералка - минт одной NFT стоил 1.1 TON, часть средств уходило создателям проекта, а часть - человеку, который привёл аудиторию, то есть на кошелёк julia-innovator.ton.
Экономика такая: для обычного юзера награда за реферала 0.1 TON, но для julia-innovator.ton наградой было 50% от общей прибыли протокола (примерно 0.5 TON).
Реализовано все это в духе нашего поста про подписи. Пользователь получает параметр signature, который передается в транзакции от его кошелька, и который не позволяет подделать данные в сообщении.
На удивление, Aqua заработал с этой активности всего 774 тона, приведя при этом 1586 пользователей. Эти данные только из смарт-контрактов Nomis, платили ли они дополнительно - неизвестно.
Сами же основатели Nomis заработали 21488 TON, судя по данным блокчейна. По нынешнему курсу это порядка 122к$.
Данные взяты из re::doubt.
Friendly remainder - ничего, разумеется, криминального в рефералке нет, но это нигде не афишировалось, и я очень удивился, когда это увидел.
С постом про стандарт я немного запоздал, т.к хотелось максимально подробно всё рассказать. Но чем больше углублялся, тем больше понимал, что адекватно это в пост не впихнёшь, поэтому напишем обзорную часть.
Недавний релиз мемкоина $DOGS снова подсветил проблему с архитектурой централизованного минта жетонов при аирдропах. Если число юзеров достаточно большое, то объективно никаких мощностей любого блокчейна просто физически не может хватить, если при минте жеттонов участвует один адрес - jetton-master.
Для решения такой проблемы недавно появился новый стандарт жетона на TON - mintless jetton (вот код). Как он работает: минт токенов больше не происходит через jetton-master, а он получается каждым участником аирдропа через его собственный jetton-wallet.
Реализовано это через механизм дерева Меркла (я советую прочитать это, если вы не знаете, что это такое). Механика работы следующая - каждый jetton-wallet хранит у себя переменную mercle_root, то есть хэш, находящийся на верхушке дерева. При получении аирдропа пользователь должен предъявить свой mercle_proof, то есть некоторое криптографическое доказательство, что пользователь в аирдропе участвует. При этом никакой централизованной системы не участвует, каждый jetton-wallet обладает всей полнотой информации, чтобы подтвердить право пользователя на аирдроп. Важно понимать - разумеется, вы ничего подобного при обычном получении аирдропа не увидите, поскольку логика работы, конечно же, будет и должна находиться под капотом приложения, которое отвечает за аирдроп.
Таким образом, при получении своих токенов с точки зрения блокчейна вы будете обращаться не к jetton-master-у, как обычно, а к своему jetton-wallet-у. Его код никак не подменить, несмотря на то, что он "типа ваш". Разумеется, обычный минт тоже присутствует, и ничего не ограничивает владельца токена в обход аирдропа сминтить себе дополнительные токены.
Надо признать, что этот стандарт является по настоящему новым словом в децентрализации. Несмотря на весь fud в сторону TON, в действительности такой пользовательской базы, какая есть у тех же $DOGS, нет больше нигде. И в условном эфире при похожей нагрузке на блокчейн комиссии за обычные транзакции бы подскочили до сотен долларов, как это было, например, во время халвинга биткоина.
Недавний релиз мемкоина $DOGS снова подсветил проблему с архитектурой централизованного минта жетонов при аирдропах. Если число юзеров достаточно большое, то объективно никаких мощностей любого блокчейна просто физически не может хватить, если при минте жеттонов участвует один адрес - jetton-master.
Для решения такой проблемы недавно появился новый стандарт жетона на TON - mintless jetton (вот код). Как он работает: минт токенов больше не происходит через jetton-master, а он получается каждым участником аирдропа через его собственный jetton-wallet.
Реализовано это через механизм дерева Меркла (я советую прочитать это, если вы не знаете, что это такое). Механика работы следующая - каждый jetton-wallet хранит у себя переменную mercle_root, то есть хэш, находящийся на верхушке дерева. При получении аирдропа пользователь должен предъявить свой mercle_proof, то есть некоторое криптографическое доказательство, что пользователь в аирдропе участвует. При этом никакой централизованной системы не участвует, каждый jetton-wallet обладает всей полнотой информации, чтобы подтвердить право пользователя на аирдроп. Важно понимать - разумеется, вы ничего подобного при обычном получении аирдропа не увидите, поскольку логика работы, конечно же, будет и должна находиться под капотом приложения, которое отвечает за аирдроп.
Таким образом, при получении своих токенов с точки зрения блокчейна вы будете обращаться не к jetton-master-у, как обычно, а к своему jetton-wallet-у. Его код никак не подменить, несмотря на то, что он "типа ваш". Разумеется, обычный минт тоже присутствует, и ничего не ограничивает владельца токена в обход аирдропа сминтить себе дополнительные токены.
Надо признать, что этот стандарт является по настоящему новым словом в децентрализации. Несмотря на весь fud в сторону TON, в действительности такой пользовательской базы, какая есть у тех же $DOGS, нет больше нигде. И в условном эфире при похожей нагрузке на блокчейн комиссии за обычные транзакции бы подскочили до сотен долларов, как это было, например, во время халвинга биткоина.
Скоро будет пост о крутой найденной уязвимости в одном из протоколов на Тоне, а также о том, что не всегда стоит воспринимать факт проведённого аудита слишком серьёзно😐
Please open Telegram to view this post
VIEW IN TELEGRAM