9 September 2022
VK
02:11
Viktor Karasev
эээм это же для минта а не для выставления на продажу
SW
03:52
Some Wallet
Доброй ночи) Есть кто знает, что все-таки значит either и TL-B схем. Что значит "сериализуется в текущую ячейку" и "сериализуется в отдельную ячейку"?
SW
04:59
Some Wallet
Если честно, горит от TL-B схем, такое ощущение, что даже примеры кошельков из документации с ними не совпадают. Черный ящик ))
N
05:02
Nomam3e
In reply to this message
Можно StateInit сериализовать в отдельной ячейке и сохранить ссылку на неё (store_ref), а можно сериализовать всё в одной
SW
05:02
Some Wallet
In reply to this message
понял, спасибо))
NF
10:25
Nik Fedorov
всем привет

я тут сделал небольшого бота для TON
если у кого есть свободное время, прошу протестировать и поделиться общим впечатлением
https://t.me/TonbloxNews

внутри это чеки от бота @wallet, которые защищены простым кодом из 4 цифр.
цифры нужно угадывать по одной. отправляешь боту цифру, и если она неправильная, то нужно ждать 12 секунд, после чего бот подскажет, больше или меньше нужная цифра чем та, которая отправлена.
если цифра правильная, то можно сразу угадывать следующую.
после того как угаданы все цифры, бот отдаст ссылку на чек

есть реферальная система. за приглашение новых пользователей по реф ссылке можно получить возможность быстрого взлома одной цифры

новый чек публикуется в канале каждый день в одно и то же время.
смысл в том, что это раздача крипты нахаляву. но получает её самый быстрый и везучий.
чтобы улучшить свои шансы на успех, нужно приглашать друзей.
в общем цель - распространение информации о TON среди пользователей телеграм

надеюсь это сообщение не сочтут за спам
разработчик - я. вопросы можно писать здесь или в личку
s
10:32
sd
In reply to this message
Больше нищих индусов богу нищих индусов
10:33
In reply to this message
Берём 10 аккаунтов, пишем простейшего юзербота и скликиваем весь твой баланс за несколько секунд
В
10:44
Василий
In reply to this message
Теперь этот урок обошёлся ему слишком дёшево)
NF
10:53
Nik Fedorov
In reply to this message
зато столько индусов узнает про TON)
10:53
In reply to this message
ну, значит судьба моя такова, и больше никакова
АБ
11:35
Александр Брехин
Всем привет, при первом включении toncli и введение пути до файла выскакивает такая ошибка, в чем может быть проблема?
Использую macOS
WARNING: 🤖 Can't find executable for func, please specify it, e.g.: /usr/bin/func
Path: /Users/aleksandr/Desktop/ton-macos-binaries/crypto/func
ERROR: Command '['/Users/aleksandr/Desktop/ton-macos-binaries/crypto/func', '-V']' died with <Signals.SIGILL: 4>.
A
11:37
Alexander
In reply to this message
У меня была такая фигня, когда я скачал бинари, но когда сбилдил у себя ton-blockchain/ton, то заработало. Не знаю, что именно не так однако
АБ
11:43
Александр Брехин
Понял, сейчас попробую
s⁢
13:41
ss_kali ⁢
In reply to this message
спустя 6 минут отгадал и дропнул бот пустой чек))
NF
13:46
Nik Fedorov
In reply to this message
значит кто-то уже активировал.
завтра в 12 мск в канале будет новый чек
s⁢
13:49
ss_kali ⁢
In reply to this message
мне то оно нахер не нужно, но сам факт что бот не написал что эта загадка розгадана
A
14:11
Alexandr
Ребят, можете просвятить по азам TON'a? Здесь при отправке денег есть такое понятие как "сдача"? В DASH, к примеру, когда у меня на каком-то кошельке, например, лежит 100 монет, а я отправляю куда-то только 40, мне только кажется, что я отправляю 40. На самом деле, кошелёк создаёт ещё один адрес - для сдачи и отправляет все 100: 40 куда мне нужно и 60 на мой адрес для сдачи. Тут так же?
T
14:13
TON Дев Чат
In reply to this message
Нет, у нас не UTXO-based блокчейн, а аккаунт бейзед. Все деньги на аккаунте смешаны, при посылке отсылается ровно столько, сколько надо.
DS
14:14
Denis Subbotin
> при посылке отсылается ровно столько, сколько надо.
агагагаг

а доходит меньше чем надо :)
A
14:14
Alexandr
In reply to this message
Понял, спасибо большое! И ещё один вопрос. Вот, допустим, у меня бот, который работает с этой криптой. Я так понимаю, сразу же зачислять поступление к пользователю на баланс - не стоит. Желательно подождать несколько блоков. Вопрос: где смотреть текущую высоту блока? В инфе о транзакции, например, вижу "created_lt: 29726252000002". Это оно?
14:15
In reply to this message
А возможно узнать комиссию сети до отправки денег?
T
14:15
TON Дев Чат
In reply to this message
Нет, у нас попадание в блок гарантирует финальность (нет форков). Увидели транзакцию в блоке - можно зачислять.
DS
14:15
Denis Subbotin
>Желательно подождать несколько блоков.
не надо. если блок появился в мастерчейне то всё. а лайтсервера со следующей версии перестанут отдавать не финализированные в мастерчейне транзакции
A
14:16
Alexandr
In reply to this message
Супер, спасибо!
14:17
In reply to this message
Офигенно! :)
14:20
Я правильно понял, что при отправке 1 TON, дойдёт чуть меньше? За вычетом комиссии? Можно ли тогда заранее как-то узнать о размере комиссии, чтоб с клиента списывать больше?
DS
14:23
Denis Subbotin
там довольно сложная штука из комбинаций флагов исходящих сообщений. в типовом случае типа отправки с кошелька спишется дойдёт столько отправили. комиссия "условно за газ" спишется с вашего аккаунта дополнительно.
но вот на аккаунте получателя тоже спишется небольшая комиссия которая не связана с вашей транзакцией а связана с оплатой аккаунтом получателя ренты за хранения своих данных в блокчейне
AP
14:26
Andrew Python
In reply to this message
(и ещё немного за газ, если версия кошелька в4)
A
14:26
Alexandr
In reply to this message
Ух. Понял. Сложная система. Вообще, честно говоря, не понимаю почему до сих пор нет такой крипты, где не было бы вообще комиссии сети. Мне кажется, такая крипта завоевала бы мир за счёт своей безгеморройности.
Чтоб как с наличными было - дал кому-то 100 долларов из рук в руки и у получателя, действительно, теперь 100 долларов. И у меня никто ничего не отобрал по пути.
Но это так, философия :)
SA
14:50
Sergey Andreev
In reply to this message
Где можно посмотреть, как это работает без форков?
AG
14:52
Alex Golev
In reply to this message
1. Если ты холодный кошелёк передаёшь кому-то в руки - комиссии нет.
2. Если 100 долларов переводить через посредника(банк, сервис перевода) - ты платишь за обслуживание.

*Комиссия нужна, чтобы было меньше спама.
s⁢
15:13
ss_kali ⁢
это, а как минтить нфт?
АИ
15:18
Александр Игнатьев
всем привет! отправляю jetton transfer, в ответе 14 ошибка, кто нибудь сталкивался?
DS
15:38
Denis Subbotin
In reply to this message
в вайтпейпере от николая дурова :)
15:41
>Вообще, честно говоря, не понимаю почему до сих пор нет такой крипты, где не было бы вообще комиссии сети.
транзакции надо хранить и обрабатывать. это требует ресурсов. это не бесплатно
AT
15:48
Andrey Tvorozhkov
SA
15:50
Sergey Andreev
In reply to this message
можно юзерам за стейкинг давать что-то, и за это что-то разрешать отправлять транзакции
DS
15:55
Denis Subbotin
In reply to this message
Переведи с графкуэльного на русский
AP
15:55
Andrew Python
In reply to this message
Надо просто понять куда смотреть)
DS
15:56
Denis Subbotin
У тебя появились запросы к интерфейсам аккаунтов?
15:56
Видимо по рулоновской схеме по опкодам из мапы в коде
AT
16:11
Andrey Tvorozhkov
In reply to this message
Да не, радуюсь тому, что наконец-то всё почти работает) Сколько месяцев убито
16:11
In reply to this message
Есть два стула) Один стул это сделать локальные тесты с прогоном аккаунтов, второй стул это довериться disassembler и верить, что смарты юзают словари)
16:12
В целом количество нфт пока что позволяет сделать и то, и то)
DS
16:12
Denis Subbotin
Был ещё третий путь
16:12
Прогонять уникальные коды
16:13
Но оказалось что некоторые пишут контракты у которых методы падают
SW
16:13
Some Wallet
In reply to this message
Привет) А в итоге не прояснилось что значат эти 5 битов на 154-ой строке generate.fif?
AT
16:14
Andrey Tvorozhkov
In reply to this message
Ну ты и откопал древность) Я кажется в декабре прошлого года это делал))
SW
16:14
Some Wallet
In reply to this message
А ты хорош, если такое делал в декабре прошлого года )))
AT
16:16
Andrey Tvorozhkov
In reply to this message
Это описание StateInit, там куча мэйби и either https://github.com/ton-blockchain/ton/blob/35d17249e6b54d67a5781ebf26e4ee98e56c1e50/crypto/block/block.tlb#L148
SW
16:18
Some Wallet
In reply to this message
это у тебя идет на 55-60 строках
16:18
ааа, пардон
16:19
In reply to this message
все равно не вяжется( Maybe — 1, Either — 0, итого 10
AT
16:23
Andrey Tvorozhkov
In reply to this message
Ну это последние 2 бита как раз, а до этого CommonMsgInfo
16:23
Ща, уже всё написали в хэлперах же
16:24
Вот тут все примеры со всеми комментариями
SW
16:24
Some Wallet
In reply to this message
Спасибо 🙏
16:26
In reply to this message
Жесть вы конечно разложили все, работа огромная
16:29
In reply to this message
Прошу прощения, последний вопрос. А что такое Tick Tock?
AT
16:32
Andrey Tvorozhkov
In reply to this message
Конкретно с хэлперами - это не моя работа, это @cerberuzzz большую часть сделал
16:33
In reply to this message
Тут без пива не разобраться) Советую поискать в вайтпейпере. Если коротко - некоторые контракты автоматически дергаются каждый блок.
SW
16:34
Some Wallet
In reply to this message
Жесть 😂😂😂
AP
16:34
Andrew Python
In reply to this message
Проще сказать - вам это на надо)
F
18:07
F
@Marta_Blamour, Тут только технические вопросы связанные с блокчейном TON, вам сюда:
@toncoin_rus_chat

@successful17k, мут за мат
VK
18:22
Viktor Karasev
а как пользоваться ts-никами из https://github.com/getgems-io/nft-contracts/tree/main/packages/contracts ?
T
18:25
Tim
In reply to this message
Что?
VK
18:26
Viktor Karasev
нужно выставить на продажу nft на getgems, тернистый путь привел меня в этот репо, и название nft-fixprice-sail звучит как то что мне нужно, но там лежат ts файлы
T
18:27
Tim
Ts файлы это тайпскрипт
18:28
Но выставить на гетгемс можно только через гетгемс
18:28
Потому что для этого нужен приватный ключ от их маркетплейса
VK
18:28
Viktor Karasev
я знаю что тайпскрипт, в этом репо лежат контракты гетгемса
EG
18:31
EvGeniy Gnatovskiy
всём добрый вечер) я же правильно понял, что минтить нфт через контракт коллекции может только хозяин контракта коллекции?) и что другой не может?) ну по крайней мере если рассматривать базовые контракты нфт из репы )
VK
18:32
Viktor Karasev
In reply to this message
а как чере гетгемс выставить сразу много nft?
T
18:33
Tim
Никак, только реверсить апи
18:33
In reply to this message
Да
DS
20:00
Denis Subbotin
пока в апи ботов метод трансфера платной подписки не станет публичным так и будет
20:00
а тестнет гиверы же по 2 тона дают?
SA
20:01
Sergey Andreev
In reply to this message
2 тона раз в час для одного телеграм аккаунта
s⁢
20:03
ss_kali ⁢
как минтить нфт?
u
20:16
username
In reply to this message
Смотрите репозитории контрактов, там все понятно
AP
20:30
Andrew Python
In reply to this message
давно бы юзер-бота сделали
DS
20:35
Denis Subbotin
сделай :)
10 September 2022
k
01:11
koala
Всем доброй ночи, подскажите пожалуйста, как можно сконвертировать user-friendly адрес(напр. EQD8m46b2HxlbIPFXJX8XDVam400BT_1JNARJUw3I-W7EGkZ) в raw-addres(напр 0:FC9B8E9BD87C656C83C55C95FC5C355A9B8D34053FF524D011254C3723E5BB10) и/или наоборот?
IK
01:39
Ivan Koryshkin
In reply to this message
Я бы попробовал декодировать в байты и получить hex string, и наоборот
EG
01:44
EvGeniy Gnatovskiy
In reply to this message
Хмм... Мне както раз 200 тестовых тон пришло на второй запрос у бота)
e
03:50
erievery
Я у него 2 раза просил тоны, ни разу не пришло.
F
04:03
Ferrari Apple
In reply to this message
import TonWeb from 'tonweb'

export function flipAddressType(address) {
if (!address) return ''
return address.includes(':')
? (new TonWeb.utils.Address(address)).toString(true, true, true)
: (new TonWeb.utils.Address(address)).toString(false, false, true)
}
N
06:38
Nomam3e
In reply to this message
про конвертацию можно прочитать тут:
https://ton.org/docs/#/howto/step-by-step?id=_1-smart-contract-addresses
AG
08:33
Alex Gor
Подскажите пожалуйста, как определить по адресу короткое имя, типа "OKX"?
N
08:45
Nomam3e
In reply to this message
То есть короткое имя?
AG
08:45
Alex Gor
In reply to this message
Как тут https://tonscan.org отображаеться.
08:47
In reply to this message
"OKX" вместо адреса.
N
08:48
Nomam3e
In reply to this message
Дайте пример такого адреса, где так отображается
a
08:51
assemblerx64
In reply to this message
Никак. Это локальные пометки tonscan, туда можно через пулл реквест попробовать добавить свой адрес

https://github.com/catchain/tonscan/blob/master/src/addrbook.json
AG
08:53
Alex Gor
In reply to this message
Спасибо, понятно.
В
09:58
Василий
In reply to this message
Когда был хакатон, он так давал
A
10:56
Alexander
Где можно найти исходники кошелька 4 версии? Может кто встречал
a
10:58
assemblerx64
In reply to this message
A
10:58
Alexander
In reply to this message
спасибо!
A
14:50
Alexander
msg_forward_prices#ea lump_price:uint64 bit_price:uint64 cell_price:uint64
ihr_price_factor:uint32 first_frac:uint16 next_frac:uint16 = MsgForwardPrices;


Кто-то может подсказать, за что отвечают поля? Особенно lump_price)
SA
14:53
Sergey Andreev
In reply to this message
T
17:25
TON Дев Чат
In reply to this message
Lump_price это базовая комса сообщения. Все остальнве компоненты (плата за биты, за ячейки итп) плюсуется к ней.
AP
17:27
Andrew Python
In reply to this message
чтобы было понятнее. Эта комса за root cell
(потому что остальной forward fee считается без root cell)
ИО
19:58
Имбирчик Офис
Уважаемое комьюнити, прошу Вашей помощи. Я зарегистрировал 5 доменов .ton прописал везде свой кошелек, став владельцем доменов. Как мне отдать этот домен в аренду, чтобы мой партнер мог получать оплату на свой кошелек, при этом мне остаться владельцем этого домена, чтобы я мог изменить адрес кошелька при расторжении договора с партнером. Я хочу просто давать удобство в виде короткого адреса сайта, не имея доступа к кошельку своего партнера.
DV
19:59
Dan Volkov
In reply to this message
пропиши кошелек партнера
19:59
но не передавай домен
19:59
так же как и обычные домены же
20:00
In reply to this message
не перестанешь
ИО
20:00
Имбирчик Офис
бИНГО. бЛАГОДАРЮ
VA
22:40
Vladyslav Almazov
Добрый день , помогите решит данную проблему на винде 10. Где можно их скачать и с какого репозиторие. PS D:\TON\ton-win64-binaries\wallet\func> toncli deploy -n testnet
WARNING: 🤖 Can't find executable for func, please specify it, e.g.: /usr/bin/func
Path:
11 September 2022
D
01:46
Dlamond
Всем привет! Когда пытаюсь задеплоить контракт nft-collection.fc из этого репозитория
https://github.com/ton-blockchain/token-contract
сталкиваюсь с ошибками на скрине. Команды build и deploy testnet в toncli обе выдают эти ошибки, подскажите пожалуйста, чего не хватает?
VK
04:54
Viktor Karasev
можно ли вывести nft из контракта коллекции?
В
10:42
Василий
In reply to this message
Не подключены файлы из репозитария. op-codes.fc например.
АТ
12:12
Андрей Турбин
Парни, ай нид хелп.
Заминтил коллекцию при помощи тулзы от даймондсов (пара nft, для теста)

На гетгемс отображается корректно: https://getgems.io/collection/EQCyMQVrAKDPOiiVhOGL90BCvwSfKRL48XY6zWMhRAXexKnh

В этом експлорере тоже всё норм: https://explorer.tonnft.tools/collection/EQCyMQVrAKDPOiiVhOGL90BCvwSfKRL48XY6zWMhRAXexKnh

А в тонскане беда: https://tonscan.org/nft/EQCyMQVrAKDPOiiVhOGL90BCvwSfKRL48XY6zWMhRAXexKnh

Что может быть сделано не так?
12:14
In reply to this message
метаданные коллекции:

