23 April 2022
NN
12:09
N N
кто то сталкивался с проблемой что на кош не пускает?
12:09
просто бесконечно грузит
o
12:27
outluch
In reply to this message
Купить пиццу
s
12:33
sepеzho.copy
Народ, на мак системе (интел) у кого есть опыт компилинга .fif в .boc?
R
12:49
Restoring
Всем привет!
Вопрос по форку Toncoin
Можно ли сделать форк Ton чтобы в транзакции передавать не один комментарий а 20, и длина каждого комментария составляла примерно до 200 байт)
Есть какие-то сложности с масштабированием? Можно ли такое вообще сделать используя текущие наработки?)
ИМ
13:15
Илья Михеев
А зачем?
13:15
Подгонять сеть под одно приложение это конечно так себе идея
F
13:28
F
In reply to this message
На сколько мне известно понятие "комментарий" всего лишь условность.
Транзакция может нести любую информацию.
Условлено что если первые 4 байта тела сообщения (полезная информация, которую несет транзакция) равна нулям (0x00000000) то считаем что это комментарий, и конвертируем следующие байты в строку, получаем комментарий в виде строки.
Вы можете условиться что если первые 4 байта равны какому либо другому значению, то значит перед вами не просто комментарий, а список из 20 комментариев по N байт. Или что то другое что вам нужно.
Блокчейну все равно какие и сколько байт гонять, главное что бы платили.
Работу по конвертации байт в комментарий выполняют внешние приложения, такие как кошельки, эксплореры или другие приложения, работающие с блокчейном.
R
13:34
Restoring
In reply to this message
Я написал комментарий чтобы было понятно по интерфейсу что я имею введу.
В идеале я хочу вместе с транзакцией передать 20 разных параметров в json
a: “test 1”
b: “test 2”
b: “test 3”

Потом хочу их обработать и вывести пользователю

Вопрос в том могу ли в одном параметре передать json на 300 символов


Какой максимальный размер полезной информации могу передать в транзакции?
1500 байт?
5 тысяч байт?
Больше
NN
13:57
Nick Nekilov
In reply to this message
На тело одной транзакций 1023 бита (минус 32 бита на код операции - 0х00000000).
14:00
Технически, у ячейки-тела могут быть ссылки на другие ячейки и так далее. Кошелёк вряд ли сможет это воспринимать нормально такой «комментарий».
14:03
Deleted Account
Вообще, лучше узнать, для чего 20 комментариев и отталкиваться от этого. Может там и смартконтрактом можно обойтись.
R
14:20
Restoring
In reply to this message
{
"update_id": 932802274,
"message": {
"message_id": 1011405,
"from": {
"id": 750884262,
"is_bot": false,
"first_name": "Юра",
"username": "go_de",
"language_code": "ru"
},
"chat": {
"id": 750884262,
"first_name": "Юра",
"username": "go_de",
"type": "private"
},
"date": 1650712770,
"forward_from_chat": {
"id": -1001000499465,
"title": "ForkLog",
"username": "forklog",
"type": "channel"
},
"forward_from_message_id": 25152,
"forward_date": 1650641515,
"photo": [
{
"file_id": "AgACAgIAAxkBAAEPbs1iY-DCrTO2oui73GKSNu_8Ta1AYAACpLkxG24KGUuztbp_w9sfpQEAAwIAA3MAAyQE",
"file_unique_id": "AQADpLkxG24KGUt4",
"file_size": 608,
"width": 90,
"height": 43
},
{
"file_id": "AgACAgIAAxkBAAEPbs1iY-DCrTO2oui73GKSNu_8Ta1AYAACpLkxG24KGUuztbp_w9sfpQEAAwIAA20AAyQE",
"file_unique_id": "AQADpLkxG24KGUty",
"file_size": 6992,
"width": 320,
"height": 152
},
{
"file_id": "AgACAgIAAxkBAAEPbs1iY-DCrTO2oui73GKSNu_8Ta1AYAACpLkxG24KGUuztbp_w9sfpQEAAwIAA3gAAyQE",
"file_unique_id": "AQADpLkxG24KGUt9",
"file_size": 31205,
"width": 800,
"height": 381
},
{
"file_id": "AgACAgIAAxkBAAEPbs1iY-DCrTO2oui73GKSNu_8Ta1AYAACpLkxG24KGUuztbp_w9sfpQEAAwIAA3kAAyQE",
"file_unique_id": "AQADpLkxG24KGUt-",
"file_size": 52968,
"width": 1280,
"height": 610
}
],
"caption": "📉 К вечеру пятницы котировки биткоина вновь опустились ниже $40 000 — к уровню открытия недели.\n\n#forkstats",
"caption_entities": [
{
"offset": 98,
"length": 10,
"type": "hashtag"
}
]
}
}
14:21
In reply to this message
Я хочу сделать форк чтобы можно было передавать вот такие данные в транзакции.

Это вне кошелька.

Интересует передача данных через блокчейн
14:22
In reply to this message
Речь идёт не о кошельке. А о другом решение.
Просто хочу понимать насколько это сложно реализовать...
AP
14:26
Andrew Python
In reply to this message
Для этого не нужен форк.
R
14:28
Restoring
In reply to this message
Исходить с реализации nft ?
14:30
In reply to this message
Я не хочу это делать в общей сети.
По факту мне нужно выпустить свои монеты чтобы не платить комиссию... и делать свою емиссю монет... держать все данные на своих серверах...
AS
14:31
Aleksandr Shepelev
я вам по секрету скажу - вам и блокчейн тогда не нужен, mysql рулит
ИМ
14:31
Илья Михеев
In reply to this message
+
AP
14:31
Andrew Python
In reply to this message
+
R
14:32
Restoring
In reply to this message
😅 как раз нужен блокчейн)) чтобы все было открыто
ИМ
14:32
Илья Михеев
In reply to this message
так если будет ваш сервер
AS
14:32
Aleksandr Shepelev
In reply to this message
а я смогу быть валидатором в вашем блокчейне?)
R
14:33
Restoring
In reply to this message
Ну изначально... для запуска форка
NM
14:33
Nikita Misharin
In reply to this message
Исходники ноды открыты, можешь посмотреть сложно тебе будет править или нет 🤷‍♂️
AS
14:33
Aleksandr Shepelev
в общем такой бум приватных блокчейнов был где-то в 17-19 гг, закончился одним большим ничем) не повторяйте ошибок)
T
14:34
TON Дев Чат
In reply to this message
Нет, как раз все кошельки должны нормально воспринимать длинные комментарии. Энкодинг там в виде snake data: сначала читается тело головной ячейки, потос тело первого рефа, потом тело его первого рефа и так дале
NM
14:37
Nikita Misharin
Такой вопрос. Есть ли какие-то подводные камни у подхода с one-off контрактантами. Типа деплоим контракт под конкретный кейс, потом его сжигаем. Просто мне кажется, что и код контракта будет сильно проще и газа бадет меньше тратить, так как не надо будет беспокоится о повторных сообщениях, сохранять их, чистить и т.д.
AT
14:37
Andrey Tvorozhkov
In reply to this message
Вся проблема в том, что кошельки игнорируют баунс у адреса
R
14:37
Restoring
In reply to this message
У меня стоит задача по децентрализации данных которые передаются между пользователями путем записи их в блокчейн, чтобы их нельзя было удалить или изменить.

Но для этого нужен блокчейн который гибкий в форке и быстро обрабатывает транзакции.

Речь не о переводе монет от пользователя к пользователю а о массиве данных)
ИМ
14:38
Илья Михеев
In reply to this message
блокчейн на вашем сервере != децентрализация
NN
14:38
Nick Nekilov
In reply to this message
Kafka? 🤔
R
14:39
Restoring
In reply to this message
Вы готовы предоставить свой сервер?) чтобы я мог все протестировать?))

Я написал свои сервера, имея введу для тест сети)
NM
14:40
Nikita Misharin
In reply to this message
А можешь подробнее рассказать, не совсем понимаю. Типа если будет попытка отправить сообщение в уничтоженный контракт?
AS
14:41
Aleksandr Shepelev
In reply to this message
да, придется как-то возвращать деньги отправителю, у всех баунс флаг отключен
NM
14:43
Nikita Misharin
In reply to this message
Класс, спасибо! Такой сценарий в моем случае вроде исключен, ну или возможен только с malicious intent
14:49
In reply to this message
Спасибо
T
14:54
TON Дев Чат
In reply to this message
Может вам нужен OpenTimestamps?
R
16:32
Restoring
In reply to this message
Нет)
T
16:46
TON Дев Чат
In reply to this message
Раскатано в мейннете
ВП
17:55
Влад Павлючков
Возможно ли забилдить lite-client, func и fift на macbook air m1?
ВП
18:21
Влад Павлючков
In reply to this message
Получилось по этому гайду забилдить lite-client и func. А вот fift почему-то выдаёт туже самую ошибку the clang compiler does not support '-march=native'.
СВ
18:22
Сергей В
In reply to this message
я сам не собирал :)
18:22
Deleted Account
In reply to this message
https://github.com/hueton/ton-swift можешь глянуть какие патчи лежат вот тут. Я писал под макось и айось сборщика.
ВП
18:41
Влад Павлючков
In reply to this message
Всё заработало. Надо было выполнить 2 пункт который я не сделал так как скачивал сурсы раньше.
18:43
In reply to this message
А нет. Всё таки не помогло. Но теперь другая ошибка.
T
19:24
Tim
Для игры скорее всего нет, но выпуск каждой нфт - 0.07 тон
SG
19:34
Serge Grigorenko
Подскажите плиз, как правильно парсить пейлоад при получении транзакции getTransactions() через tonweb? Нашел такой вот пример https://github.com/toncenter/examples/blob/main/deposits-single-wallet.js#L94, но сам пейлоад приходит закодированным что-то вроде D4p+pQAAAAAAAAAAMBJPiABzqSGyo2Dku3JPJioqJmbsH0IkZVtMPLtP4Rv3viSGSQAghRpmfs1Y\nze1DF3VDIxdoJ1AM/GEgGe3GFJV9+JmqEIBjNmVkZGY3My04MWUzLTQ2N2UtYTRlZC1hYjMxNzZl\nNmJiMDQ=\n. Судя по всему, это надо разбивать по \n, декодировать из base64, а дальше непонятно.
ВП
19:54
Влад Павлючков
In reply to this message
Не понял как эти патчи найти. Да и если бы нашёл что с этими патчами делать?
20:00
Deleted Account
In reply to this message
git apply и все такое. Это патчи для репозитория тона)
ВП
20:01
Влад Павлючков
In reply to this message
А найти то их где?
20:02
Сорян, там строкой лежит. ;(
ВП
20:03
Влад Павлючков
Ладно разберусь
20:06
Не помогло
20:06
По ошибке дело в rocksdb
20:06
Только я сделал как в гайде git checkout v6.27.3
20:08
Если что сама ошибка:
/Users/vlad/TON/ton/third-party/rocksdb/monitoring/iostats_context.cc:19:2: error: "No thread-local support. Disable iostats context with -DNIOSTATS_CONTEXT."
#error \
^
/Users/vlad/TON/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/vlad/TON/ton/third-party/rocksdb/monitoring/iostats_context.cc:23:17: note: 'get_iostats_context' declared here
IOStatsContext* get_iostats_context() {
^
/Users/vlad/TON/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 *(*)()'
return &iostats_context;
^~~~~~~~~~~~~~~~
20:23
Deleted Account
Мб сабмодуль роксдб бахнуть на последний коммит из мастера?
20:25
In reply to this message
А, ну ещё в ошибке написано что может помочь -

-DNIOSTATS_CONTEXT
ВП
20:27
Влад Павлючков
In reply to this message
Не помогло
20:28
Или помогло. Сейчас дождусь конца.
20:31
Получилось забилдить наконец-то fift.
20:32
Хоть и в rocksdb показывает что последняя версия в master не билдится с ней всё сработало.
AS
21:45
Artem Sultanov
Коллеги привет. Я только погружаюсь, поэтому простите если это уже в группе обсуждалось. Вопрос: есть ли какие-то сервисы-конструкторы смартконтрактов на тоне. Или только идти по пути изучения наработок на гитхабе вроде этого: https://github.com/ton-blockchain/token-contract ?
T
21:46
Tim
А где вообще есть конструкторы смарт контрактов?
AS
21:47
Artem Sultanov
Мне кидали на днях, сейчас гляну мин.
T
21:48
TON Дев Чат
In reply to this message
В чате показывали такое https://minter.tonox.exchange/
T
21:50
Tim
In reply to this message
👍
T
21:55
Tonox DeFi
In reply to this message
Sorry for English, but note that after the payment you need to wait a few seconds until your seqno.change. i need to update this and include both transactions (minting + payment) in one action.


Well in the end you just need yo follow the instructions carefully
AS
21:59
Artem Sultanov
In reply to this message
Hi, do you have a chat where I can ask questions about your product?
A
22:02
Asu
In reply to this message
А почему минт одного жетона стоит 2.5 тона? Это комиссия сервису или в самом смарте прописано так?
P
22:02
Purple
In reply to this message
их комиссия
A
22:04
Asu
In reply to this message
Понял, а если самому деплоить жетоны, то только за газ платишь?
И сколько за деплой коллекции с нфт например?
Сори, я с эфира пришёл, тут пока не разобрался)
T
22:04
Tonox DeFi
In reply to this message
Yes, you can find the link in the last message
P
22:05
Purple
In reply to this message
ну там рекомендуют юзать 0,05 за нфт
Мы сейчас стандарт рефакторим, используем ~0,01 ton для минта
22:05
в стандарте вроде 0,05 используется
T
22:06
Tonox DeFi
In reply to this message
Its a commission for the service, note that its temporary. Once the dex will go online, the commission will be removed
22:06
In reply to this message
+
A
22:06
Asu
Спасибо, понял)
T
22:06
Tim
In reply to this message
Эта же комиссия используется для последующих операций с нфт, как их оплачиваете?
P
22:07
Purple
In reply to this message
нет, просто для деплоя
T
22:07
Tim
Просто в нашем мире ничего не бывает (
P
22:07
Purple
далее там кидаешь условно 0,2 тон для совершения операции. Остатки обратно приходят
T
22:08
Tim
In reply to this message
👍
22:08
Эх разрешили бы ещё реакции на сообщения, чтобы не спамить спасибо
AS
22:14
Artem Sultanov
А никто не знает, планируется ли как-то прием платежей через телеграмм привязать сразу к пополнению тон кошелька? Да, сейчас есть криптобот, где можно покупать p2p, но я говорю про классический эквайринг, тоесть оплаты с карт.
22:16
Ну или как-то внедрять p2p платежи сразу внутрь телеграмм покупок, чтобы не менять сначала фиат на тоны, получать в кошелек, а потом уже платить...
ИМ
22:16
Илья Михеев
Для экваринга нужно будет чтобы крипту нормально легализовали
AS
22:17
Artem Sultanov
In reply to this message
тоже верно
T
22:18
Tim
Биткоин и эфир никто не легализовал, но там похожие вещи есть
AS
22:19
Artem Sultanov
In reply to this message
ну если только через централизованную биржу, которая как-то к себе эквайринг подрубила на юр лицо и берет средства с указанием платежа не как "покупка крипты"
A
22:20
Asu
А кто может подсказать, как прикрутить к нфт стейкинг? Где можно почитать документацию по этой механике?
Чтобы юзеры стейкали свои нфт и получали жетоны проекта? И как нужно это технически реализовать, жетоны должны быть наминчены заранее и как-то отправляться или минтятся автоматически?
22:32
Deleted Account
а это нормально, что баланс на новосозданном кошельке в тестнете равен -1?
T
22:33
TON Дев Чат
In reply to this message
нет, скорее всего странное отображение нуля для незадеплоенного контракта? А где так показывает?
NN
22:33
Nick Nekilov
In reply to this message
Покажи 🙃
R
22:33
Restoring
Всем привет!

Вопрос 1. Здесь есть разработчики приложений Ton wallet или Ton keeper???

Вопрос 2. Код ios приложений ton wallet и kepper - open source???
Где можно посмотреть его?
22:33
Deleted Account
In reply to this message
я вызвал GetAccountState
T
22:34
Tim
1 - скорее всего да
2 - wallet на гитхабе, keeper закрытый
NN
22:34
Nick Nekilov
In reply to this message
Воллет открыт, а кипер закрыт
R
22:34
Restoring
In reply to this message
Скиньте ссылку на сборку, плиз)
22:36
Deleted Account
[ 4][t 1][2022-04-23 19:30:51.719207][TonlibClient.cpp:1419][!Tonlib][&tonlib_query id != 0] Tonlib answer query [id:4] FullAccountState {
address = AccountAddress {
accountAddress = "<REDACTED>"
}
balance = -1
lastTransactionId = InternalTransactionId {
lt = 0
hash = bytes [32] { 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
}
blockId = TonBlockIdExt {
workchain = -1
shard = -9223372036854775808
seqno = 10601721
rootHash = bytes [32] { REDACTED }
fileHash = bytes [32] { REDACTED }
}
syncUtime = 1650742241
accountState = UninitedAccountState {
frozenHash = bytes [0] { }
}
revision = 0
}
22:46
в тесте поставили <=
VM
23:20
Vardan Meliksetyan
Добрый день, уважаемое сообщество. У меня вопрос, есть ли возможность получить с api на курс ton -> euro/usd?
JC
23:54
Jimmi Clarson
In reply to this message
На любой бирже/агрегаторе информации?
Например:
https://coinmarketcap.com/api/documentation/v1/
VM
23:55
Vardan Meliksetyan
In reply to this message
Thx
АП
23:57
Антон Порошин
In reply to this message
есть еще такой вариант https://coinmarketcap.com/ru/widget/ticker/
VM
23:58
Vardan Meliksetyan
In reply to this message
Хорошо, спасибо, но мне нужен вызов API из Node.js
JC
23:59
Jimmi Clarson
In reply to this message
Вот так роботы все и портят!
23:59
😂
24 April 2022
VM
00:42
Vardan Meliksetyan
In reply to this message
Cool, thx
ИК
01:12
Игорь Коняхин
Где можно более детально почитать про разные fees при выполнении транзакции?
Какие-то вопросы можно и самому просто оттестировать, но в любом случае хочется иметь более глубокое надёжное понимание
ИК
06:56
Игорь Коняхин
Кто-нибудь может объяснить этот кусок человеческим языком? (если кроме Николая вообще есть люди, кто это понимают:)
Я сделал поиск по всему tvm.pdf, и это единственное место, где даётся хоть какая-то связь этим понятиям.
06:57
По моим представлениям "газовых" переменных должно быть две:
1) Максимально допустимый долг (который вроде бы согласно конфигу = 10 000)
2) Текущая трата газа
Откуда там 4 (!) числа?
ИК
07:15
Игорь Коняхин
Ок, согласен, нужна третья boolean переменная, чтобы хранить, был ли сделан accept_message
T
08:29
TON Дев Чат
In reply to this message
Есть текущий газ лимит, это то, куда если упремся, то будет экцкпшн по газу.
Есть число gas_remaining, это сколько осталось до газ лимита
Есть газ лимит который теоретически достижим, если контракт его установит с помощью accept_message/set_gas_limit. Это кол-во денег на контракте делить на цену газа. Это Макс газ лимит.
Ну и есть кредитный газ для внешних сообщений, у него свое, известное, поведение
ИМ
14:17
Илья Михеев
In reply to this message
Никогда такого не было, и вот опять
VM
15:27
Vladimir Massin
In reply to this message
Хороше же, все видят и могут поприветствовать нового участника лично.
s
16:37
sepеzho.copy
ребят, а вы знаете какой-нибудь лаунчпад для тон проектов?)
G?
16:46
GoJohnny 🔒💎
In reply to this message
ИК
18:04
Игорь Коняхин
In reply to this message
Спасибо, стало яснее, но ...
> Ну и есть кредитный газ для внешних сообщений, у него свое, известное, поведение
я не сказал бы что "известное":)
В tvm.pdf "gas credit" встречается всего-лишь 3 раза во всём документе, и ни в одном из трёх его действие не описано (во всех трёх случаях он устанавливается в ноль)