{
name: "Cyber Ducks - Collaboration",
description: "This collection was created as part of Cyber Ducks collaboration with some other NFT projects",
image: https://cloudflare-ipfs.com/ipfs/QmVYKRrRNfcYRaWFjXW9NR5FCtiGWLwYnXVYVaWabSKUGZ/logo.png,
external_link: https://t.me/cyber_ducks
}
&2
12:25
&rey 2ne:v
In reply to this message
Ссылки в кавычках в JSON?
АТ
12:26
Андрей Турбин
In reply to this message
Ссылки надо в кавычки закрыть?
&2
12:26
&rey 2ne:v
Ага, это же те же строки.
АТ
12:27
Андрей Турбин
In reply to this message
Но название и описание в кавычках. Тем не менее не отображается в тонскане
VF
12:30
Vadim Filimonov
In reply to this message
так json не валидный
АТ
12:31
Андрей Турбин
In reply to this message
Можно подробнее? Какой должен быть?
VF
12:33
Vadim Filimonov
In reply to this message
тот что тут запостили
но на ipfs нормальный
https://cloudflare-ipfs.com/ipfs/QmNp4TgKvJo8YJL5bRNJwzvWDnHpAkoBbKo6ii2qnJ2zuu/collection.json
АТ
12:43
Андрей Турбин
In reply to this message
Пардон, не понял. json корректный, но что-то не так с ipfs?
VF
12:44
Vadim Filimonov
In reply to this message
на ipfs в json все строки в кавычках - все ок)
АТ
12:46
Андрей Турбин
In reply to this message
А. Ну да. А есть идеи в чём может быть ошибка?)
12:48
Кстати, когда размещал файлы не в ipfs а на своём сервере, всё было вроде как норм. В тонскане отображалось.
D
13:37
Dlamond
In reply to this message
А не подскажете как их подключить?
В
13:43
Василий
In reply to this message
Сложить в func диру и в project.yaml добавть выше файла контракта
АБ
13:47
Александр Брехин
In reply to this message
При билде такая проблема, не подскажешь где можно найти MHD пакет?
AP
13:49
Andrew Python
In reply to this message
В
14:03
Василий
In reply to this message
Это не проблема, это только warning. Всё норм
D
14:10
Dlamond
In reply to this message
Спасибо, попробую
АТ
14:10
Андрей Турбин
А чей проект tonscan? Может чат какой-нибудь есть?
ВП
14:12
Влад Павлючков
In reply to this message
Rich Cats вроде
D
14:21
Dvredin ️
In reply to this message
@tester, но думаю писать конкретно ему бесполезно
АТ
14:22
Андрей Турбин
In reply to this message
+
YB
15:13
Yury B
Вопросы по поводу nominator pool:
1. Почему нельзя доставать partial amount of my stake? Можно ли добавить эту фичу плз?
2. Как узнать, что мой stake became deposited? То есть перешёл из pending статуса в working?
AT
15:14
Andrey Tvorozhkov
In reply to this message
https://www.gnu.org/software/libmicrohttpd/#download действительно ворнинг, но если что MHD - это micro httpd :)
D
17:27
Dlamond
In reply to this message
Подключил через yaml op-codes.fc, params.fc и stdlib.fc, но теперь выдаёт вот такую ошибку, вижу что ругается на функцию в stdlib.fc, но как исправить не знаю, а файл нужный, не подскажете?
AP
17:30
Andrew Python
In reply to this message
stdlib отключи. toncli и так его подставляет
D
17:39
Dlamond
In reply to this message
Если отключить будет вот это
17:40
Или там другое надо подключать?
AP
17:46
Andrew Python
In reply to this message
скопируй недостающую функцию в отдельный файл. equal_slices не стандартная функция
D
17:52
Dlamond
In reply to this message
Так в том и дело, что он не понимает что это за функция, она в коде и так есть, как тут отдельный файл поможет?
AP
17:54
Andrew Python
In reply to this message
1. Не подключай stdlib.
2. Сделай новый файл (например extlib.fc)
3. Скопируй в него функцию из stdlib (функция equal_slices)
4. Подключи extlib.fc в начало списка
D
17:56
Dlamond
In reply to this message
А, всё да, пардон, я не сразу понял что ты имел ввиду
17:57
In reply to this message
Всё, теперь работает, большое спасибо
A
23:06
Alexander
T
TON Dev Moscow 11.09.2022 23:05:54
Урок: Разбор стандартных кошельков в блокчейне TON. Wallet v2/v3/v4. Highload wallet v1/v2.

| Исходники | Видео |

ВНИМАНИЕ: если вы обнаружили в уроке ошибку или неточность, смело пишите об этом в комментариях. Все мы учимся и ошибаемся 🤓
12 September 2022
П
02:57
Пашкевич
Всем привет, при деплое начал ловить какую-то ошибку подключения, подскажите пожалуйста с чем может быть связано? Раньше такого не было
02:58
Видимо по это же причине гет-запросы выдают таймауты?
В
08:52
Василий
In reply to this message
С сетью? Или нагрузкой на ноду. Масса вариантов.
EK
10:01
Eugene Kalinovskiy
In reply to this message
привет! Удалось ли вам пофиксить?
СВ
10:03
Сергей В
In reply to this message
Не помню уже, вроде помогло перейти на свежий мастер с удалением всех старых файлов и либ
EK
10:04
Eugene Kalinovskiy
In reply to this message
спасибо!
В
10:55
Василий
In reply to this message
Можете докер попробовать
RK
16:01
Roman Krutovoy @work
Добавлю сюда, если у кого болит за настройку бинарников (func, fift, lite-client) то включайтесь, давайте это исправим.
RK
16:01
Roman Krutovoy @work
RK
Roman Krutovoy @work 12.09.2022 15:59:57
Hello, smart-contract devs 👋

How painful was the setup process of TON binaries (func, fift, lite-client) last time for you? How you resolved the issue? Do you want future devs to use your way?

It was painful for me last time. Compare to other blockchains, it was a bad experience. I want to fix this situation. 👾

So I've made a TON Footstep for this idea and look for someone to help with the reward. What do you think about a one-line installer solution for any system?

Let we discuss the idea together: https://github.com/ton-society/ton-footsteps/issues/38
В
16:05
Василий
In reply to this message
Вот такой костыль есть. https://hub.docker.com/r/trinketer22/func_docker
RK
16:07
Roman Krutovoy @work
In reply to this message
угу. Вот как раз убрать все костыли и есть конечная задача. Оставить только рабочую среду для TON в 1 шаг.

Разве не фантастика? 🙂
В
16:42
Василий
In reply to this message
Честный путь без костылей он один, - отдельные бинарные репы для каждого поддерживаемого дистрибутива.
Не очень понятно чего тут решать.
AP
17:02
Andrey Pfau
In reply to this message
Бинарные репы это bad practice для блокчейна, так как туда можно встроить бекдор. Именно поэтому надо именно компилировать исходники. Zero trust политика
17:02
Ну или на крайняк в GitHub Actions ещё сделать чтобы оно выплевывало чексуммы для бинарников и сверять их
В
17:03
Василий
In reply to this message
Так а кто их запрещает подписывать криптографически? Главное верифицировать процесс их сборки.
T
17:10
Tim
@andreypfau Андрей, подскажите, пожалуйста, почему getAccount возвращает null в ton-kotlin. В чем может быть проблема? Вызываю функцию через String, адрес в raw форме "0:XXX...XXX"
17:11
In reply to this message
LiteClient.getAccount
В
17:22
Василий
In reply to this message
Да и вообще ZeroTrust, это когда мы читаем то, что компилируем.

А в ином случае мы верим подписи/в то что мы действительно получаем данные с gh/../../ так же как и с бинарями.
N
18:40
Nomam3e
Через pytonlib можно вызывать get методы? Если нет, то есть ли либа на пайтоне, где можно?
a
18:41
assemblerx64
In reply to this message
github.com/psylopunk/pytonlib

account.run_get_method(“name”, [])
В квадратных скобках если нужны аргументы нужно закинуть как в коде самой либы можно чекнуть. Там Tvm_StackEntrySlice и тд
N
18:42
Nomam3e
In reply to this message
Спасибо
13 September 2022
SW
00:14
Some Wallet
Привет! А есть какой-нибудь help по компилятору FIFT, хочу понять, какие флаги есть дополнительные
A
05:07
Alt
Почему ТОН так редко используется для платежей?
s
09:41
sd
In reply to this message
Почему у вас ник bitcoin lexi?
EG
10:29
EvGeniy Gnatovskiy
Всем Добрый день. Как правильно заполнить ячейку с4? где можно посмотреть примиеры?
SA
11:04
Sergey Andreev
In reply to this message
Просто сохраняешь туда состояние контракта как угодно. Или ты имеешь в виду какие есть best practice сохранения состояния контракта?
11:06
читать / сохранять в func можно как get_data() / set_data(<cell>)
В
11:06
Василий
In reply to this message
data.fif в любом проекте toncli
L;
16:00
Love 'N' Stuff ;3
Ребята, всех приветствую, кто может подсказать у кого можно купить или через что разработать дефолтный бот реферальной программы ?
EG
16:14
EvGeniy Gnatovskiy
In reply to this message
Это то понятно) я про то как его инициализировать) он же пустой и его я так понимаю надо инициализировать при деплое контракта. SrateInit вроде так... Или я не прав?
A
16:17
Alexander
In reply to this message
Вот тут можешь посмотреть
SW
16:23
Some Wallet
In reply to this message
Сначала берёшь хэш от state init — это адрес твоего будущего контракта. Потом шлешь на этот адрес монеты. Потом посылаешь сообщение на этот адрес со state init. В state init в том числе содержится начальное состояние storage контракта. Это если предельно кратко сам алгоритм
EG
16:24
EvGeniy Gnatovskiy
In reply to this message
Спасибо) будем посмотреть)
16:24
In reply to this message
Спасибо) ща буду с этим разбираться)
R
16:29
Roma
Всем привет! Подскажите, а в каких случаях не нужно иметь кода контракта, чтобы с ним что-то делать? (Имею в виду get методы, отправка транзакций и т.д, на примере Contract классов в tomweb)

Нужно для деплоя и для getAddress? А для подписи сообщений нужно?
L;
16:31
Love 'N' Stuff ;3
In reply to this message
Ребята, всех приветствую, кто может подсказать у кого можно купить или через что разработать дефолтный бот реферальной программы ?
А
17:28
Андрей
In reply to this message
Код контракта всегда должен быть, если с ним нужно взаимодействовать)
R
18:24
Roma
In reply to this message
Спасибо!
VF
21:07
Vadim Filimonov
Какой способ есть привязать к юзеру бота любой ton кошелек? попросить отправить 0.001 на уникальный адрес?

ton-x поддерживает только tonhub - там можно через подпись проверить
s
21:10
sd
In reply to this message
1. Можно генерировать уникальный случайный набор символов - код, и просить пользователя отправить транзакцию на адрес с ним.
2. Можно спросить у пользователя адрес, и ожидать транзакцию с нужной суммой с этого адреса (менее надёжно)
VF
21:12
Vadim Filimonov
In reply to this message
почему менее надежно?
s
21:13
sd
In reply to this message
Другой пользователь может посмотреть в блокчейн и подставить адрес, с которого только что пришла транзакция, в бота - и подключиться вместо/вместе - пока скрипт ещё не обработал первый запрос.

// тут уже от конкретной реализации зависит, конечно
VF
21:14
Vadim Filimonov
In reply to this message
да, от реализации зависит. спасибо!
TN
22:08
Try NFT
Напишите пожалуйста в ЛС у кого есть хоть какая-то инфа по этому человеку @hubbards1
14 September 2022
OB
12:09
Oleg Baranov
Привет, а есть у кого то пример нфт (адрес) с ончиен/семичеин контентом?
R
15:10
Roma
image_2022-09-14_15-10-37.png
Not included, change data exporting settings to download.
91.6 KB
Ребят, подскажите, пытаюсь провести трансфер DNS NFT. Транзакция упала, код ошибки - 402, где про это почитать?
https://tonscan.org/tx/QWP_ImX2LrCn9HlSJod6LCM7VhEu_9W5KmsXhdLDHy0=
В
15:21
Василий
In reply to this message
402 скорее всего пользовательское исключение.
Какой код контракта там?
Ищите throw( 402 ) или в таком духе в коде.
R
15:25
Roma
In reply to this message
https://github.com/ton-blockchain/dns-contract/blob/main/func/nft-item.fc#L96
Вот, нашел, правда яснее не стало
15:26
Слишком маленькую сумму указал в forward_amount?
M
15:29
Maxim
ребят, с какой библиотекой на питоне работать чтобы можно было заходить и проводить платежи с новыми кошельками?

А то щас понял что с Psylopunk работаю с кошельками 3 версии.
a
15:29
assemblerx64
In reply to this message
M
15:30
Maxim
In reply to this message
спасибо
I
15:32
Ihor
Бразы, кто может тестовые USDT отправить на кошель с комментом?

В криптоботе коммента нету.

Отблагодраю 200 тестовыми USDT
В
15:49
Василий
In reply to this message
Либо так, либо само msg_value слишком маленькое
DS
15:49
Denis Subbotin
In reply to this message
Там нынче кстати в тонкипере поменялся формат текстового коммента
15:49
А это куда и зачем?
15:50
Причём версия с новым форматом коментов ещё не вышла
T
15:50
Tim
In reply to this message
But why
DS
15:51
Denis Subbotin
Потому что был не по стандарту потому что в стандарте не было написано
15:52
А. Речь о комментах жетонов. Они поменяются
15:54
Там должен быть префикс из 32 битов нулей. Сейчас его нет
T
15:55
Tim
Не замечал даже что в тонкипере без него сейчас. Может поэтому Скан не показывал.
В
15:59
Василий
In reply to this message
В msg_value должны входить все комсы т.е min_storage + fwd_fee + еще одна fwd_fee если forward_amount > 0.
Плюс forward_amount.
Вот это условие нарушено
V
16:12
Vlad
Есть какие то курсы разработчиков на ton?
I
16:12
Ihor
In reply to this message
Уже провернул, спасибо
В
16:14
Василий
In reply to this message
Не думаю, но есть уроки.
https://github.com/romanovichim/TonFunClessons_ru/
Например
V
16:15
Vlad
In reply to this message
Спасибо
RK
16:36
Roman Krutovoy @work
In reply to this message
больше информации для новичков и как начать можно найти тут: https://tonspace.co
DG
16:37
Dmitriy Groznyy
In reply to this message
🔥
MG
16:46
Maxim Golubev
подскажите по урокам плиз
вот есть первый урок
там пишешь функцию которая получает число 10
и должна поидее в тестнете прибавлять его после деплоя и отправки send (ошибок нет в логах)
но когда я вызываю get_total у меня возвращается [ 0 ] а я ожидаю [ 10 ]
может у когото была похожая ситуация ?
делаю все в докере (не совсем как в уроке написано) но файлы try.fif и code.fc скопировал один в один
В
16:52
Василий
In reply to this message
toncli send -n testnet -a 0.03 --address "адрес вашего контракта" --body ./fift/try.fif
Вот это выполнилось успешно?
16:55
Мб ошибка в адресе или что-то такое.
При send
16:56
Можно попробовать toncli send -n testnet -a 0.03 -c wallet --body ./fift/try.fif чтобы toncli сам подтянул адрес из данных деплоя
16:57
In reply to this message
В tonscan'е видно транзакцию c send?
MG
16:58
Maxim Golubev
попробую то что вы сказали проверить позже спксибо
17:00
да как будто успешно send выполняется и тянет адрес сам , который is_inited и баланс 2 из тестового бота пришел

а вот в тонскане не смотрел но баланс 1.86 стал уже после всяких попыток
В
17:12
Василий
In reply to this message
Да, только туда ли он ушёл
T
17:56
Tim
Подскадите пжл как получить транзакции аккаунта через lite-api? getTransactions требует hash и lt. Lt я могу получить через getAccountState, но он не содержит hash. Не могу понять где взять hash
СБ
18:46
Серёжа Быков
Привет ребят , кто нибудь знает официальную информацию по кошельку боту TonPay, я использую криптобот , а этот предлогают, вот и думаю есть ли вера к нему и можно ли доверять этому боту кошельку? Извиняюсь вопрос не по теме
s
18:47
sd
юзайте некастодиал.)
СБ
18:49
Серёжа Быков
In reply to this message
Ну я понял , как и криптобот , но нет возможности купить тон , только перевести со стороннего кошелька
M
19:43
Mr? BunnyFight
Как высчитывается комиссия при пересылке тон с кошелька на кошелек?
RK
DG
20:21
Dmitriy Groznyy
In reply to this message
На TypeScript я себе эту calcFee функцию написал. Складываю все что можно сложить. Если не прав, то поправьте.
type DataFees = {
"@type": string
source_fees: {
"@type": string
in_fwd_fee: number
storage_fee: number
gas_fee: number
fwd_fee: number
},
destination_fees: []
"@extra": string
}
static calcFee = (dataFees: DataFees) => {
const values = Object.values(dataFees.source_fees).filter(item => typeof item === "number") as number[]
const result = values.reduce((a, b) => a + b)
return parseFloat(tonweb.utils.fromNano(result.toString()))
}
20:23
In reply to this message
Есть правда режимы при отправке.. 128 например по другому рассчитает, т.к. спишется вся сумма
A
21:01
Alexander
Подскажите, плз, ton.org vs tonspace.co, в чем отличие? Кому больше верить? Или равноправные сайты, тогда для чего второй?
a
21:05
assemblerx64
In reply to this message
tonspace.co не официальный (пока), но более крутой. На ton.org может быть где то чуть больше инфы, если на tonspace не получится найти
DS
21:09
Denis Subbotin
In reply to this message
Первый просто официальный сайт проекта. А второй специальный ресурс для онбординга
A
21:27
Alexander
In reply to this message
Спасибо
21:27
In reply to this message
Спасибо
MG
23:21
Maxim Golubev
In reply to this message
спасибо, я поискал и нашел что делал не так, я отправлял send на адрес который зашит у меня в toncli, а надо было на адрес contract-а который я задеплоил
15 September 2022
Д
16:13
Дмитрий
Ребят, всем привет, изучаю контракт nft-sale из примера и у меня появился вопрос, я могу только на один маркет выкладывать коллекцию что-ли?
s
16:18
sd
In reply to this message
На продажу - да. Но гетгемс поддерживает смарты дизинтара и даймондов, например, поэтому лот с этих маркетов будет доступен к покупке и там.
DG
17:06
Dmitriy Groznyy
Всем привет! Недавно начал изучать смарт контракты. Самый удобный способ для меня оказался через TypeScript. Не через докер, не через toncli, а именно через TypeScript, т.к. там можно моментально прогонять контракты через тесты (не выгружая в блокчейн). Таким образом смог легко пройти уроки Романовича. Однако, основная библиотека ton-contract-executor компилирует файлы только на Маке, поэтому я написал простой компилятор необходимый для тестов.
https://github.com/grozzzny/ton-compiler-groz
Ну и сами тесты, через которые прогонял контракты по урокам.
https://github.com/grozzzny/ton-contract-test

Может это кому пригодится. (Пакеты будут дополняться и изменяться!)
NA
17:17
Narek Abovyan
Вдогонку про компайлеры.
Мы тут делаем компайлер FunC собранный в WASM чтобы можно было им пользоваться без каких-либо бинарников и даже в вебе