Исходя из текущего описания, я мог бы предположить, что:
gas_credit = 10 000 (из конфигов), и в самом начале контракта
gas_remaining = gas_credit,
таким образом давая залезть на 10 000 газа в долг

НО
это противоречит описанию из tvm.pdf:
> gc is usually initialized by zero
T
18:05
TON Дев Чат
In reply to this message
ИК
18:13
Игорь Коняхин
In reply to this message
> gas_limit is set to gas_credit (ConfigParam 20 and ConfigParam 21) equal to 10k gas
Т.е. строчка
> gc is usually initialized by zero
из tvm.pdf всё-таки неправильная?
T
18:15
TON Дев Чат
In reply to this message
usually это имеется в виду все кроме external
ИК
18:17
Игорь Коняхин
In reply to this message
Это, кстати, похоже, секретная страница документации.
Я проверил:
[...document.querySelectorAll('a')].filter(n => n.textContent.includes('accept'))

на неё нет ссылок в меню
T
18:18
TON Дев Чат
In reply to this message
она не секретная, а ведет из accept_messag'а и set_gas_limit описания (поскольку описывает неочевидные детали их применения). Совсем уж захламлять меню тоже не хочется
ИК
18:19
Игорь Коняхин
In reply to this message
👌 Понял, спасибо
T
18:19
TON Дев Чат
Но предложения по улучшению документации приветствуются
?
18:53
𝕂ℝ𝕀ℙ𝔸
Подскажите пожалуйста как перекинуть НФТ с одного кошелька на другой? Есть какой-то инструмент, в ТОНкипере не вижу такой функции
ИК
18:56
Игорь Коняхин
Ни у кого Windows Defender не ругается на
fift.exe
line-client.exe
tonlib-cli.exe
что мол: "PUA:Win32/Puamson.A!ml"?
Я проверил, что файлы соответствуют оригинальным бинарникам с GitHub'а, но всё же
T
18:59
Tim
Даже не пытался в винде заводить, сразу в wsl пошёл и всем советую
г
19:03
главный человек на базаре
Подскажите, какой признак/признаки есть у всех TON-адресов, которые неизменны (например, длина)? Чтобы сделать проверку на то, что введен именно тон-адрес
P
19:04
Purple
In reply to this message
48 символов
T
19:04
Tim
В tonweb есть is Address Valid. Можно либо его использовать, либо посмотреть как работает
ИК
19:05
Игорь Коняхин
В винде-то особо не надо заводить, всё сразу норм работало, просто сейчас Windows Defender ругнулся, и не понятно, это он обновился и новые базы дают ложную тревогу или какой-то странный вирус, который таргетит именно эти узкие программы
19:06
У кого есть Windows бинарники ТОНа
https://github.com/newton-blockchain/ton/actions/runs/1713804021
(которые теперь почему-то невозможно скачать - видимо поезд для новичков уехал)
Можете посчитать sha-256 хеш для
fift.exe
line-client.exe
tonlib-cli.exe
T
19:10
Tim
In reply to this message
https://github.com/TrueCarry/ton/runs/6147749746?check_suite_focus=true лайфхак
Лайфхак не удался. билд уже не работает)
ИК
19:12
Игорь Коняхин
Не прокатило: Process completed with exit code 1620.
ИК
19:49
Игорь Коняхин
Тревога скорее всего отменяется
На
https://www.virustotal.com/gui/file/077c3f803a5deeee38b41f3551eed4938ea4501d13e6b5c1302a182a3fc755b0?nocache=1
в закэшированных результатах проверки на вирус, ругались 13 антивирусников, когда я запустил перепроверку, добавились ещё 3 и в том числе Microsoft, т.е. у них видимо Defender действительно обновился.
19:50
In reply to this message
Но всё же, если у кого-то есть оригинальные бинари, скачанные по этой ^ ссылке, буду признателен либо за подсчёт хешей, либо за пересылку всего архива (и я сам посчитаю на другом компе)
NN
20:20
Nick Nekilov
Я так понимаю что репосты здесь не очень приветствуются, но это может быть полезно.
NN
20:20
Nick Nekilov
S
Scaleton 24.04.2022 20:19:43
My contribution to the TON ecosystem 💎

It's only been a couple of days since I showed my Jetton-wallet.

Much to my surprise, I received a lot of requests during this time. 😅

Most of the requests were from developers and were related to the solution of a particular problem.

But yesterday, a big Telegram channel owner wrote to me with a proposal that made me think.
I was offered to sell a project for a large sum of money. 💰

I must admit that I thought about selling for a while, but my developments would have served only one player in this case.

I decided not to sell the source code but to open source it.
This will benefit the entire community as a whole, not individual players.

The project is available on GitHub:

https://github.com/scaleton-co/scaleton

Thanks,
Nick
25 April 2022
ИК
00:18
Игорь Коняхин
В JavaScript библиотеке от TonWhales:
https://github.com/tonwhales/ton
есть возможность отправить external сообщение?
00:19
В tonweb есть функции для работы с кошельками, а для обычной отправки external сообщения пришлось копипастить куски кода из внутренностей
00:21
Нашёл метод
client.sendExternalMessage(contract: Contract, src: Cell)

но он хочет слишком много параметров,
а нужно только два "куда" (адрес) и "что" (содержание)
JF
00:22
John Fyodor
В ton3 можно создать экстернал месседж и послать через sendBoc
NA
00:22
Narek Abovyan
In reply to this message
есть sendFile
00:22
то же что sendBoc по сути, отправляет какой-то бок
ИК
00:24
Игорь Коняхин
In reply to this message
Как-нибудь заценю и вашу библиотеку, но тут у меня связка с ton-contract-executor
00:24
In reply to this message
А как получить BOC, если у меня есть ExternalMessage?
NA
00:24
Narek Abovyan
writeToCell вроде
00:25
ну точнее
00:25
короче зависит от того что ты делаешь)
ИК
00:26
Игорь Коняхин
Посмотрел, да, есть:
msg.writeTo(cell);
cell.toBoc
NA
00:26
Narek Abovyan
yep
ИК
01:05
Игорь Коняхин
Не, не работает :(

export const externalMessage = (body: Cell, address: Address) => new ExternalMessage({
to: address,
body: new CommonMessageInfo({
body: new CellMessage(body)
}),
});
...
const msg = externalMessage(msg_body, summatorAddress);
let c = cell();
msg.writeTo(c);
await client.sendFile(c.toBoc());

> Error caught: Error: Malformed response: Expecting "ok" at @type but instead got: "error"

И в отличие от TonWeb'а, нельзя посмотреть, что это за ошибка
01:16
Отослал сгенерированный 'boc' на toncenter вручную, получил:
{
"ok": false,
"error": "Incorrect padding",
"code": 503
}
NA
01:39
Narek Abovyan
попробуй toBoc({ idx: false })
ИК
01:44
Игорь Коняхин
Так, уже прогресс, но по прежнему не отрабатывает:
{
"ok": true,
"result": {
"@type": "error",
"code": 400,
"message": "INVALID_BAG_OF_CELLS: bodycannot deserialize bag-of-cells: invalid header, error 0",
"@extra": "1650840228.2516418:1:0.5788688475357345"
}
}
01:49
Тем временем кто-то повторно на-посылал мне external сообщений и сжёг 0.5 тона (в тестовой сети). Это типа кто-то так развлекается тем, что отслеживает новые контракты и заспламливает их сообщениями? :)
VA
01:51
Vlad Arbatov
In reply to this message
🤯
T
01:52
Tim
Проверяет ваши контракты за вас)
ИК
01:54
Игорь Коняхин
Я хочу потестировать разные fees (про которые, судя по всему, не знает вообще никто), решил написать для этого максимально простой контракт без проверок. Не думал, что кто-то в тестовой сети будет "обнулять" баланс
T
01:56
Tolya
Для экстернал сообщений нужен reply-protection в коде контракта (например, seqno в кошельках). Валидаторы не гарантируют, что исполнят экстернал ровно один раз, более того, они точно исполнят больше одного раза
T
01:56
Tim
Не факт что это "кто-то", контракт и сам мог
ИК
01:58
Игорь Коняхин
In reply to this message
Да, я знаю
Думал для небольших тестов не должно быть критично
01:59
А тут мне приходят 15 external сообщение с интервалом 2-5 секунд (на следующие уже баланса не хватает)
T
01:59
Tolya
да, без reply-protection оно сожжет весь баланс
VA
02:00
Vlad Arbatov
гениально
ИК
02:24
Игорь Коняхин
In reply to this message
Как оказалось, это видимо и был мой код, который, как оказалось всё-таки сработал, и транзакция сработала 15 раз
T
02:24
Tim
In reply to this message
Проверить его код
ИК
02:25
Игорь Коняхин
In reply to this message
Я уже до этого читал эту страницу, но думал, что случайное дублирование - теоретически возможная, но маловероятная ситуация, а тут, выяснилось, что транзакция может продублироваться 15 раз😄
02:26
У большинства транзакций стандартный gas credit = 10 000, но почему у этой:
https://test.tonwhales.com/explorer/address/EQBauJ2sg3z4u9EV4DDxrbD5T8d_7XJolDK6hJ0kAHG2HI22/11215165000001_eeaedd5b30d667acee3d9118df5de4d2ae4a1846d640f73e7b1fac517adb897d
gas credit = 9 519
? 🤔
02:33
In reply to this message
А причина, по которой была эта ошибка при ручном запросе, потому что видимо boc в toncenter api нужно передавать в другом виде

b5ee9c724101010100350000...
Не работает

\xb5\xee\x9c\x72\x41\x01\x01\x01\x00\x35\x00...
Также не работает
T
02:36
Tim
?
ИК
02:37
Игорь Коняхин
Да, я только что также нашёл в исходном коде tonwhales/ton:
await this.doCall('sendBoc', { boc: body.toString('base64') }, bocResponse);
02:37
На самом
https://testnet.toncenter.com/api/v2/#/
что boc должен быть в base64 не сказано
02:52
Попробовал отослать base64 вручную, и транзакция прошла, ура!
02:54
In reply to this message
Снова расплодилась на 15 раз, и возникает вопрос:
пусть есть replay-protection - не выходит, что система пытается исполнить контракт много-много раз вхолостую, теряя производительность?
02:55
In reply to this message
Вопрос про странный gas credit актуален
Вот тут:
https://test.tonwhales.com/explorer/address/EQBauJ2sg3z4u9EV4DDxrbD5T8d_7XJolDK6hJ0kAHG2HI22/11216390000001_7cac639858ed26a284dddbda54105ca258385082bdf953b13a599c642503009e
он например равен 1882, и этого не хватило (на успешных итерациях этот контракт тратил 2390)
T
02:56
Tolya
In reply to this message
нет, валидаторов много и при исполнении экстерналов они не синхронизируются друг с другом - как раз на синхронизации они бы теряли производительность, потому что это можно было бы решить только каким-то общим локом
A
02:57
Andrei
In reply to this message
Может конфиг меняли в тот момент?
ИК
03:00
Игорь Коняхин
In reply to this message
🤔 Хм
А как им не синхронизироваться друг с другом?
В результате ведь все равно все валидаторы (в данном случае тестовой сети) должны узнать о всех успешных транзакциях, которые их "коллегам" удалось провернуть
T
03:01
Tolya
имею в виду не синхронизируются - в плане не делают reply-protection самостоятельно
ИК
03:02
Игорь Коняхин
In reply to this message
У меня несколько таких странных транзакций
A
03:03
Andrei
In reply to this message
А, ну вообще так может быть, если на контракте очень маленький баланс
03:03
И на 10к газа его не хватает
ИК
03:04
Игорь Коняхин
In reply to this message
А почему:
Import Fee = 0
?
Я главным образом ради import fee весь тест и затеял 😅
03:07
In reply to this message
О, похоже на правду!
Посмотрел, как раз у последних из 15 транзакций, когда баланс уже начинает иссякать, gas credit уменьшается, пока на последней его просто не хватает
03:10
In reply to this message
Спасибо
03:10
In reply to this message
Спасибо
03:10
In reply to this message
Спасибо
03:11
In reply to this message
Спасибо
A
03:11
Andrei
In reply to this message
😢
T
03:17
Tolya
Sticker
Not included, change data exporting settings to download.
😁, 18.6 KB
ИК
03:20
Игорь Коняхин
Сп*****
03:25
In reply to this message
Вопрос про Import Fee актуален

Локальный
msg.importFee

в библиотеке также показывает 0
ИК
03:54
Игорь Коняхин
Методом анализа исходного кода:

    writeTo(cell: Cell) {
cell.bits.writeUint(2, 2);
cell.bits.writeAddress(this.from);
cell.bits.writeAddress(this.to);
cell.bits.writeCoins(this.importFee);
this.body.writeTo(cell);


я прихожу к выводу, что importFee - это не стоимость импорта данных на блокчейн, рассчитанная исходя из количества данных и стоимости газа, а ... свойство сообщения, которое мы задаём ? 😧
09:25
Deleted Account
Дайте пожалуйста ссылку на мультисиг кошелек
09:26
Или такого в сети нет?
NN
09:31
Nick Nekilov
In reply to this message
10:27
Deleted Account
могут ли смартконтракты для тон взаимодействовать с реальным миром?

например, я хочу, чтобы смартконтракт проверял некоторые данные из реального мира чтобы изменить свое состояние. Эфир предлагает для этого оракулов, которые тянут данные из реального мира по RESTful api с помощью chainlink итд

Как такое сделать в ТОН
NN
10:32
Nick Nekilov
In reply to this message
Ну... Можно сделать точно так же как и в эфире. 🤔
10:34
☯️Shinoby💣
✌️
NN
10:35
Nick Nekilov
"Оракул" состоит из 2-х частей - смарт-контракт и оффчейн сервис, который готовит нужные данные и отправляет в смарт-контракт. Сами смарт-контракты никуда не ходят - за них это делает этот самый оффчейн-сервис.
10:35
Deleted Account
аа, вот оно что, понял
10:36
тогда да, проблем не должно быть
NN
10:53
Nick Nekilov
Погиб тестнет наших союзников 😕
UPD: или только тонцентр? 🤔
10:58
Deleted Account
Коллеги, добрый день. Мы сделали смарт-контракт для розыгрыша NFT. Хотим чтобы розыгрыши через гугл-таблицы вымерли, как явление :)
Вдруг кому-то здесь будет полезно
S(
11:14
ShD (@ShD_84)
In reply to this message
Круто, спасибо! ))
11:17
Ребят, нам в команду нужны WEB3 и TON разработчики, если тут есть PM со знанием TON - welcome! Проект большой, планируется создать целую экосистему на TON. Кому интересно, пишите в личку.
RD
11:17
Ruslan Dorofeev
In reply to this message
Есть чтото в этом месте то seqno null то 500 апи говорит.
MS
11:40
Mikhail Salkov
Где можно посмотреть пример использования метода set_code? (для изменения кода контракта)
I
11:58
Isaac
Ребят, где можно найти доки по расширению TON Wallet для хрома? Чтобы по аналогии с метамаском через него логин на сайте настроить.
NN
12:03
Nick Nekilov
In reply to this message
Доки нет, но можешь посмотреть как сделано в Scaleton:

https://github.com/scaleton-co/scaleton/blob/main/src/modules/ton-wallet/services/tonWalletClient.ts#L59
I
12:04
Isaac
In reply to this message
Благодарю!
R
12:42
R1GO
Всем доброе утро.

Разрабатываем marketplace на TON - RiverStyx.io

Если тут есть разработчики смарт-контрактов, front-end или ботов.
Пишите в личку. Собираем команду.
ИМ
12:48
Илья Михеев
In reply to this message
название символизирует смерть 99.9% NFT проектов?
R
12:52
R1GO
In reply to this message
Нет) Скорее облако хранение NFT в мифическом месте)
ИМ
12:53
Илья Михеев
In reply to this message
тогда уж надо было называть elysium, река styx это всего-лишь способ попадания в загробный мир)
AS
13:04
Artem S
Подскажите, а можно отправить произвольное сообщение от смарт-контракта используя приватный ключ под которым он был задеплоен? Т.е. у нас есть некий смарт-контракт, который, например, может только принимать деньги. Можем ли с него вывести деньги отправив сообщение вручную?
OB
13:06
Oleg Baranov
In reply to this message
как вариант можно в стейт зашить публичный ключ при деплое и на действие вывода проверять подпись
AS
13:07
Artem S
In reply to this message
Проще говоря в смарт-контракт должна быть вшита возможность? Мой вопрос как раз про ситуацию, когда нам надо сделать некое действие, которое в него не вшито.
OB
13:07
Oleg Baranov
да, нужна заложеная возможность
NN
13:07
Nick Nekilov
In reply to this message
Любой стандартный кошелек так и работает.
13:08
> сделать некое действие, которое в него не вшито
это уже совсем другая история
AS
13:09
Artem S
In reply to this message
это по идее не должно быть возможно, иначе вся идея смарт-контрактов отпадает
13:11
просто заметил интересный нюанс, что если валидатор управляется смарт-контрактом, и там не заложена соответствующая возможность, то нет способа проголосовать, а значит такой валидатор для сети должен быть "плохим", но сейчас такие валидаторы не наказываются
13:13
планируется ли как-то заставлять валидаторов голосовать?
13:19
Кто знает реализован ли алгоритм выбора подмножества валидаторов для валидации шардчейнов (whitepaper 2.6.8). В elector ничего подобного не увидел
13:24
На мой взгляд - это критически важные вопросы для функционирования сети. Может кто-нибудь из TF может ответить?
A
13:54
Andrei
In reply to this message
Голосовать можно с любого кошелька, проверяется только подпись валидатора
13:55
In reply to this message
Верно, это невозможно. Контракт вообще не обязан деплоиться с помощью ключа какого-либо
AS
13:55
Artem S
In reply to this message
То есть смарт-контракт не должен быть управляющим?
A
13:56
Andrei
In reply to this message
Он на уровне ноды реализуется
AS
13:57
Artem S
In reply to this message
Понял, спасибо
VK
14:15
Vudi Kingyru
Привет всем. Подскажите, в доке про выборы написано: Anyone (любой или все таки Anyone валидатор) может запустить голосование валидаторов.

Все таки прям вообще любой?
14:16
«Anyone who is ready to pay the storage fee for storing the proposal…» - цитата
T
14:18
TON Дев Чат
In reply to this message
Вообще кто угодно
VK
14:18
Vudi Kingyru
💪
14:18
спасибо
14:18
Пойду запущу голосование)
ИК
15:09
Игорь Коняхин
Как можно узнать детальные fee транзакции?

Отдельно storage fee, отдельно стоимость вычислений, отдельно стоимость импорта данных на блокчейн (для внешних сообщений) и т.п.
RE
15:47
Roman Exemplarov
In reply to this message
Спасибо! На сколько в целом безопасен рандом в смарт-контрактах? Могут ли майнеры влиять на него чтобы получить нужный результат?
T
15:54
TON Дев Чат
In reply to this message
В текущей версии не особо безопасен. Майнеры влиять не могут, валидаторы могут, но при использовании в лоб другой контракт может просто узнать текущий рандом и использовать.
Т.е. условно если рандом используется для дайса в виде RANDU256, то другой контракт в том же шарде и блоке может посмотреть "выиграет" ли он при текущем сиде блока и если да - отправить транзу, выигрывая каждый раз
AT
16:07
Andrey Tvorozhkov
Всем привет! Мы хотим продолжить стремительное развитие toncli :)

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

Если вы хотите подключиться в работу - можно взять любую из невыполненных issue и забрать себе.

Или помочь советом в тех issue в которых идет сейчас работа:

- Improve func tests (большое спасибо @bminaiev за проявленный интерес с помощью в этой задаче) - тут можно обсудить новый формат тестов (запуск нескольких одинаковых тестов, одна функция для всего, ...)
- Add test-utils with rich predefined functions for tests (большое спасибо @cerberuzzz за проявленный интерес с помощью в этой задаче) - сюда можно написать каких дефолтных функций вам не хватало (парсинг c5, ...)

Так же большое спасибо Ton Foundation за поддержку toncli :)
ИК
16:33
Игорь Коняхин
In reply to this message
На мой взгляд ключевая вещь, из которой стоит исходить - возможность запуска тесте одной короткой строчкой:

await testGet();
await testAdd(1, 2);
await testAdd(20, 30, 40);
await testAdd(100, 102, 200, 105, 108);
await testAdd(4009, 1003, 1005, 1010);
await testGet();


При этом тут каждая строчка и готовит данные, и запускает контракт, и проверяет правильность выполнения. Для такой гибкости необходимо предоставить программистам самим вызывать исполнение контракта.

Другими словами, должно быть не две толстых (с большими сигнатурами) функции test_data (выполняющаяся до) и test_check (выполняющаяся после) с автоматическим вызовом контракта между ними, а одна, которая делает всё:
int test() {
var body = begin_cell().store_uint(3, 32).end_cell().begin_parse();
var data = begin_cell().end_cell();
var (exit_code, action_list, ...) = contract.sendInternalMessage(data, body);
if (exit_code != 0) return exit_code;
...
return 0;
}
16:42
In reply to this message
Добавил в обсуждение Add test-utils with rich predefined functions for tests свою тестовую библиотеку для toncli, там много основных функций, надеюсь поможет)
BM
16:44
Borys Minaiev
Не очень понятно как технически реализовать "await" - я так понимаю вызвать tvm внутри tvm сейчас нельзя.

Можно сделать что-то похожее, вида:
_ test() {
var f1 = testGet();
var f2 = testAdd(1, 2);
var f3 = testAdd(20, 30, 40);
var f4 = testAdd(100, 102, 200, 105, 108);
var f5 = testAdd(4009, 1003, 1005, 1010);
var f6 = testGet();
return [f1, f2, f3, f4, f5, f6];
}


Где потом тестирующий код запустит каждый из f_i отдельно подряд. Это понятно как сделать, но нельзя будет вызывать разные функции в зависимости от ответа контракта (например, от exit_code).
AT
16:46
Andrey Tvorozhkov
In reply to this message
🔥
ИК
16:47
Игорь Коняхин
await - это чисто причуда JavaScript'а, поэтому его не надо реализовывать:) Я просто скопировал мой код из JavaScript тестов. Без него код будет ещё короче и чище:
testGet();
testAdd(1, 2);
testAdd(20, 30, 40);
testAdd(100, 102, 200, 105, 108);
testAdd(4009, 1003, 1005, 1010);
testGet();
BM
16:49
Borys Minaiev
Все еще не понятно как такое делать, если хочется для каждого вызова метода контракта хочется выводить стату типа "сколько газа было использовано" (вызывать в отдельном инстансе tvm каждый раз).
ИК
16:49
Игорь Коняхин
In reply to this message
> Где потом тестирующий код запустит каждый из f_i отдельно подряд
Так нельзя, так как тогда как раз придётся делать деление на две функции (генерации и проверки)
16:52
Вот полный файл с тестами:
https://github.com/nns2009/TON-FunC-contest-1/blob/main/js/tests_1.ts

Тут выводил потреблённый газ вручную:
const { gas_consumed } = result;
...
console.log(`testAdd(${value}) passed, value = ${storedNum.toString(10)}, gas = ${gas_consumed}`);
т.е. написав дополнительную строчку,

но если хочется, можно добавить в потенциальном аналоге .sendInternalMessage параметр, который будет отвечать за автоматическую печать логов
o
17:06
outluch
Я вот загорелся желанием разобраться с TheOpenNetwork и читаю доки, ищу код, пытаюсь разобраться. Наблюдаю такую проблемку - есть официальны гитхаб - newton-blockchain. И там всего лишь несколько не особо активных репозиториев. Сегодня ночью методами рытья по аккаунтам контрибуторов нашел ton-blockchain проект. Я правильно понимаю что это проблема - разрозненность кода, или так задумано?

И еще один вопрос: я с целью въехать и разобраться изучаю доки на ton.org, роюсь по репкам итп. Я все правильно делаю или есть какие то еще ресурсы?
BM
17:07
Borys Minaiev
In reply to this message
А как это внутри устроено? contract.invoke... честно каждый раз запускает tvm?

В случае с toncli вроде бы так не получится сделать, потому что сам код теста уже запускается внутри tvm и еще одну tvm, которая будет подсчитывать использованный газ и запускать функцию из контракта, не получится.
ИК
17:10
Игорь Коняхин
In reply to this message
Не знаю как оно внутри устроено, но скорее всего - да, каждый раз запускает, что было бы логично:)
@Narek думаю сможет точно ответить
17:14
В TVM не возможности получить доступ к текущему потраченному газу? Чтобы сохранить "до", сохранить "после" и вычесть, узнав сколько потратил контракт
BM
17:14
Borys Minaiev
Вроде бы нет :(
ИК
17:27
Игорь Коняхин
In reply to this message
На мой взгляд возможность запуска контракта в тестах настолько мега-супер критичная (и при этом уже заведомо реализованная на JavaScript), что без неё смысла разрабатывать тестирование на FunC нет вообще.

Часто ожидаемый результат зависит от входных данных, но вот незадача - в toncli входные данные в одной функции, а результат - в другой. Мне пришлось очень знатно извернуться, чтобы плюс-минус обойти это ограничение: я в результате стал на каждый тест писать функцию типа:
(slice, slice, slice, slice, slice, int) third_1b_params() inline method_id

которая вызывается как в функции-генераторе-данных, так и в функции-проверяльщике, тем самым обеспечивая доступ к одинаковым данным.
https://github.com/nns2009/TON-FunC-contest-1/blob/main/tests/3_tests.fc

Но даже учитывая это, на каждый тест приходится писать четыре жирных строчки, а не одну короткую:
[int, tuple, cell, tuple, int] third_1c_data() method_id(20) {
return request_address_test_data(third_1c_params);
}
_ third_1c_check(int exit_code, cell data, tuple stack, cell actions, int gas) method_id(21) {
request_address_test_check(third_1c_params, exit_code, data, stack, actions, gas);
}


А тестирование на FunC и без того очень сомнительная затея учитывая ограничения языка (нет структур, нет даже констант и т.п.)
AT
17:31
Andrey Tvorozhkov
In reply to this message
Я не согласен. Желание пойти по js дорожке чревато. Огромный ненужный зоопарк за которым потеряется все развитие тона.

(Ну да не будем о холиварах)

То как сделаны тесты в тонкли сейчас != идеально и как можно сделать хорошо.

Это мвп сделанный мною за 3 дня, чуть допиленный ещё за 2. Кажется, все описанные проблемы решаемы.
JF
17:35
John Fyodor
In reply to this message
Чревато чем? Притоком новых разработчиков?
AT
17:36
Andrey Tvorozhkov
In reply to this message
Приток новых разработчиков обеспечивается не простотой языка, а рынком)
JF
17:37
John Fyodor
In reply to this message
Ага, че там много разрабов на фортране?
17:37
Самые популярные инструменты для того же эфира написаны на js
ИК
17:37
Игорь Коняхин
1 Гбайт места на диске = 1 рубль
1 лишняя минута разработки = 10+ рублей
так что даже в значительно преувеличенном по раздутию сценарию, раздутие оправдано, если оно экономит время
AT
17:37
Andrey Tvorozhkov
In reply to this message
Это бессмысленный спор без аргументов
17:38
In reply to this message
Я не хочу видеть эфир в тоне, если я пришел в тон)
ИК
17:38
Игорь Коняхин
In reply to this message
Оба фактора влияют
JF
17:38
John Fyodor
In reply to this message
Это суровая реальность
17:38
In reply to this message
А я не хочу видеть андроид в тоне, но что поделать 💁‍♂️
ИК
17:39
Игорь Коняхин
Если все проблемы решаемы - отлично
17:40
Но просто делать что-то новое, чисто ради того, чтобы оно было "своё" - не совсем логично, должны быть ощутимые плюсы
JF
17:42
John Fyodor
Надо будет попробовать че то типа хардхета написать для тона
ИК
17:42
Игорь Коняхин
Только что возникла идея написать фронт-енд фреймворк на FunC
JF
17:42
John Fyodor
In reply to this message
И назвать его JunK
ИК
17:43
Игорь Коняхин
😄😅😭😂🤣
NA
17:49
Narek Abovyan
In reply to this message
Ну да, на каждый вызов запускается твм
17:50
При этом там так сделано, что между вызовами сохраняются изменения в данных и коде
17:50
Соответственно полная эмуляция поведения контракта задеплоенного в сеть
17:54
In reply to this message
Лучший по производительности, по стоимости и по поддержке код - тот который не нужно писать
17:55
В этом смысле конечно чем проще инструменты позволяют такие вещи делать - тем лучше
ИК
18:19
Игорь Коняхин
In reply to this message
А стоимость импорта данных на блокчейн для external сообщений учитывается или нет?
18:20
Я попробовал прогнать тесты с очень сильно разными по размеру внешними сообщениями, и во всех случаях выдаётся одинаковое количество газа
NA
18:21
Narek Abovyan
Размер вроде не должен влиять же
18:21
Влияет количество работы которую вмка проделает и сколько тв потом к себе в сторедж кладешь
18:21
Ну и исходящие сообщения
ИК
18:22
Игорь Коняхин
In reply to this message
Мне выше ответили, что размер данных влияет ^
T
18:26
TON Дев Чат
In reply to this message
Газ и импорт_фи - разные комиссии, взимаемые в разных фазах, поэтому результат не странен. Соответственно на количество потребленного газа не влияют и другие факторы, такие как плата за сторадж, размер исходящего сообщения и т п
ИК
18:34
Игорь Коняхин
In reply to this message
А как узнать про стоимость импорта данных на блокчейн?
Я не нашёл никакой информации об этом ни в tvm.pdf, ни она не отображается в explorer'е:
https://test.tonwhales.com/explorer/address/EQBauJ2sg3z4u9EV4DDxrbD5T8d_7XJolDK6hJ0kAHG2HI22/11216389000001_e0c039c8348661d85b46a2ff84fbf3dff6884defb63c4817b0ba6bdd9ae8f783
18:42
In reply to this message
А тестнет ещё не воскресили?
ИМ
18:46
Илья Михеев
ну так пасха же вчера была, сегодня он уже не сможет воскреснуть...
F
18:52
F
In reply to this message
Судя по блокам тестнет жив:
https://test-explorer.toncoin.org/last
18:54
Deleted Account
что значат символы $0, $_, _: в документации?
18:55
например account_active$1 _:StateInit = AccountState;
ИК
18:56
Игорь Коняхин
Вот тут описано:
https://ton.org/docs/#/overviews/TL-B
18:58
Deleted Account
спс
19:07
Deleted Account
In reply to this message
Добрый день. Как правильно подметил админ, здесь есть свои нюансы. По-хорошему стоит использовать randomize_lt, чтобы сторонний контракт не мог проверить рандом на выполнение условий. Еще лучше - добавить дополнительный источник энтропии (как это сделано в другом нашем контракте), чтобы затруднить подстановку рандома со стороны валидатора.
ИК
19:18
Игорь Коняхин
In reply to this message
Да, это похоже testnet . toncenter лежит
VM
19:50
Vardan Meliksetyan
Уважаемые разработчики, у меня вопрос. Имеет ли Ton JavaScript SDK возможность отправлять webhook or callback на мой сервер www.server.com/success, когда транзакция выполнена успешно/неудачно/ожидающей выполнения с моим кошельком? Спасибо
ИК
19:54
Игорь Коняхин
In reply to this message
@VardanMeliksetyan скорее всего нет
Я выше спрашивал про простой способ получить результат внешнего сообщения, и такого похоже нет
VM
19:55
Vardan Meliksetyan
In reply to this message
Да, я получил ответ от английского сообщества, что до сих пор нет. Но если это нужно и будет востребовано, то они будут его развивать.
T
20:01
Tim
In reply to this message
Можно в ручную проверять seqno. Если за 30-60 секунд не инкрементнулась значит скорее всего уже не инкрементнется. Но успех поймать так точно можно
VM
20:06
Vardan Meliksetyan
In reply to this message
Хорошо, постараюсь сделать тест. После этого надеюсь, что это будет решение (не самое лучшее) :)
ИК
20:17
Игорь Коняхин
In reply to this message
Это совершенно не факт
Когда вчера оказалось, что даже для маленьких экспериментов, нужно делать seqno (иначе сообщение продублируется кучу раз), я добавил seqno
Сегодня отправил сообщение, которое упёрлось в лимит по газу, таким образом съев весь баланс, но не изменив состояние. Я через 3 минуты докинул туда ТОНят, а затем я обнаружил в explorer'е, что ещё через 2 минуты, внезапно, моё ранее отправленное сообщение прошло (seqno ведь, когда газа не хватило, не изменился).
Таким образом, подождать даже 5 минут - не гарантия того, что "уже не зайдёт"
T
20:17
Tim
Да, поэтому я и написал про успех
20:18
Транзакция может и несколько часов гулять и потом залететь, но шансы очень малы
ИК
20:18
Игорь Коняхин
Может так совпало, но я не особо много попыток делал
20:18
Нужно всё-таки добавлять valid_until
T
20:19
Tim
А попыток много и не надо. Транзакции в пуле же живут сами по себе
ИК
20:20
Игорь Коняхин
Я имел в виду, что вероятность может быть не особо маленькая
T
20:22
Tim
Она маленькая потому что обычно не происходит таких ситуаций когда сначала твоя транзакция не проходит, а потом ты пополняешь кошелёк и она проходит грубо говоря.
ИК
20:28
Игорь Коняхин
In reply to this message
Другими словами: какой у меня лимит по импорту данных?
Могу ли импортировать 100 ячеек, 1000 ячеек, 10 000, 100 000, 1 000 000?
20:28
Или получится так, что программа даже не "успеет" дойти до accept_message из-за импорта?
20:30
У меня пока что удалось (toncenter чудит, и далеко не всегда отправляет) максимально успешно отправить (1500 ячеек * 32 байта) в одной транзакции
20:31
Снялось 0.3442 Тон, т.е. 344 200 газа, что по идее говорит о том, что газ за импорт не учитывается в лимите к gas credit, который равен 10 000
20:33
Но это всё экспериментальные подтверждения, хотелось бы официальных
20:35
Ну и просто хочется отправлять условно 50 000 ячеек
T
20:35
TON Дев Чат
In reply to this message
На внешние сообщения есть жесткое ограничение в 16кб
20:36
Плюс будет мягкое в 7 кб, но конкретику мягкости - чуть позже опишем
ИК
20:37
Игорь Коняхин
А есть какие-нибудь детали по стоимости import, forward, и т.п. как для computation: https://ton.org/docs/#/smart-contracts/fees ?
20:39
> жесткое ограничение в 16кб
Хм, странно, у меня только что отправились 2500 ячеек по 32 байта, т.е. 80 000 байт, т.е. 78 Кбайт
T
20:40
TON Дев Чат
In reply to this message
Они просто были одинаковые и за счет дедупликации поместились - можно глянуть размер бока, он явно был меньше
20:42
In reply to this message
Стоимость импорта сообщения такая же как стоимость форварда. И то, и то другое взимается в экшн фазе (после компьютации), так что ситуации, когда "не хватило газа чтобы дойти до исполнения" априори быть не может. Это и в целом не может быть, т.к. газ - он только про исполнение и ни про что больше.
ИК
20:42
Игорь Коняхин
Я обратил внимание на дедупликацию и подозрительно низкий размер бока в консоли пару часов назад, и после этого намеренно инкрементирую каждые 32 бита на 1, т.е. все ячейки теперь строго разные, и бок сразу вырос.
Вот транзакция:
https://test.tonwhales.com/explorer/address/EQDzig9XckhPe6ufIIAkbxA_q_ub1_s_hBsc7R2wYZzm5kYg/11239614000001_8a559b6828bf1c07850a5141f1330c30e52e1389639ad20f2d1515e9dc1b82ad
20:44
Проверил кодом:
boc length: 50057
T
20:46
TON Дев Чат
In reply to this message
Понял, действительно противоречит тому что я сказал, проверю.
NM
20:47
Nikita Misharin
In reply to this message
Сломал тон
ИК
20:49
Игорь Коняхин
In reply to this message
Спасибо
ИК
21:12
Игорь Коняхин
In reply to this message
При 7 кбайт может даже не удаться по-полной использовать high-load-wallet
Я воспользовался калькулятором выполнил расчёты и пришёл к выводу, что даже если отправлять пустые сообщения, которые занимают приблизительно 48 байт (32 байта адрес + остальное), суммарный вес всех 254-х сообщений будет: 254 * 48 = 12 192, и плюс ещё к этому немного добавляет использование словаря
22:13
Deleted Account
что такое RWallet?
22:22
какая-то херня короче, создал кошелек здесь https://wallet.ton.org/?testnet=true