Есть идеи как назвать пакет?

Пока из вариантов которые пришли в голову:

- ton-func
- ton-js
- funcc
- func-js
DG
17:17
Dmitriy Groznyy
In reply to this message
ton-func
В
18:01
Василий
In reply to this message
А что мешает в тонкли прогонять контракты через тесты не выгружая в блокчейн?
18:03
In reply to this message
WfunC/web-funC?
NA
18:03
Narek Abovyan
🤔
18:03
func-js и funcjs заняты оказались кстати
DG
18:05
Dmitriy Groznyy
In reply to this message
Судя по вопросу, наверно ничего не мешает. Просто кому то больше заходит питон, кому то нет. В уроках Романовича, у меня тесты все с ошибками были, и опция что старые тесты, тоже не помогала. Какие то ошибки с либами возникали.. И в общем, у меня нормально не получалось пройти обучение
18:08
In reply to this message
Там можно использовать дебагер внутри контракта?
В
18:10
Василий
In reply to this message
Ну да, но тут вопрос в том, что у Романовича старые тесты и хорошо бы их осовременить.
Насчёт TS, понятно что куда больше людей владеет JS/TS и это удобно, но это такого уровня абстракции, относительно изначального замысла, что там концов не найдёшь и надо полагаться на разработчиков этого дела.
А тонкли это просто инструментализация изначального замысла.
18:12
In reply to this message
Ну ~dump и прочее это TVM поддерживает, если я правильно понимаю.
А отладчика, который бы позволял пошагово выполнять пока нет.
Либо я не в курсе
18:14
Рядовому разрабу распутать сендвич из TS->JS->funC->fift ASM до какой-то low-level проблемы это прям чума.
Возможно мне так только кажется.
18:20
In reply to this message
Это прям настоящий дебаггер? Брейк поинты, step in/step over?
Или просто отладочный вывод?
Отладочный вывод есть.
SW
18:22
Some Wallet
Насколько ts вообще подходит для разработки смартов кастомного типа? Я использую FunC/ FIFT и не парюсь, но может я чего-то не понимаю и на ts проще? Как по ощущениям?
T
18:23
Tim
In reply to this message
ты и будешь использовать фанк фифт, ts для тестов
В
18:24
Василий
In reply to this message
Это чтобы людям не учиться новому синтаксису.
Некая абстракция, чтобы это можно было осваивать как TS/JS библиотеку, а не как нечто вообще новое.
Д
18:29
Дмитрий
In reply to this message
Так, это я понял, а подскажите, какое сообщение можно отправить в сейл контракт, чтобы выложить какой либо nft на продажу
18:29
Хоть какой-то пример
ДИ
18:41
Даниил Ивлев
In reply to this message
у меня вопрос более широкий. Если я хочу выставить коллекцию nft на гетгемс, как мне можно сделать не заполняя данные о каждой nft отдельно у них на сайте? насколько я понимаю, можно сделать минт (например, с помощью их же смартконтрактов), а потом что-то отправить на смартконтракты моих nft, чтобы выставить их на продажу?
JD
22:55
John Doe
In reply to this message
H
22:57
Hartmann D.
In reply to this message
Спасибо
16 September 2022
Д
01:05
Дмитрий
In reply to this message
Ребят, нет информации? Почему на то что есть в доке предостаточно вы отвечаете, а на то, чего нет никто не отвечает?(
Это не правильно
T
01:15
Tim
Я уже отвечал - никак
01:15
Чтобы создать сейл на гетгемс нужен приватный ключ от их маркета. Можете пробовать реверсить их апи и создавать как будто вы браузер.
Д
01:22
Дмитрий
In reply to this message
Хорошо, вопрос тот же, но маркет меняется
T
01:22
Tim
ну тогда смотрите репозиторий гетгемса там все скрипты есть
Д
01:23
Дмитрий
In reply to this message
Смотрел, написаны все на TS, а вот как они пишутся на fift, непонятно
T
01:24
Tim
так зачем это писать на фифте
Д
01:25
Дмитрий
В моём представлении все, что связано со смартами нужно писать на func||fift
01:25
Я не прав?
T
01:26
Tim
ну гетгемс на тс пишет
01:26
каждый что хочет делает)
[
01:27
[💎] polevskyy
Можно ли СДЕЛАТЬ смарт кантракт на Пайтон
Д
01:29
Дмитрий
In reply to this message
Вообщем если подводить итог, вы рекомендуете итернал сообщения отправлять с помощью другого языка, правильно?
T
01:29
Tim
я рекомендую отправлять с того языка который вы знаете
Д
01:30
Дмитрий
In reply to this message
Я понял, это досадно конечно
S
01:31
ShiroNoHaga⁠ 🇺🇦
In reply to this message
Чего досадно?
[
01:32
[💎] polevskyy
In reply to this message
???
T
01:34
Tim
смартконтракты делаются только на функе
К
01:37
Камиль
In reply to this message
На тоне да
01:37
На эфире можно c++ и прочие
Д
01:38
Дмитрий
In reply to this message
Досадно то, что у меня нет представления, как написать итернал сообщение на fift, тк я не люблю работать через "переходники", если уж и делать коллекцию, нужно понимать, как благодаря внутренним системам это сделать
01:39
Хотя бы просто пункт из доки fiftbase (2).pdf
01:39
Я даже не знаю куда идти
T
01:39
Tim
так фифт тоже переходник
Д
01:43
Дмитрий
In reply to this message
Для TVM да, но он изкоуровневый, а это позволяет добиться полного понимания блокчейна
D
05:21
Denis
In reply to this message
Чисто теоретически можно взять компиляторы из Everscale, но полная совместимость не гарантируется, там есть несколько инструкций, которых нет здесь. Можете сделать форк и выпилить недоступные инструкции. Там есть компиляторы Solidity и C++ под TVM. Ну и инструментарий надо будет допилить, наверное, либо деплоить руками.
В
10:08
Василий
In reply to this message
На фифте создаёшь целл.
Смотри builder primitives в fiftbase. А потом его отправляешь : https://github.com/Trinketer22/toncli/blob/nft/docs/advanced/send_fift_internal.md
10:10
Сам по себе фифт ничего отправить не может, но может lite-client или любое другое апи
AP
10:27
Andrey Pfau
Фифт это просто скриптовой язык, он не используется для написания смартконтрактов. Воспринимайте его как bash файлы.
AT
11:00
Andrey Tvorozhkov
In reply to this message
А как же ручная оптимизация TVM OP?)))
A
11:01
Alexander
Привет всем! Может кто-нибудь подсказать, что делает данный метод? (скриншот из tonlib_api.tl)
11:02
Пример использования из cpp (первый попавшийся)

Мб это запускает цепочку транзакций для запроса локально (как гет методы) и возвращает, сколько было потрачено на эту цепочку. (без изменений в блокчейне и merkel proof соответственно)
T
11:40
Tim
Не цепочку, только одно сообщение
11:40
В тонвебе реализовано. Можете попробовать
A
11:43
Alexander
В каком формате?

Этапы:
- local (external)
- myWallet
- X
- Y

local -(1)> myWallet -(2)> X -(3)> Y

estimateFees для данной цепочки посчитает:
storageFees(myWallet & X) + fwdFees (2 & 3) + actionFees (2 & 3)?
11:45
Или это было сделано просто для удобства кошельков, чтобы знать, сколько будет стоить отправка коинов с wallet1 до wallet2?
11:47
In reply to this message
Спасибо, посмотрю
D
14:50
Denis
Привет! Друзья подскажите, ужу все способы перепробовал:

1. Запуск toncli с sudo
2. chmod +x

Но все равно получаю Permission Denied
AT
14:51
Andrey Tvorozhkov
In reply to this message
Выглядит как неправильные бинари (не под систему)
14:51
In reply to this message
https://github.com/Trinketer22/func_docker смотрели? Сейчас самый простой способ поставить toncli
D
14:52
Denis
In reply to this message
О, докер, то что нужно, попробую, спасибо огромное
А
15:22
Антон
Подскажите плз.
Пытаюсь автоматизировать инициализирование TON кошельков для проекта
Сгенерил mnemonic phrase, из неё 2 ключа через tonweb-mnemonic.

Высылаю на новосозданный кошелёк 0.05 TON чтобы сделать deploy, код как в документации:

const seqno = await wallet.methods.seqno().call() || 0;

const transfer = wallet.methods.transfer({
secretKey: source_key_pair.secretKey,
toAddress: destination_address,
amount: TonWeb.utils.toNano(amount),
seqno: seqno,
payload: message,
sendMode: 3,
});

const transferFee = await transfer.estimateFee();
const transferSended = await transfer.send();
const transferQuery = await transfer.getQuery();

Но эти TON сразу же возвращаются (за исключением комиссии) на кошелёк-отправитель прямо в этой же транзакции, и баланс снова становится 0, соответственно деплой я сделать не могу

Пример транзакции: https://tonscan.org/tx/VjOdojUhuKlplsP690DXhztrxI6OfJd34qFWllGkDYk=
Поведение никак не зависит от суммы, возвращается любая. С Tonkeeper доходит нормально, без возврата
15:24
Вот на этом кошельке я кучу раз пробовал, всегда возвращается обратно, за исключением совсем маленьких сумм, которые жрёт комиссия. Дошёл только 1 TON, отправленный через Tonkeeper
&2
15:24
&rey 2ne:v
In reply to this message
В destination_address убран флаг bounceable?
А
15:26
Антон
In reply to this message
я туда передаю str user-friendly urlsafe bounceable адрес
15:26
тот, что в tonscan указывается
15:26
EQAuqGDbux2PcdndLWbk7YM4LxeMAIMQKladbJEfshTUIZp_
15:26
надо передавать не bounceable?
&2
15:27
&rey 2ne:v
In reply to this message
bounceable значит, что если контракт не развёрнут, то сумма вернётся. Да, нужен не-bounceable.
15:27
bounce переводится как "отскок".
А
15:27
Антон
In reply to this message
спасибо большое!
15:27
в документации ещё было бы это :)
&2
15:29
&rey 2ne:v
In reply to this message
https://ton.org/docs/#/howto/smart-contract-guidelines?id=using-non-bounceable-messages
Using non-bounceable messages

Almost all internal messages sent between smart contracts should be bounceable, i.e., should have their "bounce" bit set. ...
On some occasions, non-bounceable internal messages must be used. For instance, new accounts cannot be created without at least one non-bounceable internal message sent to them. ...
А(
18:51
Андрей Власов (Andrey Vlasov)
Друзья, подскажите, когда в NFT можно будет вкладывать любой документ, а не только медиа?
После запуска TON Storage?
А есть ли заготовки смарт-контрактов под такие данные?
o
19:47
oxlti.qube second
In reply to this message
Любой другой документ, это какой?)
А(
20:04
Андрей Власов (Andrey Vlasov)
In reply to this message
Пдф, текстовый документ, архив, фильм
OH
20:14
Of Tha Hook
In reply to this message
Думаю для этого Storage нужен
o
20:19
oxlti.qube second
In reply to this message
По сути, можно.
Но маркетплейсы не будут поддерживать фильмы

Но текст документы возможно, а пдф можно в jpg превратить
S
20:20
SCHIZ01D
закиньте пазезя пару тестнет тонов сюда
20:20
kQAcH9eLp2maCbx-DzRHeHO3Mxx-tTBaS9A4ZtPMOAKTcRRO
o
20:22
oxlti.qube second
In reply to this message
Не, не обязательно хранить в TON storage

Есть же альтернативы как Filecoin, Arweave + многие ipfs пользуются
S
20:23
SCHIZ01D
In reply to this message
не приходят
20:23
плюс мне надо 10-20 штук
20:23
а там по 2 в час
s
20:23
sd
А(
20:34
Андрей Власов (Andrey Vlasov)
In reply to this message
То есть на данный момент нет никаких ограничений на размер вложений NFT?
NA
21:30
Narek Abovyan
Всем привет!

Мы тут сделали JS пакет с компилятором FunC, работает везде и без бинарников, даже в вебе

Пока пре-альфа, было бы круто если кто-то сможет дать фидбэк!

https://github.com/the-ton-tech/ton-compiler/
17 September 2022
SF
01:05
Slava Fomin
Привет! А есть на примете какой-нибудь npm-пакет для валидации адресов TON в браузере с поддержкой tree-shaking? Не хочется тащить всю TON-библиотеку ради такого дела.
D
04:08
Dlamond
Всем привет, сейчас наверное тупейший вопрос будет, но кто-то может подсказать, вот задеплоил ты смарт коллекции, а что дальше? Как добавить туда NFT, где указать цену, ссылки на джейсон и ipfs? Вроде для них отдельный контракт есть, как его тогда подключить? Может почитать что-то есть по этому вопросу или хотя бы направление кто-то может указать? Я всё ещё мыслю критериями эфировских смартов, что-то встрял совсем
T
04:36
Tim
Можно посмотреть репозиторий контрактов гетгемс
o
07:23
oxlti.qube second
In reply to this message
Да, но могут быть проблемы с отображением в кошельках, эксплорерах и маркетплейсах
SW
08:33
Some Wallet
Привет, друзья. А можно ли сделать так, чтобы при вызове гет-метода seqno через лайт-клиент он выдавал мне только номер seqno интом, без всего остального лишнего? У кого есть опыт парсинга номера seqno из output
А(
09:42
Андрей Власов (Andrey Vlasov)
In reply to this message
Мне эти NFT не для продажи нужны, а для другого использования. Благодарю.
j
12:26
jr Partner @ Mesto
Всем привет!

Обновили (T)ON (N)FT (T)ool — универсальная утилита командной строки для запроса, изменения и создания новых NFT в блокчейне TON.

Пользуйтесь https://github.com/LiberMall/tnt
D
12:54
Dlamond
In reply to this message
Смотрел, как раз там и видел отдельный контракт для коллекции и отдельный для NFT , но никакой инструкции по использованию там нет
В
13:06
Василий
In reply to this message
https://github.com/disintar/toncli/tree/toncli-70
Вот тут вот есть, но это пока не слито с мастером.
Только 🤫
В
14:41
Василий
А тестнет хранит данные бессрочно или сбрасывает переодически?
м
15:05
максим
где можно посмотреть get методы nft sale smart contracts?
T
16:32
TON Дев Чат
In reply to this message
Время от времени тестнет перезапускается. Кроме того, в тестнете меньше архивных нод, так что на историю надеяться не стоит
В
16:42
Василий
In reply to this message
А можно как-то посмотреть когда это происходило?
T
16:45
TON Дев Чат
In reply to this message
Имеет смысл подписаться на https://t.me/tonstatus и https://t.me/testnetstatus
В
16:51
Василий
In reply to this message
https://t.me/testnetstatus/6
Означает ли это, что с Мая он не перезапускался?
T
16:53
TON Дев Чат
In reply to this message
Да
В
16:55
Василий
In reply to this message
Спасибо
IG
20:18
Ilia Gaevskii
Подскажите как достать список всех нфт адресов по коллекции?
Через прямую рабоут с блокчейном
Чот не могу по чату найти нужный пример
OB
20:19
Oleg Baranov
In reply to this message
У коллекции есть метод, get_nft_address он по индексу вернет адрес
IG
20:20
Ilia Gaevskii
In reply to this message
Вот это? get_nft_address_by_index
А где взять индекс?
OB
20:20
Oleg Baranov
In reply to this message
Из второго метода)
20:21
Гет коллекшн дата
IG
20:21
Ilia Gaevskii
Сяб
OB
20:21
Oleg Baranov
Вернет индекс последний, нужно дернуть первый метод для каждого до последнего, с 0
VF
20:42
Vadim Filimonov
Код контракта где-то можно найти?
Мне нужно узнать реального владельца токена.
Вот пример:

https://tonscan.org/nft/EQB674M4NltT9fzHoUvw3UKQ5irDpvgljhaa7-jkeCUA4i31

тут написано, что владелец EQDrLq-X6jKZNHAScgghh0h1iog3StK71zn8dcmrOj8jPWRA

а тут
https://beta.disintar.io/object/EQB674M4NltT9fzHoUvw3UKQ5irDpvgljhaa7-jkeCUA4i31

владелец
EQATOBrDqzhr20zsaePHBbdxEa3v1DoddlRuYWJ6aMjleAxb
s
20:45
sd
In reply to this message
Pwra это адрес маркета, потому что нфт на продаже (было) . На маркете актуальный владелец. Кроме того, посмотреть нормально можно на explorer.tonnft.tools

Хотя ладно, сдаюсь, тут чот неоднозначное))
VF
20:47
Vadim Filimonov
это я понял
я могу от адреса маркета получить реального владельца?
IG
20:48
Ilia Gaevskii
In reply to this message
Не совсем так. Когда нфт на продаже, то овнер нфт является смарт контракт продажи. А в смарт контракте продажи есть адрес владельца, что выставил нфт на продажу
s
20:49
sd
In reply to this message
я это и имел ввиду
VF
20:52
Vadim Filimonov
In reply to this message
это так в случае с getgems
вот пример
https://tonscan.org/address/EQDACwz-nrRVe7__xhdievGmMBzQ6ocZuBnh03RJdBFd1F6Q
и у этого контракта можно вызвать
get_sale_data и получить owner

в случае с disintar - на одном контракте много nft
IG
20:54
Ilia Gaevskii
In reply to this message
Тон скан говорит что произошла ошибка с покупкой https://tonscan.org/tx/guo1Nu6WU5Vz9GjYLCCqqniWKqdsKF7XGyRIA6v1vMw=

а дизинтар считает что его купили
20:55
In reply to this message
На каком адресе много нфт?
IG
21:00
Ilia Gaevskii
In reply to this message
Это адрес маркетплейса дизинтар. Это не смартконтракт продажи нфт
VF
21:03
Vadim Filimonov
In reply to this message
метод get_nft_data для токена EQB674M4NltT9fzHoUvw3UKQ5irDpvgljhaa7-jkeCUA4i31
возвращает OwnerAddress - EQDrLq-X6jKZNHAScgghh0h1iog3StK71zn8dcmrOj8jPWRA
IG
21:04
Ilia Gaevskii
In reply to this message
Да. Я тоже только что провел это. Получил такой же резлуьтат
21:05
In reply to this message
Ну вот проблема с транзакцией. Вообще можно пингануть @tvorogme и узнать почему это так произошло :)
VF
21:08
Vadim Filimonov
In reply to this message
дело точно не в той транзакции
вот еще пример
https://tonscan.org/address/EQDKTWCAqvv311phpf3d8N6pEAOWzFUh4t5h1kR7atNH0t5n
F
21:35
F
In reply to this message
Переадресуйте свой вопрос в чат @toncoin_rus_chat
Если сервиса нету на ton.app - то лучше не использовать
Так же реферальные ссылки запрещены
A
21:36
ATOM 150 monero 500 btc 120000
In reply to this message
Ок, больше так не буду
SW
23:01
Some Wallet
Ребят, а в тестнет эксплорерах норм, что NFT вот так выглядят?
23:01
RK
23:10
Roman Krutovoy @work
In reply to this message
@tdjx5 сталкивался с подобным недавно. Наверное, это с тестнетом что-то
м
23:11
максим
In reply to this message
то есть все нфт выставленные на продажу на дизинтаре будут принадлежать именно этому адресу?
18 September 2022
IG
00:05
Ilia Gaevskii
In reply to this message
нет. Они принадлежат смарт контракту дизинтара. Для каждой нфт свой смартконтракт
м
00:06
максим
In reply to this message
«в случае с disintar - на одном контракте много nft» а это тогда что значит ?
IG
00:12
Ilia Gaevskii
In reply to this message
Что на адресе кошелька дизинтар (Тот что используется для получения комиссий) лежит много нфт :)
00:26
ЧТо-то не могу понять

Пытаюсь достать адрес нфт от коллекции.

Делаю сначала вот так
api.RunGetMethod(context.Background(), masterBlock, addr, "get_collection_data")
Получаю индекс 13333
Потом делаю вот так
api.RunGetMethod(context.Background(), masterBlock, addr, "get_nft_address_by_index", index) Но получаю скрин1

Хотя на тон центре выполняя
{
"address": "EQAA1yvDaDwEK5vHGOXRdtS2MbOVd1-TNy01L1S_t2HF4oLu",
"method": "get_nft_address_by_index",
"stack": [["num",13333]]
}
получаю скрин 2.


Что-то не сходится, ведь слайс из кода Я получаю какой-то маленький, с которым потом нельзя работать
00:26
СБ
00:31
Слава Бучин
Друзья
Столкнулся с проблемой
Адреса кошельков бывают в разных формах
Где можно почитать про то, что это за формы, и как можно из одной в другую переводить желательно средствами dotnet?
SF
00:54
Slava Fomin
In reply to this message
https://github.com/slavafomin/tonweb/blob/typescripted/src/utils/address.ts

Вот здесь есть реализация всех форматов, можете взять за референс.
DS
01:48
Denis Subbotin
In reply to this message
м
02:14
максим
как получать контент нфт? например для rich cats get_nft_data возвращает api/cat/bg0054:bd0006:ey0018:te0029:wh0002/json вместо https://richcats.app/api/cat/bg0054:bd0006:ey0018:te0029:wh0002/json, а для ARL 1024.json вместо http://nft.animalsredlist.com/nfts/10204.json
ID
02:21
Igor Diakonov
In reply to this message
https://github.com/ton-blockchain/TIPs/issues/62

get_nft_content(int index, cell individual_content) returns cell full_content


емнип
D
04:17
Dlamond
Ребят, подскажите пожалуйста, как обновить toncli что бы он перестал ругаться на инклуды в коде, я так понимаю это проблема из-за старой версии?
T
04:20
Tim
Дело не в тонкли а в вашем func/fift. Скорнировать актуальную версию и пересобратт
D
04:28
Dlamond
In reply to this message
Нет мануала как это сделать?
T
04:28
Tim
Заново пройти мануал установки тонкли
D
04:31
Dlamond
In reply to this message
Это я недавно уже делал, возможно в чём-то другом проблема
T
04:32
Tim
Можно попробовать узнать какая версия у текущего func бинаря
04:32
Но я не знаю какая последняя должна быть и как
AF
08:54
Alden Fox
всем привет
пытаюсь разобраться с контрактами от getgems
https://github.com/getgems-io/nft-contracts/blob/main/packages/utils/compileFunc.ts

выдает ошибку на 14-й строчке кода

Error: Command failed: node_modules/ton-compiler/bin/macos/func -PS -o /var/folders/yp/9t9ql6g14c940b8j6c2w96x80000gn/T/44f4e100-92ab-4757-9696-1c3c82fdd601.fif /var/folders/yp/9t9ql6g14c940b8j6c2w96x80000gn/T/2cd24193-6b16-4e2e-bb10-ca5749ac56b7.fc
Illegal instruction: 4

запускаю на air m1
кто-то сталкивался с таким ? как лечить ?
A
10:15
An Ton
Упрощённый вход в аккаунт. Пользователи, которые часто авторизуются в приложении Telegram,  смогут получить код на электронную почту или воспользоваться функцией «Войти с помощью Google».

То есть, не все пользователи, а те, которые часто авторизуются? Насколько часто? У всех работает?
JD
10:18
John Doe
In reply to this message
Это не совсем связано с тематикой чата =)
D
10:20
Dvredin ️
In reply to this message
@durovschars обратитесь сюда например
Тут всё-таки чат разработчиков на тон, а не телеграмм
A
10:21
An Ton
In reply to this message
🆗
OB
10:46
Oleg Baranov
In reply to this message
Там как раз адрес в нем, сделай LoadAddr
IG
11:29
Ilia Gaevskii
In reply to this message
Не могу. Падает с ошибкой говорит данных мало
OB
11:32
Oleg Baranov
Вижу там 267 бит, это вроде как раз под адрес, а покажи код скрином
11:33
In reply to this message
И видимо ты адрес уже загрузил, тк она вроде как выгруженая
ИВ
12:45
Игорь Ваулин
Господа, а можно как-то нфт аватарки интегрировать к себе на сайт? чтобы люди могли доказать что обладают нфт и использовать их как аватарки?
В
12:46
Василий
In reply to this message
Например пользователь регается по кошельку, который овнер NFT и может выбрать аву только из тех, которыми он владеет.
12:47
Первое что пришло в голову
ИВ
12:47
Игорь Ваулин
In reply to this message
ну так это и должно выглядеть. А по реализации есть какие-то наводки. Это можно как-то малой кровью организовать?
В
12:49
Василий
In reply to this message
Мб кто-то что-то и подскажет, но по моему впечатлению, малой кровью тут почти ничего не делается пока ).
Вообще это технически не сложно, но пилить скорее всего с нуля.
ИВ
12:50
Игорь Ваулин
нужен нфт граватар какой-нибудь
В
12:52
Василий
In reply to this message
Ну есть REST API, которое позволяет получать любую информацию по контрактам.
В т.ч овнеров НФТ.
В общем-то это и есть малой кровью
12:53
tonweb смотрите
ИВ
12:57
Игорь Ваулин
In reply to this message
а авторизовать микротранзакцией?
12:58
или как узнать по какому кошельку то проверяем овнеров?
В
12:58
Василий
In reply to this message
Думаю да. Другого пути не вижу.
JD
13:00
John Doe
In reply to this message
Более удобный способ для юзеров(имхо) - github.com/tonkeeper/ton-connect
ИВ
13:01
Игорь Ваулин
In reply to this message
так получается нужно еще и тонхапб добавлять?
13:02
он я так понимаю не сильно менее популярен, где-то в каналах опрос видел
s
13:02
sd
In reply to this message
Только для юзеров Tonkeeper. Как быть с Juston? Desktop app? Chrome web ext.? 👎
В
13:02
Василий
In reply to this message
Ну тут получается тонкипер авторизует. Т.е нужно как минимум ему верить.
ИВ
13:18
Игорь Ваулин
Да ладно, если человек сидит на нфт то ему вроде не сложно должно быть транзакцию сделать
13:18
Да и отличный отсев аудитории которая вообще платить не собирается ни при каких условиях )))
13:21
А вот у меня ещё вопрос был. А существует смартконтракт для универсальных пари? Типо я отправляю туда деньги, другой чел отправляет. Потом мы сообщаем некие ключи третьей стороне, арбитору, он склеев ключи генерирует пароль. Отдаёт пароль тому кому считает нужным. Получатель отправляет пароль в смартконтакрт и получает выигрыш
VA
13:23
Vladyslav Almazov
Привет , ребята,что за фигня? где взять этот Fift.fif?
&2
13:23
&rey 2ne:v
In reply to this message
Так платить-то можно даже самому себе.
Сделать так: указываешь сайту свой адрес; сайт генерирует случайный код; надо переслать самому себе транзакцию с этим кодом.
Дальше сайт либо сам периодически проверяет наличие транзакции, либо запрашивает у пользователя номер этой транзакции с подтверждением.
ИВ
13:25
Игорь Ваулин
In reply to this message
Кстати он же смартконтракт мультиподписи по сути
В
13:36
Василий
In reply to this message
Попробуй toncli update_libs
13:40
In reply to this message
Вот эту логику можно на payments channel наверное реализовать вполне.
VA
13:41
Vladyslav Almazov
In reply to this message
пробовал(
13:41
не получилось(((
В
13:43
Василий
In reply to this message
Где-то косяк с путями или FIFT_PATH.
toncli/src/toncli/lib/fift-libs/Fift.fif
Вот тут лежит Fift.fif.
VA
13:44
Vladyslav Almazov
In reply to this message
понял спасибо проверю
В
13:44
Василий
In reply to this message
Есть теоретически WSL совместимый докер.
https://hub.docker.com/r/trinketer22/func_docker
Можете на практике сказать WSL совместимый он или нет )
ИВ
16:00
Игорь Ваулин
In reply to this message
А это что вообще такое)
В
16:00
Василий
In reply to this message
ИВ
16:06
Игорь Ваулин
In reply to this message
Ну блин курить вайтпеппер. А своими словами?)
16:06
Может есть обзорная статья?
В
16:17
Василий
In reply to this message
IG
16:19
Ilia Gaevskii
In reply to this message
А там вроде кто-то выпускал апи в общий доступ, что можно получать список всех нфт которыми владеет кошелёк но не помню как называется :(
м
16:34
максим
Не подскажите, как отправлять Cell в get методах?
Запрос в тонцентре:
{
"address": "0:af61fe56dfa6b4cd0ad2ff073a3cc2a0e899f24dc154e7a34fc753eb016eb7aa",
"method": "get_nft_content",
"stack": [["num", 517], ["cell", "te6cckEBAQEAMQAAXmFwaS9jYXQvYmcwMDU0OmJkMDAwNjpleTAwMTg6dGUwMDI5OndoMDAwMi9qc29uwN3WYw=="]]
}
Ответ:
{
"ok": false,
"error": "Expecting value: line 1 column 1 (char 0)",
"code": 503
}
SF
16:41
Slava Fomin
In reply to this message
Попробуйте так:

['tvm.Cell', bytesToBase64(
await cell.toBoc(false)
)]
м
16:43
максим
у вас false в toBoc() это параметр has_idx?
SF
16:43
Slava Fomin
In reply to this message
Верно. Это пример из TonWeb.
м
16:54
максим
у меня питоновская библиотека tonsdk, аналог tonweb
await account.run_get_method('get_nft_content', [
Tvm_StackEntryNumber(
Tvm_NumberDecimal(
x['index']
)
),
Tvm_StackEntryCell(
Tvm_Cell(
bytes_to_b64str(x['content']).to_boc(False)
)
)
])

отдает ошибку
TypeError: a bytes-like object is required, not 'str'

если без функции
bytes_to_b64str
отдает
ton.tonlibjson.TonlibError: bag of cells is expected to have exactly one root

если есть в чате кто-то из разрабов библиотеки, просьба помочь)
16:55
ну и еще инетерсно как в тонцентр такие запросы пилить
a
17:00
assemblerx64
In reply to this message
В тонцентре есть бинды под каждый тип и там надо что-то вроде ['num', 1] посылать, но как вижу код из psylopunk/pytonlib для гет метода тут. Тут нужно передавать байты в Tvm_Cell, не строку. Не очень понимаю при чем тут bytes_to_b64str.

А эти байты должны корректно десериализоваться через tonsdk.boc.Cell.one_from_boc(bytes), как минимум. Но и глубокие ошибки могут быть, тогда скинь какие именно данные там
м
17:15
максим
смотри я запускаю account.get_nft_data() который для 'content' возвращает Cell.one_from_boc(b64decode(response.stack[4].cell.bytes))
потом я запускаю

await account.run_get_method('get_nft_content', [
Tvm_StackEntryNumber(
Tvm_NumberDecimal(
x['index']
)
),
Tvm_StackEntryCell(
Tvm_Cell(
x['content']
)
)
])

и он выдает TypeError: a bytes-like object is required, not 'Cell'

если вместо x['content'] вставить x['content'].to_boc(False) то выдает
ton.tonlibjson.TonlibError: bag of cells is expected to have exactly one root

данные: адрес нфт = '0:7b1f6c46999d56b66f5d5ba3694e19341138388170122466f38c138b7866ef69',
индекс нфт = 517
адрес коллекции 0:af61fe56dfa6b4cd0ad2ff073a3cc2a0e899f24dc154e7a34fc753eb016eb7aa
SF
17:17
Slava Fomin
In reply to this message
Вы либо неправильно сериализуете BOC, либо у вас ячейка сформирована неправильно. Нужно копать и смотреть в эту сторону.
м
17:20
максим
In reply to this message
так это же библиотечные методы
поэтому и спросил есть ли её авторы в чате
a
17:22
assemblerx64
In reply to this message
Можешь просто целиком скинуть x['content'].to_boc(False) в хексе? В лс например
A
17:59
Alexander
In reply to this message
Пример для jetton'ов, используя только tonsdk

addr_slice = Cell()
addr_slice.bits.write_address(Address(owner_addr))
addr_stack_arg = base64.b64encode(addr_slice.to_boc(False, False)).decode("utf-8")

result = self._run(self.provider.raw_run_method(prepare_address(minter_addr),n"get_wallet_address",[["tvm.Slice", addr_stack_arg]]))
18:02
Как я понимаю тебе нужно по аналогии засунуть в первый stackEntry
index.bits.store_uint
(для index)

и content cell сформировать (она у тебя уже есть, судя по всему) в x['content']
м
18:04
максим
In reply to this message
там точно не с индексом проблема, потому что если в стэк засунуть только индекс запрос отправляется
18:04
In reply to this message
а где в tonsdk находится функция отправки get метода?
18:06
In reply to this message
и кстати если вместо Cell отправлять Slice он тоже отправляется без ошибок, просто респонс приходит с ошибкой
A
18:09
Alexander
In reply to this message
В provider, вот примеры (есть пример в AbstractTonClient:seqno). Они неудобные, так как для tonsdk не было необходимости в провайдере, было бы полезно их переписать)
18:10
Могу скинуть в личку полный пример для работы с jetton get_wallet_address, если нужно
м
18:10
максим
In reply to this message
давай
ДИ
18:12
Даниил Ивлев
In reply to this message
Можно
IG
18:13
Ilia Gaevskii
А какие есть сканеры у тона сейчас?
tonscan.org
explorer.tonnft.tools
Какие еще? И есть ли какой-то сканер с открытым апи?
M
18:25
Makar
In reply to this message
Не вижу ответили или нет... Короче нужно бинарники func и fift пересобрать
VA
18:41
Vladyslav Almazov
In reply to this message
попробовал сделать новый путь PATHFIFT или PATH_FIFT тоже не работает . А с тем докером , что нужно сделать ? думаешь он поможет решить проблему? У меня почему ошибка возникает в тестах при деплое смартконтракта , точно так же на другом компе работает
В
18:44
Василий
In reply to this message
В докере всё собрано как надо и не надо думать о путях и подобных вещах.
Но похоже на то, что дело в переменных окружения.
Уберите все относящиеся к FIFT. toncli выставляет их самостоятельно.
VA
18:45
Vladyslav Almazov
In reply to this message
Понял спасибо , попробую
18:46
In reply to this message
Проверил в путях FIFT не было , я все почистил до этого(
В
18:47
Василий
In reply to this message
Я имею ввиду все PATHFIFT и им подобные переменные из окружения убрать и оставить это на совесть toncli.
18:49
Они нужны, когда ручными вызовами func/fift собирается контракт, а тонкли делает это за вас.
DS
19:14
Daniil Sedov
как в js можно создать tvm'овский dict с несколькими ключами-значениями?
в tonweb нашел функцию writeDict, но как по-удобному создать сам словарь не понятно. неужели придется по tlb схеме самому все делать? или мб в другой либе такое есть?
19:17
In reply to this message
а, тут уже такое спрашивали
SF
19:24
Slava Fomin
In reply to this message
Да, пока есть только реализация в отдельном бренче. Но в планах есть сделать нормальную реализацию.
IG
22:11
Ilia Gaevskii
Привет.

Помогите найти в контракте аукциона инфу про овнера нфт саму нфт и прочее. Что-то типа get_sale_data
22:14
А нашел. Сяб
DS
22:24
Dmitry Shanin
In reply to this message
Если у арбитра есть некий "пароль", предъявив который можно получить монеты с контракта, то почему бы арбитру не забрать эти монеты самому?
DS
22:31
Daniil Sedov
In reply to this message
Ну я думаю в контракте должна быть проверка, что ключ должен прийти от одного из двух заданных адресов
19 September 2022
VK
01:04
Viktor Karasev
Как прикрутить авторизацию через кошелек tonkeeper не подскажите?
SF
01:05
Slava Fomin
In reply to this message
Какой смысл давать арбитру возможность произвольно вывести монеты? Он должен либо первому, либо второму участнику их переводить.
A
01:30
A
На 16 iOS нельзя делать текст жирным/зачеркнутым или эта функция кудато переехала ? Помогите плз, не врубаюсь как это сделать после обновления
AP
01:34
Andrey Pfau
In reply to this message
это вопрос не по TON.
o
04:44
oxlti.qube second
In reply to this message
Вместо арбитра может быть оракул, который сообщает информацию в смарт-контракт

А там уже if-then смарт-контракт распределит сам
JD
08:57
John Doe
In reply to this message
H
08:57
Hartmann D.
In reply to this message
Спасибо
AT
11:44
Andrey Tvorozhkov
Рады представить новую версию toncli в PyPi.

Несколько месяцев работы контрибьютеров, 216 коммитов, новая система тестов с обширными примерами и вспомогательными функциями.

Так же, контрибьютеры подготовили примеры проектов очень хорошо покрытые новыми тестами. Например, теперь 2 командами можно задеплоить NFT коллекцию или Jetton.

toncli start nft_colletion / toncli start jetton_minter

Так же доступны проекты: nft_item / jetton_wallet.

Все они имеют много интересных примеров в плане взаимодействия toncli и блокчейна, а так же очень хорошие тесты, которые помогут в разработке кастомных смарт контрактов.

Так же, доступны pre-build Docker образы, которые упрощают установку.

Релиз: https://github.com/disintar/toncli/releases/tag/v0.0.4
PyPi: https://pypi.org/project/toncli/0.0.43/

Большую часть работы проделали контрибьютеры при поддержке Ton Foundation, за что мы выражаем огромную благодарность сообществу.

Приятной разработки, а так же не забудьте поставить звездочку toncli, если она вам нравится :)