потом импортировал его в джава клиент, добавил конфиг для тест-нет, но в итоге адрес отдается другой, не тот, который я получаю в веб версии
NN
22:22
Nick Nekilov
In reply to this message
Raw адрес у них один?
22:23
Deleted Account
хз
NN
22:23
Nick Nekilov
22:23
Deleted Account
я получаю адрес так

val address = klient.send(
GetAccountAddress(
WalletV3InitialAccountState(
key.publicKey, klient.info.configInfo.defaultWalletId
), 0, 0
)
)
NN
22:23
Nick Nekilov
вбей оба и посмотри "Raw Address"
22:23
Deleted Account
сейчас гляну
NN
22:25
Nick Nekilov
In reply to this message
testnet.ton.sh для тестнета
22:26
Deleted Account
raw address разный
NN
22:27
Nick Nekilov
могут быть разные версии контрактов кошелька
ИК
22:28
Игорь Коняхин
Это потому что кошелёк на https://wallet.ton.org - v3R2
NN
22:28
Nick Nekilov
или defaultWalletId разный
22:30
Deleted Account
v3R2 в репе тона нет (
22:30
апи для джавы не сгенерится
ИК
22:31
Игорь Коняхин
Но вообще эта проблема в этом чате так часто, что заставляет задуматься: возможно мнемоника должна включать в себя информацию о кошельке, а не только приватный ключ
22:34
In reply to this message
https://github.com/tonstack/wallet-smcs/blob/main/wallet/v3/r2/wallet-v3-r2-code.fif
Но вообще да - если бы мне ранее не скидывали, не нашёл бы
22:39
Deleted Account
спасибо
ИК
23:02
Игорь Коняхин
Как, кстати, идёт процесс по использованию в библиотеках напрямую ADNL без toncenter?
VM
23:14
Vardan Meliksetyan
Уважаемые разработчики, у меня есть еще вопрос.
Какой запрос API возвращает QR-код (адрес кошелька)? Я должен использовать QR-код или URL-адрес перенаправления, чтобы открыть приложение с заданным адресом кошелька, данными?
26 April 2022
A
00:13
Akira
Друзья. Пишу за помощью. Сделал коллекцию стикеров в 3д но не могу совершенно никак залить в тгс это. Webm уже нет как я понял. Хотел узнать что можно сделать чтобы была возможность заливать не вектор в bodymovin
T
02:56
Tim
После какого-то времени ton-http-api начинает небольшое количество ошибок сыпать. Ребут помогает. У всех так? Вы периодически перезапускаете свои апи?
T
05:34
Tim
А намайнить нельзя на тестнете монет?
08:17
Deleted Account
правильно ли я понимаю, что метод get_data() привязан к конкретному вызывающему пользователю? И для каждого вызывающего ответ будет свой?
08:20
смотрю вот код

мы читаем подпись сообщения пользователя:
var signature = in_msg~load_bits(512);


затем достаем некоторый публичный ключ:
var ds = get_data().begin_parse();
var (stored_seqno, stored_subwallet, <<<<public_key>>>>, plugins) = (ds~load_uint(32), ds~load_uint(32), ds~load_uint(256), ds~load_dict());
ds.end_parse();


а затем проверяем подпись:
check_signature(slice_hash(in_msg), signature, public_key)

получается, что публичный ключ должен быть пользователя, который вызвал контракт, но когда мы вызываем get_data(), то делаем это без каких либо параметров, будто зная, что данные оттуда будут привязаны к конкретному пользователю
T
08:22
Tim
Публичный ключ привязан к кошельку, а не к вызывающему
08:24
Deleted Account
это да, под вызывающием контракт человеком имелся владелец кошелька
DS
08:29
Dmitry Shanin
In reply to this message
нет. get_data() здесь возвращает данные контракта. они привязаны к контракту, не к пользователю. в этих данных есть публичный ключ владельца контракта, который используется для проверки подписи сообщения от владельца. никто другой, без приватного ключа, не сможет подписать сообщение так, чтобы оно прошло это проверку.
08:31
Deleted Account
ааа вот оно что, получается, тот метод кода, который я читаю, является некоторого рода админкой контракта

понял, спасибо
08:37
а куда отправляются сообщения посланные функцией send_raw_message() ?
08:37
в документации стд либы там это явно не прописано
08:40
In reply to this message
В самом сообщении адрес назначения прописываешь. Детали по ссылке.
10:22
Deleted Account
Привет, посоветуйте книгу с какой можно начать по изучению python для новичка. Учеба ещё не скоро , но хотелось бы уже начать сейчас
AP
10:35
Andrei Pokhila
Для новичка лучше всего какие-то курсы типа степика. Это если ничего не знаешь
А потом рекомендую почитать книгу Лучиано кто-то там Python к вершинам мастерства. Там рассказано хорошо про фишечки и как им пользоватьсч
СВ
11:35
Сергей В
blocks.getTransactions id:ton.blockIdExt mode:# count:# after:blocks.accountTransactionId = blocks.Transactions;
А какое может быть максимальное количество транзакций в одном блоке?
IK
12:54
Ilya Koz
Ребят, у вас работает авторизация через Tonkeeper?
K
13:08
KeepitTon
Добрый день ребята
Нужен разработчик для бота Airdrop и Реферальный для Nft проекта.🙏
AS
14:48
Artem S
Всем привет, очень интересует как быть с неизменяемыми блоками, которые на самом деле изменяемы, привожу цитаты из белой бумаги:

Мастерчейн используется для создания сильной связности между воркчейнами и шардчейнами. Это позволяет не ожидать Х подтверждений блока в отличие от слабо связных систем типа EOS. То есть любой блок шардчейна включенный в мастерчейн сразу же считается неизменяемым [whitepaper, С. 9, п. 2.1.13].

а далее следующее:

Исправление невалидных блоков достигается путём добавления исправленного блока в «вертикальный блокчейн», затем должны быть обновлены все блоки ссылающиеся на данный блок, что вызывает эффект «ряби»: изменения распространяются от невалидного блока вверх до самого последнего блока. После чего эти изменения должны быть отраженны в новом вертикальном блоке мастерчейна [whitepaper, С. 12, п. 2.1.17].


Получается, что действие в реальном мире (например: начисление денег на карту) можно совершать только после того как ставки валидаторов разморожены, так как по факту состояние может изменится из-за исправления невалидных блоков. Верно я понимаю? Или всё-таки есть ограничения, что может быть исправлено? Вместо Х подтверждений нам придется при текущих настройках ожидать день - два...
M
14:53
Man
Мужики , почему в окех так долго происходит смена тикера?

У них что все транзакции, ордера и прочее привязаны к названию тикера? А не к ID монеты именно в этой бирже? А тикер должен быть отдельным полем.
Или я что то не понимаю?
AK
14:57
Andrey Kravchenko
In reply to this message
Устройся к ним и узнай внутреннюю кухню, потом расскажешь 😊 Сегодня хоть какое-то движение видно, начислили TON в том же объеме, что заморожены TONCOIN, но пока без иконки и описания.
m
14:59
m
In reply to this message
Белая бумага есть на русском? Скинь плиз
AS
14:59
Artem S
In reply to this message
Я сам перевожу
AS
14:59
Aleksandr Shepelev
In reply to this message
был перевод
AK
15:00
Andrey Kravchenko
TON WhitePaper (Русская версия).pdf
Not included, change data exporting settings to download.
1015.4 KB
Вот с какого-то чата
RE
15:06
Roman Exemplarov
In reply to this message
Супер, спасибо!
א
15:26
ארטיום
скажите а бот @wallet это связано с ton.org?
В
15:28
В
In reply to this message
С какой целью интересуетесь?
א
15:30
ארטיום
In reply to this message
у меня есть как раз ton token которые вроде на блокчейне бинанс. интересно их можно на этот @wallet передать, или это несвязанные вещи
NN
15:32
Nick Nekilov
In reply to this message
AS
15:32
Aleksandr Shepelev
In reply to this message
wton или tontoken какой-то?)

wrapped тон можно ) tontoken фигня
א
15:32
ארטיום
In reply to this message
о, красава. спасибо
15:33
?
א
15:33
ארטיום
In reply to this message
ага
AS
15:33
Aleksandr Shepelev
ага он норм)
16:10
Deleted Account
Ребят, как сделать магазин как в Durger King ?

Недавно была обнова 8.7, там красиво устроен магазин с анимацией и с оплатой.
ИМ
16:11
Илья Михеев
разбираешься в отдельных частях работы магазина, создаешь магазин
AR
16:11
Aleksei Rutkovskii
In reply to this message
Недавно ведь 6.0 вышло только?
AS
16:12
Aleksandr Shepelev
In reply to this message
а тон дев чат тут причем?)

https://core.telegram.org/bots/webapps

вам сюда и в группу разработки ботов
16:12
Deleted Account
In reply to this message
А как внедрить оплату TON?
Р
16:13
Русский TON
In reply to this message
AS
16:13
Aleksandr Shepelev
In reply to this message
код писать через tonweb или использовать одну из апи неофициальных

вон товарищи сверху рекламят, могу свою апи прорекламить тоже )

но не буду)
16:15
Deleted Account
In reply to this message
https://t.me/telegram/178

То есть так никак не получится сделать?
AS
16:15
Aleksandr Shepelev
In reply to this message
через официальную платформу оплата только через фиат
16:15
через telegram payments
16:16
пока так
В
16:34
В
In reply to this message
Если бы это работало, то у каждого по вертолету было и в небе пробки из вертолетов были бы
SK
16:38
Steve Korshakov
Кто-нибудь знает когда блокчейн делился и мерджился обратно?
С
16:38
Сергей
Кстати норм бот @wallet ? есть смысл покупать в нём тонкоин?
AS
16:39
Aleksandr Shepelev
In reply to this message
вопрос не для чата разработчиков
А
16:42
Андрей
In reply to this message
+
16:43
Deleted Account
Как сделать самому приложение типо локатора

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

??

Может кто подскажет какие либо форумы для изучения, либо же материалы какие нибудь ???
AP
16:44
Andrey Pfau
In reply to this message
Вопрос не для чата разработчиков TON
ИМ
16:44
Илья Михеев
In reply to this message
+
F
16:44
F
In reply to this message
+
16:44
Deleted Account
Сори
VL
16:45
Vladimir Lebedev
In reply to this message
@andreypfau успешно реализовал на котлине, для браузеров мы в @tonstack сейчас заворачиваем протокол в WebRTC, потому что в сырой TCP браузеры не умеют
JF
16:46
John Fyodor
In reply to this message
И для не-браузеров у нас уже есть реализация на nodejs
SK
16:46
Steve Korshakov
сорри - webrtc? самое лагучее говно что существует?
VL
16:47
Vladimir Lebedev
In reply to this message
а какие ещё варианты есть? можем обсудить)
SK
16:48
Steve Korshakov
а вебсокеты чем не подходят?
16:48
единственный интересный кейс у webrtc это stcp или как он там - что-то среднее между TCP и UDP
VL
16:49
Vladimir Lebedev
In reply to this message
с https можно ходить только на wss, а выпускать сертификаты для лайтсерверов звучит как-то централизованно и неправильно
SK
16:49
Steve Korshakov
но это оч специфично что бы применять что бы синкать что-то
16:49
а ходить через свои turn сервера это что?
AP
16:49
Andrey Pfau
In reply to this message
Есть же http/2
16:49
Там стримы двухсторонние
JF
16:49
John Fyodor
In reply to this message
Это не отменяет проблемы
AP
16:50
Andrey Pfau
В плане сертификатов?
16:50
Я не уверен, но можно самоподписанные вроде делать, правда браузер будет орать
VL
16:52
Vladimir Lebedev
In reply to this message
там есть какой-то обходной путь
SK
16:52
Steve Korshakov
который лагает как говно да
JF
16:52
John Fyodor
In reply to this message
Ключевой момент в том, что браузер будет орать
VK
16:53
Vudi Kingyru
In reply to this message
Он ща на все орать будет, когда сертификаты отзовут
VL
16:54
Vladimir Lebedev
In reply to this message
может ты знаешь какие-то ещё варианты? для браузеров, на самом деле, был стандарт tcp когда-то, но его так и не приняли
JF
16:54
John Fyodor
In reply to this message
Ну так мы не хотим, чтобы он орал)
VK
16:54
Vudi Kingyru
In reply to this message
Надо сделать свою сборку хромиума и сафари
16:55
TONari или TONomium
AP
16:55
Andrey Pfau
In reply to this message
С поддержкой тон сайтов 😋
VK
16:55
Vudi Kingyru
In reply to this message
Ну да
VL
16:55
Vladimir Lebedev
In reply to this message
кстати да, че дуров свой собственный браузер не придумал, чтобы не было таких проблем
VK
16:56
Vudi Kingyru
In reply to this message
Потому что у него в телеге веб открывается. Зачем ему интернет браузер
AP
16:57
Andrey Pfau
Ну кста да, сейчас же в теории через веб-ботов даже можно тон сайты сделать
JF
17:01
John Fyodor
А потом эпл блочит телегу и ггвп
17:02
Ну и кстати это не решает проблему десктопных юзеров
AP
17:03
Andrey Pfau
In reply to this message
Так на десктопе тоже работают веб боты
VK
17:03
Vudi Kingyru
In reply to this message
Стандарт пили для sites
AP
17:03
Andrey Pfau
Сегодня чекал @wallet с компа
17:03
In reply to this message
Так дока на ton.org/docs есть как сайт поднять, они уже рабочие
AS
17:03
Aleksandr Shepelev
In reply to this message
image_2022-04-26_17-03-51.png
Not included, change data exporting settings to download.
23.3 KB
JF
17:03
John Fyodor
In reply to this message
Все это требует установки дополнительного софта, той же телеги
AS
17:03
Aleksandr Shepelev
там сыровато еще )
AP
17:03
Andrey Pfau
Правда пока все равно централизованные, надо ton storage ждать
17:04
In reply to this message
Ну это да, но работает же!!1!1!
AS
17:04
Aleksandr Shepelev
я про веб-ботов, к тон сайтам вопросов нет))
AP
17:04
Andrey Pfau
In reply to this message
Видел подобную проблему на старой винде, сейчас только на windows 10/11 работает и на макос последней
T
17:05
TON Дев Чат
In reply to this message
Не ждать, а делать😑
AP
17:05
Andrey Pfau
Про Линукс хз
AS
17:05
Aleksandr Shepelev
In reply to this message
ну я в бубен подолбил на своей убунте, кое-как завел) но некруто энивей
AP
17:05
Andrey Pfau
In reply to this message
Тссссс
17:05
Не пали контору
VK
17:08
Vudi Kingyru
In reply to this message
Like
ИК
17:28
Игорь Коняхин
In reply to this message
Можешь дать ссылку?
Насколько она готовая/рабочая/сырая/надёжная?
DB
17:28
D B
Всем привет!
Ищем блокчейн разработчика на TON в свой game-fi проект. Проект уже в стадии бета теста самой игры.
Пишите в личку и спасибо за внимание !
AP
17:30
Andrey Pfau
In reply to this message
MIT лицензия вроде как не даёт никаких гарантий по стабильности ПО 😂
ИК
17:31
Игорь Коняхин
Так это любая лицензия так 😂
AP
17:31
Andrey Pfau
In reply to this message
Отнюдь не любая 😏
ИК
17:32
Игорь Коняхин
Ещё не встречал лицензий со словами: "Если что-то будет не так работать, то мы в качестве компенсации отвалим вам бабла"
JF
17:33
John Fyodor
In reply to this message
Если я правильно понимаю, библиотека надёжная, как швейцарские часы (с)
ИК
17:34
Игорь Коняхин
Отлично, можешь дать ссылку?
JF
17:34
John Fyodor
In reply to this message
17:34
Там ещё есть что допилить, но в целом пользоваться можно
ИК
17:35
Игорь Коняхин
In reply to this message
Спасибо
JF
17:35
John Fyodor
На неделе наверное пофиксим всякие неоднозначные моменты и навернем тлпарсер
17:35
А, кстати для жс есть телеговские тлпарсеры, но я хз насколько они совместимы
AP
17:46
Andrey Pfau
In reply to this message
вполне совместимы, если речь про классический TL, а не TL-B
VL
17:47
Vladimir Lebedev
In reply to this message
я тут искал реализации TL на расте, с тоном работает только эверовская. остальные настолько костыльные, что с тоном не работают
17:49
In reply to this message
смотрел одну либу, там язык tl парсится не по грамматике и даже не регуляркой, а просто сплитом строк 😭
JF
17:50
John Fyodor
In reply to this message
Лайк и подписка
T
17:55
Tim
А есть уже реализация хайлоад валлета в js?
JF
17:56
John Fyodor
In reply to this message
Есть, в ton3-contracts в проекте который выше
T
17:56
Tim
Спасибо
SG
18:17
Serge Grigorenko
А можно ли получить в tonweb-mnemonic (или какой другой либе) мнемонику, зная секретный ключ? Сейчас я смотрю, что в tonweb-mnemonic сперва генерируется мнемоника, а по ней уже можно получить секретный ключ. А вот хотелось бы наоборот.
SK
18:18
Steve Korshakov
Нет
VL
18:18
Vladimir Lebedev
In reply to this message
так нельзя сделать, мнемоника это сид для рандома, грубо говоря
SG
18:18
Serge Grigorenko
In reply to this message
А понял, спасибо
19:58
Всем привет!
Помогите пжл с смарт конрактами.
Есть ли где ни будь пример публикации простого смарт-контракта в сети тестнет?
20:13
In reply to this message
Правильно ли я понял, что тут простая транзакция в 1 нанотон?
Не увидел кода смарт-контракта.
20:16
https://github.com/toncenter/tonweb/blob/045caa3a89f788542e89d5829b7aabf42ae0f886/src/contract/token/nft/NftCollection.js#L15