All issues and PR are always welcome.
TON Дев Чат pinned this message
ИM
12:31
Игорь Military
Наша команда приняла участие в TON Test Challenge!

Участвуют проекты:
tegro.money
tonhold.com
testnet.tegro.finance

https://github.com/TegroTON/.github/issues/new/choose

Будем рады видеть вас среди тестеров TON челенедж
T
13:17
TRLBLD
Товарищи разработчики, подскажите, какие сейчас есть аналоги hardhat для разработки и тестирования контрактов на тоне?
t
13:28
torsion
Есть ли в транзакции какие-то поля, которые видны только отправителю и получателю? А для остальных - нет?
T
13:28
TON Дев Чат
In reply to this message
Нет. Все публично и открыто.
KK
13:29
Kirill Kirilenko
In reply to this message
ты решил таки на тоне попробоваться? toncli и liteclient есть
T
13:30
TON Дев Чат
In reply to this message
Есть toncli(примеры тестов) и ton-contract-executor (примеры тестов), полноценный хардхат аналог в разработке
t
13:31
torsion
In reply to this message
а возможно ли как-то отправить зашифрованное сообщение из контракта на данный адрес?
13:31
если код контракта публичен, то можно и ключ для шифрования посмотреть
13:31
значит, наверное, нельзя?
GK
13:35
George K
Коллеги, подскажите пожалуйста как деплоить смарты nft-fixprice-sale-v2 для листинга на getgems? Коллекция деплоится, NFT тоже, а смарт для продажи не дается, пробовал уже и отдельно деплоить, выдает 500, и через контракт маркетплейса (тестнет), отдает 35 ошибку.
https://github.com/getgems-io/nft-contracts/tree/main/packages/contracts
А
13:35
Андрей
In reply to this message
Как то уже обсуждали эту тему, если кратко - то можно
https://t.me/tondev/87458
t
13:37
torsion
In reply to this message
Спасибо
В
13:38
Василий
По идее у wallet контрактов готовая PKI. Не знаю реализованно ли шифрование публичным ключом комментария к транзакции.
Если нет, то это стоило бы сделать.
t
13:51
torsion
In reply to this message
А наоборот? Из адреса в контракт?
В
13:52
Василий
In reply to this message
Это как? Всё есть контракт
GK
13:53
George K
In reply to this message
Коллеги, плачу 50USDT тому, кто проконсультирует по этому вопросу и доведет до результата, для опытного разраба это пол часа времени, а мне это очень поможет)
t
13:53
torsion
А, ну да
В
14:05
Василий
In reply to this message
Отдельно это как?
500 в nft-sale это если адрес отправителя не равен адресу nft контракта.
https://github.com/getgems-io/nft-contracts/blob/714f72c0354da864d5cad820ad34abf441023a95/packages/contracts/sources/nft-fixprice-sale-v2.fc#L156
GK
14:05
George K
In reply to this message
От имени владельца токена (и всей коллекции)
В
14:07
Василий
In reply to this message
Ну а контракт вот этот или другой какой-то?
GK
14:09
George K
Да
14:09
Читал код, тоже была мысль что 500 падает из-за этого, но честно говоря не придумал как отдеплоить его через nft-item
В
14:12
Василий
In reply to this message
То, что он падает из-за этого,- 100%.
Т.е сейл задеплоен с другим адресом NFT.
Никогда ничего не делал с сейл контрактом, но скорее всего это как минимум очень близко к правде.
14:20
Меня кто-нибудь поправит, если я не прав, но вроде логика такая:
1)Деплоим айтем и смотрим адрес.
2)Деплоим сейл с адресом айтема.
3)Делаем трансфер айтема на сейл контракт.
P
14:22
Peacekeeper
In reply to this message
так год назад стандартные кошельки умели шифровать комментарии

и это было проблемой для многих при зачислении депозитов на биржы
T
14:24
TON Дев Чат
In reply to this message
И шифрование и дешифрование в этом случае происходит оффчейн. Блокчейн служит лишь способом передачи зашифрованных данных (и для обмена ключами)
В
14:24
Василий
In reply to this message
А в чем проблема тут?
Не шифруй при транзах с биржей, и проблем не будет. Не?
P
14:25
Peacekeeper
In reply to this message
не было переключателя
GK
14:29
George K
In reply to this message
Я адрес айтема указываю, но тут я так понимаю смарт-контракт sale должен деплоиться именно от имени nft-item
В
14:30
Василий
In reply to this message
Указываете где? Нет такого механизма в nft-item. Есть только трансфер
GK
14:31
George K
При инициализации NftSale
14:31
В
14:34
Василий
In reply to this message
Может id не тот?
GK
14:35
George K
точно тот, я даже вручную уже прописывал адрес
В
14:37
Василий
500 явно говорит, что сообщение приходит не с того адреса.
Так что либо id/адрес при деплое не тот, либо трансфер вызываете не с того айтема, которого id.
GK
14:39
George K
Вы имеете ввиду, что трансфер нужно вызывать следующим образом:
owner =call=> nft-item =call=> nft-sale-v2?
14:39
Так, чтобы nft-item «проксировал»?
В
14:40
Василий
In reply to this message
Ну, когда происходит transfer, nft_item шлёт новому владельцу сообщение о том, что он теперь владеет айтемом.
Для этого ничего дополнительно делать не нужно, просто вызвать трансфер
14:41
Его-то сейл контракт и ожидает
14:42
Т.е вы только дергаете трансфер на айтеме, а не шлёте сообщение сейлу самостоятельно
GK
14:43
George K
Интересно, а как инициализировать cell с данными и кодом контракта NftSale тогда?
В
14:46
Василий
In reply to this message
А в чем проблема? Так как оно сейчас есть, вроде норм.
Вполне возможно, что оно рабоает корректно, просто вы шлёте ненужное сообщение сейлу, на которое он возвращает закономерно 500.
Т.е вы вызываете трансфер, nft айтем отправляет сейлу сообщение и меняет овнера.
Если это произошло, - все ок.
14:47
Один вызов должен быть.
Метода трансфер, а дальше надо посмотреть сменился ли овнер.
14:50
А ну и на sale посмотреть, что nft_owner_address теперь ваш.
Через get_sale_data метод
GK
14:59
George K
Сейчас попробую
15:02
Затрансферрил NFT, но контракт sale не инициализировался в чейне
15:02
В
15:03
Василий
In reply to this message
Ну это естеснно, его надо руками деплоить, как я понимаю.
15:03
А потом уже трансфер производить
15:03
Потому как айтем шлёт обычное сообщение без инита и ничего инициализировать не может.
15:04
Т.к владельцем может быть любой контракт, а не только сейл
15:05
Деплоите оба контракта, а потом трансфер
15:07
nft_owner_address в сейле инициализируется пустым(addr_none), а после трансфера становится равным адресу предыдущего владельца nft
15:12
Таким образом старый овнер сможет его снять с продажи.
ДИ
15:18
Даниил Ивлев
In reply to this message
Спасибо за теорию!

А можно где-то подробнее об этом почитать? Мне бы детали увидеть этого всего дела
В
15:19
Василий
In reply to this message
Только в коде контракта. Я там только что это прочитал )
15:20
Возможно где-то на маркетплейсах это есть в доках, но , судя по количеству людей с этим вопросом, где-то в не очевидном месте.
GK
15:21
George K
In reply to this message
Там при развертывании выдает 450 ошибку если до трансфера отправлять)
Есть ощущение что оно вызывает Buy по дефолту, я попробовал передать опкод 1, 32 в body - выпала 9 ошибка
В
15:21
Василий
In reply to this message
Что отправлять до трансфера?
15:22
До трансфера должен быть только деплой
GK
15:22
George K
отдеплоить
В
15:22
Василий
Хм
15:23
In reply to this message
При пустом msg_body оно вызывает buy.
Попробуйте op = 1
15:24
А. вижу
GK
15:24
George K
я попробовал, на скрине есть, я правильно сделал или ошибся где-то?
В
15:26
Василий
In reply to this message
Скорее всего кривой dataCell.
nft_owner_address == addr_none?
GK
15:27
George K
по идее нет
В
15:29
Василий
In reply to this message
Там должна быть ссылка на целл с fees, а тут оно всё в одну клетку.
По этому, когда он делает load_ref вылетает 9
15:32
То что после fullPrice должно быть в отдельной клетке
GK
15:38
George K
там функция сама все распределяет просто
В
15:39
Василий
А query_id не забыто?
15:40
В сообщении
15:40
При деплое
GK
15:43
George K
точно, сейчас попробую
15:49
Черт возьми, завелось))))
15:51
In reply to this message
@trinketer22 спасибо большое!! написал в личку по поводу своего обещания)
м
16:06
максим
как по адресу контракта понять, является ли он sale контрактом?
В
16:08
Василий
In reply to this message
Нужно вызвать get метод характерный для сейла.
get_sale_data
м
16:08
максим
In reply to this message
спасибо
VF
16:26
Vadim Filimonov
А подскажите по адресам?
В чем причина

Из tonlib получил UQBkl989Q7nnf9HDEYi_nQRGamqeYdRqUeUYuoIg9ixtPaLM
При отправке кошелек его заменяет на
EQBkl989Q7nnf9HDEYi_nQRGamqeYdRqUeUYuoIg9ixtPf8J
В
16:26
Василий
In reply to this message
Разные флаги.
non-bouncable и bouncable
VF
16:27
Vadim Filimonov
спасибо
S
16:35
SCHIZ01D
как получитть raw адрес нфт?
В
17:08
Василий
In reply to this message
https://ton.org/address/
Можно вот сюда вставить.
А програмно это декодировать base64url и потом отбросить флаги
KK
19:25
Kirill Kirilenko
In reply to this message
пробую toncli start jetton_minter, потом toncli build ничего не меняя и выпадает ошибка в терминале. Я где-то накосячил?
Python 3.9.13
toncli v0.0.43
19:25
In reply to this message
toncli ставил через pip3 если вдруг важно
AT
19:36
Andrey Tvorozhkov
In reply to this message
Сама ошибка выше. Скорее всего проблема в локальных либах. Советую удалить ~/. config/toncli/

Но задампить кошелек, если он использовался.

Еще нужны специальные бинари из SpyCheese репозитория. Самый простой способ поставить все это сейчас - использовать докер :) Вся инфа в INSTALLATION.md
KK
19:37
Kirill Kirilenko
In reply to this message
спасибо, попробую переустановить сейчас тогда
OB
20:14
Oleg Baranov
Вышла новая версия golang библиотеки для TON 💎 tonutils v1.3.0

1. Добавлен метод WaitNextMasterBlock
2. Cell Builder оптимизирован и ускорен в 4.5 раза
3. RunGetMethod теперь возвращает структуру
4. Поддержка Tuple для стека и RunGetMethod
5. Добавлен метод GetWalletVersion (by @iam047801)
6. Добавлен аргмент - лимит в FindTransactionByInMsgHash
7. GetNFTContent аргумент изменен на Content вместо Cell
8. Block scan example обновлен и теперь использует новые фичи
9. Переписаны тесты на использование тестнета вместо меиннета (by @SashaITx)
10. NFT onchain content фикс десериализации (by @igorsd)
11. Исправлен редкий кейс при котором StoreSlice некорректно сериализовал ключ в словаре
12. Исправлен возможный дедлок в StickyContext
13. Внутренние улучшения Liteclient'а

https://github.com/xssnick/tonutils-go
м
21:04
максим
почему get_sale_data для контракта гетгемс отдает больше значений чем должно быть? посмотрел их код контракта на гитхабе, вроде там функция отдает только 7 значений, а приходит 10
VO
21:12
Valeriy Osipov
всем привет, скажите какой алгоритм консенсуса у Ton?
&2
21:13
&rey 2ne:v
In reply to this message
Какой-то особый на базе PoS.
В документации вроде должно быть: https://ton.org/docs/#/
AT
21:20
Andrey Tvorozhkov
In reply to this message
Кошачье-цепной 🙄
DS
21:56
Daniil Sedov
In reply to this message
Что-то у меня никак не получается нормально подключить tonweb из бренча hashmaps на сайт... dist/tonweb.js не работает, пробую весь src/ подключать через browserify - тоже не помогает

Я что то не так делаю может?
YB
22:18
Yury B
Привет. Где можно разобраться с деталями сиквинсинга? (Sequencing) и как вообще транзакции упорядочиваются
T
22:38
Tim
In reply to this message
стандарта сейла нет
22:38
может ты смотришь v1, а не v2?
SF
22:40
Slava Fomin
In reply to this message
А что значит "не работает"?
DS
22:41
Daniil Sedov
In reply to this message
ну вот что происходит когда я просто dist/tonweb.js из брэнча hashmaps подключаю на сайт
SF
22:43
Slava Fomin
In reply to this message
Нужно смотреть в какой строке ошибка. В библиотеке или в вашем проекте.
22:44
Если в вашем, то скорее всего импортируете не правильно.
DS
22:45
Daniil Sedov
In reply to this message
так должно быть?

второй скрин - как импортирую либу. tonweb.js скачал из https://github.com/toncenter/tonweb/blob/hashmaps/dist/tonweb.js
22:45
In reply to this message
SF
22:54
Slava Fomin
Там в этой ветке не сбилженый артефакт лежит. В нем нет HashMaps.
22:59
Нуно сделать так:

cd `mktemp -d`
git clone -b hashmaps https://github.com/toncenter/tonweb.git
cd tonweb/ && npm i --legacy-peer-deps && npm run build
cp ./dist/tonweb.js ~/Desktop/

Получите правильный бандл на рабочем столе.
DS
23:03
Daniil Sedov
In reply to this message
Спасибо! Уже успел сам найти в ридми как сбилдить. теперь вроде работает
A
23:07
Alexander
Вопрос:
1. После применения setcode адрес смарт контракта остается неизменным, даже не смотря на то, что изначальная конфигурация state_init потеряла свою актуальность?
2. Если да, то смарт контракты со встроенной setcode возможностью вызывают меньше доверия, так как нельзя проверить, что исходники (предположим, с github) валидны для смарт контракта?
AT
23:12
Andrey Tvorozhkov
А в фифт рандом не завезли? Что-то я не могу найти(
A
23:14
Alexander
In reply to this message
AT
23:15
Andrey Tvorozhkov
In reply to this message
это TVM
23:16
Вот как раз TVM не рандомит внутри фифта, потому что trans_lt в c7 всегда одинаковый
23:16
Хочу это пофиксить, но рандома нет. Из динамического только время
AP
23:27
Andrew Python
In reply to this message
1. Адрес не меняется.
2. Мы всегда можем достать текущий стейт и проверить валидность кода
В
23:32
Василий
In reply to this message
А LTIME ADDRAND перед этим тоже не помогает?
Оно же randomize_lt
А
23:33
Андрей
In reply to this message
1. Да, адрес не меняется
2. Проверить код смарт-контракта можно, например тут: verifier.tonsc.org
A
23:36
Alexander
In reply to this message
Спасибо. Ну да, мы можем проверить только то, что он изменился.
AT
23:37
Andrey Tvorozhkov
In reply to this message
Все еще это уровень TVM
23:37
А
23:37
Хм, найс трай
23:38
Но все в контрактах пишут randomize_lt
23:39
Хочется, чтобы работало как у всех) Пока я просто заменил 1 на now вот тут: https://github.com/disintar/toncli/blob/50872c671a4fbf70bf10646aa8582bbb9af89cc1/src/toncli/modules/fift/run_test.fif.template#L43 и это помогло
В
23:51
Василий
In reply to this message
Ну да, странно что там вообще была константа
20 September 2022
м
00:26
максим
In reply to this message
а все сейлы на гет гемсе сейчас v2?
D
00:47
Dude
Ребят, требуется помощь, скрин приложить не могу, вот ссыль на него: https://i.ibb.co/HgW0QyY/photo-2022-09-18-18-37-47.jpg
У меня есть подозрение, что я не верно формирую boc файл при помощи библиотеки tonsdk
1. Это кошелек получателя (именно обычный кошелек получателя, на который можно отправить обычный тон)
2. Это кошелек jettons. Ткните носом, как именно узнать точно адрес кошелька, с которого я хочу отправить жетоны. Есть подозрения что зафакапил тут
3. Количество отправляемых жетонов
4. Количество тона отправляемого на смартконтракт для топлива
5. Seqno - получаю из api toncenter из метода getwlletinformation по кошельку владельца, с которого авторизовался сид фразой.
6. Формируем boc файл и после в base 64 строку его

после чего этот boc файл отправляю в api тонцентра в метод secdBoc и получаю пятисотки с текстом ошибки
"code":500,"message":"LITE_SERVER_UNKNOWN: cannot apply external message to current state : External message was not accepted\nCannot run message on account: inbound external message rejected by transaction 71D01AE1FA3A9105C210BDAC45B8FDAD4BA7973C6BCB1084F75A19BB16620759:\nexitcode=33, steps=23, gas_used=0\nVM Log (truncated):\n...te NOW\nexecute LEQ\nexecute THROWIF 36\nexecute PUSH c4\nexecute CTOS\nexecute LDU 32\nexecute LDU 32\nexecute LDU 256\nexecute LDDICT\nexecute ENDS\nexecute XCPU s4,s3\nexecute EQUAL\nexecute THROWIFNOT 33\ndefault exception handler, terminating vm with exit code 33\n
02:21
TenserWille Максим
а подскажите, доступны ли для ton wallet мульти транзакции? возможно ли отправлять сразу платежи на 2 или больше адресов?
SW
06:49
Some Wallet
Привет! а кто знает как из файла формата .pk сгенерить 24 слова для доступа через тонкипер и тд?
A
07:21
Alexander
In reply to this message
seqno неверно указан. Самое важное в ошибке это exitcode, у вас он 33, идете в контракт и смотрите. Либо смотрите exit_codes для tvm.
07:24
In reply to this message
У вас он очень странный. Для новоиспеченного кошелька он не может быть таким большим. seqno - counter, который инкрементируется после каждого успешного external запроса.

Там в примерах tonsdk есть функция его получения.
А
09:45
Андрей
In reply to this message
Да, смартконтракт обычного кошелька допускает отправку одной транзакцией до 4 адресатов. highload-wallet поддерживает отправку одной транзакцией до 256 адресатов
09:45
TenserWille Максим
In reply to this message
спасибо
А
09:45
Андрей
In reply to this message
Никак, можно только из сид-фразы создать .pk файл
D
09:59
Dude
In reply to this message
Этот seqno жетонкошелька или кошелька владельца жетон кошелька? Просто жетон кошелёк новый, а кошелёк владельца старый)

Тут указан seqno не кошелька жетонов, а кошелька владельца)
F
09:59
F
In reply to this message
Пользователю не нужно каждый раз вводить свой приватный ключ.
Вы же не вводите свой приватный ключ каждый раз при отправке монет)

PS: https://t.me/tondev/75493
MP
09:59
Matthew Parker
Скажите пожалуйста для перевода жетонов, сколько нужно количество тон передать в Jetton Wallet? 0.4? или можно меньше?
D
10:13
Dude
In reply to this message
А ткни пж ещё в метод в tonsdk для получения seqno) а то у меня получалась тыква когда я использовал что-то встроенное)
A
10:53
Alexander
In reply to this message
Отвечу тут тоже, на всякий случай. В readme есть)
D
10:54
Dude
Ага, я его юзал, но вместо seqno он возвращает такой список: [{'@type': 'smc.runResult', 'gas_used': 370, 'stack': [['num', '0x14c97']], 'exit_code': 11, '@extra': '1663660404.226998:3:0.5984213240202055'}]
A
10:55
Alexander
Ты юзаешь testnet или mainnet?
10:56
В testnet у тебя пустой кошелек, проверь настройки
D
11:20
Dude
In reply to this message
Mainnet
11:21
С тестнета переключаюсь, мне главное сейчас разобраться в механике формирования бок файла. И я вот с seqno не могу никак толку дать
11:21
А там потрачу пару баксов на пересылку — пофиг)
11:21
В тестах
A
11:28
Alexander
In reply to this message
И это в mainnet такая ошибка? У меня верно сработало.

Проверь
self.provider = ToncenterClient(...)
D
12:27
Dude
In reply to this message
проверил.
В общем ошибка была в неверном seqno. Немного поправленный стандартный метод:

    def seqno(self, addr: str):
addr = prepare_address(addr)
result = self._run(self.provider.raw_run_method(addr, "seqno", []))

if 'stack' in result and ('@type' in result and result['@type'] == 'smc.runResult'):
result['stack'] = serialize_tvm_stack(result['stack'])

return parse_response(result[0])

решил проблему. Огромное спасибо за помощь @sasha1618 и более ранние консультации @psylopunk
A
14:22
Alexander
Получается, что для "transfer" сообщений (с пустым body) у нас есть два варианта:
- отправить деньги обратно на sender_address через send_raw_message, тогда деньги получателя не будут потрачены
- делать что угодно (return, throw), но тогда деньги точно остануться на нашем смарт контракте?
T
14:23
TON Дев Чат
In reply to this message
если сообщение послано с bounce флагом и контракт кидает исключение, сообщение с деньгами боунснется (если с флагом non-bounce, то не боунснется)
A
14:26
Alexander
In reply to this message
Да, просто в whitepaper как будто говорится, что сообщение не будет отправлено назад, даже не смотря на флаг.

Спасибо.
A
15:07
Alexander
Встал вопрос:
Если мы указали fwd_fee в сообщении и в пути fwd_fee_remaining спустился ниже 0, но в сообщении остались деньги, они отправятся назад отправителю?

Если отправляется, то в каком формате? bounced сообщения?
&2
15:45
&rey 2ne:v
In reply to this message
fwd_fee перезаписывается валидатором, насколько я помню.
A
15:49
Alexander
Это если мы 0 укажем при создании сообщения, вроде.
&2
16:27
&rey 2ne:v
In reply to this message
Вроде бы всегда. Поэтому там ноль указывается для простоты - всё равно значение будет перезаписано.
A
16:31
Alexander
Это странно. Вряд ли такое поведение. Откуда валидатор может знать нужный fwd_fee заранее для всех hop'ов и тд. или fwd_fee устанавливается == msg_value?
T
16:34
Tim
А причем тут хопы, там уже свои отдельные сообщения будут
В
16:37
Василий
In reply to this message
Я думаю он будет исходить из предельных значений.
Которые через ConfigParam21 получит.
Или что-то в таком ключе.
16:39
max_tx_gas_price
F
17:01
Foisoi
Можно ли получить private key смарт-контракта через код?
&2
17:18
&rey 2ne:v
In reply to this message
Хм. Если я верно понял вопрос (если речь про кошельки), то нет.
Код каждого контракта ведь доступен публично. Если бы можно было достать private key, деньги бы можно было просто перевести кому-то другому.
F
17:24
Foisoi
In reply to this message
не совсем поняли
17:24
я имел ввиду контракты в привычном понимании
17:25
но то, что код доступен публично это я знаю
17:26
я говорил про то, что мб есть такая функция, как MYADDR
&2
17:27
&rey 2ne:v
У обычного контракта вроде вовсе нет приватного ключа.
17:28
Исходящие сообщения отправляются за счёт того, что это прописано в коде контракта - поэтому нет смысла их ещё и подписывать.
F
17:29
Foisoi
у меня стоит задача в том, чтобы отправить сообщение от кошелька пользователя в смарт-контракт
17:29
чтобы не было видно содержимое сообщения
17:31
In reply to this message
Хорошо. Тогда другой вопрос.
Если, сгенерировав случайное число (например через RAND), сохранить его в переменной контракта, то эта переменная публична?
&2
17:31
&rey 2ne:v
In reply to this message
А, в такой постановке вопрос.
Если смарт-контракт должен расшифровать сообщение и произвести какие-то операции, тогда то же гарантированно можно провести на любом компьютере (в этом и суть блокчейна - проверяемость транзакций) и получить содержимое сообщения. Но если речь идёт про выдачу ключа активации, то можно и не записывать приватный ключ в смарт-контракт, а оставить у пользователя.
F
17:31
Foisoi
сори за дурацкие вопросы если что)
&2
17:32
&rey 2ne:v
In reply to this message
Да, потому что данные блокчейна TON публичны, и код любого контракта можно исполнить оффчейн, попутно записывая все промежуточные результаты.
F
17:33
Foisoi
In reply to this message
ок
17:33
Т.е все переменные публичны?
17:33
в коде смарт-контракта
17:34
понятно
17:35
А можно ли как-нибудь получить случайный адрес (уже сгенерированный) средствами FunC? К примеру, сделать запрос на сайт https://tonwhales.com/explorer/top?
DS
18:05
Daniil Sedov
Что может означать ошибка "Failed to unpack account state" при деплое контракта через tonweb ?
A
18:09
Alexander
In reply to this message
Ну да, транзитные сообщения, но они ведь тоже платят за fwd.

Перефразирую вопрос. Можно ли при отправке сообщения указать максимальную сумму, которую мы готовы потратить на fwd и, если да, что произойдет с сообщением, в котором мы исчерпали запас на fwd_fee: вернется ли сумма обратно на source адрес и в каком формате (bounced?)

Второй вопрос, откуда берется лимит fwd_fee, если его не указывать.

Спасибо)
T
18:17
Tim
Чат, а никто не знает хайлайтер func под monaco?
DS
18:22
Daniil Sedov
In reply to this message
а, на адресе не было монет на комиссию
GA
20:44
Gleb Ars
Привет, помогите решить?
Когда я тестирую смарт контракт выдаёт ошибку.
Вот команда запуска:
toncli send -n testnet -a 0.03 --address "kQDYqEecmI3oAOOZVkuaWwJU6JRoDYPf1LGD1EQepwctchLv" --body ./fift/try.fif
20:44
20:44
Ошибка
В
20:56
Василий
In reply to this message
С часами/датой все норм?
A
21:09
Adya
Всем привет! Подскажите, пожалуйста, в TON есть возможность передачи прав смарт-контрактов, типа как в трансфер в Эфире? Нет желания передавать разрабу сид-фразы от своего кошелька для минта коллекции)
OB
21:12
Oleg Baranov
In reply to this message
Привет, можно передать коллекцию (сменить овнера)
A
21:16
Adya
In reply to this message
Спасибо большое!
GA
21:21
Gleb Ars
In reply to this message
ага
21 September 2022
D
00:26
Dlamond
Всем привет, и снова я тут. Подскажите пожалуйста, что за ошибка, если тут можно что-то разобрать. Деплою я только смарт коллекции или и коллекции и нфт айтема сразу, выскакивает всегда вот это
00:26
SW
00:30
Some Wallet
In reply to this message
Ошибка на 264 строке NFT.fif. Процедура store_builder не определена
00:30
In reply to this message
Скинь свой файл в лс, скажу конкретно
00:32
Как вариант, при компиляции не подтягиваешь необходимые библиотеки или файлы, где как раз и определён этот метод
D
00:36
Dlamond
In reply to this message
Скинул
00:38
In reply to this message
Возможно из-за того что в коде нет инклудов, но по идее бибилотеки подтягиваются через project.yaml, а иклуды мне подсвечивает красным и выдаёт что не может открыть сурс файл
D
02:19
Dlamond
In reply to this message
Вопрос решён, @some_wallet спасибо
В
13:19
Василий
In reply to this message
store_builder нужно раскомментить в хелперах
EG
16:04
EvGeniy Gnatovskiy
Всем привет. А чтобы узнать контент коллекции нужно же вызвать в lite-client runmethod <адресс коллекции> get_collection_data?
он мне вернет int cell slice. а как это можно в читабельный формат перевести?)
?
17:36
💠Admin
Всем привет. Подскажите, есть ли скриптт подключения к кошельку ?
Нам для конекта нфт игры
IC
17:40
Ivar Crazy
Подскажите, как можно сделать ссылку на расширение кошелька ton wallet, чтобы через телегу он сразу открывался в браузере?
Ссылка типа: ton://transfer/ вообще не работает
DS
17:41
Daniil Sedov
есть в tonweb (или другой либе) функция для перевода адреса из raw-формата (0:xxxxxxxxx...) в user-friendly-формат?
T
17:42
Tim
In reply to this message
New Address(from).toString(true, true, true)
DS
17:43
Daniil Sedov
In reply to this message
а, в адрес.toString можно флаги передавать, спасибо!
17:49
а есть возможность в js'e дождаться подтверждения транзакции, отправленной из расширения ton wallet через ton.send('ton_sendTransaction', {...}) ?
промис true возвращает сразу после отправки, а мне нужно следующие действия в коде после подтверждения делать
SF
17:50
Slava Fomin
In reply to this message
Дёргать getTransactions() из тонвеба и ждать пока транза появится либо истечет TTL.
T
17:52
TON Дев Чат
In reply to this message
Увы, только руками проверять что подтвердилось.
В тонцентре впрочем есть метод sendBocReturnHash
(возвращает хэш экстернала)
а в тонцентре индексе есть метод getTransactionByInMessageHash
Который поможет связать эти вещи.
В
18:00
Василий
In reply to this message
smca в fift
Ф
20:22
Фима Малкис
Ищем девлоперов: приложение для смартфонов на базе блокчейна ТОН
Пишите в личку @fimanoidel
A
22:12
Alexander
Правильно понимаю, что без этого значения external сообщения (допустим, в кошелек) не обрабатывались бы, так как не доходили до accept_message? Или это не так работает?
T
22:31
TON Дев Чат
In reply to this message
Да, кредит дается на то, чтобы дойти до accept_message. https://ton.org/docs/#/smart-contracts/accept
22 September 2022
T
14:38
Tony
Не могу найти инфу как сделать авторизацию в чате через наличие нфт.
Киньте ссылкой пожалуйста.
BH
15:02
Bio Hazzardt
привет, никто не в курсе, что с тонцентром случилось? Возвращает Invalid response status [400]: cannot get data
15:02
400я ошибка
SF
15:03
Slava Fomin
@ruslixag не подскажешь?
RG
15:04
Ruslan Gabdullin
Приветствую, сейчас взгляну
15:04
In reply to this message
Нужен конкретный запрос, который падает
BH
15:07
Bio Hazzardt
In reply to this message
а, отбой, тут не в тонцентре дело
15:07
извиняюсь
RG
15:07
Ruslan Gabdullin
Если вдруг проблемы с ТЦ, то можно тегать меня
BH
15:15
Bio Hazzardt
In reply to this message
Ок, спасибо
A
15:50
Anna
Всем привет!
Может кто то подсказать где найти разработчика с знанием эфира и полигона? 😅 немного не в тему чата, но вдруг кто подскажет))
o
15:52
oxlti.qube second
In reply to this message
Нигде, все перешли на тон.
P
16:19
Peacekeeper
Господа, а это норма, что если в tonweb с одного и того же приватного ключа задеплоить контракты v3R1, v3R2, v4R1, v4R2 и там везде в data будет одинаковый subwallet_id?
SF
16:20
Slava Fomin
In reply to this message
А почему нет?
16:26
насколько я понял, введение subwallet_id это основное отличие v2 от v3
AP
16:28
Andrew Python
In reply to this message
(и оно нигде не используется.....)
DV
16:53
Dan Volkov
https://dev.to/dvlkv/introduction-in-func-how-to-start-developing-in-ton-50hp

сделал статью, про то как установить тулзы, создать проект и задеплоить первый контракт в сандбокс

новичкам может быть полезно
DG
18:06
Dmitriy Groznyy
In reply to this message
Спасибо. Гляну
23 September 2022
E
11:49
Eugene
📝📝📝📛📝📝📝📝📛📝📝
👩‍🎓
Всем привет!
Добавили перевод работы Fift ( краткое введение в язык программирования TON )

_______________
На данном этапе переведенны на русский язык все заявленные , пять работ по TON !
••••••••••••••••••••••••
С переведенными работами можно ознакомится в репозитории
https://github.com/Korolyow/TON_docs_ru
CP
11:51
Catchain Protocol
In reply to this message
ого!
A
14:17
Alexander
Ребят, а кто-то делает или начинал делать автоматические анализаторы кода смарт-контрактов на покрытие автотестами? Типа solidity coverage, кажется очень полезная штука
В
14:36
Василий
In reply to this message
Уф! Это дальняя дорога
14:38
Пока задача нормально покрыть, а потом можно будет и анализировать
A
14:43
Alexander
In reply to this message
А уже были кейсы успешных атак на смарты? Может есть смысл составить хотя бы перечень бест-прэктис чтобы разработчики знали о популярных уязвимостях
В
14:56
Василий
In reply to this message
Вот этого я не знаю.
Насколько я понимаю, основная масса контрактов это:https://github.com/ton-blockchain/token-contract
и https://github.com/ton-blockchain/ton/tree/master/crypto/smartcont
Модификации их ( Во всяком случае те, что я видел) достаточно минорные.
Если говорить в целом о уязвимостях смартов, безотносиельно TON'а, то это логические ошибки, а не специфичные для конкретной среды. (Опять же из того, что я могу припомнить).
А какой может быть BP против логических ошибок не совсем понятно.
"Нормально делай, нормально будет"?
AT
14:59
Andrey Tvorozhkov
In reply to this message
Если хочется сделать что-то полезное в этом плане - можно написать статью о безопасности нфт и почему это все работает. Там очень красивые схемы и есть много важных моментов которые нужно учитывать разработчикам (в т.ч. и индексатором), которые витают в воздухе, но про них не написано
В
15:07
Василий
Как в fift'е положить в инт беззнаковое 2^256?
Я пока нашёл только такое решение:

x{10000000000000000000000000000000000000000000000000000000000000000} 256 u@
И
то, я до конца не уверен, что этот инт будет вести себя как беззнаковый далее.
15:07
1 256 <<
вызывает переполнение т.к 1 знаковая
15:08
In reply to this message
Если например вот это вывести в консоль, то отобразится оно как 2^252 например.
15:11
In reply to this message
Там в жеттонах мне кажется даже более наглядно, чем в nft, т.к там всё динамеческое, а NFT-immutable.
T
16:22
TON Дев Чат
In reply to this message
Целые в фифте и фанси знаковые 257 битные, т.е. в интервале [-2^256:2^256-1]
В
17:31
Василий
In reply to this message
Почему тогда эксепшн не вылетакет, когда я 2^256 вычитываю через 256 u@?
По идее переполнение типа же должно быть.
T
17:32
TON Дев Чат
In reply to this message
Результатом 256 u@ может быть число от 0 до 2^256-1, поэтому проблем и нет.
В
17:32
Василий
In reply to this message
А. ну собсно да.
17:33
Спасибо
24 September 2022
П
01:56
Пашкевич
Всем привет, когда пытаюсь задеплоить смарт NFT-айтема в уже существующую коллекцию через сообщение
"toncli send -n testnet -a 0.05 -c nft_collection --body fift/deploy.fif"
как в туториале, в ответ на что получаю эту ошибку и ещё кучу ниже. Насколько я понял, это из-за того что я не указал адрес в файле deploy.fif, в строке $>smca 0= abort"Specify valid owner address", подскажите пожалуйста, правильно ли я мыслю, потому что если здесь указать адрес смарта коллекции или кошелька овнера, выдаёт ту же ошибку?
F
07:20
F
In reply to this message
Одного сообщения думаю было достаточно, спамить точно не нужно
В
09:54
Василий
In reply to this message
Там должен быть указан овнер nft.
Т.е кошелёк с которого отправляется сообщение.
Только не в строке, а там константа есть специальная
10:01
In reply to this message
6-я строка, где написано “TotallyNotValid” )
VD
12:27
Victor Dm.
Кто может написать смарт контракт для минта nft, на заказ?
12:34
Нам рук не хватает кто бы это сделал
П
12:43
Пашкевич
In reply to this message
А еще какие-то данные в этом файле надо указывать?
В
12:48
Василий
In reply to this message
Все что касается данных айтема.
Индекс,
адрес овнера и метаданные айтема.(json с ними)
П
13:05
Пашкевич
In reply to this message
Понял, спасибо
А
13:10
Андрей
In reply to this message
Перед предоплатой сначала досконально проверьте исполнителя, и всегда работайте через гаранта (например модератор этого чата может быть принять обеими сторонами как гарант)
AP
13:25
Andrey Pfau
могу выступить в качестве гранта, если кому нужно
F
16:17
Foisoi
Как можно примерно подсчитать, сколько Gas будет использовать контракт? Сам контракт еще не написан, но в нем используется алгоритм, который, скорее всего будет кушать много газа
B…
16:27
Bobydick ….
Пожскажите, пожалуйста, а есть мосты с которых можно отправлять токены второго уровня из сети BNB в TON или наоборот?
16:31
In reply to this message
Имею в виду: создал токен в BNB, как обернуть в сеть TON? Создал jetton в TON и как обернуть в BNB?
B…
17:03
Bobydick ….
Есть какая-то поддержка и работа с разработчиками?
А
17:08
Андрей
In reply to this message
Птехподдержка тут: @ton_help_bot