Тут увидел что есть опция code, в котором я так понимаю байтовая строка самого кода смарт-контракта?
20:17
@NickNekilov благодарю
T
20:18
Tim
В tonweb в папке кошельков есть walletsource.md. Там описано откуда оно берётся
Г
20:26
Григорий
Привет всем. Подскажите уже можно сделать свой сайт для минта своей коллекции в nft в блокчеин ton ?
T
20:36
TON Дев Чат
Вот walletsources с некоторыми пояснениями
https://github.com/toncenter/tonweb/blob/wallet_sources/src/contract/wallet/WalletSources.md
V
21:46
VolanDeVovan
Всем ку
под тон есть индексер который в graphql выплевывает ? По типу subspace / thegraph под другие чейны
22:05
In reply to this message
Спасибо
N
22:54
NerdDude
Здравствуйте, есть уже какие-нибудь путон PlugnPlay решения на прием платежей? Или надо свои велосипеды велосипедить?
CP
22:54
Catchain Protocol
велосипеды велосипедить пока что
N
22:58
NerdDude
In reply to this message
Понятно, спасибо. Буду велосипедить
NM
23:16
Nikita Misharin
In reply to this message
А можно еще попросить добавить парочку примеров туда? Какие-нибудь базовые сценарии
JF
23:31
John Fyodor
In reply to this message
Постараемся, нфт и жетоны тоже позже добавим
NM
23:34
Nikita Misharin
In reply to this message
Супер
RN
23:39
Roman Navrotskyi
Добрый вечер. Как связаться со службой поддержки ?
23:40
У меня проблемы с Ton Bridge
TP
23:42
Tim Pavlov
In reply to this message
@ton_help_bot я писал сюда за помощью по Ton Bridge
27 April 2022
Э
00:11
Эрвин
А обычные боты так тоже умеют добавляться в "скрепку"? Никто не в курсе?
Э
00:11
Эрвин
T
TON Community RUS 26.04.2022 15:41:36
Video file
Not included, change data exporting settings to download.
00:22, 9.7 MB
Перевод Toncoin прямо в Telegram

В Telegram появился удобный способ перевода Тoncoin любому пользователю и без комиссий. Бот @wallet стал доступен для добавления в меню вложений диалогов. Не нужно больше вводить длинные адреса кошельков и ожидать подтверждения транзакций.

Чтобы начать пользоваться этой возможностью, необходимо запустить @wallet и в разделе "Настройки" добавить его в меню вложений, как показано в прикреплённом видео.

Для отправки Toncoin необходимо выполнить всего 2 простых шага:

1) Открыть диалог с пользователем и нажать кнопку "Прикрепить" (значок скрепки), а следом — кнопку "Wallet”

2) Указать нужное количество Toncoin и совершить перевод.

Готово — криптовалюта мгновенно окажется в кошельке получателя.

Мы рады, что теперь пользователи Telegram смогут легко обмениваться Toncoin, используя этот удобный и простой способ.

Приглашаем наших подписчиков оценить новую возможность. Перед использованием, необходимо убедиться, что приложение Telegram обновлено до последней версии.
Р
00:14
Русский TON
In reply to this message
Нет.
NM
00:14
Nikita Misharin
In reply to this message
А обычные боты могут быть без приставки bot?
В
00:15
В
In reply to this message
Как это нет, когда да
00:23
In reply to this message
Для топ рекламодателей и небожителей. Они из второго числа
SK
00:23
Steve Korshakov
In reply to this message
Кто сказал?
VK
00:24
Viktor Kulyagin
In reply to this message
Это доступно только крупным рекламодателям, тем кто пару миллионов занёс разработчикам.
Вот что на сайте разработчиков написано:

Web App Bots can request to be added directly to a user's attachment menu, allowing them to be quickly launched from any private chat (with either a user or another bot).

Attachment menu integration is currently only available for major advertisers on the Telegram Ad Platform. However, all bots can use it in the test server environment.
И
00:26
Игорь
In reply to this message
Как CryptoBot добавить?
В
00:27
В
In reply to this message
Взял и спалил, а ведь еще даже не начали гнать😈
VK
00:30
Viktor Kulyagin
In reply to this message
Как раз скрепка доступа за много денег.

Attachment menu integration is currently only available for major advertisers on the Telegram Ad Platform.
И
00:32
Игорь
Друзья, я backend разраб на python.
Хочу потрогать смарты с всеми удобствами

Какой инструментарий на сегодняшний день актуальный (плагины, утилиты, библиотеки) ?
N
00:35
NerdDude
In reply to this message
PyTon вроде был
00:35
Не знаю насколько он актуален
ИК
00:37
Игорь Коняхин
In reply to this message
"со всеми удобствами" пока что не получится 😄
Удобств пока что мало, стоит быть к этому готовым
VK
00:37
Viktor Kulyagin
А кто-нибудь пробовал в этом Wallet покупать TON? Российские карты работают? Есть какие-нибудь ограничения по минимальной/максимальной сумме?
ИК
00:38
Игорь Коняхин
Пробовал
Заявлено, что поддерживается карта Мир, но оплата не прошла
Э
00:39
Эрвин
In reply to this message
У меня с рос карты мастеркард купилось
И
00:42
Игорь
In reply to this message
Слышал про плагины для IntelligentIDE и VSC, они… полезны?)
Так понял, что нужно разворачивать свою тестовую сеть (по мере тестинга смарта), есть какой-то docker для этого ?
Fift… Неужели так все сложно с ним?

1001 вопрос))
Э
00:42
Эрвин
In reply to this message
Да инлайн бот автоматом в скрепке появляется после первого использования, но в конце списка. Ну и это не вэб
VK
00:42
Viktor Kulyagin
В криптоботе просто курс от 179 начинается.
Уже сам потыкал в валлет - ограничение по сумме 5500 - 50000 рублей.
ИК
00:44
Игорь Коняхин
In reply to this message
Плагины разумеется полезны даже в том виде, в котором есть, но они пока сыроваты.

Тестировать можно либо просто отдельные функции, либо смарт целиком в тестовой сети.

Fift - это просто ппц, не понятно зачем вообще он был придуман
RG
00:46
Ruslan Gabdullin
In reply to this message
Привет, может и получится😁
Эта либа в целом повторяет функционал toncenter.com, но возможны кардинальные изменения)
https://pypi.org/project/pytonlib/
00:48
Еще скажу, что работает только из под Ubuntu или внутри докера. Удобнее всего использовать либу в jupyter ноутбуках
И
00:48
Игорь
In reply to this message
Я так понял это просто клиент HTTP API для сети TON.
Я скорее ищу "как писать смарты легче", но спасибо, сохраню !
RG
00:50
Ruslan Gabdullin
In reply to this message
А, Окей)
Если быть точным, то это внутренности ton-http-api, из которого выкинут http сервис, кэширование и тд
Я
08:03
Я твой Бог
а есть еще чаты по смартконтрактам? аудит дэкса нужен до релиза
08:08
а есть чаты
08:08
по нфт какие-то еще фаундеров? также добавьте
08:08
спасибо
A
09:18
Alex 🗿
Всем привет, где можно посмотреть примеры ск на тон с разжевыванием?
09:19
И почитать про библу для js
s
09:20
sd
In reply to this message
снова я )
пока нет мануалов для совсем новичков, но есть много полезного = https://t.me/tondev/42835
A
09:22
Alex 🗿
In reply to this message
спасибо добрый человек) есть идея которую хочется реализовать в местной экосистеме, надо окончательно разобраться во всем, понять что я тупой и успокоиться 😁
o
09:22
outluch
In reply to this message
спасибо, чтож сразу такой пост не видно.. Надо его как то в описание например. Или СуперПин
T
09:24
Tim
Я уже спрашивал, но пока не отчаиваюсь. В Тестнете можно намайнить монет?
s
09:24
sd
In reply to this message
он в закрепе) полистайте, там много всего
А
09:25
Андрей
In reply to this message
нет
o
09:25
outluch
ааа, я увидел можно списком запиненные открыть! Офигенно, спасибо
И
09:31
Игорь
In reply to this message
Кстати почему ?
Вроде сообщество хоть и не большое, но сплоченное
s
09:33
sd
In reply to this message
оно сплоченное, просто очень молодое
все делают всё впервые, со временем будет появляться все больше материала для изучения, я уверен)
AS
11:00
Artem S
Что означает код выхода TVM = 11? В доке не описано.
OB
11:10
Oleg Baranov
In reply to this message
Вроде это unknown error)
AS
11:11
Artem S
ага, спасибо, помогло))
11:11
а КОД -14?
OB
11:12
Oleg Baranov
А как ты его поймал?
11:12
Есть пример?
AS
11:12
Artem S
в lite-client запустил runmethodfull 0:a44757069a7b04e393782b4a2d3e5e449f19d16a4986a9e25436e6b97e45a16a get_members
11:13
image_2022-04-27_15-13-16.png
Not included, change data exporting settings to download.
79.9 KB
11:13
если что это контракт номинаторов от tonwhales
OB
11:14
Oleg Baranov
14 не определено, может что то твое?
11:14
11:15
Видимо что то от контракта
AS
11:15
Artem S
странно, нет там таких констант
11:16
у меня тут вопрос возник: а можно ли обновлять storage контракта при вызове get методов?
OB
11:17
Oleg Baranov
Насколько я понимаю их суть - нет
11:17
Они вроде как только на ноде выполняются, не на всем чеине
AS
11:18
Artem S
Вот и я так предположил, спасибо
11:24
In reply to this message
image_2022-04-27_15-24-02.png
Not included, change data exporting settings to download.
38.3 KB
а вот это от liteserver я так понимаю?
OB
11:24
Oleg Baranov
ага
11:24
таймаутит лайт сервер
AS
11:24
Artem S
а как увеличить время таймаута?
OB
11:24
Oleg Baranov
это на его стороне, в вебсервере
11:24
там много хостов в конфиге
11:25
неудачный попался видимо, еще раз дерни)
AS
11:27
Artem S
In reply to this message
понял, попробую
11:31
ещё вопросик: если у GET метода аргумент имеет тип slice, то как правильно его передать через lite-client, пробовал в hex c 0x и без него, ругается в итоге на тип
11:37
In reply to this message
crypto\fift\lib\Asm.fif

//
// codepage primitives
x{FF00} @Defop SETCP0
x{FFF0} @Defop SETCPX
{ dup -14 239 @-range abort"codepage out of range"
255 and <b x{FF} s, swap 8 u, @addopb
} : SETCP


может быть вот откуда код = -14?
OB
11:48
Oleg Baranov
похоже
T
11:49
TON Дев Чат
In reply to this message
Через лайтклиент никак не передать
AS
11:53
Artem S
In reply to this message
Как тогда это сделать? Через tonweb?
11:54
-14 не получаю, хм?
AS
11:54
Artem S
In reply to this message
image_2022-04-27_15-54-36.png
Not included, change data exporting settings to download.
83.9 KB
вот буквально только что запустил
11:55
In reply to this message
image_2022-04-27_15-55-31.png
Not included, change data exporting settings to download.
36.2 KB
F
11:56
F
In reply to this message
AT
11:57
Andrey Tvorozhkov
In reply to this message
Кажется проблема с выбором сети. Мб тестнет / мейннет перепутали?
T
11:58
TON Дев Чат
In reply to this message
А если просто runmethod? Походу на какую-то ошибку именно на уровне лайтклиента
AS
12:02
Artem S
In reply to this message
У меня конфиг майннет, другие методы нормально работают.
12:03
In reply to this message
Аналогично, сейчас скину
12:03
image_2022-04-27_16-03-27.png
Not included, change data exporting settings to download.
96.5 KB
а нет, газа не хватает
SK
12:58
Steve Korshakov
In reply to this message
Это ограничение по газу
AS
13:03
Artem S
In reply to this message
то есть -14 и -1001 - это всё связано с газом? как вы получаете актуальные данные по списку номинаторов тогда?
СВ
13:07
Сергей В
а как может газа на гет метод не хватить? он же скачивает код, дату и локально выполняет? или я не так это понимаю?
AS
13:08
Artem S
In reply to this message
видимо может 🤷‍♂️
OB
13:08
Oleg Baranov
ограничение газа чтобы сервер не повесить)
13:09
а то кто то бесконечный цикл засунет в гет метод и все лайт серверы повесит
T
13:09
TON Дев Чат
In reply to this message
Локально тоже есть ограничение, чтобы клиент не подвис, в 2м газа, если я верно помню
СВ
13:10
Сергей В
In reply to this message
понял + понял :)
AS
13:12
Artem S
In reply to this message
а что так было уже?
OB
13:12
Oleg Baranov
мне кажется это превентивно сделано)
AS
13:12
Artem S
понятно
13:41
Deleted Account
Всем привет! Нужен смарт контракт на func. Кто этим занимается напишите в ЛС пожалуйста.
T
13:59
Tonox DeFi
T
Tonox DeFi 27.04.2022 13:57:49
News:

XTON has been updated: this is most likely the final version and will not change in the short term. There will be airdrops for all early adopters.

To buy/sell XTON, you can go to its swap page:
- mainnet: https://xton.tonox.exchange
- testnet: https://xton.tonox.exchange/?testnet

If you have bought XTON v1, you can still sell it at the following url:
- Mainnet v1: https://xton.tonox.exchange/?v1
- Testnet v1: https://xton.tonox.exchange/?testnet_v1
В
14:22
В
Приветствую. Ребята, подскажите как сделать чтобы в эксплорере вместо ссылки отображалось имя?
AS
15:31
Artem S
Есть какой-нибудь парсер/просмотрщик .boc файлов?
SK
15:31
Steve Korshakov
In reply to this message
AS
15:31
Artem S
In reply to this message
Спасибо
SK
15:31
Steve Korshakov
Вот такой парсер есть но он низкоуровневый
AS
15:32
Artem S
In reply to this message
Он бинарные данные не принимает я так понимаю
15:32
Надо ему hex давать?
SK
15:32
Steve Korshakov
Base64
AS
15:32
Artem S
Понятно, перегнать .boc в base64, и туда?
AP
15:42
Andrey Pfau
In reply to this message
а есть сурсы этой тулзы?
SK
15:42
Steve Korshakov
import * as React from 'react';
import { NextPage } from 'next';
import Head from 'next/head';
import { Cell } from 'ton';

const Page: NextPage = props => {
const [value, setValue] = React.useState('');
const [boc, setBoc] = React.useState<{
cell: string,
hash: Buffer
} | null>(null);
React.useEffect(() => {
let ended = false;
(async () => {
try {
let cell = Cell.fromBoc(Buffer.from(value, 'base64'))[0];
if (ended) {
return;
}
setBoc({
cell: cell.toString(),
hash: await cell.hash()
});
} catch (e) {
if (ended) {
return;
}
setBoc(null);
}
})();
return () => {
ended = true;
}
}, [value]);

return (
<>
<Head>
<title>Boc Parser</title>
<meta name="description" content="Richest people on TON" />
</Head>
<h1>BOC Parser</h1>
<textarea
value={value}
onChange={e => setValue(e.target.value)}
style={{
height: 300,
}}
/>
{!boc && <h2>Invalid boc</h2>}
{boc && <h2>Parsed BOC</h2>}
{boc && <pre>{boc.hash.toString('hex')}</pre>}
{boc && <pre>{boc.cell}</pre>}
</>
);
};

export default Page;
AP
15:56
Andrey Pfau
In reply to this message
Ой и всё? Так просто? Спасибо!
SK
15:57
Steve Korshakov
In reply to this message
+
ИК
16:46
Игорь Коняхин
Как обычно происходит обмен/продажа NFT?
(понятно, что как написать смарт-контракт, так и происходит, но всё же наверняка есть какие-то типичные ситуации)

1) Если в NFT заложить external функцию передачи по подписи, то можно продать двумя отдельными сделками, но в таком случае две сделки независимы, и одна сторона может кинуть другую

2) Можно заложить две функции:
2а) Установить стоимость покупки (от текущего владельца с подписью)
2б) Купить (с любого адреса, послав установленное в пункте "2а" количество ТОН, и указав новый публичный ключ владельца)
Это кажется рабочим решением

3) Если не хочется выставлять на "открытую" покупку, то можно в функции "2а" дополнительно указывать адрес, с которого разрешена покупка, либо разрешённый публичный ключ