Все разработчики в этом чате отвечают в свободное время, которого мало

А на вопрос выше - такого моста насколько мне известно нету, пока есть только ton.org/bridge
D
17:20
Daniil
может ли смарт контракт выполнить метод другого контракта?
T
17:50
Tim
In reply to this message
Может отправить ему сообщение
AP
18:01
Andrew Python
In reply to this message
и не получить ответ)))
MR
18:30
Maxim Rublev
Всем привет. Я представляю Superbbit обменник. Наш продукт схож по функционалу с Mercurio. У нас есть платежный шлюж для покупки Криптовалют за фиат. Мы хотели бы иметь возможность покупать Ton у нас на площадке за фиат. Если вам интересно, давайте обсудим.
DS
18:48
Daniil Sedov
In reply to this message
Если мэсседж bounceable , ответ прилетит же?
А
19:20
Андрей
In reply to this message
Да, с флагом bounceable должен вернуться в любом случае
&2
19:28
&rey 2ne:v
In reply to this message
Подозреваю, что если суммы не хватит, то ответ не вернётся.
То есть, кидать надо сообщение с запасом.
T
22:50
Tim
Не в любом. Он может просто принять и не отвечать
25 September 2022
D
11:54
Diamonds
Нужен кому-то в проект разработчик python ? Могу сделать любой бот, скрипт и тд.
JD
11:59
John Doe
In reply to this message
D
12:00
Diamonds
In reply to this message
Я удалил прошлые сообщения и обновил сегодняшний.
А
12:05
Андрей
In reply to this message
Но это все равно будет спамом)
IG
13:29
Ilia Gaevskii
А есть онлайн сервисы, которые помогут читать результат runMethod от toncenter?

например конвертить слайсы в адрес?
SF
13:48
Slava Fomin
In reply to this message
А как сервис узнает формат ответа? Это же от контракта зависит.
13:49
И какой use-case, почему библиотека не подходит? Зачем делать это через сервис?
IG
13:50
Ilia Gaevskii
In reply to this message
Так все контракты тебе возвращают либо инт либо слайс. Разница то? Просто конвернул и показал юзеру
DS
13:55
Daniil Sedov
In reply to this message
Слайс может разную инфу содержать :)
MU
14:03
Mikhail Ukrasin
In reply to this message
00
&2
17:31
&rey 2ne:v
У меня почему-то ton-http-api не работает.
2022-09-25 17:23:56.885 | ERROR | pyTON.manager:check_children_alive:236 - Client #000 dead!!! Exit code: 1
FileNotFoundError: Could not find module 'C:\Program Files\Python39\lib\site-packages\pytonlib\distlib\windows\tonlibjson.amd64.dll' (or one of its dependencies). Try using the full path with constructor syntax.
17:40
Есть вариант как-то запустить ton-http-api на винде?
SF
17:43
Slava Fomin
Запускайте в Докере.
T
18:10
Tim
А лучше сразу к аднл цепляйтесь
&2
18:18
&rey 2ne:v
In reply to this message
Вроде JS умеет только HTTP-запросы отсылать, к сожалению.
Хотя интересная идея! Можно приложение же написать не на JS, а на питоне том же.
T
18:19
Tim
Есть аднл клиент на js
SF
18:20
Slava Fomin
In reply to this message
На Node.js можно работать с ADNL напрямую. ТЦ в первую очередь нужен для браузеров.
&2
18:20
&rey 2ne:v
Ну я вот и хотел сделать приложение, доступное через веб. В тестовую сеть пока не хочу выкладывать, чтобы код не утекал раньше времени. А тестировать надо как-то)
SF
18:21
Slava Fomin
In reply to this message
Для отладки и тестирования можно использовать публичный ТЦ.
18:22
На локалке поднимать свой ТЦ смысла особого нет. В продакшене, да, но это хорошо работает через Докер.
T
18:24
Tim
На вебе можно через ws прокси adnl завести
&2
18:28
&rey 2ne:v
In reply to this message
Забавно) Про вебсокеты я и забыл.
18:28
Попробую уж лучше написать себе для тестов программу на питоне.
LK
18:41
LOLK Kind
Пацаны всем ку мб знаете норм либу тона для питона если то киньте ссылку буду благодарен
SF
19:03
Slava Fomin
In reply to this message
RG
19:10
Ruslan Gabdullin
In reply to this message
В инструкции есть ссылка на OpenSSL 1.1.1, его надо установить. Строго версию 1.1.1, версия 3.0 не подходит
&2
19:10
&rey 2ne:v
In reply to this message
Установил.
RG
19:11
Ruslan Gabdullin
Ещё вариант:`pip3 install -U ton-http-api`
&2
19:25
&rey 2ne:v
In reply to this message
Не помогает.
RG
19:26
Ruslan Gabdullin
Нужна допинформация: версия операционки, битность, билдил ли сам бинари ТОНа?
19:27
Как запускаешь ton-http-api?
&2
19:31
&rey 2ne:v
In reply to this message
Windows 10 x64
toncli скачал с https://github.com/SpyCheese/ton/actions/runs/2618774052
ton-http-api ставил через pip (Python 3.9.0)
ton-http-api --liteserver-config <путь к myLocalTon>\genesis\db\my-ton-local.config.json --port 9000
RG
19:32
Ruslan Gabdullin
Ага, надо ещё найти среди скачанных бинарей tonlibjson.dll и передать параметром —cdll-path
19:33
Ещё рекомендую попробовать поставить OpenSSL 3.0. Возможно, тот бинарь собран на новой версии
&2
19:34
&rey 2ne:v
Там ещё может быть, что ton-http-api к новой версии toncli, а не к версии трёхмесячной давности.
RG
19:34
Ruslan Gabdullin
Я у ставил вот от сюда ссл: https://slproweb.com/products/Win32OpenSSL.html
&2
19:34
&rey 2ne:v
In reply to this message
Теперь даёт другую ошибку:
tonlib_client_set_verbosity_level = tonlib.tonlib_client_set_verbosity_level
File "C:\Program Files\Python39\lib\ctypes\__init__.py", line 387, in getattr
func = self.__getitem__(name)
File "C:\Program Files\Python39\lib\ctypes\__init__.py", line 392, in getitem
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'tonlib_client_set_verbosity_level' not found
RG
19:35
Ruslan Gabdullin
Интересно.
&2
19:36
&rey 2ne:v
Похоже, действительно нужен более новый toncli, сейчас попробую.
RG
19:36
Ruslan Gabdullin
Вариант: можешь попробовать закомментировать эту строчку в сурсах, вероятно это баг из-за новой версии бинарей
19:36
In reply to this message
Вообще, http-api не связан с toncli и не должно быть конфликтов
&2
19:39
&rey 2ne:v
Обновил toncli, сейчас просто:
2022-09-25 19:39:03.061 | ERROR | pyTON.manager:check_children_alive:236 - Client #000 dead!!! Exit code: 0
2022-09-25 19:39:05.073 | ERROR | pyTON.manager:check_children_alive:236 - Client #000 dead!!! Exit code: 0
2022-09-25 19:39:07.074 | ERROR | pyTON.manager:check_children_alive:236 - Client #000 dead!!! Exit code: 0
SF
19:50
Slava Fomin
Я если честно не могу понять зачем так мучаться со всеми этими архитектурами и совместимостью, если можно просто Докер контейнер поднять и использовать.
RG
20:03
Ruslan Gabdullin
In reply to this message
Ну, все ещё не оно🥲
&2
20:04
&rey 2ne:v
Вообще, у меня есть подозрение, что это связано с другим багом.
toncli lc не запускает интерактивный интерфейс, а получает последний блок от лайт-сервера и тут же закрывается.
В
20:12
Василий
In reply to this message
А там вообще предполагалось интерактивное выполнение? Вроде он ожидает команду для lc.
@tvorogme
&2
20:13
&rey 2ne:v
Как минимум, я запускаю toncli lc interactive, и оно не ругается на неизвестную команду.
26 September 2022
12:26
Приветствую, подскажите на каком языке написан тон?
АГ
12:29
Андрей Гулицкий
In reply to this message
C++
12:30
спасибо 🙏🏾
R
12:34
Restoring
Здравствуйте, подскажите сколько может быть значений в Ton после запятой?
И где это прописано в доке?
A
13:08
Alexander
Вроде только int/uint?

Чтобы с float работать, можно что-то вроде:
dividend = in_msg~load_uint(128);
divider = in_msg~load_uint(128);

ans = (dividend << 128) / divider;

первые 128 бит из ans - целое
остальные 128 бит - после запятой
RK
13:13
Roman Krutovoy @work
In reply to this message
А есть пример кода рабочего для коннекта adnl к Тону на js?
13:21
Deleted Account
Ребят привет подскажите такая ошибка начала вылазить !в чём проблема может быть? ранее деплоил этот же проджект такого небыло !
13:21
nft-item.func:59:14: error: undefined function .store_builder, defining a global function of unknown type
msg = msg.store_builder(payload);
^
( function .store_builder undefined )
T
13:23
TON Дев Чат
In reply to this message
вероятнее всего сменился stdlib.fc: в прошлом была определена функция store_builder, в текущем - нет.
13:26
Deleted Account
In reply to this message
всё заработало от души ,ток не понятно как это произошло)))))))))
14:20
Ребят, как относитесь к созданию стейблкоина рубля, на тон ?
14:20
По типу DAI
T
14:23
TON Дев Чат
TEP-89 посвященный расширению стандарта жетонов для возможности ончейн определения адреса жетон-кошелька для конкретного владельца достиг стадии финальных комментов (FCP). Приглашаем вас принять участие в обсуждении этого и других предложений.
14:29
Просьба воздержаться от обсуждения общеэкономических и политических вопросов, это чат разработчиков для ТОН.
14:33
In reply to this message
+
Подскажите я в этом сообществе могу найти людей готовых написать Смарт-контракт по созданию децентрализованного стейблкоина
14:34
Если нет, подскажите куда можно обратиться по этому вопросу, в поисках разработчиков
14:34
?
DS
14:52
Daniil Sedov
In reply to this message
Лучше не надо
DV
15:37
Dan Volkov
а не подскажете, может ли быть запись в тлб с тегом #1221_
15:37
?
15:37
или $0_
Г
16:23
Григорий
Привет всем. Такой вопрос по ошибке отправил ТОНы на контракт своей коллекции. Их от туда как-то можно забрать ?
VD
16:34
Victor Dm.
Народ, кто пытался установить рабочую среда на mac m1? У меня ошибка при устоновке clang: error: the clang compiler does not support '-march=native'
T
16:34
TON Дев Чат
In reply to this message
Если использовался дефолтный контракт нфт-коллекции, то можно задеплоить новый нфт и передать на него нужную сумму ТОНов, затем сделать transfer на nft и в процессе попросить нфт переслать излишек ТОНов оунеру. Готовых решений, впрочем, нет.
В
16:35
Василий
In reply to this message
Обнови мастер, там пофикшено вроде.
Либо -DTON_ARCH=
16:36
In reply to this message
А также есть докер:https://hub.docker.com/r/trinketer22/func_docker
В т.ч под M1
Г
16:36
Григорий
In reply to this message
Понятно, значит нет ) Там коллекция на маркетплайсе
16:36
In reply to this message
спасибо
VD
16:44
Victor Dm.
In reply to this message
DTON_ARCH это куда, я только сегодня клон сделал, так что не думаю что пификшена
В
16:48
Василий
In reply to this message
Когда cmake вызываешь, попробуй -DTON_ARCH= добавить или же -DTON_ARCH="apple-m1"
VD
16:48
Victor Dm.
спасибо
В
17:06
Василий
In reply to this message
Помогло?
VD
17:06
Victor Dm.
Да, но толькь на первых командах
17:07
/Users/victordmitrishen/dev/ton/third-party/rocksdb/monitoring/iostats_context.cc:19:2: error: "No thread-local support. Disable iostats context with -DNIOSTATS_CONTEXT."
#error \
^
/Users/victordmitrishen/dev/ton/third-party/rocksdb/monitoring/iostats_context.cc:24:11: error: use of undeclared identifier 'iostats_context'; did you mean 'get_iostats_context'?
return &iostats_context;
^~~~~~~~~~~~~~~
get_iostats_context
/Users/victordmitrishen/dev/ton/third-party/rocksdb/monitoring/iostats_context.cc:23:17: note: 'get_iostats_context' declared here
IOStatsContext* get_iostats_context() {
^
/Users/victordmitrishen/dev/ton/third-party/rocksdb/monitoring/iostats_context.cc:24:10: error: cannot initialize return object of type 'rocksdb::IOStatsContext *' with an rvalue of type 'rocksdb::IOStatsContext *(*)()'
17:07
Теперь это ошибка?
В
17:10
Василий
In reply to this message
Я так понимаю рекомендует -DNIOSTATS_CONTEXT добавить.
Но в целом самый простой способ на данный момент, это докер
VD
17:10
Victor Dm.
In reply to this message
Это при устоновке fift
17:11
lite-client и func сmake без проблем сбилдились
17:12
In reply to this message
Как его добавить?
В
17:12
Василий
In reply to this message
На первом этапе так же как и -DTON_ARCH
VD
17:13
Victor Dm.
А значения какое?
17:13
-DNIOSTATS_CONTEXT=??
В
17:14
Василий
In reply to this message
Это флаг, там значение не нужно
VD
17:15
Victor Dm.
victordmitrishen@192 build % cmake ~/dev/ton -DTON_ARCH="apple-m1" -DNIOSTATS_CONTEXT
CMake Error: Parse error in command line argument: NIOSTATS_CONTEXT
Should be: VAR:type=value

CMake Error: Run 'cmake --help' for all supported options.
В
17:16
Василий
In reply to this message
Можно пустой попробовать -DNIOSTATS_CONTEXT= и всё
DV
17:34
Dan Volkov
In reply to this message
up
&2
17:40
&rey 2ne:v
In reply to this message
Можно в поддержку маркетплейса написать, например. Может, выведут.
Г
17:41
Григорий
In reply to this message
Спасибо, попробую.
А
17:56
Андрей
In reply to this message
Думаю что нет, так как "_" означает что это анонимная конструкция
То есть либо анонимная ($_), либо заранее определенная ($01)
DV
17:56
Dan Volkov
In reply to this message
А в парсере оказывается можно
А
17:58
Андрей
In reply to this message
Хм, а можно ссылку? Ату не видел
AP
21:12
Andrey Pfau
In reply to this message
ну я шарю за тон и что дальше? Пишите конкретно какой специалист вам нужен и по каким вопросам
27 September 2022
DV
02:43
Dan Volkov
In reply to this message
Ага, еще и самому в лс писать, как будто нам нужно…
MP
14:53
Matthew Parker
Всем привет, что может значить эта ошибка при отправке транзакции? Если что это highload wallet
A
17:22
ATOM 150 monero 500 btc 120000
Как то можно проверить адрес на смарт контракт в сети тон? EQA4D8iWUtgoRs1Qi-rTGY9QLVoSJykSa1urIToMBJH9arDO
В
17:23
Василий
In reply to this message
Проверить на что?
A
17:24
ATOM 150 monero 500 btc 120000
In reply to this message
на наличие смарт контракта и код самого контракта увидеть
В
17:24
Василий
In reply to this message
Ну в любом сканере открыть. tonscan.org например
s
17:25
sepеzho.copy
салют, ребят подскажите плиз какая макс длина message в тон транзе?

и есть ли такая? (мб там просто trx fees увеличиваются в зависимости от длины)
T
17:25
Tim
1 ячейка - 1024 бита
A
17:25
ATOM 150 monero 500 btc 120000
In reply to this message
но он в base64 показывает
s
17:26
sepеzho.copy
In reply to this message
message - это ток 1 ячейка?
T
17:26
Tim
в теории ты можешь чейнить, но никто скорее всего визуально не парсит
AT
17:26
Andrey Tvorozhkov
In reply to this message
Вроде все же все парсят
T
17:26
Tim
а если чисто данные то макс вложенность ячейки тоже 1023 или 1024
В
17:26
Василий
In reply to this message
Есть вкладка "disassebled"
s
17:27
sepеzho.copy
In reply to this message
хмммм, оке сяб
AT
17:27
Andrey Tvorozhkov
In reply to this message
Как я понимаю тонхаб точно
A
17:27
ATOM 150 monero 500 btc 120000
In reply to this message
Я ассемблер не знаю, можно как-то это в нормальный код контракта превратить ?
В
17:27
Василий
In reply to this message
Декомпиляторов я не видел.
A
17:28
ATOM 150 monero 500 btc 120000
То есть как в эфирСкан нету исходного кода ?
AP
17:35
Andrey Pfau
In reply to this message
https://verifier.tonsc.org/
тут можно загрузить исходный код и адрес смартконтракта, сервис проверит на валидность
T
17:41
Tim
In reply to this message
Он на фронте работает или с беком?
AP
17:42
Andrey Pfau
Для фронта компилятора нет ещё, на сколько я знаю
DS
17:43
Daniil Sedov
In reply to this message
Это проверка, а он хочет по адресу узнать код смарт контракта 😁
ИМ
17:43
Илья Михеев
In reply to this message
очень сомневаюсь что там именно исходники)
DS
17:45
Daniil Sedov
In reply to this message
Etherscan показывает исходники только если создатель смарт контракта опубликовал исходный код у них в системе. По дефолту там тоже покажет ассемблерный код (или вообще набор опкодов, не помню)
AP
17:45
Andrey Pfau
In reply to this message
Ну такого нет, только асемблер
AT
17:45
Andrey Tvorozhkov
In reply to this message
Там исходники публикуют авторы смартов и они валидируются сканером. Так же как у нас делает эксплорер китов
T
17:47
Tim
In reply to this message
Есть
NA
17:47
Narek Abovyan
In reply to this message
сделали кстати, да
DV
17:48
Dan Volkov
In reply to this message
кто там на фронт собрался?
AP
17:48
Andrey Pfau
In reply to this message
lmao
28 September 2022
Q
04:51
Qırım tatar millet
In reply to this message
А то*
..
07:27
. .
Hello to all
D
10:22
Diamonds
Почему это ещё не реализовали другие 😊 просто делаю wallet который будет универсальный и удобный. Собираю, добавляю все необходимое.
VA
10:24
Vlad Arbatov
In reply to this message
juston реализовали
I
12:03
Ihor
Здравствуйте, подскажите пожалуйста. Сгенерировал mnemonic, из него сделал keyPair. Теперь хочу получить v4R2 версию кошелька с двумя адресами: bouncable & unBouncable. В примерах видел, что преобразование происходит через toString, но у меня это работает некорректно, а именно: в unBouncable присваивается raw, а вместо bouncable я получаю unBouncable адрес.
T
12:04
Tim
лишняя скобка
12:04
(())
I
12:06
Ihor
In reply to this message
Ааа! Боль... Столько времени потратил...
Спасибо)
DS
16:33
Daniil Sedov
Добрый день!
Может кто нибудь подсказать, что я делаю не так?
Хочу собрать максимально простой external message и послать его через sendBoc. Вроде делаю все по TL-B схеме, но получаю в итоге ошибку
"INVALID_BAG_OF_CELLS: bodybag of cells is expected to have exactly one root"