4) Как NFT выставляется на торги на маркетплейсах? Для этого, я так понимаю, также нужно заложить код, чтобы маркетплейсу отошла комиссия. Иначе пришлось бы вначале продать маркетплейсу (что маркетплейс делать не стал бы), а уже потом от маркетплейса к новому покупателю.

5) Что если NFT хочется выставить на несколько маркетплейсов одновременно?
OB
17:14
Oleg Baranov
Мне кажется что просто должен быть смарт контракт маркетплейса, ты ему во владение передаешь нфт, а в этом смарт контракте уже заложены функции аукциона/продажи/возврата и комиссии. Думаю не стоит накручивать эту логику на сами нфт, а то слишком жирные будут
DH
17:20
Dmitriy Hylind
Кто можно смарт контракт написать? Отпишите в лс пожалуйста
RE
17:41
Roman Exemplarov
In reply to this message
Ок, спасибо! В Эфире похожая фигня, поэтому и уточнил. То есть, фактически розыгрыши можно проводить если нет потенциально больших выигрышей - чтобы связываться было не интересно. Или делать в несколько транзакций с разделением по времени.
X
17:52
XYZ
Разбираюсь с API, возникло два вопроса, ни в английском TON Dev, ни здесь не смог найти ответы на них:

1. Я так понимаю, что баланс приходит в nano TON. Как это число перевести в TON? Если умножить на 10^-9 степени получается не то.

2. Как понять, что адрес является NFT Item или NFT Collection? Если сделать запрос "/getWalletInformation", то можно увидеть кошелек это или нет, но вот про NFT Item и NFT Collection ничего не написано.
AS
17:53
Aleksandr Shepelev
In reply to this message
нано это 10^-9
X
17:53
XYZ
In reply to this message
ошибка, ну все равно не то получается
AS
17:54
Aleksandr Shepelev
мы не знаем с каким апи вы разбираетесь )
17:54
возможно выдается в hex результат, хз)
AS
17:55
Aleksandr Shepelev
у меня выдает getAddressBalance то что нужно)
OB
17:55
Oleg Baranov
In reply to this message
2. как вариант - по наличию нужных гет методов
AS
17:55
Aleksandr Shepelev
In reply to this message
этот тоже выдает то что нужно в балансе)
X
17:57
XYZ
In reply to this message
вот ответ от "/getAddresBalance":

{
"ok": true,
"result": "1916839284"
}

Через TON Wallet показывает 1.12299928 TON.

как из 1916839284 получить 1.12299928?
OB
17:57
Oleg Baranov
In reply to this message
еще мне кажется было бы круто добавить общий стандарт для смарт контрактов - фнукцию которая возвращала бы айдишник что за тип контракта)
AS
17:57
Aleksandr Shepelev
а адрес дайте )
X
17:57
XYZ
In reply to this message
EQDFdo8arIfqqgsvfJYOIolkP-YEypBJMKzPIeba91JwI1ig
AS
17:58
Aleksandr Shepelev
OB
17:59
Oleg Baranov
In reply to this message
сервер может отстал
X
18:00
XYZ
In reply to this message
дико извиняюсь, это мой трабл. Постоянно не тот адрес проверял. Спасибо, что помогли разобраться🤦‍♂️🤦‍♂️🤦‍♂️
18:02
Deleted Account
In reply to this message
X
18:02
XYZ
In reply to this message
а как можно посмотреть гет методы у контракта?

Вот делаю запрос "/getAddressInformation" или "/getWalletInformation". Как дальше узнать NFT Item это или NFT Collection?
OB
18:03
Oleg Baranov
самое простое что приходит в голову - зная стандарт просто дернуть их) если че то ответили - оно
18:04
а так - код парснуть наверное, но это сложней
ИК
18:05
Игорь Коняхин
In reply to this message
Интересная, но сомнительная идея:
а) Контракт может наврать
б) Можно определить тип контракта по байт-коду, и тут контракт соврать не может
в) Это влекло бы к дополнительным расходам за хранение
18:05
Deleted Account
In reply to this message
ton = nanoton / 1000000000
X
18:07
XYZ
In reply to this message
я так понимаю tonscan.org первый способ использует, так как есть небольшая задержка перед тем как он определит NFT Item или NFT Collection, похоже что еще запрос какой-то делает.
18:07
In reply to this message
спасибо, я понял!
18:07
In reply to this message
а как по байт коду определить, есть мануал, может быть пример на любом языке?)
OB
18:08
Oleg Baranov
In reply to this message
а) наврать думаю не так страшно в контексте применения
б) после обновления определение сломается же, например нфт с немного измененным хранилищем но все еще реализующеее интерфейс
в) да, но там вроде совсем немного на 1 метод который просто число вернет)
СВ
18:09
Сергей В
Интересно, пользуюсь тон либ, но при запросе FullAccountInfo вот у этого контракта приходит не полная data (она слишком большая) это баг json lite client?
https://tonwhales.com/explorer/address/EQCuzvIOXLjH2tv35gY4tzhIvXCqZWDuK9kUhFGXKLImgxT5
ИК
18:09
Игорь Коняхин
In reply to this message
В общем случае - парсить байткод (т.е. никак?)
В конкретных случаях - сравнивать с известными кодами. Например, если это
"B5EE9C724101010100710000DEFF0020DD2082014C97BA218201339CBAB19F71B0ED44D0D31FD31F31D70BFFE304E0A4F2608308D71820D31FD31FD31FF82313BBF263ED44D0D31FD31FD3FFD15132BAF2A15144BAF2A204F901541055F910F2A3F8009320D74A96D307D402FB00E8D101A4C8CB1FCB1FCBFFC9ED5410BD6DAD"

значит это кошелёк v3R2
OB
18:11
Oleg Baranov
о, кайф
ИК
18:11
Игорь Коняхин
In reply to this message
а) От контекста зависит, да
б) Код от хранилища ведь не зависит
Ну а если сменить сам код set_code(), то, да - это будет уже другой контракт, а если новый код также "подходит", то можно и его байткод занести в "словарь", который будет указывать на тот же контракт
SK
18:12
Steve Korshakov
In reply to this message
чувак если миллиард разных контрактов
18:12
и они все скажем NFT
18:12
с чего вдруг код будет один
DV
18:12
Dan Volkov
In reply to this message
Ты никогда не поддержишь все сразу
X
18:13
XYZ
In reply to this message
ага, понял. Спасибо большое!

Не разбираюсь в разработке под веб, поэтому вопрос: по идеи же я могу посмотреть через console chrome куда tonscan.org делает запрос или вообще что он делает, чтобы узнать Contract Type, то есть кошелек это, NFT Item или NFT Collection?
ИК
18:15
Игорь Коняхин
In reply to this message
Код один не будет
Непонимание скорее в использовании
Я возможно просто не вижу ситуации, когда у нас есть адрес, но мы не знаем, что по нему находится, и при этом мы готовы довериться тому, что он сам о себе сообщит
18:16
In reply to this message
Да, под web достаточно хорошие инструменты разработки, я так wallet.ton.org изучал
X
18:17
XYZ
In reply to this message
принял, тогда буду в эту сторону копать, разбираться, спасибо за помощь!
X
18:36
XYZ
In reply to this message
В итоге напишу ответы на вопросы, может быть пригодится кому-то в будущем.

1. Делал запрос не по тому адресу, поэтому числа не сходились. ton = nanoton / 1000000000

2. Если запрос /getWalletInformation возвращает ключ "wallet" = true. Все понятно, это кошелек. Там же есть ключ, чтобы узнать тип кошелька.

Если "wallet" = false. То нужно сделать запрос https://api.ton.cat/v2/explorer/nft/address/YOUR_ADDRESS_HERE и по ключу "type" будет понятно NFT Item это или NFT Collection, а также увидеть всю информацию по ним.
AP
18:40
Andrew Python
In reply to this message
зачем тянуть ещё одно апи, если можно вызвать гет-метод контракта?
X
18:49
XYZ
In reply to this message
к сожалению, не знаю как это сделать, пока есть только предположение.

Нужно сделать post запрос /runGetMethod ? Что указывается в ключах "method" и "stack"?
AP
19:06
Andrew Python
In reply to this message
Пример для nft item
{
"address": "UQC6CwW_39axECOzmeQ34QToTZ0SnX1N0nU05djAi-C8V2gM",
"method": "get_nft_data",
"stack": [ ]
}
19:07
И достаточно чекнуть exit_code в ответе
X
19:15
XYZ
In reply to this message
Спасибо, поизучаю!

get_nft_data этот метод у всех смарт-контрактов есть, стандартный метод?
СВ
19:17
Сергей В
In reply to this message
из лайтклиента
saveaccountdata bigdata.data EQCuzvIOXLjH2tv35gY4tzhIvXCqZWDuK9kUhFGXKLImgxT5
written data of account 0:AECEF20E5CB8C7DADBF7E60638B73848BD70AA6560EE2BD91484519728B22683 to file `bigdata.data` (994783 bytes)

Из вербос лога tonlib
data = bytes [994783] { B5 EE 9C 72 42 03 4E ED 00 01 00 00 0F 2D CA 00 00 01 01 C0 00 01 02 01 20 00 02 00 03 02 01 20 00 04 00 05 02 01 20 28 77 28 78 02 01 20 00 06 00 07 02 01 20 14 71 14 72 02 01 20 00 08 00 09 ...}

размер совпадает

Но вот возвращаемый json гораздо меньше base64 дата всего 131кб
получается ошибка гдето в превщаении объекта в json
19:19
мне кажется по этому некоторые експлореры выдают 500 ошибку на этом контракте
AP
19:20
Andrew Python
In reply to this message
у всех nft item контрактов, прописан в стандарте https://github.com/ton-blockchain/TIPs/issues/62
X
19:24
XYZ
In reply to this message
спасибо еще раз. Буду разбираться!
SK
19:25
Steve Korshakov
In reply to this message
да там бага, мы ее решаем но это не быстрый процесс
СВ
19:30
Сергей В
In reply to this message
главное что решается :)
T
19:39
TON Дев Чат
In reply to this message
Тонлиб отдает только 2**17 байт, с другой стороны, если делать произвольную длину, то это вектор атаки
V
19:48
Vlad
Добрый день. Подскажите, есть ли какой-то мост для свапа Ton erc20 на Ton на оригинальном блокчейне?
OB
19:49
Oleg Baranov
In reply to this message
Привет, https://ton.org/bridge/
V
19:51
Vlad
In reply to this message
благодарю!
20:02
Deleted Account
wallet_id уникальный на весь блокчейн? Или могут существовать два смартконтракта с разными приватными ключами но одинаковыми wallet_id?
20:04
In reply to this message
в доке "Telegram Open Network Blockchain" (tblkch.pdf) не нашел описания этих айдишников, в чем их технический смысл
SK
20:04
Steve Korshakov
делать несколько кошельков для одного адреса
ИК
20:05
Игорь Коняхин
In reply to this message
Нет, каждый какой хочет, такой и выбирает
Более того, почти у всех subwallet_id одинаковый, так как он один прописан в многих клиентах
20:06
Deleted Account
то есть, пользователь с ключом K1 может создать wallet_id == 123, как и пользователь с ключом K2 тоже может создать wallet_id == 123?
20:09
еще странно, что если указать несуществующий айди, то ошибка не вылетает
NN
20:11
Nick Nekilov
адрес кошелька это хеш от кода + данных (публичный ключ и wallet_id)
если поставишь другой - получится просто другой адрес
20:12
но если поставишь другой - с ним, вероятно, можно будет работать только из твоего кода, т.к. кошельки работают с дефолтным
ИК
20:12
Игорь Коняхин
In reply to this message
Да
И у большинства обычных пользователей кошельков этот wallet_id = 698983191
20:14
Deleted Account
спасибо
СВ
20:16
Сергей В
In reply to this message
А есть ограничение на размер данных в самом блокчейне?
T
20:39
TON Дев Чат
In reply to this message
Есть ограничение на глубину ячейки стораджа в 512. А так - чем больше данных, тем больше платишь, но ограничений нет.
SK
22:14
Steve Korshakov
Есть ли где-то исходники или документация про бриджи? https://ton.org/bridge/

Люди попросили интеграцию
OE
SK
22:20
Steve Korshakov
In reply to this message
спс
RD
22:33
Ruslan Dorofeev
Решил влиться в общество и для начала сделал кошелек https://fift-tech.github.io/wallet/ ну на тестнете он естественно еще код кому интересно на гитхабе, но в планах разработать собственные смарт-контракты для развлекательных дапсов.
ИК
22:34
Игорь Коняхин
In reply to this message
Я тут почитал стандарт:
https://github.com/ton-blockchain/TIPs/issues/62
Верно, что по стандарту не предусмотрена функция безопасной передачи (как я писал в пункте 2 ^), и чтобы осуществлять покупку/продажу нужно писать дополнительный контракт?
AT
22:34
Andrey Tvorozhkov
In reply to this message
Ахахах, фифт тех
22:34
Одобряю
SK
22:35
Steve Korshakov
In reply to this message
Не
RD
22:36
Ruslan Dorofeev
In reply to this message
+
T
22:38
TON Дев Чат
In reply to this message
А там не ТОНовские мнемоники?
RD
22:39
Ruslan Dorofeev
In reply to this message
не я mnemonic.js взял
AP
22:39
Andrey Pfau
In reply to this message
Почему? 24 слова же
RD
22:40
Ruslan Dorofeev
In reply to this message
Там можно по разному настроить я решил как в тоне 24 но можно и 12 и 9
T
22:41
Tim
В тоне не стандартные слова
T
22:42
TON Дев Чат
In reply to this message
По названию подумал, что кто-то взял котлиновский фифт, скомпилил в js, и запустил оригинальные фифтовые кошельки в браузере. Разочарован
22:42
In reply to this message
Это плохо, т.к. кошельки окажутся несовместимы. Кто-то создас у вас и не сможет заимпортить в других и наоборот.
RD
22:42
Ruslan Dorofeev
In reply to this message
До этого еще не дошло дело просто))
22:44
In reply to this message
А там у меня на html я так понял что либа ton-mnemonic отдельная и не понял как ее подключить в браузерный tonweb
T
22:45
TON Дев Чат
In reply to this message
Можно глянуть как в https://github.com/toncenter/ton-wallet сделано
SK
22:45
Steve Korshakov
In reply to this message
ton-crypto работает как надо в браузере
AP
22:46
Andrey Pfau
In reply to this message
😝
RD
22:46
Ruslan Dorofeev
In reply to this message
Ага спасибо гляну
ИК
23:02
Игорь Коняхин
Я тут почитал стандарт:
https://github.com/ton-blockchain/TIPs/issues/62
Верно, что по стандарту не предусмотрена функция безопасной передачи (как я писал в пункте 2 ^), и чтобы осуществлять покупку/продажу нужно писать дополнительный контракт?
T
23:07
TON Дев Чат
In reply to this message
Да, стандарт нфт не подразумевает функциональности продажи внутри.
ИК
23:12
Игорь Коняхин
In reply to this message
Понял
А как обычно реализуется комиссия авторам при продаже?
Я прочитал раздел "Why are there no obligatory royalties to the author from all sales?" и понял в чём проблема, но там не описаны используемые решения
ИК
23:15
Игорь Коняхин
In reply to this message
Спасибо, буду изучать
VM
23:31
Vardan Meliksetyan
Уважаемое сообщество разработчиков Ton. У нас есть 2 способа использования кошелька ton

1. депозиты-мульти-кошелек
Здесь мы рассмотрим, как принимать депозиты. У каждого пользователя будет свой депозитный адрес.

2. депозиты-единый кошелек
Здесь мы рассмотрим, как принимать депозиты на единый кошелек.

У меня есть 2 вопроса.
A. Для какой задачи мы можем использовать 1-й или 2-й способ и почему (плюсы и минусы)?
B. И сколько сборов мы должны заплатить за 1 и 2.

Спасибо
28 April 2022
00:00
Deleted Account
In reply to this message
кстати добавлю еще такой вопрос: кто владеет приватными ключами этих кошельков? Разработчики тона?

И если операции были совершены в одном кошельке, а затем в другом, получается, что никакого общего баланса между ними нет и это будут транзакции в разных смартконтрактах этих кошельков?
00:02
И что делать в ситуации, что биржа использует один смартконтракт для кошелька, а я пользуюсь другим смартконтрактом кошелька, как я получу выведенные средства? Нужно ведь как-то заставить всех пользоваться только одним смартконтрактом вместо этого зоопарка кошельков
T
00:03
Tim
Я вообще если честно не понимаю о чем вы. У вас смешалось вообще всё
00:03
Deleted Account
In reply to this message
разные смартконтракты кошельков работают с общим балансом или каждый смартконтракт считает свой баланс?
T
00:03
Tim
Своё конечно
SK
00:04
Steve Korshakov
в эфире можно читать и чужие
00:05
Deleted Account
In reply to this message
получается что тонкоины в одном кошельке это уже не те же самые тонкоины из другого кошелька
T
00:05
Tim
Нет, не получается
00:06
Deleted Account
если баланс разный, то разве можно будет перевести тонкоины из одного смартконтракта в другой смартконтракт?
T
00:06
Tim
Кошельки это способ управлять тонами. они их не выпускают
В
00:14
В
In reply to this message
1. депозиты-мульти-кошелек
У каждого пользователя будет свой депозитный адрес.

2. депозиты-единый кошелек
Депозиты на единый кошелек.

2 вопроса.
A. Для какой задачи мы можем использовать 1-й или 2-й способ и почему (плюсы и минусы)?
B. Будет ли взыматься комиссия за переводы между пользователями внутри мультикошелька?.

Спасибо
AJ
00:57
Adam Johnson
Дорого дня. Подскажите пожалуйста.
tonweb.getTransactions(address: Address | string, limit?: number, lt?: number, txhash?: string, lt_to?: number)

Можно ли получить всё транзакции после lt и до текущего момента?

Пробовал не передавать to_lt, то возвращает транзакции и до lt
ID
01:03
Igor Diakonov
In reply to this message
lt_to - это ОТ
01:04
А lt - до....
AJ
01:14
Adam Johnson
In reply to this message
благодарю
AS
07:28
Artem S
Добрый день. Какие есть инструменты для анализа storage контракта? Немного непонятно как HEX перегнать в реальные данные даже при знании структуры storage.
07:28
Может где-то в доке написано как его расшифровать?
07:30
Пример контракта Elector: https://explorer.toncoin.org/account?account=Ef8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM0vF