Вот код сборки мэсседжа:
var msg = new tonweb.boc.Cell()

// ext_in_msg_info$10
msg.bits.writeBit(1)
msg.bits.writeBit(0)

// addr_none$00
msg.bits.writeBit(0)
msg.bits.writeBit(0)

// addr_std$10
msg.bits.writeBit(1)
msg.bits.writeBit(0)

// dest:MsgAddressInt
msg.bits.writeAddress(new tonweb.Address('UQBtKDk7E0s8+BCMobt2fZ2w7sba88fmsFFm6ZkuIX8d5bde'))

// import_fee:Grams
msg.bits.writeGrams(0)

await tonweb.sendBoc(msg)
SF
16:43
Slava Fomin
In reply to this message
Используйте TypeScript.
DS
17:19
Daniil Sedov
In reply to this message
А разве есть какая то разница в этом конкретном случае? Либа же не зависит от ts/js по идее.
Попробовал тот же код typesript'ом запустить, ничего не поменялось
SF
17:21
Slava Fomin
Разница в том, что TS не даст вам выполнить заведомо некорректный код.
DS
17:22
Daniil Sedov
In reply to this message
Ну у меня он перевелся в js успешно и запускается, но результат тот же
SF
17:24
Slava Fomin
In reply to this message
Это странно. Возможно компилятор как-то некорректно настроен.

В частности метод sendBoc() принимает Uint8Array, а Вы передаете Cell.
17:25
await tonweb.sendBoc(
await msg.toBoc(false)
);
DS
17:29
Daniil Sedov
In reply to this message
Тут вы в sendBoc передаете строку в формате base64, а не uint8array 🧐

Попробовал так передавать месседж, теперь ошибка поменялась на
INVALID_BAG_OF_CELLS: bodycannot deserialize bag-of-cells: invalid header, error 0
SF
17:30
Slava Fomin
In reply to this message
Точно. Не туда посмотрел.

bytesToBase64() лишнее, это в другом методе строка нужна.
17:30
Поправил пример.
DS
17:32
Daniil Sedov
In reply to this message
Окей, стало еще лучше, но все еще ошибка.

LITE_SERVER_UNKNOWN: cannot apply external message to current state : failed to parse external message external message is not a (Message Any) according to automated checks

Получается я все таки неправильно по TL-b схеме месседж составил 🤔
Хотя несколько раз все перепроверил уже..
SF
17:38
Slava Fomin
In reply to this message
Посмотрите примеры как собираются сообщения в контрактах ТонВеба: https://github.com/slavafomin/tonweb/tree/typescripted/src/contract
DS
17:50
Daniil Sedov
In reply to this message
Разобрался, спасибо! Я пока в схеме лазал, сделал как надо header мэсседжа, а про init и body забыл совсем. Теперь работает 🙏
C
17:50
Combot
In reply to this message
Daniil Sedov (8) увеличил репутацию Slava Fomin (13)
СБ
20:23
Слава Бучин
Кто-нибудь делал авторизацию в боте через tonapi.io?
Возможно я плохо понял доку
Но когда прокидываю токен авторизации для его верификации, получаю в ответ, что он invalid
СБ
23:42
Слава Бучин
Через вот эту штуку интересует
tonapi.io/v1/oauth/getToken
29 September 2022
DS
00:05
Daniil Sedov
В каком формате метод toncenter api getTransactionByInMessageHash принимает хэш мэсседжа?
hex и b64 пробовал, возвращает []

Вот хэш если что, транзакция в мэйннете была: b77b7d3956fafb19575032022b226deb52aff6307f5b90bab958aefb35b4e1e5
00:05
SF
00:18
Slava Fomin
@ruslixag не подскажешь, пожалуйста?
MP
00:26
Michael Pokrovsky
Подскажите, пожалуйста, все ли хорошо с лайтсерверами тон-центра?
00:26
А-то транзакции застревают
MS
01:09
Marat S ️
In reply to this message
в base64, в твоем случае хэш транзакции - t3t9OVb6+xlXUDICKyJt61Kv9jB/W5C6uViu+zW04eU=, хэш in msg - qXyBWuI2S9EHuaBQi95uf3ixvF+1E1i/sV0fP8TGCUU=
Е
06:16
Егор
Кто поможет? Пытаюсь кодировать номер кошелька из bouncing в hex на php. Библиотеки не вариант.

Или любой другой формат который принимает TonApi для получения NFTs кошелька
MO
12:33
Markо Okhman
Ребят, всем привет! Я в эти выходные буду на Hack-a-TONxPrague

Хочу снять парочку разговорных видосов со спикерами, которые там будут.

Если интересно - напишите мне какие вопросы мне стоит им задать (можно здесь, можно в личку)
12:33
Если что вот весь список гостей:
▫️Roman Krutovoy will talk about TON Blockchain and Telegram Ecosystem
▫️Artur Stambultsyan will talk about TWA, what to do with them and how
▫️Jakub Jedlinsky, Ph.D at VSE, will talk about Gaming DAOs
▫️Tamara Bizyuk from Tatum, will lead a workshop on understanding the product
▫️Vadim Keff from T7T lab, talks about how to conduct user research
▫️Eugen Anisey from Tonana will hold a master class on grants and networking
▫️Jan Silhavy from The Crypto Headhunter will talk about how to create a team
▫️Nikita Moskalenko from Hexit Capital will talk about how to start fundraising
▫️Volodymyr Manoilo from Wargaming & Studentspeak will talk about Game Marketing
▫️TON Play team about gamification and general marketing in Web3.0
p
16:51
pultik.eth
Всем привет!
А на ТОНе есть какие-нибудь дексы?
RK
17:16
Roman Krutovoy @work
In reply to this message
o
21:04
oxlti.qube second
Video file
Not included, change data exporting settings to download.
00:44, 9.6 MB
Всем привет!
Мы (@qubedao) создали первый децентрализованный оракул на блокчейне Ton, теперь протоколы могут безопасно и децентрализованно брать цену Toncoin.

V1 работает одноузловым, но скоро собираемся выпустить v2 (мультинодный)

@qubedao — это децентрализованная платформа для стейблкоинов, кредитования, моста и DEX, скоро мы объявим о нашей DEX и децентрализованной стабильной монете — USDQ.
T
21:06
Tim
Добавьте пару слов почему это безопасно
Р
21:10
Равиль
привет. подскажите пожалуйста, как сделать вход через кошельки tonkeeper и tonhub. Надо именно чтоб через QR код, как в getgems.io. Видел tonhub-connect, tonapi.io, но честно ума не приложу как это может помочь
o
21:15
oxlti.qube second
In reply to this message
Когда берут с одного источника (например CoinGecko) если произойдёт баг то будет больно)
RK
21:18
Roman Krutovoy @work
In reply to this message
придется немного разобраться с React либой:

- Tonhub-connect + пример:
https://developers.tonhub.com/docs/react-ton-x

- Tonkeeper ton-connect, как ты ранее увидел, есть упрощенный на tonapi (Authorization)

Есть еще пример компонента TonConnector из Telegram WebApp Example от ton-defi-org
А
21:19
Андрей
In reply to this message
Думаю вся безопасность будет зависеть от конкретного оракула
T
21:20
Tim
Вот к безопасности оракла вопрос и есть)
Р
21:22
Равиль
In reply to this message
теперь кажется понял, спасибо большое
K
21:24
Konstantin 🤖
In reply to this message
В будущем (во второй версии) мы планируем сделать систему провайдеров. Это означает что любой человек смог стать провайдером и участвовать в поставке данных в оракул. Так же мы добавим поддержку любой ссылки в оракул. То есть клиент который обращается к оракулу может указать ссылку с которой нужно взять информацию и сеть провайдеров доставит ему эту информацию.
SF
21:35
Slava Fomin
In reply to this message
У вас есть какие-то концептуальные документы описывающие протокол и работу подобной системы оракулов/провайдеров? Было бы интересно взглянуть.
o
21:36
oxlti.qube second
In reply to this message
Работаем над этим, но сам оракл работает примерно так:
AT
21:38
Andrey Tvorozhkov
In reply to this message
Хм, а есть информация о времени обновления? Если условно очень долго не набирается нужных 50%, вероятно, хочется про это знать (из смарта)
SF
21:39
Slava Fomin
In reply to this message
> the same answer

А если речь идет про какое-то не-целое число, например курс валюты, температура или вероятность. Как будет осуществляться консенсус?
&2
21:42
&rey 2ne:v
In reply to this message
Например, можно брать число, наиболее близкое к среднему из оставшихся.
SF
21:43
Slava Fomin
Еще про экономическую модель интересно, как провайдеры будут мотивироваться и как вычислять плохих провайдеров.
o
21:47
oxlti.qube second
In reply to this message
Это планируется уже в v3, будет использоваться токен, а юзеры оракла должны будут платить в нем.
&2
21:48
&rey 2ne:v
In reply to this message
Провайдеры сейчас используются уже существующие, с общедоступным API. Кстати, я не вижу причин, как могут появиться новые [централизованные] провайдеры курса.
DS
21:48
Daniil Sedov
In reply to this message
Ну значит v1 и v2 не очень безопасны?
K
21:48
Konstantin 🤖
In reply to this message
В 3 версии когда будет реализован механизм консенсуса, будет реализован токен за который будут вознаграждаться провайдеры. То есть когда клиент будет запрашивать информацию с его кошелька токенов будет сниматься плата за вызов, которая будет уходить провайдерам в качестве оплаты. Чтобы стать провайдером тебе нужно будет внести некоторую сумму в протокол. Плохие провайдеры будут вычисляться в соответствии с консенсусом и штрафоваться в виде уменьшения баланса токенов в пртоколе.
o
21:49
oxlti.qube second
In reply to this message
Почему? В v1 мы просто сами выбираем по усмотрению поставщиков (api Coinbase, FTX и тд) и оракл проверяет на баги сам
DS
21:50
Daniil Sedov
Ну оракул может обмануть
o
21:51
oxlti.qube second
In reply to this message
Api бирж могут обмануть?
DS
21:51
Daniil Sedov
In reply to this message
Да, но им это не выгодно
ИМ
21:51
Илья Михеев
In reply to this message
Тогда в чем смысл оракула если без разницы?)
&2
21:52
&rey 2ne:v
In reply to this message
В том, чтобы пересылать данные с реальных сайтов внутрь сети TON.
o
21:52
oxlti.qube second
In reply to this message
Один баг без оракла - хана всей системе)
21:52
In reply to this message
Специально для этого идет проверка на баги, если все таки одна из нескольких бирж баганется, то оракул все равно будет жить.
DS
21:53
Daniil Sedov
In reply to this message
А если сам оракул обманет с целью получения выгоды на каком нибудь условном defi проекте
K
21:53
Konstantin 🤖
In reply to this message
Во второй версии такое невозможно
21:53
Особенно в 3
DS
21:54
Daniil Sedov
In reply to this message
А в первой возможно. Я и сказал что 1 версия не безопасна.

А почему в 2 версии такое невозможно? Там же только мультинодность появляется
K
21:55
Konstantin 🤖
Мультинодность относится к тому что не стоит единого центра из которого идет информация.
21:55
То есть любой человек сможет скачать софт и стать провайдером
DS
21:55
Daniil Sedov
А если один злоумышленник контролирует несколько оракулов (провайдеров?) ?
K
21:55
Konstantin 🤖
In reply to this message
Так можно про любой блокчейн сказать )
DS
21:55
Daniil Sedov
In reply to this message
Нет
K
21:56
Konstantin 🤖
Понятно что если допустим стоит 3 провайдера
DS
21:56
Daniil Sedov
Если ты запустишь миллион нод на биткоине, ты не станешь его контролировать, т.к. консенсус работает на PoW. Также и с PoS
21:56
А тут кто то может запустить очень много провайдеров и обманывать проекты
K
21:57
Konstantin 🤖
In reply to this message
Именно по этому стоит валидатор. То есть есть спец софт который работает как обычный апи
21:57
Ты посылаешь на него информацию и он подписывает ее своим ключом
21:58
Провайдер должен предоставить саму информацию и сигнатуру
DS
21:58
Daniil Sedov
Чем он от провайдера отличается?
K
21:58
Konstantin 🤖
Это во второй версии
21:58
In reply to this message
В том что он не отправляет информацию в сеть
21:58
А лишь говорит что она получена с правильного источника
21:58
Это сделано для безопасности 2 версии
DS
21:59
Daniil Sedov
Зачем тогда отдельно делать провайдеров, если можно валидаторам добавить возможность отсылать ту же инфу в сеть блокчейна со своей подписью?
K
22:00
Konstantin 🤖
В том что это позволяет любому контракту получить запрос из реального мира по любой ссылке
DS
22:00
Daniil Sedov
In reply to this message
Я просто не могу понять зачем разделять функционал на две части (провайдеры и валидаторы) если от этого ничего не меняется
K
22:00
Konstantin 🤖
Валидатор 1
22:01
Это сделано для безопасности 2 версии
DS
22:01
Daniil Sedov
In reply to this message
Централизованный?
K
22:01
Konstantin 🤖
Пока не будет готова 3
22:01
In reply to this message
Пока что да
DS
22:01
Daniil Sedov
Вот я и говорю что 1 & 2 версии не безопасны
K
22:01
Konstantin 🤖
In reply to this message
Временно
22:01
До выпуска 3
22:07
Если кто то хочет поизучать код 1 версии или поизучать код ноды ссылка
22:08
Так же есть реализация несложного клиента чтоб было понятно как все это работает
30 September 2022
T
01:50
Tim
In reply to this message
А как любой контракт получит дату из оракла? В тоне же нет синхронных вызовов гет методов
D
03:52
Dlamond
Всем привет! На Тон эксплорере почему-то не отображается картинка и название ни у NFT, ни у смарта, тон скан вообще не видит задеплоенные NFT, можете пожалуйста подсказать чем такое может быть вызвано? Всё делается на тестнете и проверяется на соответствующих версиях обоих сканеров, в джейсонах и смарте проставлены ссылки на ipfs, транзакции на тонскане проходят
SN
05:01
S N
In reply to this message
скинь сссылку или адрес нфт
АП
05:44
Андрей #👑 Попов#$$$ Prem
Привет всем
o
08:12
oxlti.qube second
In reply to this message
С помощью кольца
D
10:59
Diamonds
In reply to this message
Свободен
м
12:45
максим
если айтем не на сейле, какой exit_code вернется метода get_sale_data? любой неравный нулю или какой то конкретный?
VD
12:54
Victor Dm.
Народ, у меня тут ошибка такая на мак m1 [ 1][t 0][2022-09-30 ```09:52:09.432338][Fift.cpp:67] top: <text interpreter continuation>
level 1: <continuation 0x157006a10>
level 2: <text interpreter continuation>
level 3: <continuation 0x15662c820>
level 4: <text interpreter continuation>
[ 1][t 0][2022-09-30 09:52:09.432396][fift-main.cpp:204] Error interpreting file /tmp/tmpwej8421_.fif: nft.fif:58: PROCINLINE:<{:-?
INFO: 🌲 Tests passed
INFO: 🥳 Start contract manipulation
[ 1][t 0][2022-09-30 09:52:09.512487][Fift.cpp:67] top: <text interpreter continuation>
level 1: <continuation 0x11e63da20>
level 2: <text interpreter continuation>
level 3: <continuation 0x12f025620>
level 4: <text interpreter continuation>
[ 1][t 0][2022-09-30 09:52:09.512535][fift-main.cpp:204] Error interpreting file /tmp/tmp3bxtu5li.boc: nft.fif:58: PROCINLINE:<{:-?
Traceback (most recent call last):
File "/Users/victordmitrishen/Library/Python/3.8/bin/toncli", line 8, in <module>
sys.exit(main())
File "/Users/victordmitrishen/Library/Python/3.8/lib/python/site-packages/toncli/main.py", line 60, in main
CommandsExecuter(command, string_kwargs, parser)
File "/Users/victordmitrishen/Library/Python/3.8/lib/python/site-packages/toncli/modules/utils/commands/commands_executer.py", line 40, in init
self.command_mapper[command](self)
File "/Users/victordmitrishen/Library/Python/3.8/lib/python/site-packages/toncli/modules/utils/commands/commands_executer.py", line 71, in deploy_command
return DeployCommand(self.string_kwargs, self.parser)
File "/Users/victordmitrishen/Library/Python/3.8/lib/python/site-packages/toncli/modules/utils/commands/command_classes/deploy_command.py", line 17, in init
deployer.publish(real_args[2:])
File "/Users/victordmitrishen/Library/Python/3.8/lib/python/site-packages/toncli/modules/deploy_contract.py", line 86, in publish
self.build(real_contracts)
File "/Users/victordmitrishen/Library/Python/3.8/lib/python/site-packages/toncli/modules/abstract/deployer.py", line 107, in build
data.append(contract_manipulation(os.path.abspath(contract.to_save_location),
File "/Users/victordmitrishen/Library/Python/3.8/lib/python/site-packages/toncli/modules/utils/fift/commands.py", line 94, in contract_manipulation
output = subprocess.check_output(command, cwd=getcwd() if not cwd else cwd)
File "/Applications/Xcode-beta.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/subprocess.py", line 415, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/Applications/Xcode-beta.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/Users/victordmitrishen/dev/build/crypto/fift', '-I', '/Users/victordmitrishen/Library/Application Support/toncli/fift-libs', '-s', '/tmp/tmp3bxtu5li.boc', '']' returned non-zero exit status 2.```
12:55
Но на windows нету ошибки, но у меня мак
В
13:00
Василий
In reply to this message
Asm.fif старый, нужно обновить. toncli update_libs.
А какая версия тонкли?
VD
13:01
Victor Dm.
In reply to this message
INFO: v0.0.38