У нас есть ячейка data, как её расшифровать?
T
07:33
Tim
Я думаю если разобраться с тем как оно шифруется и обратное станет понятно
AS
07:38
Artem S
In reply to this message
Готовых инструментов или хотя бы ссылки в доке как оно работает нет?
T
07:38
Tim
Я думаю самое близкое это документация фифта
AS
07:38
Artem S
In reply to this message
Понял, буду копать, спасибо
07:40
И ещё вопрос: https://explorer.toncoin.org/ - это open-source? Если да, то где исходный код лежит?
07:55
Deleted Account
In reply to this message
Hex переводится в байты, байты распаковываются в заданную структуру.
07:55
07:57
А так, нужно смотреть, как упаковываются, чтобы знать, во что распаковывать.
AS
07:57
Artem S
In reply to this message
Это понятно) Спасибо
08:02
Deleted Account
In reply to this message
Я пока только шарюсь по исходникам Ton'а, но там есть block-parse, где можешь покопать и узнать, как это работает.
AS
08:02
Artem S
In reply to this message
Где именно? C++ код или JS? Ссыль на репу можно?
AS
08:03
Artem S
In reply to this message
Спасибо, то что надо
08:07
Deleted Account
Ну, и обязательно глянь это.
08:07
Там +- описано, как идёт работа с сырыми данными.
AS
08:10
Artem S
In reply to this message
👍
VM
11:39
Vardan Meliksetyan
У нас есть 2 способа использования кошелька ton

1. депозиты-мульти-кошелек
Здесь мы рассмотрим, как принимать депозиты. У каждого пользователя будет свой депозитный адрес.

2. депозиты-единый кошелек
Здесь мы рассмотрим, как принимать депозиты на единый кошелек.

У меня есть 2 вопроса.
A. Для какой задачи мы можем использовать 1-й или 2-й способ и почему (плюсы и минусы)?
B. И сколько сборов мы должны заплатить за 1 и 2.

Спасибо
AS
11:44
Aleksandr Shepelev
1й дороже, надо собирать деньги на общий еще
2й дешевле, не надо собирать деньги

1й более юзерфрендли на мой вкус)
2й менее юзерфрендли на мой вкус, но чаще юзают его потому что в тоне это в принципе удобно, есть тонлинки и тд)
AC
13:48
AlexNet Crypto
Всем привет! Кто-нибудь соединял MyLocalTon и ton-http-api на windows?
s
15:04
sepеzho.copy
ребят, а для чего этот амоунт нужен?

создание нфт на tonweb
AS
15:04
Aleksandr Shepelev
а ты бесплатно собрался создавать?
s
15:04
sepеzho.copy
это тип деньги, которые переведутся на адрес нфт?
15:04
и с них комса спишется?
NN
15:05
Nick Nekilov
+
s
15:05
sepеzho.copy
окей, а если денег не хватит, то транза не пройдет получается?
NN
15:05
Nick Nekilov
+
s
15:05
sepеzho.copy
т.е. этот амоунт чисто для этого
15:12
еще вопрос по поводу нфт коллекции

что значит селлер фии басис?
15:12
100 это тип сумарно 100 процентов? или как
Г
15:29
Георгий
Какие смарты используют гетгемс?
AT
15:36
Andrey Tvorozhkov
In reply to this message
Свои допиленные)
15:37
Как и мы ;)
s
15:39
sepеzho.copy
роялти 0.05 - это 5%?)
15:39
тупые вопросы, знаю

но я все перепроверяю ща)
15:39
15:39
In reply to this message
вот тут нифига не понятно правда
ИМ
15:39
Илья Михеев
In reply to this message
5/100 = 0.05
s
15:39
sepеzho.copy
In reply to this message
угу, спаибо
A
15:42
Alex 🗿
Как ты кодишь с такими вопросами😁
NN
15:42
Nick Nekilov
In reply to this message
Можно ведь проверять просто попробовав 😅
Г
15:43
Георгий
In reply to this message
Проприетарные?
AT
15:43
Andrey Tvorozhkov
In reply to this message
Мы откроем скоро вместе с тестами
15:44
Думаю гетгемс так же сделает скоро)
AP
16:01
Andrew Python
In reply to this message
Ну фифт-асм можно глянуть в экслорере китов :)
Ф
16:01
Фарид
Народ где можно почитать про токеномику? Основной пул монет до сих пор на нескольких кошельках?
16:02
In reply to this message
А где инфа про токеномику?
ПП
16:04
Просто Паша
In reply to this message
не здесь, тут чисто по технике
White Paper можно почитать, там достаточно подробно все аспекты расписаны
А
16:05
Андрей
In reply to this message
+
Ф
16:05
Фарид
In reply to this message
Да хочу понять сколько монет циркулирует, может основная часть для майнинга или же уже их кто то намайнил, если несколько млрд на 1-2 кошельках, то не есть хорошо
ПП
16:06
Просто Паша
In reply to this message
с вопросом лучше проследовать в общий чат коммьюнити https://t.me/toncoin_rus_chat
чекни поиском, там накидывали картиночки про китов и их балансы
IR
16:42
Ivan Romanovich
Всем привет, я собрал небольшой урок по первому заданию из func contest, надеюсь поможет новичкам:
https://github.com/romanovichim/TonFunClessons_ru/blob/main/1lesson/firstlesson.md

Буду рад предложениям/замечаниям
AP
17:00
Andrey Pfau
In reply to this message
17:00
Send*
IR
17:01
Ivan Romanovich
In reply to this message
спасибо, поправлю
AS
17:39
Aleksandr Shepelev
In reply to this message
bounce флаг
ИК
18:27
Игорь Коняхин
In reply to this message
Изучил контракт для торгов NFT:
https://github.com/ton-blockchain/token-contract/blob/main/nft/nft-sale.fc
а также сопутствующие:
+ nft-item.fc
+ nft-collection.fc
+ nft-marketplace.fc

Я верно понимаю, что:
1) в данной версии контракта`nft-sale.fc` не заложено "гарантированное" (он-чейн) получение royalties от самого NFT, и то что
2) тут выходит расчёт на честность маркетплейса,
3) который должен (вне блокчейна) сделать запрос в nft-collection.fc, прочитать royalty_params
4) и сам выставить параметры royalty_address и royalty_amount при деплое контракта продажи nft-sale.fc
Так?
SC
18:28
Sand Cat
Парни а че с парами по тону на окексе?
ID
18:29
Igor Diakonov
In reply to this message
там где-то в https://github.com/ton-blockchain/TIPs/issues/62 были рассуждения насчёт гарантий получения роялити
AK
18:29
Andrey Kravchenko
In reply to this message
До завтра на 10 утра перенесли
P
18:29
Purple
In reply to this message
Да, что очень странно. Возникает вопрос - почему не могли сразу сделать nft item`ы, которые продают сами себя
ID
18:30
Igor Diakonov
In reply to this message
А по пунктам вроде всё так. По крайней мере, я понимаю так же.
ИК
18:31
Игорь Коняхин
In reply to this message
Изучу рассуждения, спасибо
18:34
In reply to this message
Я пока ещё не 100% разобрался, но тогда стоял бы вопрос не только относительно собственной продажи, но и относительно собственной интеграции с маркетплейсами, что (возможно?) усложняло бы контракт
VM
18:35
Vardan Meliksetyan
Привет всем, мой вопрос:
Я создаю из кода множество кошельков для нашего кошелька, а «Тип контракта» - «неизвестный контракт». Но я заметил, что у некоторых есть "кошелек v4 r2", "кошелек V3". Спасибо
ИК
18:35
Игорь Коняхин
In reply to this message
А нет инфы как обстоят дела с конкретными маркетплейсами?
Как тут раньше упомянули, у них пока что вообще смарт-контракты закрытые
P
18:35
Purple
In reply to this message
Да, вот на счет комиссии маркетплейса в данном варианте будет сложно. Либо при формировании выставлении на продажу передавать плюсом адрес маркетплейса(опять же не гарантирует, что мп укажут). Но в данном случае 100% будет отсыпаться роялти
18:36
In reply to this message
У нас маркетплейс битон, хотим переделать nft item и прийти к функционалу самостоятельной продажи.
18:37
это опять же не мешает стандартам других маркетплейсов, они могут дальше продавать через отдельные смарт-контракты
NA
18:37
Narek Abovyan
In reply to this message
Потому-что типов продаж может быть сколько угодно
18:38
И во-первых сразу придумать все и сразу релизовать невозможно
18:38
Во-вторых никакого смысла столько кода держать в нфт нет
ИК
18:38
Игорь Коняхин
In reply to this message
@visualstudi0
Я писал выше ^ в пункте 4, что можно было бы заложить в самом NFT функционал торгов на маркетплейсе без передачи владельца, но это раздуло бы контракт и (похоже) отсекло бы все сценарии продажи (аукцион и т.п.) кроме чистой продажи за фиксированную сумму
18:39
In reply to this message
Ну код, кажется, в любом случае придётся держать, ведь на каждый nft-item.fc создаётся свой nft-sale.fc, а вот то, что если выносить функционал продажи отдельно, то гораздо больше гибкости - это да
NA
18:40
Narek Abovyan
Не придется
18:40
Если держать все в нфт
P
18:40
Purple
НО все же чаще используемый функционал - продажа NFT. Нашей команде кажется, что лучше уместить это в код NFT item`a и не деплоить каждый раз смарт-контракты
NA
18:40
Narek Abovyan
у тебя там будет и код для фикс прайс продажи
18:40
и код для аукционов
18:40
и для тьмы еще разных типов продаж
18:40
зачем если в конкретный момент будет использоваться только один вариант продажи
ИК
18:42
Игорь Коняхин
In reply to this message
Да, если много типов продаж, то будет больше кода
Я имел в виду, что nft-item+sale приблизительно равно nft-item + nft-sale в случае одного типа продажи, но за счёт выделения nft-sale мы можем иметь разные типы продажи - гибкость
NA
18:43
Narek Abovyan
ну да
P
18:44
Purple
ну и это уменьшает количество действий. Человек хочет выставить нфт - отправляет 1 транзакцию. А если через отдельный смарт-контракт это сразу 2 транзакции. Если минтится новая коллекция - уже 3 транзакции как минимум, дабы поставить ее на продажу, хотя можно будет реализовать с помощью 1 транзакции
NA
18:44
Narek Abovyan
С количеством транзакция беда дикая
18:45
Щас чтобы пачкой выставить на продажу кучу нфт - нужно кучу транзакций сделать, очень больно
P
18:45
Purple
вот именно, если делаем self sellable, то достаточно сминтить сразу с статусом продажи
NA
18:46
Narek Abovyan
Ну я изначально так и планировал делать
OB
18:51
Oleg Baranov
Всем привет, я запилил golang либу для работы с TON - полностью нативная реализация ADNL и лайт клиента
https://github.com/xssnick/tonutils-go

По функционалу сейчас реализована работа с cell+boc, вызов get методов контрактов, получение мастер блока.

Делал по принципу чтобы удобно было развивать, новые фичи и методы относительно просто добавлять не ковыряя сетевой слой. Планирую активно развивать, если есть идеи что добавить то буду рад послушать)

Поддерживает соединение с многими лайт серверами одновременно, балансит запросы, можно использовать многопоточно.
ID
18:51
Igor Diakonov
In reply to this message
Круто! Спасибо, посмотрим.
AP
18:53
Andrey Pfau
In reply to this message
охеренно! Респект, теперь у меня есть куда стремится чтобы не отставать с своей реализацией на котлине :D
18:53
In reply to this message
+
18:55
In reply to this message
кстати не забывай теги проставлять на репозиторий, чтобы через поиск в гитхабе можно было найти твой репозиторий
OB
18:56
Oleg Baranov
In reply to this message
спасибо, поставлю
ИК
20:08
Игорь Коняхин
В контракте продажи NFT
https://github.com/ton-blockchain/token-contract/blob/main/nft/nft-sale.fc
я так понял нельзя цену менять?
Если хочется поменять, то нужно отозвать с продажи, а потом задеплоить новый контракт продажи?
NA
20:09
Narek Abovyan
Конечно
ID
20:10
Igor Diakonov
In reply to this message
Или написать другой контракт где можно будет менять цену
ИК
20:10
Игорь Коняхин
In reply to this message
Ну это уже зависит не от разработчиков конкретных NFT, а от разработчиков маркетплейсов
20:13
Понял, спасибо
P
20:40
Purple
просили передать https://github.com/ton-blockchain/TIPs/issues/79
T
20:49
TON Дев Чат
In reply to this message
Не будет, кто-то сделает маркетплейс который продает нфт через себя и без роялти и вот роялти нет.
Не существует способов гарантировать роялти не делая КАЖДУЮ передачу нфт открытым и публичным аукционом
VO
20:52
Valeriy Osipov
ребят, привет, а как с точки зрения смарт-контракта реализуется концепция "делай чёто-2-earn" - вот бегают ребята в виртуальных кроссовках, наматывают круги, как происходит генерация токенов на их кошелек?
P
20:53
Purple
In reply to this message
это да, никому не мешает все же взять и обмануть всех, сделав сервис без комиссий.
29 April 2022
00:20
丂卄卂Ҝ卂
API tulovlar bilan ishlashni biladiganlar bormi. Yordam kerak
T
03:02
Tim
Пытаюсь поставить ноду, она вообще не синхронизируется, было может у кого такое?
JF
03:20
John Fyodor
In reply to this message
сутки примерно синхронизируется
03:20
стоит проверить не закрыты ли порты
DE
05:11
Dimon Ergiev
Подскажите сколько нода весит и какие требования к железу?
АГ
05:20
Андрей Гулицкий
In reply to this message
В базе данных просто циферка «количество шагов» из мобильного приложения увеличивается. А в момент вывода из приложения токены просто пользователю переводятся, либо минтятся.
05:21
По крайней мере, я другой, более децентрализованной модели не вижу — сложно смарт-контракту доказать, что ты это количество шагов реально прошёл.
?️
07:26
𝐴𝑅𝐸𝐹 𝑆𝑆 ️
What Extension should we use to connect to websites on the Ton blockchain ??
07:37
In reply to this message
🤔
AS
09:14
Aleksandr Shepelev
In reply to this message
это скам
?️
09:15
𝐴𝑅𝐸𝐹 𝑆𝑆 ️
In reply to this message
Какое расширение мы должны использовать для подключения к веб-сайтам на блокчейне Ton ??
OB
10:12
Oleg Baranov
привет, кто знает подскажите плиз, есть cell сериализованый

02 95 000000000000000080051eec1b065126304253957c14810c949f9902ec722d1aa47adb690497b32f7cd0027e457611181313ddf9812a3ef5d3b9dcf80c7f1bdb9ff8d57fc9e74a3ce93c46

насколько я вижу, тут длина 0x95 = 149 октетов, это по идее
000000000000000080051eec1b065126304253957c14810c949f9902ec722d1aa47adb690497b32f7cd0027e457611181313ddf9812a3ef5d3b9dcf80c7f1bdb9ff8d57fc9e74a3ce93c4[0]
в байтовом представлении

но с лайт сервера это приходит с 0x46 на конце вместо 0x40, в лайт клиенте кли это отображается тоже как 0x46, эту 6 на конце можно игнорить или как должно быть? откуда она вообще?) не похоже на часть следующих данных тк там дальше другой cell идет
OB
10:42
Oleg Baranov
In reply to this message
1 бит добавляется в конец неполных байтов, но их там 2 и по центру) 6 = 0b0110

протестил на новом контракте, вернул из функции cell begin_cell().store_uint(0xAABBCCD, 28).end_cell():
получил
00 07 aabbccd8
в этом кейсе выглядит ок, попробую еще кейсов потестить
T
10:55
TON Дев Чат
In reply to this message
95, второй дескриптор d2, это не длина. Это Math.ceil(bitlength / 8) + Math.floor(bitlength / 8);
Соответственно
    const dataBytesize = Math.ceil(d2 / 2);
const fullfilledBytes = !(d2 % 2);
OB
11:05
Oleg Baranov
In reply to this message
но ведь это же как раз и получается длина в октетах)
149/2 получаем длину в байтах, и +1 если байт не полный
11:08
если в лоб то это длина хекс строки в символах)
T
11:09
TON Дев Чат
In reply to this message
ceil(149/2) != 149/2
OB
11:10
Oleg Baranov
+1 как раз если байт не полный, так что тот же ceil
T
11:15
TON Дев Чат
In reply to this message
Тогда вопрос не понял: ceil(149/2)=75.
По классике строка выше была бы 000000000000000080051eec1b065126304253957c14810c949f9902ec722d1aa47adb690497b32f7cd0027e457611181313ddf9812a3ef5d3b9dcf80c7f1bdb9ff8d57fc9e74a3ce93c460
Но в строковом представлении последние полбайта занятые trailing нулями опускают, получается
000000000000000080051eec1b065126304253957c14810c949f9902ec722d1aa47adb690497b32f7cd0027e457611181313ddf9812a3ef5d3b9dcf80c7f1bdb9ff8d57fc9e74a3ce93c46_
Как верно написано выше 6 это 0110 , т.е. учитывая что мы знаем что это неполный байт значащие там только 01, а 10 или 100000 это просто конец строки
s
11:15
sepеzho.copy
ребят, а что эта ошибка значит?)
11:15
тип парс эррор какой-то
T
11:15
TON Дев Чат
In reply to this message
нет такого гетметода у контракта вроде
OB
11:20
Oleg Baranov
In reply to this message
не совсем так, это дата которую получаем:
000000000000000080051eec1b065126304253957c14810c949f9902ec722d1aa47adb690497b32f7cd0027e457611181313ddf9812a3ef5d3b9dcf80c7f1bdb9ff8d57fc9e74a3ce93c46

учитывая ее d2 = 0x95, читаю ее как:
000000000000000080051eec1b065126304253957c14810c949f9902ec722d1aa47adb690497b32f7cd0027e457611181313ddf9812a3ef5d3b9dcf80c7f1bdb9ff8d57fc9e74a3ce93c4

без последней 6, тк длина 596 битов, правильно?
11:21
или этот последний байт нужно читать полностью? но тогда кажется немного странно
T
11:21
TON Дев Чат
In reply to this message
надо читать полностью, сейчас ты просто отбрасываешь неполный байт (теряя два бита в данном случае)
s
11:21
sepеzho.copy
ошибка падает при вызове этого метода на маиннете
OB
11:22
Oleg Baranov
In reply to this message
не совсем отбрасываю, читаю как b & 0xF0
s
11:22
sepеzho.copy
извиняюсь, что так встрял в диалог ваш)
T
11:22
TON Дев Чат
In reply to this message
какой адрес контракта у которого падает гетметод?
OB
11:24
Oleg Baranov
In reply to this message
но суть понял, спасибо, поменяю подход
T
11:24
TON Дев Чат
In reply to this message
в целом, имеет смысл смотреть на всякий tonweb/ton3/ton от китов и прочие либы на js они +- понятно написаны и даже в бою немного тестились
s
11:25
sepеzho.copy
In reply to this message
nftCollectionAddress.toString(true, true, true) выдает вот этот

EQBq4CxwoIQoAKe2DyOIwXGW5UQC5_2uvvhHXFb744b1fUR5
11:26
но что интересно

я эту коллекцию уже деплоил на мэиннет и вот она EQBbLQlL7rMdqXXZG_dY4d8JvaqGGOZguJzqbVl2sveQ4Qhc
11:27
In reply to this message
тип не понимаю почему сейчас другой адрес тот же самый код выдает
T
11:27
TON Дев Чат
In reply to this message
этот аккаунт незадеплоен, соответсвенно у него нельзя вызвать гетметод (в блокчейне просто нет кода и данных которые пытаются вызвать)
s
11:28
sepеzho.copy
окей, буду разбираться спасибо)
DK
11:47
Dan Kamilov
Всем привет. Смартконтракты ввели реализацию? Как их внедрять и тд?
12:13
Deleted Account
Что хранится в msg_value?

() recv_internal(int msg_value, cell in_msg_cell, slice in_msg)
T
12:16
TON Дев Чат
In reply to this message
https://ton.org/docs/#/smart-contracts/tvm_overview?id=initialization-of-tvm
из 5 элементов на стеке первый используется для селектора функции, т.е. чтобы попасть в в recv_internal, соответственно на стеке остаются четыре элемента и recv_internal может быть определен как функция принимающая от 0 до 4 элементов
12:21
Deleted Account
спасибо
OB
12:37
Oleg Baranov
In reply to this message
FYI пофиксил
GG
13:22
Game God
INFO: 🦘 Found existing deploy-wallet [←[32mkQBnrlY7AiMYJGZ7JLv5c3vo3lpAL5G3fEkWktrHSL-5urOx←[0m] (B alance: 0💎, Is inited: False) in C:\Users\Egor\AppData\Local\toncli\toncli
ERROR: 🧓 Deployer contract is not inited yet, please send some TON there and then I can deploy project

Как узнать адрес на который я должен отправить тестовые тон для того чтобы задеплоить контракт?
FK
18:13
Frank Keller
всем привет, а как можно реализовать верификацию кошелька?
C
18:24
Consensus
Всем привет. Кто може помочь задеплоить токен в сети ton по примеру $KOTE?
ИК
18:58
Игорь Коняхин
In reply to this message
Не совсем понятен вопрос
VP
18:58
Vladimir Plotvinov
In reply to this message
Привет, а какой надо - ton wallet или ton keeper?
FK
19:00
Frank Keller
In reply to this message
щас объясню, я делаю бота который должен подтверждать владние кошельком, а потом узнавать есть ли на нем nft коллекции TON Ducks, чтобы потом давать доступ к определенным функциям
19:00
кто то может помочь?
19:01
In reply to this message
а есть разница?
19:01
или ты про веб кошелек спросил:
19:01
?
VP
19:01
Vladimir Plotvinov
In reply to this message
Ага, подумал тебе с веба авторизация нужна
DK
19:02
Dan Kamilov
In reply to this message
Тот же вопрос. Как?
19:03
In reply to this message
Например запрогать контракт на минт нфт из двух других нфт
ИК
19:05
Игорь Коняхин
In reply to this message
Запрогать контракт - только погружаться в FunC
Если деплой простой (просто один экземпляр контракта), то можно деплоить с помощью toncli,
но если что-то хоть немного сложнее, то лучше использовать одну из JavaScript библиотек: tonweb/ton/ton3
19:06
Просто тестировать локально - либо toncli, либо (лучше) ton-contract-executor
VP
19:06
Vladimir Plotvinov
In reply to this message
Тогда наверное только вариант через транзакцию, у disintar видел реализацию, кажется рабочий вариант для бота. Отправляешь с комментом транзакцию и подтверждаешь потом по этому условному хэшу, но может еще какие-то варианты есть
DV
19:06
Dan Volkov
In reply to this message
тебе нужно сжигать две нфт и выпускать новую
C
19:08
Consensus
In reply to this message
Что вы имеете ввиду?
DV
19:08
Dan Volkov
нужно изучить базовую реализацию контракта:
https://github.com/ton-blockchain/token-contract

прочитать стандарт нфт:
https://github.com/ton-blockchain/TIPs/issues/62

на основе этих вводных собрать свой и протестировать, будут ли подтягивать маркетплейсы, будет ли пропадать старые оттуда и т.д.
ИК
19:08
Игорь Коняхин
In reply to this message
> потом узнавать есть ли на нем nft коллекции TON Ducks
Вряд ли это в общем случае решаемая задача:
NFT это по сути индекс: объект => владелец
а вот обратного индекса: владелец => список объектов
вроде бы нет
DV
19:09
Dan Volkov
In reply to this message
попробуй договорись с маркетплейсами - у них есть индексаторы сети и апи по которым можно узнавать владельцев/нфт во владении
FK
19:09
Frank Keller
In reply to this message
disintar как раз писал про то что апи хорошее сделали
DV
19:10
Dan Volkov
In reply to this message
ну вот, напиши @tvorogme
19:10
у гетгемс тоже апи хорошее - @Narek проконсультирует
19:14
In reply to this message
https://github.com/ton-blockchain/token-contract - тут есть папка c ft(fungible tokens)

тебе нужен минтер, он уже будет сам создавать кошельки для людей
C
19:19
Consensus
In reply to this message
Я не разработчик. Мне бы найти разработчика, который мог бы помочь.
DV
19:19
Dan Volkov
тут две тысячи человек, может быть кто-то согласится, конечно же за вознаграждение
C
19:21
Consensus
In reply to this message
Конечно за вознаграждение. Коллеги, напишите мне, если кто-то может помочь с созданием токена на ton. Благодарю.
DV
19:21
Dan Volkov
In reply to this message
верификация кошелька это как?
FK
19:21
Frank Keller
In reply to this message
подтверждение владения кошельком
DV
19:22
Dan Volkov
In reply to this message
вы хотите в боте или на сайте вход через кошелек?
FK
19:22
Frank Keller
In reply to this message
в ботк
ИК
19:25
Игорь Коняхин
getgems при входе с помощью расширения браузера просит что-то подписать
Наверняка можно что-то аналогичное сделать и для бота, может и чуть меньше автоматически:
- вначале выдаётся запрос на подпись
- пользователь в отдельном приложении подписывает
- и копирует подпись в бота
DV
19:25
Dan Volkov
In reply to this message
в боте проще просто маленькие транзы смотреть
SK
19:31
Steve Korshakov
In reply to this message
Getgems просит подписать такое что может запросто положить подпись транзакции обнуляющей баланс, не рекомендую
19:31
В тонкипере и тонхабе уже есть интеграции безопасные для этого
ИК
19:32
Игорь Коняхин
In reply to this message
😄😂🤣
Меня тоже это смутило:
Пожалуйста, подпишите: "as;ldfjq;werjiopsjfdlvjxzvj;sdfkjw;erweer"
Я даже хотел заскриншотить:)
Но я в любом случае с пустого кошелька входил
DV
19:34
Dan Volkov
In reply to this message
https://github.com/ton-foundation/ton-x у нас есть нормальная реализация. аналогичный стандарт присутствует и у тонкипера, это то о чем Стив говорит
Hキ
20:20
Hey 👋, i'm 𝖙𝖍𝖊𝖐𝖎𝖇𝖆! キバ
Всем привет! Подскажите, не могли бы вы дропнуть немного коинов в тестнете или подсказать, где я могу их взять в большом количестве?
AG
20:20
Alex Golev
Кто-нибудь может кинуть тонов в тестенете на кошелёк?
I
20:28
Isaac
Где сейчас лежит актуальный линк тестнет конфига?
VP
20:36
Vladimir Plotvinov
In reply to this message
I
20:39
Isaac
In reply to this message
+
T
21:38
Tim
In reply to this message
В тонхабе уже прямо верификация доступна? Не просто выдача адреса?
SK
21:39
Steve Korshakov
да
21:39
и транзы и вот это вот все тоже есть
NA
21:39
Narek Abovyan
In reply to this message
Ну не выставляй нас злыми
21:39
Проблема же в экстеншоне, а не в нас
SK
21:39
Steve Korshakov
In reply to this message
ну ты не злой
21:40
поставь кстати безопасную подпись хотя бы
NA
21:40
Narek Abovyan
Так там нету в экстоншоне
21:40
Только raw sign
21:40
нене, сам подписывай сразу уже безопасно хотя бы
21:41
(кстати если кто укажет что криво в нашем варианте - велком)
T
21:42
Tim
In reply to this message
Ну раз делаете такой формат, надо было сразу во все тяжкие, чтобы кошелёк мог показать юзер френдли, что же юзер подписывает
SK
21:42
Steve Korshakov
в плане?
21:42
Там все юзерфрендли
21:43
мы просто оборачиваем данные в такой безопасный враппер
T
21:43
Tim
Так там sha256 уже передаётся в клиент
21:43
Я про аналог eip712
SK
21:44
Steve Korshakov
А мы не нашли причин так делать
21:44
большинство подписей - э
21:44
это что-то около легального
21:45
типа "подпишите наши условия использования"
21:45
там две части - текстовая (видимая людям) и на будущее есть еще бинарный формат, он юзеру не показывается но в будущем можно как-то красиво парсить его
T
21:45
Tim
Согласен, но расширение хотя бы должно понимать, писать что подпись опасная или нет
SK
21:46
Steve Korshakov
у нас нет расширения
21:46
и у нас конечно нет небезопасной подписи
T
21:46
Tim
Кошелек/клиент/апи
IM
23:06
Illia Malovanyi
Что такое boc? Это бинарный формат в котором храняться все данные в TON?
DV
23:19
Dan Volkov
SK
23:21
Steve Korshakov
In reply to this message
+
JF
23:23
John Fyodor
In reply to this message
Это сериализованные ячейки в виде байтов
IM
23:26
Illia Malovanyi
In reply to this message
понял, спасибо
30 April 2022
AP
04:23
Andrey Pfau
In reply to this message
Битов*
RM
05:27
Roma MD
доброго дня, только начал изучать блокчейн и смартконтракты. Но столкнулся с полным непониманием как подступиться к этой теме. Подскажите пожалуйста есть ли где ни будь пошаговые уроки или мануал. Понимаю что ТОН это новая сеть и еще толком ничего нет. Но очень хочется разобраться с языком. Благодарю за любую помощь если накидаете ссылок, и ткнете меня носом. 😊 Я полный ноль в этом. Простите за банальщину....
T
05:32
Tim
Если есть желание прямо в грязь залезать - читать вайтпейпер фифт и тон
Если немножечко - посмотреть как устроена работа с кошельками в tonweb/ton
M
06:24
Murat
Всем привет!Разработчики сайтов нужны и люди которые шарят в смартконтрактах блокчейна тона, нужно одну фишку сделать
08:47
Deleted Account
Как смартконтракт переводит монеты между счетами? Не смог найти подобие операций
Balance1 - amount
Balance2 + amount
AP
08:57
Andrew Python
In reply to this message
Между какими счетами?
08:59
Deleted Account
In reply to this message
В тоне нет счетов?
AP
09:03
Andrew Python
In reply to this message
В тоне всё - смарт-контракты. У смарт-контракта просто один баланс.
09:09
Deleted Account
а где именно из этого баланса вычитается сумма?
09:10
например в этом коде
09:19
ты ответов быстрых здесь не получишь, тебе еще нужно поглотить массу информации чтоб разобраться, заполнить пробелы в теории. продолжай копать
09:19
контракты не переводят ничего между счетами, контракты принимают и отправляют сообщения
09:21
транзакция это набор входящих и исходящих сообщений, сообщение втом числе может содержать информацию о переводе
09:22
Deleted Account
а когда я вызываю send_raw_message это получается происходит запись этой транзакции в блокчейн?
В
09:23
Вогонь Запеклих
не совсем, правильнее так: когда происходит запись транзакции в блокчейн, вызываются recv_external котоорые могут генерировать send_raw_message и все они обрабатываются и попадают в транзакцию
09:41
Deleted Account
так, вижу в TonWeb что мы при переводе суммы, конструируем external message, которое читается в recv_external из cs (cell storage). TonWeb ставит op == 0
а recv_external содержит такой код:

if (op == 0) { ;; simple send
while (cs.slice_refs()) {
var mode = cs~load_uint(8);
send_raw_message(cs~load_ref(), mode);
}
return (); ;; have already saved the storage
}


получается, что здесь send_raw_message вызовет recv_internal?
AP
10:06
Andrey Pfau
I
IntelliJ TON Development 30.04.2022 09:58:35
Release 0.8.0 now on JetBrains Marketplace

What’s New?
Impure functions smart-inspections (#17)
TON-specific words in spellchecker dictionary (#16)
Fixed:
Ternary expression statements (#15)
Code suggestions don't show after . (dot) (#13)
10:07
Deleted Account
In reply to this message
>Ternary expression statements
норм, а то они подсвечивались как ошибка
В
10:09
Вогонь Запеклих
In reply to this message
именно, и дальше оно в recv_internal обработается
10:09
ты скорей всего подразумеваешь некий "баланс токена", т.к. баланс контракта это информация в самом блокчейне и обрабатывается она ВМ
10:10
так вот сам контракт может какую угодно логику реализовывать и вести некий "баланс" неких счетов и делать "переводы" между ними
10:11
вот есть коробка, в ней ящик, в нем папки: баланс контракта, состояние контракта, код контракта
10:12
из кода контракта ты можешь только состоянием контракта управлять
10:12
напрямую, складывая какие-то цифры и записывая их в какие-то ячейки, которые могут быть ассоциированы с адресами счетов
T
10:13
TON Дев Чат
In reply to this message
Баланс контракта в ТОНах хранится отдельно (не в сторадже контаркта). И контракт, очевидно, не имеет к нему прямого досутпа на запись. Он может прочитать баланс, может отправить сообщения (которые если успешны - уменьшат баланс, но уже после компьютейшн фазы, а Action фазе)
В
10:13
Вогонь Запеклих
именно это я и пытаюсь сказать)
10:16
Deleted Account
воот да, я исходил из соображений, что наши контракты сами считают грамы, как будто это просто обычный Токен (в доке было написано, что в Тоне всё смартконтракт, вот я и подумал, что мы должны сами считать суммы, и что нет какого-то счетного механизма), а оказывается для грамов он есть
10:16
большое спасибо 🙂
ИМ
10:17
Илья Михеев
Ну, если бы контракт сам пересчитывал баланс то можно было бы считерить и получить бесконечность тонов
10:18
Deleted Account
In reply to this message
да, просто такой случай контролировался бы доверием сообщества к коду смарт-контракта, например его исходный код был открыт, и все видели, что там идет явно баланс1 - amount, balance2 + amount

а раз сама сеть берет на себя эти операции для нативных Gram то это хорошо, меньше будет путаницы
В
10:23
Вогонь Запеклих
замени в голове идею "все вокруг доверяют" на "я не доверяю никому вокруг"
10:25
Deleted Account
это я понимаю, в таких случаях в сети обычно работает консенсус, где выбирается корректный результат, чтобы нельзя было подменить данные на одной из нод
RM
12:06
Roma MD
In reply to this message
да уже начал спасибо.
12:20
уважаемые разработчики ссылка на файл ton-win64-binaries стала expired, перезалейте пожалуйста...

не могу скачать с этой страницы https://github.com/newton-blockchain/ton/actions/runs/1713804021
M
12:33
Murat
In reply to this message
.
N
12:55
Nick
Привет, подскажите, как найти код контракта в тоне ?
c
12:56
cryshado
Всем привет, мой бан истёк 🥳
IM
12:57
Illia Malovanyi
Как я могу поменять (обновить) stdlib с помощью toncli? Я хочу скомпилировать смарт-контракты нфти, у меня похоже старый стдлиб и поэтому там нету пары функций
12:57
In reply to this message
С возвращением :)
DV
13:00
Dan Volkov
In reply to this message
Время получать новый???
c
13:02
cryshado
In reply to this message
Наверстывать упущенное 💪
DV
13:03
Dan Volkov
In reply to this message
А в смартконтрактах когда закончится?
c
13:04
cryshado
In reply to this message
Когда нормально оформят stdlib, придумают версии и будут поставлять stdlib с языком(на то она и стандартная библиотека), а не тянуть с каждым проектом. Или хотя бы добавить заголовок лицензии и положить один нормальный stdlib в репу тона, а не менять его от проекта к проекту. Тогда все будет нормально.

https://github.com/ton-blockchain/ton/issues/334 всем по*** с Feb 10
DV
13:06
Dan Volkov
In reply to this message
Мы поставляем в пакете ton-compiler
IM
13:06
Illia Malovanyi
In reply to this message
насколько я знаю, то как-то решает эту проблему toncli и крепит какой-то дефолтный стдлиб ко всем проектам. я просто не могу найти где лежит этод стдлиб
DV
13:07
Dan Volkov
In reply to this message
А что тебе не хватает? Просто допиши сверху в своём контракте и все
c
13:07
cryshado
In reply to this message
Только всякие примеры nft и токенов от рулоноенотов имеют вроде измененный stdlib, там grams поменяли на coins и вроде еще какие то функции добавлены или отличаются. Я сидел 10 минут заменял названия примитивов в коде на стандартные из репы ton
13:08
In reply to this message
toncli вообще можно не юзать, излишняя не удобная обертка, которая делает иногда так как ты не хочешь