28 July 2022
OB
16:36
Oleg Baranov
In reply to this message
если для ошибки то throw можно
NN
16:36
Nick Nekilov
In reply to this message
Но если сообщение non-bounceable, то он все-равно монеты не получит.
PK
16:37
Peter Krivoschekov
In reply to this message
Спасито, буду пробовать
OB
16:37
Oleg Baranov
In reply to this message
это да, но это решение отправителя)
e
16:42
erievery
Ребят, просил у бота накинуть мне в тестовый кошелёк пару монет, он добавил меня в очередь.
Уже полдня прошло, а монет нету.

Дайте сотню монеток в testnet, пожалуйста. Мне для учёбы, честно честно.

kQDBBf7btVYRBvUTtwGjlS1jQHp-J9WWwd4F1zEwQTpRdSZy
о
16:45
о
In reply to this message
А есть смысл устанавливать Git не на диск C:/ Просто я установил на E:/ и всё тоже самое
16:46
Мб это тупой вопрос, но для меня это может быть не очевидно 🤷‍♂
AB
16:50
Andar Bahar💎
In reply to this message
ГБ
16:50
Гепатит Бэ🏳‍🌈🏳‍⚧🇺🇳
In reply to this message
Каталог с гитом надо добавить в PATH если его там нет
16:50
И перезапустить терминал
о
16:59
о
In reply to this message
Спасибо, попробую
A
17:02
Alexander
Help me pls.

Как я понял, сейчас есть два подхода для взаимодействия с C4 (данными смарта):
1) Постоянно вызываем load_data(), которая возвращает все значения и парсим их: var (name1, name2, ...) = load_data();. После чего нам еще нужно сохранить их, что влечет дублирование кода: save_data(name1, name2, ...);
2) Сделать global name1; global name2; ... Внутри кода вызывать save_data(), которая перезаписывает из глобальных переменных в ячейку C4. Но в этом случае мы во всех функциях вызываем init_data(), так как нам нужно положить значения из C4 (который был заинициализирован при deploy контракта) в значения глобальных переменных.

Есть ли различия с точки зрения TVM в этих случаях? Какой лучше использовать и почему? Подскажите, пожалуйста.

Мб есть подход получше?
І
17:08
Ігор
In reply to this message
кто знает?
SH
18:32
Seitaro Higuchi
In reply to this message
Есть еще подход держать все на стеке.
Когда переменных мало и контракт маленький разумно их в recv_internal/external брать из памяти и дальше в нужные функции передавать. Если контракт большой - стоит использовать global переменные.
Все время читать/писать данные в сторадж дорого, так никто не делает обычно.
A
18:36
Alexander
In reply to this message
Спасибо
18:37
In reply to this message
А есть пример управления со стека?

Если вот это "recv_internal/external брать из памяти" про то , что вначале сообщения делать load_data() , а в конце, если нужно, save_data(), то я это и имел в виду в пункте 1.
SH
18:39
Seitaro Higuchi
In reply to this message
Вот например, в recv_internal один раз лоадим
https://github.com/ton-blockchain/token-contract/blob/main/nft/nft-item.fc#L116
и дальше передаем куда нужно
A
18:40
Alexander
In reply to this message
Ну да, мы тут в C4 ходим, это у меня в п1 написано. Может плохо выразился, извиняюсь.
IL
18:45
Ivan Lukyanov
Добрый день!
Подскажите, пожалуйста, есть ли для контрактов TON стандарт Upgradeable? То есть, можно ли, как в Ethereum, деплоить прокси-контракты и потом их обновлять?
T
18:47
Tim
можно круче, прямо внутри контракта его код перезаписать
IL
18:48
Ivan Lukyanov
In reply to this message
а как именно? можешь плз кинуть какой-нибудь пример или статью
AT
18:50
Andrey Tvorozhkov
In reply to this message
Это мы умеем
18:50
Но там кстати круто это bless
18:51
Типа можно вызвать функцию перед изменением. Это позволяет например провести миграцию c4

IG
19:10
Ilia Gaevskii
https://github.com/getgems-io/nft-contracts/blob/main/packages/contracts/sources/nft-collection.fc#L137

А что такое next_item_index в смартконтракте коллекции?
N
19:11
NMI
In reply to this message
перевести не?
IG
19:13
Ilia Gaevskii
In reply to this message
индекс какого элемента? Что является элементом?
N
19:13
NMI
In reply to this message
Следующий нфт будет с индексом ...

У нфт же есть номера
IG
19:13
Ilia Gaevskii
In reply to this message
Тип они могут не с 0 начинаться?
N
19:15
NMI
In reply to this message
нэт, это типо их кол-во
IG
19:15
Ilia Gaevskii
In reply to this message
Не понял, но ладно
A
19:17
Alexander
In reply to this message
Просто посмотри, где используется, тогда все станет понятно: тут и тут
H
20:17
Hm...
Подскажите пожалуйста а как сделать дэплой контракта в тоне
IG
20:37
Ilia Gaevskii
T
21:21
Tim
Он не битый
21:21
Он особенный
21:21
Смотри как Тонвеб парсит
IG
21:22
Ilia Gaevskii
In reply to this message
И таких примерно все
IG
21:58
Ilia Gaevskii
А как получить методанные по конкретной нфт?

Я посмотрел есть метод get_nft_content но он почему-то возвращает линку без этой нфт. http://nft.animalsredlist.com/nfts/

Тип мне нужно потом подставлять индекс самому? А какой смысл в этом методе тогда?
T
22:00
Tim
В него надо передавать то что возвращает нфт гет дата
IG
22:01
Ilia Gaevskii
In reply to this message
Так Я и передаю
T
22:01
Tim
Ну и все. И работает. Че бухтеть
IG
22:02
Ilia Gaevskii
In reply to this message
ТАк оно возвращает говно. Зачем мне передавать данные об нфт, если она не возвращает данные об нфт?
T
22:02
Tim
Потому что нфт не знает префикс даты коллекции
IG
22:02
Ilia Gaevskii
или тип Я косячу и не передаю данные и по этому оно вовзращает уникальное для коллекции?
22:02
In reply to this message
не понял
T
22:02
Tim
In reply to this message
Скорее всего
22:03
В тонвебе есть либа коллекции и итема, лучше начать с них
22:03
У коллекции есть contentBase, у нфт есть content Url, этот метод их вроде собирает и возвращает
A
22:11
Alexander
In reply to this message
IG
22:18
Ilia Gaevskii
In reply to this message
22:21
In reply to this message
То есть это нормальный принцип работы?

А какой смысл тогда переданных аргументах в эту функцию?

Чот не понимаю..


index в качесте аргумента вообще не используется в функции.
I
22:22
Ihor
Привет
Не могу найти найти поле в объекте транзакции отвечающее за её направление (т.е. IN/OUT)

Я так понимаю его нужно самому добывать сравнением полей destination === targetAddress?

Или есть лучше способ?
22:23
IG
22:24
Ilia Gaevskii
In reply to this message
in_msg это входящее сообщения по этой транзакции, а out_msg это исходящие
22:25
входящее всегда одно, исходящих может быть много
22:25
вроде 256, но не уверен
I
22:26
Ihor
In reply to this message
Благодарю
IG
23:05
Ilia Gaevskii
In reply to this message
ниче не понимаю
T
23:29
Tim
In reply to this message
Иногда нужно выдохнуть и понять, что понимать нечего.
Может кто-то напишет контракт в котором этот индекс будет что-то делать.
Такой формат утвердили в стандарте, теперь живем
Н
23:33
Никита
добрый вечер
что делают эти функции ?
load_fees()
buy()

*примерно понимаю, но не уверен
29 July 2022
І
00:42
Ігор
У меня есть кошель, где есть много разных транзакций, но в том числе, на этот кошель приходят средства с Роялти NFT коллекции
Каким образом я могу отфильтровать все транзации, чтобы понимать, что вот, эти относятся к роялти, а вот все остальные нет

В идеале все это через API делать
SH
08:06
Seitaro Higuchi
In reply to this message
Формат прихода роялти ничем не регулируется, каждый маркетплейс делает по-своему
Возможно имеет смысл сделать рекомендации по этому поводу. Что-то типо
royalty query_id:uint64 collection:(Maybe MsgAddressInt) item:(Maybe MsgAddressInt) = InternalMsgBody

Хотя если маркетплейс агрегирует несколько айтемов или несколько коллекций - надо передавать словари и возможно словарь за какие нфт сколько. В общем это нужно нфт-креэйторам с маркетплейсами выработать позицию, как им будет удобнее, а потом стандартизировать.
ПВ
08:46
Павел Веснин
Можно ли с помощью tonweb задеплоить контракт не из стандарта нфт и с ним взаимодействовать? Есть примеры?
AK
09:52
A K
Где-то есть документация по TON Proxy и описание, как его можно использовать. Релиз TON Proxy намечен на q3 2022, вроде как должна уже быть документация
09:54
И подскажите, как подключиться в качестве узла в TON ADNL Network. Может есть примеры кода на гитхабе? Цель - запуск side-chain в TON ADNL сети.
ЕЖ
10:31
Евгений Жуков
Здравствуйте, подскажите пожалуйста, почему я не могу проверить свой счёт и снять свои намайненые ТОN. Захожу @WhalesPoolBot и не могу проверить свой баланс и переслать намайненые ТОN, что мне делать?
А
10:34
Андрей
In reply to this message
Майнинг закончился, бота отключили, писать их чат или в их техподдержку. Ссылка на их чат в описании бота
PK
11:31
Peter Krivoschekov
Привет
Подскажите как получить аддрес, того кто отправил токины в контракт
DK
11:45
Dmitry Korobeynikov
Добрый день! Подскажите, пожалуйста, как по адресу понять, что он является смарт-контрактом продажи NFT? Есть какой-нибудь api для определения типа адреса - обычный кошелёк, смарт продажи, NFT и т.д.?

Вот пример адреса смарт-контракта продажи - EQDHWKvpCM3IJwvPmSRvOeg_lueRKlXJ9xUhWj-KWLBogfN7
OB
11:50
Oleg Baranov
In reply to this message
привет, можнно по хэшу кода, либо если кастомные тоже нужно распознавать, то можно по наличию гет методов
DK
11:50
Dmitry Korobeynikov
In reply to this message
А как по хэшу это определить? Есть описание?
OB
11:51
Oleg Baranov
могу на голэнге показать)
11:52
если в целом то - дергаешь гет аккант от лайтсервера, там возвращается код контракта в cell, берешь от него хэш, у всех контрактов с одним кодом он будет одинаковым
11:54
In reply to this message
привет, если на FunC внутри контракта то -

() recv_internal(int my_balance, int msg_value, cell in_msg_full, slice in_msg) impure {
slice cs = in_msg_full.begin_parse();
int flags = cs~load_uint(4);
slice sender_address = cs~load_msg_addr();
<- вот
11:56
In reply to this message
если из внешки - то получать список транзакций контракта и там смотреть отправителя
11:58
In reply to this message
можно, отправить сообщение с заполненым stateInit, туда пихнуть код и начальные данные контракта
12:00
In reply to this message
но прям детали по тонвебу не могу подсказать, могут быть моменты всякие дополнительные
D
12:04
Daniil
[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "LITE_SERVER_UNKNOWN: cannot apply external message to current state : External message was not accepted".] {
code: 'ERR_UNHANDLED_REJECTION'
}

О чём может означать ошибка?
R
12:42
Roma
In reply to this message
getAccountEvents в tonapi.io, возможно найдете там это
OB
12:52
Oleg Baranov
In reply to this message
возможно кошель/контракт не инициализирован
R
13:00
Rodion
есть мощный nodejs разраб? который шарит за стримы? нужна консультация $
о
13:16
о
In reply to this message
У меня почему-то таже проблема, когда устанавливаю pip install ton
Git установил в PATH есть

Может быть версия не та?

Так кстати происходит с другими некоторыми модулями, которые я качаю (скрин 2)
13:16
In reply to this message
S
13:18
Sam
Ищу TON-разработчика
Мобильная NFT игра
Необходимо разработать смартконтракт + авторизацию через Tonkeeper
ГБ
13:42
Гепатит Бэ🏳‍🌈🏳‍⚧🇺🇳
In reply to this message
Можно попробовать делать это из командной строки от имени администратора, но я не питонист
AK
14:52
A K
In reply to this message
Ищу консалтера! Скажите, есть в чате хоть кто-то, кто разбирается и может консультировать по исходника TON ноды и работе с ADNL? На возмездной основе
AP
14:54
Andrey Pfau
In reply to this message
А что конкретно нужно?
VK
14:55
Vudi Kingyru
In reply to this message
Там хранилище делают)
AK
14:56
A K
In reply to this message
В конечном счёте поднять side-chain в ADNL TON Network. С пониманием как эта часть работает в TON, чтобы малой кровью
15:06
Deleted Account
добрый день, пожалуйста, как я могу участвовать в Ton Network?
VK
15:06
Vudi Kingyru
In reply to this message
Ты уже тут )
AP
15:07
Andrey Pfau
In reply to this message
ADNL это просто протокол общения между пирами. Не совсем понятно что вы подразумеваете под сайд чейном
AK
15:13
A K
In reply to this message
Термин side-chain употребляется в белой бумаге TON от 2021 года :) вчера сам узнал про такой, раньше думал, что обязательно, если нужно общаться с work-chain-0 от другого блокчейна нужно делать это будучи другим work-chain’ом. Но как оказалось, можно сделать отдельный side-chain (не регистрируемый в master-chain) и посылать подписанные сообщения, а на стороне TON chain’а в Смарт-контракте проверять подпись. Есть желание запустится в сети TON (будучи обычным пиром, а не валидатором), чтобы ещё иметь возможность использовать TON Proxy, для анонимизации.
AP
15:15
Andrey Pfau
In reply to this message
Можно страницу на которой это написано?
15:15
Мне кажется вы не верно поняли суть
SH
15:15
Seitaro Higuchi
In reply to this message
Вы про пеймент каналы?
AK
15:15
A K
In reply to this message
То что ADNL просто протокол, это понятно. Не копался в исходниках, и искал кого-то, кто может быстро подсказать, а вот эта библиотека тут, пользоваться по примеру так-то.
T
15:15
Tim
То что вы описываете больше на l2 сеть похоже
AK
15:16
A K
In reply to this message
Не совсем. Garlic маршрутизация работает по умолчанию или для этого и нужен TON Proxy?
AP
15:16
Andrey Pfau
In reply to this message
Ton Proxy ещё не готов, сообщения смартконтракту через лайт клиент можно отправлять. Что конкретно нужно?
AK
15:16
A K
In reply to this message
Чуть позже поищу, и дам репост с переписки в другом канале
AP
15:17
Andrey Pfau
Я помню вашу дискуссию в Ton Society, вы там обсуждали реализацию нового воркчейна
AK
15:17
A K
In reply to this message
Запустить отдельную распределённую сеть внутри TON Network
AP
15:17
Andrey Pfau
Но все ещё не понятно зачем вам воркчейн/сайдчейн
15:18
In reply to this message
Ну а для чего?
AK
15:18
A K
In reply to this message
Мне указали дословно: используйте side-chain
AP
15:19
Andrey Pfau
Какие цели у отдельной распределенной сети?
AK
15:23
A K
In reply to this message
Децентрализованное хранилище с определёнными свойствами, удовлетворяющими этическим и законодательным требованиям для хранения персональных данных. Там нужно даже 2 доп. сети
AP
15:24
Andrey Pfau
In reply to this message
Это не ответ на вопрос
15:24
Для чего нужна сеть
AT
15:24
Andrey Tvorozhkov
In reply to this message
Нужно больше сетей))
15:25
(извините)
AP
15:26
Andrey Pfau
In reply to this message
Если вам нужно передавать данные из А в Б это можно сделать и через обычный аднл, если нужен стриминговый протокол - то это RLDP, зачем вам отдельная сеть для этого? Какие проблемы она решать будет?
AK
15:32
A K
In reply to this message
Построение дополнительной оверлейной сети не планируется и не планировалось. Запрос, как с использованием Аднл построить кластер. Вопрос именно для того, чтобы побыстрее разобраться, куда в исходника смотреть.
T
15:33
Tim
аднл такую проблему не решает
AP
15:35
Andrey Pfau
In reply to this message
какой кластер для чего
15:35
пожалуйста более детально излагайте мысли
AT
15:35
Andrey Tvorozhkov
In reply to this message
технологический)
AP
15:36
Andrey Pfau
нет блин кубернетес
AT
15:36
Andrey Tvorozhkov
In reply to this message
Это мы умеем)
15:36
Только не по adnl 😰
AP
15:36
Andrey Pfau
ага запускать приложения в TVM
15:36
а чо звучит
AK
16:08
A K
In reply to this message
Аднл это протокол в сети. Понятно что он не решает, а решает решения использующие (или не использующие) протокол. Так как в Ton совсем недавно, могу написать и что-то не то, спасибо, что поправляете. Но от пира к пиру сообщения в сети тон отправляются по Аднл и рлдп. У меня задача (упрощу), создать несколько пиров в сети и отправить друг другу сообщения. В какую точку исходников смотреть, чтобы перебрать по минимуму? Есть ли примеры? :)
T
16:08
Tim
Есть клиенты на аднл на разных языках
T
16:08
Tim
AP
Andrey Pfau 12.07.2022 08:24:18
AK
16:10
A K
In reply to this message
+
16:22
In reply to this message
Я, если честно, не очень понимаю, чего от меня хотите услышать детальнее. За отсылку к Лайт клиенту спасибо. Ещё вопрос. Верно ли, что чтобы получать сообщения, сейчас нужно зарегистрация ip адреса в TON dht? В клиенте на который дал ссылку @TrueCarry эта часть тоже есть?
AP
16:23
Andrey Pfau
In reply to this message
да, к тому же IP должен быть публичным, статическим. За NAT работать не будет
AK
16:25
A K
In reply to this message
А есть какая-то возможность быть пиром сети за натом?
AP
16:25
Andrey Pfau
пока нет
VD
17:16
Victor Dm.
Народ у кого такая проблема была, кто как решил
could not import github.com/mercuryoio/tonlib-go (no required module provides package "github.com/mercuryoio/tonlib-go")compilerBrokenImport
?
17:17
И вот еще
ld: warning: ignoring file ../../../../pkg/mod/github.com/mercuryoio/tonlib-go@v1.2.0/lib/darwin/libtonlibjson.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
IG
17:38
Ilia Gaevskii
Привет. А чтобы достать информацию формата IPFS (ipfs://QmYLEBukid9iNnejVXZJLSCC3ycXhYBAsFGiAntT5e2B4d/39.json)
То надо установить отдельную ГОшную либу?
T
17:40
Tim
Любую ipfs либу
17:41
Либо просто прокси от клаудфлера например
IG
17:41
Ilia Gaevskii
In reply to this message
А можно поподробнее пожалуйста?*
T
17:41
Tim
IG
17:42
Ilia Gaevskii
In reply to this message
Спасибо
VD
17:52
Victor Dm.
In reply to this message
Тут я смогу запустить на Маковском процессоре или нет?
TM
18:47
Tolstiy Man
Ребята, подскажите, как расшифровать запрос к смарт - контракту?
18:47
Cell я понимаю в hex, но он делится как-то
18:48
Как извлеч адрес и т.д
ID
18:49
Igor Diakonov
In reply to this message
Уроки по FunC для TON/FunC lessons for TON (The Open Network)
https://t.me/ton_learn
18:50
Хотя, там несколько не то...но тож пригодится....
TM
18:50
Tolstiy Man
Нето
18:50
Я смотрел
18:50
Щас пример приведу
18:51
Ответ Lite Client
[ 0 1179211856 -1 1658677363 CS{Cell{01dbb16eb439c001ecdb7672d5b0b4aaf2d9d5573687c7190aa6849804d9e7d7aef71975ac03e2e80114da1be1cbc0c160b8c9fe8544357b0b51648c0cc2e08b22625b3fafbc153c2f0029fa6e6c25ca3187a5002ed35b40afc26b2ff086c6ed3127621e81c34595b261d429e8d60802} bits: 33..300; refs: 0..0} CS{Cell{01dbb16eb439c001ecdb7672d5b0b4aaf2d9d5573687c7190aa6849804d9e7d7aef71975ac03e2e80114da1be1cbc0c160b8c9fe8544357b0b51648c0cc2e08b22625b3fafbc153c2f0029fa6e6c25ca3187a5002ed35b40afc26b2ff086c6ed3127621e81c34595b261d429e8d60802} bits: 300..567; refs: 0..0} CS{Cell{01dbb16eb439c001ecdb7672d5b0b4aaf2d9d5573687c7190aa6849804d9e7d7aef71975ac03e2e80114da1be1cbc0c160b8c9fe8544357b0b51648c0cc2e08b22625b3fafbc153c2f0029fa6e6c25ca3187a5002ed35b40afc26b2ff086c6ed3127621e81c34595b261d429e8d60802} bits: 567..834; refs: 0..0} 45000000000 CS{Cell{008f801129c90bbaadb619db22a6d3fbb6140d37ec911428b50465991dcc856da55c7f810022539217755b6c33b6454da7f76c281a6fd92228516a08cb323b990adb4ab8ff10ec08ce02} bits: 0..267; refs: 0..0} 0 CS{Cell{008f801129c90bbaadb619db22a6d3fbb6140d37ec911428b50465991dcc856da55c7f810022539217755b6c33b6454da7f76c281a6fd92228516a08cb323b990adb4ab8ff10ec08ce02} bits: 271..538; refs: 0..0} 990000000 ]
remote result (not to be trusted): [ 0 1179211856 -1 1658677363 CS{Cell{01dbb16eb439c001ecdb7672d5b0b4aaf2d9d5573687c7190aa6849804d9e7d7aef71975ac03e2e80114da1be1cbc0c160b8c9fe8544357b0b51648c0cc2e08b22625b3fafbc153c2f0029fa6e6c25ca3187a5002ed35b40afc26b2ff086c6ed3127621e81c34595b261d429e8d60802} bits: 33..300; refs: 0..0} CS{Cell{01dbb16eb439c001ecdb7672d5b0b4aaf2d9d5573687c7190aa6849804d9e7d7aef71975ac03e2e80114da1be1cbc0c160b8c9fe8544357b0b51648c0cc2e08b22625b3fafbc153c2f0029fa6e6c25ca3187a5002ed35b40afc26b2ff086c6ed3127621e81c34595b261d429e8d60802} bits: 300..567; refs: 0..0} CS{Cell{01dbb16eb439c001ecdb7672d5b0b4aaf2d9d5573687c7190aa6849804d9e7d7aef71975ac03e2e80114da1be1cbc0c160b8c9fe8544357b0b51648c0cc2e08b22625b3fafbc153c2f0029fa6e6c25ca3187a5002ed35b40afc26b2ff086c6ed3127621e81c34595b261d429e8d60802} bits: 567..834; refs: 0..0} 45000000000 CS{Cell{008f801129c90bbaadb619db22a6d3fbb6140d37ec911428b50465991dcc856da55c7f810022539217755b6c33b6454da7f76c281a6fd92228516a08cb323b990adb4ab8ff10ec08ce02} bits: 0..267; refs: 0..0} 0 CS{Cell{008f801129c90bbaadb619db22a6d3fbb6140d37ec911428b50465991dcc856da55c7f810022539217755b6c33b6454da7f76c281a6fd92228516a08cb323b990adb4ab8ff10ec08ce02} bits: 271..538; refs: 0..0} 990000000 ]
18:53
Ответ через API Request
{"ok":true,"result":{"@type":"smc.runResult","gas_used":1060,"stack":[["num","0x46495850"],["num","-0x1"],["num","0x62dd6873"],["cell",{"bytes":"te6cckEBAQEAJAAAQ4AD2bbs5athaVXls6qubQ+OMhVNCTAJs8+vXe4y61gHxdBlQoxK","object":{"data":{"b64":"gAPZtuzlq2FpVeWzqq5tD44yFU0JMAmzz69d7jLrWAfFwA==","len":267},"refs":[]}}],["cell",{"bytes":"te6cckEBAQEAJAAAQ4ARTaG+HLwMFguMn+hUQ1ewtRZIwMwuCLImJbP6+8FTwvD4xUIt","object":{"data":{"b64":"gBFNob4cvAwWC4yf6FRDV7C1FkjAzC4IsiYls/r7wVPC4A==","len":267},"refs":[]}}],["cell",{"bytes":"te6cckEBAQEAJAAAQ4AU/Tc2EuUYw9KAF2mtoFfhNZf4Q2N2mJOxD0DhosrZMPC6JMo+","object":{"data":{"b64":"gBT9NzYS5RjD0oAXaa2gV+E1l/hDY3aYk7EPQOGiytkw4A==","len":267},"refs":[]}}],["num","0xa7a358200"],["cell",{"bytes":"te6cckEBAQEAJAAAQ4ARKckLuq22GdsiptP7thQNN+yRFCi1BGWZHcyFbaVcf5B/CukY","object":{"data":{"b64":"gBEpyQu6rbYZ2yKm0/u2FA037JEUKLUEZZkdzIVtpVx/gA==","len":267},"refs":[]}}],["num","0x0"],["cell",{"bytes":"te6cckEBAQEAJAAAQ4ARKckLuq22GdsiptP7thQNN+yRFCi1BGWZHcyFbaVcf5B/CukY","object":{"data":{"b64":"gBEpyQu6rbYZ2yKm0/u2FA037JEUKLUEZZkdzIVtpVx/gA==","len":267},"refs":[]}}],["num","0x3b023380"]],"exit_code":0,"@extra":"1659110000.212571:4:0.1095335715914697"}}
18:53
обычный запрос sale nft контракта
TM
19:08
Tolstiy Man
Как расшифровать ?
VD
19:48
Victor Dm.
In reply to this message
Народ, не у кого не было такое? Я думаю я не один на маке с новым процессором
T
19:48
Tim
Тонлиб го мертвый же
ОБ
19:56
Олег Борзов
Господа, а кто нибудь знает адрес мейннетовского контракта DNS?
А
20:04
Андрей
In reply to this message
EQCwla7t0U-R1BN5vzSzm-zouuV6Dqv22P6X9iS2r4APame5

А если серьезно, то завтра станет известно dns.ton.org
A
21:13
Alexander
Я тут небольшой startup шаблон накидал, чтобы было с чего начинать писать смарты, а то каждый по своему сейчас делает, иногда довольно криво.

Хочется структурку поднять в 2 шага и пошел писать .fc/.fif

Было бы здорово, если взрослые посмотрели и подсказали, что поправить. Личка всегда открыта)

toncli внутри используется, например для тестов и get методов, но хочется бОльшей гибкости и понимания того, что делаешь. (об этом мы тут говорили, можете сравнить simple vs advanced версии)

PS: сообщение продублирую еще в ближайшие дни, не баньте за спам. Хочу, чтобы дошло до опытных TONовцев.
VD
21:29
Victor Dm.
In reply to this message
Как мертвый? А что тогда есть живое?
ID
22:04
Igor Diakonov
In reply to this message
22:04
Tonlib-go вам не надо....поверьте )
VD
22:07
Victor Dm.
🙏 спасибо, посмотрю
A
22:34
ATOM 150 monero 500 btc 120000
Подскажите есть ли api что бы создать кошелёк и получить его адрес, а то в официальной документации веб апи не нашёл такой функции
Или это делается только через библиотеки подключения к самому блокчейну и такое api придётся писать самому и развертывать у себя на сервере такое api?
Или есть ли уже готовое api для получения seed фразы и адреса тон и управления им на простых запросах пост гет?
NN
22:40
Nick Nekilov
In reply to this message
Всё это есть в сборнике примеров tonweb.
A
22:40
ATOM 150 monero 500 btc 120000
In reply to this message
Можно ссылку на сборник?
NN
22:41
Там в папке src есть файлы с префиксом „test-„ - в них много интересного.
A
22:43
Alexander
In reply to this message
https://ton.org/docs/#/payment-processing/common

Тут примеры есть
АТ
22:53
Андрей Турбин
Подскажите по editable, плз. Есть возможность в смартконтракте задать время через которое изменится содержимое NFT?
То есть, минтим NFT и через X часов меняется пикча.
SH
22:56
Seitaro Higuchi
In reply to this message
есть, для этого он даже не должен быть editable (можно же на уровне контракта сделать что до часа Х от отдает А, а после Б) и руками эдитора в него не лазить.
АТ
22:58
Андрей Турбин
In reply to this message
О, точно. Спасибо!
30 July 2022
S
01:43
Serg 💤
Подскажите может кто сталкивался, выдает ошибку PaymentChannel.js:73 что не так? может какие еще модули-пакеты нужно установить /root/node_modules/tonweb/src/contract/payments/PaymentChannel.js:73
closingConfig.bits.writeUint(this.options.closingConfig?.quarantineDuration || 0, 32); // quarantin_duration
^
SyntaxError: Unexpected token .
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/root/node_modules/tonweb/src/contract/payments/index.js:1:26)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
NN
01:48
Nick Nekilov
In reply to this message
Полагаю что у вас очень старая версия Node.js.
S
02:11
Serg 💤
да вы правы
02:11
все получилось
M
12:39
MyTons
In reply to this message
Какой язык программирования?
A
13:23
ATOM 150 monero 500 btc 120000
In reply to this message
Python
D
13:35
Daniil
account - с которого отправили, или на который отправили?
TF
14:45
Ton Fighter
Всем привет, пытаюсь отправить тестовый платеж через toncenter, выдает ошибку

'LITE_SERVER_UNKNOWN: cannot apply extern
al message to current state : Failed to unpack account state'
} reason: LITE_SERVER_UNKNOWN: cannot apply external m
essage to current state : Failed to unpack account state

В чем может быть проблема ?
T
14:46
Tim
Неправильный пейлоад
TF
14:47
Ton Fighter
In reply to this message
Спасибо
16:02
Deleted Account
А как подписывать данные через tonweb кошельком, который в расширении? В dapp-example этого нет(
A
16:41
Anime AI
всем привет, если я приобрету dns имя на ton dns, он навсегда станет моим?
D
16:42
Daniil
In reply to this message
Да, только каждый год надо слать любую транзакцию для подтверждения
A
16:42
Anime AI
In reply to this message
спасибо
S
17:28
Stas
Guys how to w8 until 1 confirmation in tonweb? like tx.wait() in ethers
17:28
Парни как дождаться 1 конфирма в tonweb ?)
AS
17:29
Aleksandr Shepelev
нет такой функции, нужно трекать по секно кошелька
S
17:35
Stas
In reply to this message
А как это сделать? Можете подсказать плиз?
D
17:36
Daniil
In reply to this message
Здесь можно на русском, для английского есть английский чатик, ссылочка в описании этого чата
(просто для информации)
AS
17:38
Aleksandr Shepelev
In reply to this message
const seqno = (await wallet.methods.seqno().call()) || 0;
await wallet.methods.transfer({...});

let newSeqno = seqno;

while (newSeqno === seqno) {
newSeqno = (await wallet.methods.seqno().call());
await sleep();
}


суть примерно такая, проверки и тд над напилить и прочее
S
17:38
Stas
Спасибо
A
17:43
Anton
Всем привет. Есть способ получить 1к тестовых монет?
F
18:36
F
In reply to this message
Мне в личку с описанием зачем, на что, сколько, адрес кошелька и ссылкой на код (если открыто)
DS
18:55
Daniil Sedov
Интересно зачем может понадобиться столько тестовых монет...
ЕЗ
19:02
Евгений ЗЕВс
Всём привет. Подскажите разработчика телеграм бота, интегрированного в тон. Для помощи в создании нфт для животного. Одна собака, одно нфт, к примеру. А то у меня приют 35 собачек. И всё они хотят иметь хозяина. Так это получается живое нфт. 😊
T
19:05
Tim
In reply to this message
Задеплоить немного нфт
DS
19:06
Daniil Sedov
In reply to this message
Наверное много нфт 😅
с
19:16
сергей
In reply to this message
домен из 4 букв купить может 😅
S
19:47
Stas
In reply to this message
По аналогии если я например хочу tx.wait(5) - 5 конфирмов, мне нужно ждать пока секно не сменится 5 раз?
AS
19:48
Aleksandr Shepelev
In reply to this message
Нет, тебе не нужно 5 конфирмов
S
19:48
Stas
Ну теоретически
AS
19:48
Aleksandr Shepelev
Увеличение секно значит что транзакция ушла и принята сетью
19:48
Дальше увеличиваться ничего не будет
S
19:49
Stas
А как отследить тогда количество блоков над моей транзой
19:49
Не то чтобы на практике это сильно надо
19:49
Но просто интересно
AS
19:51
Aleksandr Shepelev
Ищешь транзакцию в своём кошельке, смотришь в каком она блоке, берёшь текущий блок сети и считаешь
19:51
Но ещё раз, это не нужно. Нужно только отследить что транзакция принята. Это не биток и не эфир
S
19:52
Stas
Понял принял
19:52
Спасибо
T
20:08
Tim
In reply to this message
А почему кстати не нужно следить за >1 блоком? Какие в Тоне гарантии, что не будет другого чейна?
AS
20:16
Aleksandr Shepelev
In reply to this message
Как и в любом посе? Если нет консенсуса, бч встанет, альтернативных цепочек нет
T
20:17
Tim
в бинансе все ждут 15 конфирмов
AS
20:35
Aleksandr Shepelev
In reply to this message
В бнб? Или на бирже?
На бирже бинанса у того же EOS 1 confirmation
VS
20:39
Victor Shpaga
Вечер добрый. Подскажите, конструкции по типу
(key, slice cs, int f) = dic.udict_get_next?(265, key);
Это что (выделено жирным)? Выглядит как набор аргументов без объявления функции, непонятно ничего
АГ
20:41
Андрей Гулицкий
In reply to this message
Функция возвращает кортеж, а в конструкции совершается его деструктурирование в локальные переменные.
VS
20:42
Victor Shpaga
In reply to this message
То есть это условно говоря конструктор?
20:42
Как в классах в плюсах
S
20:44
Stas
Ну нет
20:44
Это деструктуризация наверное
АГ
20:52
Андрей Гулицкий
In reply to this message
Нет, функция udict_get_next возвращает не одно, а три значения. И в этой конструкции мы просто записываем эти три значения в локальные переменные.
20:52
В плюсах не знаю, но в JS есть подобная операция.
VS
20:52
Victor Shpaga
In reply to this message
Спасибо, уже понятнее!
АГ
20:52
Андрей Гулицкий
Ещё в Питоне, наверное, там есть тип «кортеж».
A
21:09
Alexander
In reply to this message
Продублирую еще завтра и в понедельник. Кто давно на TON, подскажите, какая структура лучше для больших проектов? Думаю, все поучатся у вас.

Спасибо!
ON
21:10
Olya Nemo
Привет всем.
Просветите невежу, плиз.
1)Какие условия и функции должны быть на блокчейне, чтобы построить DApps?
2) Есть ли все необходимое прям сейчас для этого на TON?
3) На каком языке принимает DApps TON?
4) Необходимы ли стейблы, чтобы запустить дебота для бизнеса?

Можете ругать, если вопросы не совсем корректно заданы).
21:13
Прям хочу разобраться.
VS
21:21
Victor Shpaga
Подскажите ещё, не удалось найти, у
throw (12) если я правильно понимаю аргумент — это код ошибки. Где можно посмотреть все возможные аргументы throw?
NN
21:31
Nick Nekilov
In reply to this message
Здравствуйте, Ольга.

1. DApp это приложение взаимодествующее со смарт-контрактами. В идеале, любой может поднять копию приложения и оно будет работать. Приложение читает данные из смарт-контракта и вносит изменения взамодействуя со смарт-контрактами (отправляя транзакции на него). Это всегда так, но как правило это так.
2. Все необходимое есть, но комфорт разработки оставляет желать лучшего.
3. Смарт-контракты пишутся на FunC, а приложение взаимодействующее со смарт-контрактом может быть на чем угодно. Главное чтобы были иструменты либо для работы с HTTP API (оно же toncenter) либо с Lite Server'ом напрямую по ADNL. Сейчас еще разрабатывается язык Tact, но когда он увидит свет - неизвестно. Так же есть умельцы которые собирали контракты Solidity (который от Everscale).
4. "Стейбл" это особенности той или иной монеты, а Debot это технология для построения ботов. Вещи несвязанные.
ON
21:38
Olya Nemo
In reply to this message
Nick, спасибо Вам за подробный ответ. В целом, понятно. Кое-что буду еще уточнять в инете.
Так и знала, что ляпну)😄 Уж простите.
Спасибо за блокчейн🔥❤️
VK
21:38
Vudi Kingyru
In reply to this message
Понимаю, суббота, но.. Заканчивай с алкоголем, так и контракты начнёшь писать на fc))
AT
21:49
Andrey Tvorozhkov
In reply to this message
согл, согл. главное не обещать себе ничего. Я вот хотел друзьям NFT подарить, а в итоге Disintar сделали 😰🤯
VD
22:03
Victor Dm.
Добрый вечер коллеги, кто юзал https://github.com/xssnick/tonutils-go, как hash получить от этой структуры tlb.Transaction?
OB
22:34
Oleg Baranov
In reply to this message
Привет, сейчас наверное никак, может только если хэш от целла изначального брать, но попробую добавить если нужно в одном из следующих обновлений его расчет.

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

А какой юз кейс у тебя?
VD
22:38
Victor Dm.
Но я сохраняю транзакции при пополнении кошелька, это нужно последний транзакции из бд потом брать и от туда смотреть следующие транзакции для пополнения, а также чтобы не скопировать транзакции еще
OB
22:39
Oleg Baranov
In reply to this message
Тут наверное даже лучше сканировать блоки, там будет хеш и лт транзакций
22:39
Глянь там экзампл есть блок скана
VD
22:40
Victor Dm.
Окей, сейчас гляну
T
22:45
Tim
In reply to this message
А у транзакции реально можно посчитать хеш? Я думал там какой то рандом
OB
22:52
Oleg Baranov
In reply to this message
Подозреваю там просто хеш целла транзакции, но надо глянуть еще будет. Если и можно посчитать то только после попадания в блок мне кажется
VD
22:57
Victor Dm.
In reply to this message
Вроде подходит решение, завтра более детально посмотрю
e
23:43
erievery
Ребят, а как, имея приватный ключ, залогиниться в кошелёк, или узнать сид фразу?
VK
NN
23:44
Nick Nekilov
In reply to this message
Типа тонкипера?
e
23:44
erievery
In reply to this message
Да
NN
23:45
Nick Nekilov
Только приватный ключ без сид фразы?
23:45
Никак 🤷‍♂️
e
23:45
erievery
In reply to this message
Да. Проц быстрее адрес нашёл, чем гпу.
A
23:46
ARS
In reply to this message
Не ну сид фразу же можно получить
23:47
Нужно чтобы кошелек от которого у тебя ключ использовал тот же код что и кошелек в который хочешь залогиниться
IG
23:50
Ilia Gaevskii
А кто-то знает апи по которому можно вытягивать цену тона в долларах в определенный момент времени?
NN
23:50
Nick Nekilov
Гекокоин отдаёт
VK
23:57
Vudi Kingyru
In reply to this message
getCoinPrice https://ton.sh/api
IG
23:59
Ilia Gaevskii
In reply to this message
Как понимаю это в реал тайме, а мне нужно за определенную временную метку
NN
23:59
Nick Nekilov
In reply to this message
Geckocoin
31 July 2022
y
00:13
yakogavasimatta
In reply to this message
CoinGecko*
NN
00:14
Nick Nekilov
In reply to this message
D
00:29
Daniil
А на что нужно ориентироваться как на id транзакции, на хэш или на lt?
NN
00:29
Nick Nekilov
In reply to this message
Адрес + lt
D
00:31
Daniil
In reply to this message
Адрес с которого послали, или на который?
NN
00:33
Nick Nekilov
In reply to this message
Адрес контракта с которым происходит взаимодействие.
D
00:34
Daniil
In reply to this message
Спасибо
00:41
А есть возможность получить реальное время транзакции?
NN
00:44
Nick Nekilov
Насколько помню, в теле транзакции есть временная метка
D
00:45
Daniil
In reply to this message
Точно, не заметил сначала
D
01:09
Daniil
А можно как-нибудь получить несколько транзакций начиная с первой, которая произошла с адресом? А то только последние возвращаются
NN
01:24
Nick Nekilov
Насколько помню - нельзя. Нужно просто лезть вглубь истории пока не нащупаешь дно.
D
01:24
Daniil
In reply to this message
Понял, спасибо
T
02:51
Tim
А сорцы dns есть в открытом доступе?
T
02:59
Tim
In reply to this message
+
D
03:26
Daniil
Я правильно понимаю что на каждый аукцион создаётся новый контракт? Первая ставка идёт на общий, а все остальные по этому DNSу на новый контракт?
AB
03:27
Alexandr Belkovsky
In reply to this message
Да
D
03:27
Daniil
In reply to this message
+
PK
09:37
Peter Krivoschekov
Привет всем
Я только начал учиться писать на func
Подскажите как реализовать контракт в корявый посылаешь токсины а он тебе обратно отправляет их ?
09:38
Я пытался сделать по туториалу, но чёт ничего не получилось
09:41
09:41
Это весь мой контракт
M
09:44
MyTons
На GetGems есть возможность сминтить на своем контракте и разместить для продажи у них?
Просто у нас NFT с ревилом......
N
09:58
NMI
In reply to this message
Гетгемс сам подтягивать должен
09:59
Как он это с дисинтаром и например джиботами сделал
NN
10:27
Nick Nekilov
In reply to this message
А что именно не получается? И что получается?
PK
10:28
Peter Krivoschekov
Я посылаю токены командой toncoin send
В контракт, он их принимает(посмотрел через tonscaner )
А обратно в wallet не отправляет
10:31
Если отправит с wallet на самого же себя
То происходит две транзакции

Возможно что я делаю что то не так, либо контракт не работает как хочется
NN
10:40
Nick Nekilov
n передаёшь?
10:43
Здесь не видно как ты собираешь сторедж и сообщение
10:44
В какой сети контракт проверяешь?
VD
11:39
Victor Dm.
В транзакций указывается последния транзакция общая или именно аккаунта?
NN
11:47
Nick Nekilov
In reply to this message
Что?
VD
11:50
Victor Dm.
In reply to this message
Спасибо, но уже понял
PK
12:57
Peter Krivoschekov
In reply to this message
В testnet
12:58
In reply to this message
Да
12:59
Я просто скрин сделал чуть раньше
А так да, n передаю в . store_grams(n)
NN
13:01
Nick Nekilov
In reply to this message
https://test-explorer.toncoin.org
Поищи транзакцию и её exit_code
PK
13:02
Peter Krivoschekov
Хорошо, я за пк сяду позже
И попробую
IM
14:10
Ivan Mamontov
Господа, можно где-то посмотреть состояние сети ТОН и количество блоков за, например, прошлую неделю?
M
14:11
Maksim
In reply to this message
Есть вот такой дашборд - https://tonmon.xyz/?orgId=1&refresh=5m
IM
14:18
Ivan Mamontov
In reply to this message
Спасибо!
14:19
Если есть еще где-то статистика по блокам сети - буду рад посмотреть
16:05
Deleted Account
T
16:16
Tim
In reply to this message
проверяет что workchain адреса такой же как у этого контракта
16:19
Deleted Account
In reply to this message
Если другой, ошибка? И как выполняется эта функция?) Она еще ниже чем stdlib объявляется?
T
16:20
Tim
16:20
Deleted Account
In reply to this message
Оу я даун. Спасибо
А
17:16
Алексей
А домены TON продлеваются ?
N
17:17
Nick
Да, надо пополнять их хоть на 0.00000001 тон просто раз в год и все будет ок
А
17:19
Алексей
Оу всего), а как это делается, всё на тот же адрес как при покупки?
N
17:19
Nick
Не помню, но говорили надо пополнять и всего
А
17:20
Алексей
Понял спасибо 🙏
VD
17:43
Victor Dm.
@xssnik, Тут смотри я посмотрел как через блоки делать скан, но у меня возник вопрос а если у меня такое случиться что скрипт упадет и по сути этим я могу пропустить транзакции. Мне нравилось смотреть транзакции через адреса, то что я знал что не пропощу?
T
17:59
Tim
In reply to this message
Ты должен записывать индекс последнего известного блока и увеличивать его только если все распарсил
18:00
Но это только для индекса всех транзакций. Если тебе только у аккаунта нужны - только его и парси
VD
18:23
Victor Dm.
In reply to this message
Какой индекс? я вижу тут нужно сахранить BlockInfo Чтобы получить блок
АГ
18:47
Андрей Го
Здравствуйте! Может кто подскажет, как теперь вывести монеты TON c WHales pool bot?
?️
20:17
𝐴𝑅𝐸𝐹 𝑆𝑆 ️
In reply to this message
🧐
OB
20:57
Oleg Baranov
In reply to this message
Достаточно сохранять шард и секно, с их помощью можно дернуть лукап блок и получить остальное
20:58
Но вообще, может и можешь сканить транзакции адреса списком. Действительно ли нужен тебе хеш?
21:02
Есть кстати еще варик, я делал сервис для уведомления вебхуком о новых транзакциях адреса, бесплатный, можешь заюзать - @TonutilsBot
VD
21:12
Victor Dm.
In reply to this message
нет, конечно нужно, я считаю у каждый транза должен быть хэш, чтобы ты мог влюбое время зайти и быстро найти в скане
21:13
In reply to this message
шард - это блок внутри блока получается, а секно это номер блока?
A
21:26
Arthur
Всем привет. Существуют ли какие нибудь статьи или видео по смарт контрактам либо отдельно по func? Или документация это единственный источник? Довольно тяжело дается, хотелось бы на какие то простые примеры посмотреть
OB
21:37
Oleg Baranov
In reply to this message
Секно - да, шард - типа того, при большой нагрузке чеин может разделиться на шарды, часть аккаунтов будет в одном, часть в другом
N
21:39
NT
In reply to this message
https://society.ton.org
Вот тут ещё может найдёшь что полезное для себя )
A
21:42
Arthur
In reply to this message
благодарствую, то что нужно
VD
21:44
Victor Dm.
In reply to this message
окей, думаю в записи транзакций буду сохранять, как раз узнаю какому блока принадлежит транзакции, может в будущем будет полезно
21:45
А уже nft или монеты можно запускать в тон?
21:45
Когда последний раз спрашивал, еще не было доступно)
OB
21:48
Oleg Baranov
In reply to this message
В тон можно)
VD
21:49
Victor Dm.
Это круто
21:49
У меня еще один вопрос по библиотеки а чем отличии IO.IN и IO.OUT?
OB
21:52
Oleg Baranov
In reply to this message
У транзакции могут быть инпуты и аутпуты, например в случае с кошельком - инпутом может быть экстернал месседж, а аутпутами - сообщения отправленые контрактом кошелька другим контрактам
1 August 2022
M
08:56
MyTons
Представляем вам сервис который поможет узнать информацию по любому кошельку в сети тон.

@TonRevBot поможет просмотреть отзывы/жалобы по любому кошельку и написать их соответственно !

Это бета версия и хотелось бы услышать предложения / замечания в сторону сервиса.
Y
09:42
Yari
Почитал переписки тут по поводу роялти, и чё-то не понял, у меня сложилось впечатление, что если мы хотим заложить первым 1000 покупателям постоянный роялти со всех последующих перепродаж в размере 5%, то это делается не в контракте, а средствами фронта, маркета? Или как?
SV
09:50
Sergei Voroshilov
In reply to this message
Не, на Маркет не надо полагаться)
Скорей всего это будут отдельные NFT с отдельным кодом. Но я не эксперт, просто рассуждаю
S
11:06
Sergey
Добрый день всем,у меня есть немного вопросов, сможете ответить?
a
11:08
assemblerx64
In reply to this message
l
11:08
lexxxser
In reply to this message
Добрый. Если по теме чата, думаю вам ответят
S
11:13
Sergey
Подскажите пожалуйста, сейчас пиарится проект-TONPAY,бот есть в телеграмм где предлагается за TON покупать акции TON,,якобы они продадутся, потом будет стейкинг этих акций,и будущая платёжная система,разработчики русские,один из них Алексей Рязанов, так ли это на самом деле или это развод.
a
11:15
assemblerx64
In reply to this message
> за TON покупать акции TON
Видимо развод. У TON нет акций

И это не по теме чата, Вам сюда https://t.me/toncoin_rus_chat
S
11:19
Sergey
Спасибо
M
12:11
Mikhail
Ребят подскажите плиз для чего нужен forwardAmount в JettonWallet.createTransferBody?
SH
12:16
Seitaro Higuchi
In reply to this message
Когда вы взаимодействуете не с другим юзером, а с контрактом (пересылая ему токены), вы хотите чтобы контракт имел возможность получить доказательство перечисления ему токенов. В ТОНе это делается путем посылки нотификации с жетон-кошелька принадлежащего контракту на адрес самого контракта. Количество ТОНов и часть содержимое сообщения контролируется параметрами forwardAmount и forwardPayload
M
13:18
Mikhail
In reply to this message
отправляю в forwardPayload: new TextEncoder().encode('gift'), но как потом этот текст прочитать из транзакции? в message в итоге что-то не то приходит.
Может быть знаете?
NN
13:41
Nick Nekilov
In reply to this message
Вы не указали откуда хотите прочитать. Если из кошелька, то, например, Tonhub, ожидает 4 нулевых байта в forwardPayload. Если добавить - должно быть видно в кошельке.
Если же какой-то скрипт - разбирайте тело транзакции согласно схеме.
M
13:44
Mikhail
In reply to this message
Спасибо! А где можно схему посмотреть из каких байтов состоит тело?
NN
13:45
Nick Nekilov
In reply to this message
Здесь описаны все сообщения жетонов: https://github.com/ton-blockchain/TIPs/issues/74
S
14:21
S
Добрый день.
Подскажите пожалуйста, в будущем Можна будет как-то делать свои домены на тоне? Скажем будет не .ton, а .defi
DS
14:26
Daniil Sedov
In reply to this message
S
14:26
S
In reply to this message
Спасибо
DS
14:27
Daniil Sedov
Теоретически можно, но нужно будет проводить голосование между валидаторами на изменение конфигурации
AP
14:44
Andrew Python
In reply to this message
FunC, Rust и Solidity. Одни с таким стеком в полигон ушли
NN
14:45
Nick Nekilov
In reply to this message
У них был раст?
AP
14:47
Andrew Python
In reply to this message
Перепутал с tonstack)
A
16:49
Arthur
Подскажите новичку, который очень поверхностно знаком с js и тем более node. В мануале дошел до пункта 6, где нужно задеплоить контракт. Не понимаю, весь этот код, который там приведен, должен находиться в одном файле? И как этот скрипт правильно запустить? Я скопировал все до файла test.ts, заменил эндпоинт на тестнет, указал 24 кодовых слова от моего кошелька в тестнете и попытался запустить вот с таким результатом.
AB
16:51
Andar Bahar💎
In reply to this message
Надо всю функцию создания кошелька объявить async
16:54
const create_wallet=async() =>{
//твой код
}
create_wallet()
A
17:01
Arthur
In reply to this message
весь код оттуда выглядит вот так, пока не очень понимаю какая функция имеется ввиду
AP
17:02
Andrey Pfau
In reply to this message
загружай код на gist.github.com а не картинками
A
17:03
Arthur
In reply to this message
а сорян, надеюсь правильно
AP
17:04
Andrey Pfau
In reply to this message
Можно кстати ещё тип .js ставить чтобы подсветка работала)
A
17:05
Arthur
In reply to this message
ага поправил
F
17:21
Ferrari Apple
А хотя-бы 1 строчку об условиях и зарплате?
SV
17:22
Sergei Voroshilov
In reply to this message
Бесплатный чай и печеньки 🍪
NN
17:49
Nikolay Nick
всем привет. при попытке собрать из исходников lite client как написано здесь:https://ton.org/docs/#/compile
на моменте
cmake --build . --target lite-client

получаю ошибки.
Как исправить?
СВ
17:55
Сергей В
In reply to this message
слишком новый с++ (ну или как-то так), или в докере собирать, или просто скачать готовое собранное
EG
17:57
EvGeniy Gnatovskiy
Да не там сабмодуль не на ласт версии почему-то скачиаватся) ща там есть решение
NN
17:58
Nikolay Nick
скачал собранное
EG
18:00
EvGeniy Gnatovskiy
хмм
https://github.com/ton-blockchain/ton/issues/426
тут вроде пофиксели)
18:01
я короче через https://github.com/ton-blockchain/mytonctrl
все укстанавливал тут готовые скрипты есть)
18:02
@thainik https://github.com/ton-blockchain/ton/pull/392
вот тут вроде решили)
NN
18:02
Nikolay Nick
посмотрю на досуге. благодарю
18:04
а подсветка синтаксиса FunC есть в каком нибудь sublime,atom?
18:04
или где в другой ide
EG
18:04
EvGeniy Gnatovskiy
в VS code
AS
18:04
Aleksandr Shepelev
в jetbrains продуктах есть плагин хороший)

https://t.me/intellijton
NN
18:05
Nikolay Nick
а где лучше vs или intellij?
18:08
обе посмотрю
EG
18:12
EvGeniy Gnatovskiy
In reply to this message
Первая бесплатная, вторая не очень бесплатная) а так тут только потыкав каждую поймешь)
NN
18:15
Nikolay Nick
In reply to this message
Да я имел ввиду где плагин лучше. Так то я обе эти ide использую
A
20:07
Alexander
Подскажите, пожалуйста, где посмотреть пример key/value на fift?
AS
20:09
Aleksandr Shepelev
In reply to this message
вы 3й раз в день спамите одно и то же
БМ
20:11
Булат Мурза
In reply to this message
Иной раз действительно трудно найти разработчиков
A
20:20
Alexander
In reply to this message
SH
20:44
Seitaro Higuchi
In reply to this message
Попробуйте ветку testnet, в ней обновлен abseil и она следующий большой мерж в мастер.
22:07
Deleted Account
Где обучиться funC? Для начинающего.

Хочется созидать. 10 лет назад в универе учился на IT. Проходил паскаль дельфи си, хочу познать func. Помогите советом
N
22:09
Nick
В вайтпепере
IR
22:10
Ivan Romanovich
In reply to this message
https://t.me/ton_learn тут есть уроки
N
22:16
Nick
ton-browser?
A
22:50
Arthur
In reply to this message
Еще вот мне давали ссылку, советую теорию почитать, но по мануалу у меня не получилось пройти, не очень подробный. Хотя уже скинули канал интересный, сам туда подписался. Вообще если интересно, можем скооперироваться. Я сам студент и бэкенд разраб на пол ставки, тоже пытаюсь в смарт контракты.
AT
22:58
Anthony Tsivarev
In reply to this message
AA
23:05
Alex 💎 Almazov
Подскажите пожалуйста, может кто знает тут, вот сделали тон dns, дальше сайты и облако будет. Какая примерная скорость загрузки вообще будет файлов с этого облака и доступа к сайтам? К примеру потоковое видео норм будет грузиться?
AB
23:07
Andar Bahar💎
In reply to this message
Подробностей на сей счет не было, думаю делать не будут
I
23:51
Ihor
In reply to this message
В WP вродебы говорилось об аналоге торрент сети.

А значит чем ближе ноды с файлом, тем быстрее загрузка. + влияет ещё скорость интернета нод
2 August 2022
AP
05:35
Andrey Pfau
In reply to this message
Скорость будет такая, сколько смогут вытянуть ноды) Потенциально не ограниченная. Но как уже сказали ввыше по p2p будет достигаться максимальная возможная скорость за счёт множества пиров, а не одного централизованного сервера
AA
05:36
Alex 💎 Almazov
In reply to this message
Ну к примеру как на ютьюбе видосы можно будет смотреть норм качестве?)
05:36
Или стрим вести на сайте .ton
AP
05:37
Andrey Pfau
In reply to this message
Если кто-то сделает децентрализованный аналог Ютуба, то да
SV
05:56
Sergei Voroshilov
In reply to this message
А как файлы будут распределяться? Автоматически системой или кто что выберет (как в торренте)?
DS
11:13
Daniil Sedov
Пытаюсь из js отправлять жетоны, но постоянно транзакция с ошибкой завершается, вот пример:
https://tonscan.org/tx/j9Ep_RzMLObB4tbKf9GLP7uLgesb_4N3Sgqs8Ee6eWs=

Делаю все также как в tonweb/src/test-jetton.js, но не получается.. При этом когда запускаю этот самый test-jetton.js с уже вписанными туда кошельками, все работает.
Дошло уже до того, что я просто скопировал test-jetton.js полностью, подставил свой api ключ и keypair и транзакция фэйлится...
11:13
У кого нибудь такое было?
T
11:18
TON технический обзор
In reply to this message
У вас на кошельке нет токенов, а вы пытаетесь их послать
DS
11:44
Daniil Sedov
In reply to this message
странно что так получилось. я несколько раз перепроверял в tonscan, показывало что баланс 1 жетон.
теперь работает, спасибо!
ПВ
11:46
Павел Веснин
скиньте пожалуйста ссылку на tvm exit codes
T
11:50
TON технический обзор
In reply to this message
ПВ
11:51
Павел Веснин
In reply to this message
спасибо!
11:54
это что-то не то. скан показывает ошибки 450 и 500
EK
12:02
Eugene Kalinovskiy
In reply to this message
Пользовательские, наверное? Есть код?
DS
12:09
Daniil Sedov
а можно отправить новую транзу, пока предыдущая еще не подтвердилась? пробую seqno увеличивать самостоятельно в коде для каждой транзакции, но в итоге не проходят
T
12:27
TON технический обзор
In reply to this message
Replay защита может строиться и не на seqno (хотя она самая простая). См например https://github.com/newton-blockchain/ton/blob/master/crypto/smartcont/highload-wallet-v2-code.fc
ПВ
12:41
Павел Веснин
In reply to this message
вот все что пишет тонскан Error, exit code 450
EK
12:44
Eugene Kalinovskiy
In reply to this message
А код самого контракта, который вызывает ошибку, номер транзакции?
DS
12:54
Daniil Sedov
In reply to this message
и пользоваться им также, как обычным кошельком (например v4r2) ?
или для отправки транзакций нужно что то другое делать
T
12:55
Tim
In reply to this message
Немного другой код, но в целом так же
12:55
Js реализация есть в ton3-contracts
??
12:59
𝕀𝕧𝕒𝕟 𝕋𝕤𝕧𝕖𝕥𝕜𝕠𝕧
Народ всем привет. Подскажите, где есть возможность раздобыть руководство по программированию смарт контрактов на TON на русском языке? Ну если нет на русском, то на английском
T
13:01
TON технический обзор
In reply to this message
OB
13:01
Oleg Baranov
In reply to this message
еще в го есть, пока не в мастере, но юзать можно
??
13:05
𝕀𝕧𝕒𝕟 𝕋𝕤𝕧𝕖𝕥𝕜𝕠𝕧
In reply to this message
Спасибо
АГ
13:37
Андрей Гулицкий
Добрый день, помогите понять пункт 5 в TIP-64. Что кодируется base64 в image_data в offchain layout?
T
13:38
Tim
In reply to this message
OB
13:39
Oleg Baranov
In reply to this message
имедж дата для ончеин хранения байтов картинки
АГ
13:40
Андрей Гулицкий
In reply to this message
Так base64 используется как раз для offchain layout.
13:41
Что подразумевает, что картинка хранится офчейн, а URL записывается в image.
T
13:44
TON технический обзор
In reply to this message
Можно хранить url, а можно хранить непосредственно байты.
Причем эти байты могут храниться как в json'е оффчейн, так и в onchain метадате.
Пример image_data ончейн.
АГ
13:51
Андрей Гулицкий
In reply to this message
Спасибо
DK
14:27
Dmitry Korobeynikov
Всем добрый день! Кто подскажет, что означает статус Failed у транзакции? Кейс - отправляю транзакцию на смарт-контракт, она мне тут же возвращается и транзакция помечается вот таким статусом
S
14:28
Suter
In reply to this message
Адрес верный?
DK
14:28
Dmitry Korobeynikov
Да, адрес верный точно
MK
14:52
Mike Khakhlou
Кто ещё не нашёл здесь есть ton launcher. Там полная инструкция запуска своей тогда сети с любой конфигурацией. https://github.com/tonbrains
ПВ
15:10
Павел Веснин
In reply to this message
я понял откуда эта ошибка, она прописана в контракте, твм ни при чем
EK
15:18
Eugene Kalinovskiy
In reply to this message
это же легендарное Huebel DAO $BOLT
Y
15:52
Yari
А что с изменяемостью контрактов на тоне? Можно их менять или нет, не понял
R
15:54
Rod
In reply to this message
присоединяюсь к вопросу тоже как раз хотел уточнить на днях
T
16:05
Tim
Технически есть возможность написать контракт в котором можно будет менять код
В
16:32
Влад<f>имир
Можете ли помочь с пониманием?

Адрес аккаунта зависит исключительно от начального кода и данных. Если задеплоить нфт с пустым контентом и без коллекции, то он всегда будет иметь один адрес. Как тогда?)

Ведь насколько я понимаю внесение контента и овнера происходит с internal транзакцией, а адрес тогда не изменится. Или внесение контента таким образом сделанно именно для нфт с коллекцией, а для единичного нужно сразу все данные при деплое указывать
s
16:33
shahar
Hi, is it possible to compile https://github.com/newton-blockchain/ton/blob/master/crypto/smartcont/wallet3-code.fc to output the same as https://github.com/newton-blockchain/ton/blob/master/crypto/smartcont/wallet-v3-code.fif? Currently if I run it through func I get different code hashes
VD
17:40
Victor Dm.
народ, а тотал fee он получается всебя включаетя Forward fee, storage fee и так далее?
IR
17:49
Ivan Romanovich
In reply to this message
transaction_fee = storage_fees + in_fwd_fees + computation_fees + action_fees + out_fwd_fees
VD
17:50
Victor Dm.
Спасибо
T
18:43
Tim
In reply to this message
Многие ищут, но спамить сутками не красиво
F
18:56
Ferrari Apple
Особенно без указания зарплаты и условий работы и одинаковым сообщением)
K
19:12
Koly
Как рассчитать комиссию газа?
Сколько 100 gas units равняются в тоне?

Где об этом можно почитать?
19:14
Есть документация по gas price но не вижу где пишется сколько это в тон
IR
19:16
Ivan Romanovich
In reply to this message
Current settings in basechain are as follows: 1 gas unit costs 1000 of nanoTONs. https://ton.org/docs/#/smart-contracts/fees?id=gas
19:17
In reply to this message
там ниже и про то как считается
K
19:17
Koly
In reply to this message
Спасибо!
о
20:37
о
Ребят, а как можно создать новый кошелёк через ton api?
DS
20:37
Daniil Sedov
In reply to this message
чтобы создать новый кошелек, нужно просто задеплоить его смарт контракт
о
20:39
о
In reply to this message
Окей, спасибо.
Просто знаю библиотеку ton на пайтон, которая создана новый кошелëк, но она у меня не скачивается
20:41
Может быть кто-то знает в чём проблема (Python)

pip install ton
20:41
In reply to this message
Качаю на винде*
DS
20:45
Daniil Sedov
при попытке задеплоить дефолтный контракт, созданный через toncli start wallet , но выдает ошибку... в чем может быть проблема? тестовые TON на нужный адрес получил
9
20:55
9
In reply to this message
Седов ?
DS
20:56
Daniil Sedov
In reply to this message
T_O_B_I ?
9
20:56
9
У меня тоже фамилия Седов )
DS
20:56
Daniil Sedov
In reply to this message
Фух, я уж подумал что мы знакомы
9
20:56
9
In reply to this message
😃
a
21:04
assemblerx64
In reply to this message
https://stackoverflow.com/questions/71295840/python-pip-error-legacy-install-failure

Ох уж этот виндовс. В след версии эта зависимость заменена другой либой, но может она так же будет. Юзай wsl
о
21:06
о
In reply to this message
Спасибо большое)))
И вправду надо переходить на Wsl )
A
21:19
Arthur
Кто нибудь сталкивался с такой проблемой?
DS
21:23
Daniil Sedov
In reply to this message
забавно, но с машины на линуксе все работает.
T
21:24
TON технический обзор
In reply to this message
Фифт не локально компилили, а с другой машины видимо скопировали?
A
21:31
Arthur
In reply to this message
извиняюсь, разобрался в чем проблема. уже второй раз настраиваю среду и скачиваю fift повторно, дошло к конфликту
DS
21:44
Daniil Sedov
задеплоил кошелек через toncli. а как теперь правильно послать external сообщение чтобы перевести с него на другой адрес монеты?

как я понял, boc нужно генерировать чтобы вызвать internal функцию, а как вызвать external?
21:49
In reply to this message
а, кажется в доках нашел то что надо
о
22:06
о
In reply to this message
Там написано, что можно скачать файл из других репозиториев, но где?
a
22:21
assemblerx64
In reply to this message
Покажи ошибку выше
о
22:22
о
In reply to this message
Там дальше всё нормально
22:23
Я думаю, что действительно дело в версии питона, у друга с 3.9 на винде получилось скачать 🤷‍♂️
У меня же 3.10
a
22:25
assemblerx64
In reply to this message
Мб-мб
A
22:38
Arthur
Может быть кто то подскажет. Я создаю wallet в toncli и сразу пытаюсь задеплоить, но получаю вот такую ошибку
A
22:44
AntonIX
А что находится в папке ton/crypto/smc-envelope Это смарт контракты на c++?
о
23:37
о
In reply to this message
Скинул версию питона до 3.9
Теперь выдаёт такое
ID
23:38
Igor Diakonov
In reply to this message
там ж прям написано что ему нужно и где это взять
о
23:39
о
In reply to this message
Спасибо большое, просто много красненьких буковок, я испугался
ID
23:39
Igor Diakonov
In reply to this message
бывает )
3 August 2022
00:03
Deleted Account
In reply to this message
пожалуйста, как мне начать
AB
00:22
Andar Bahar💎
Парни, подскажите пожалуйста а когда на TON(время года, или конкретный день для этого есть? )сжигают 0,6% от общей имиссии. (годовая инфляция ) .
AP
00:23
Andrey Pfau
6% не сжигают - единственный способ сжения монет - аукцион днс
AB
00:24
Andar Bahar💎
00:26
А сорян, парни
00:26
Это же приток монет
00:26
In reply to this message
А не известно тогда когда добовляют, эти 0.6%?
AP
00:28
Andrey Pfau
In reply to this message
Каждый цикл валидаторов. За год суммарно - 0.6% получается
AB
00:28
Andar Bahar💎
In reply to this message
Все понял, спасибо 🤝
K
03:06
Koly
Что за функция my_account()? Используется в NFT
K
03:22
Koly
Как находятся нфт по индексу?
Где они хранятся? (Индексы я так понимаю лежат в какой-то ячейке контракта коллекции..)
В
07:51
Вогонь Запеклих
In reply to this message
Метод есть который так и называется. Находятся получением ид (хеширование). Все в коде смартов есть.
А(
08:03
Андрей Власов (Andrey Vlasov)
Всем доброго.
Как через tonapi получать уведомления о транзакциях с адреса без запросов?
SV
08:36
Sergei Voroshilov
In reply to this message
@TonutilsBot

Через этого бота можно подписаться на транзакции
ОБ
09:24
Олег Борзов
In reply to this message
А это как вообще?
09:24
api без запросов - что-то новое…
s
09:27
sd
In reply to this message
Подразумевается вебхук, видимо.
R
09:58
Rodion
может кто насыпать trx в shasta ?
s⁢
10:43
ss_kali ⁢
всем привет. есть ли апи без ограничений с нормальным получением транзакций?
toncenter отдаёт ошибку
"LITE_SERVER_UNKNOWN: cannot compute block with specified transaction: lt not in db"
T
11:03
TON технический обзор
In reply to this message
Для запроса транзакций попробуйте toncenter.com/api/index/

Разница между ними в том, что тонцентр по дефолту у ЛС запрашивает, а индекс смотрит в индексированной базе. Для истории второе лучше
s⁢
11:05
ss_kali ⁢
In reply to this message
спасибо. помогло)
s⁢
11:39
ss_kali ⁢
In reply to this message
а какие тут лимиты?
T
11:40
TON технический обзор
In reply to this message
Такие же: без ключа 1/сек, с ключом пока без ограничений
s⁢
11:46
ss_kali ⁢
In reply to this message
а где ключ взять можно?
D
11:46
Daniil
In reply to this message
s⁢
11:47
ss_kali ⁢
In reply to this message
спасибо)
VD
12:32
Victor Dm.
@xssnik , а что тут есть отправка транзакций github.com/xssnick/tonutils-go/ton, к примеру хочу кошелек на кошелек отправить транзакцию или это // send external message, processing fees will be taken from contract?
OB
12:33
Oleg Baranov
даже больше, есть полная имплементация кошелька и деплоя)
https://github.com/xssnick/tonutils-go#Wallet
VD
12:34
Victor Dm.
Но у меня не видит пакет wallet
OB
12:34
Oleg Baranov
странно, какая у тебя версия в go mod?
VD
12:34
Victor Dm.
could not import github.com/xssnick/tonutils-go/ton/wallet (no required module provides package "github.com/xssnick/tonutils-go/ton/wallet"
OB
12:35
Oleg Baranov
https://github.com/xssnick/tonutils-go/blob/master/example/wallet/main.go
вот тут полный экзампл есть
VD
12:36
Victor Dm.
Да видел, но вендоре нету wallet
OB
12:36
Oleg Baranov
может у тебя какая то древняя версия?
12:36
у тебя с модулями го?)
VD
12:36
Victor Dm.
1.0.4
12:37
Версия твоего пакета
OB
12:37
Oleg Baranov
норм, там есть воллет
12:37
а попробуй отдельно экзампл запустить
12:37
без вендоринга
12:37
может в вендоре че то старое?
VD
12:39
Victor Dm.
Да у меня вендоре нету wallet
12:41
In reply to this message
Так запуститься, потому что в гит есть wallet
12:41
А вот вендоре нет
OB
12:42
Oleg Baranov
ну вендор берет с твоей локальной среды, а если там нет то с гита насколько я помню
12:42
грохни вендор попробуй и пересоздай
12:42
или go mod vendor
VD
12:42
Victor Dm.
а все
12:43
In reply to this message
Спасибо
A
13:02
Alexander
Есть пример вызова get метода смарт контракта из другого смарт контракта? Это возможно?
a
13:04
assemblerx64
In reply to this message
Если я правильно понял для этого например в nft-item и существует drop_static_data, потому что смарт-контракт может прочитать только ончейн ответ. Пока что
A
13:07
Alexander
In reply to this message
get_static_data, принял, спасибо
L
13:15
Lemmego
Как можно посмотреть что за домен на кошельке лежит?
ab
13:27
asd brain
а что такое Unary где об этом можно почитать?
IR
13:29
Ivan Romanovich
In reply to this message
унарные операции
s⁢
13:32
ss_kali ⁢
In reply to this message
а если транзакция была допустим секунду назад, индекс покажет её?
OB
13:34
Oleg Baranov
In reply to this message
кол во единиц (бит) подрят превращается в число

пример кода чтоб понятней было:
https://github.com/xssnick/tonutils-go/blob/88f83bc3554ca78453dd1a42e9e9ea82554e3dd2/tvm/cell/dict.go#L160
ab
13:36
asd brain
In reply to this message
а есть где-то список всех операций поддерживающих в tvm?
13:36
или только в вп по твм?
OB
13:36
Oleg Baranov
asm оп кодов?
ab
13:36
asd brain
а это просто асм оп коды прогуглить
13:36
In reply to this message
спасибо!
OB
13:37
Oleg Baranov
In reply to this message
у твм свои
ab
13:37
asd brain
In reply to this message
а есть где список?
ab
13:38
asd brain
In reply to this message
сойдет, спасибо)
VE
13:39
V E
In reply to this message
еще можешь тут посмотреть
https://ton-blockchain.github.io/docs/tvm.pdf
T
13:46
TON технический обзор
In reply to this message
ab
13:46
asd brain
In reply to this message
оо, спасибо
13:48
Для чего напимер Unary может использоваться?
13:49
чтоб десериализовать определенный объект из слайса?
13:56
hml_short$0 {m:#} {n:#} len:(Unary ~n) {n <= m} s:(n * Bit) = HmLabel ~n m;

может кто рассшифровать плз как это понять
переменная с тегом: hml_short$0, это все, что понял

что такое {m:#} {n:#} ?
14:00
{m:#} uint32 и равняется 0?
с n аналогично
OB
14:02
Oleg Baranov
In reply to this message
https://github.com/xssnick/tonutils-go/blob/88f83bc3554ca78453dd1a42e9e9ea82554e3dd2/tvm/cell/dict.go в этом файле код как раз по сборке/разборке этой штуки

с таким лучше разбираться смотря на код по моему опыту)
14:05
{m:#} {n:#} - типы (юинты)

все что в { } - это больше как условия и фильтры
s⁢
14:08
ss_kali ⁢
In reply to this message
ап
ab
14:11
asd brain
hml_short$0 {m:#} {n:#} len:(Unary ~n) {n <= m} s:(n * Bit) = HmLabel ~n m;

может кто на человеческий язык перевести это?
14:12
HmLabel например, что это. где про это можно почитать?
14:14
это ведь конструктор
OB
14:14
Oleg Baranov
hml_short$0 {m:#} {n:#} len:(Unary ~n) {n <= m} s:(n * Bit) это и есть HmLabel
14:14
это название структуры
ab
14:14
asd brain
а
14:14
это описание HmLabel верно?
OB
14:15
Oleg Baranov
тут сначала унарно декодится длинна, потом загружаются кол во бит ключа этой длины
14:15
да
ab
14:15
asd brain
len:(Unary ~n) {n <= m}
14:15
длина вот так?
OB
14:15
Oleg Baranov
да
ab
14:15
asd brain
len:(Unary ~n) {n <= m} s:(n * Bit)

или так?
OB
14:16
Oleg Baranov
тут всего 2 штуки к данным относятся
len:(Unary ~n) - длина
s:(n * Bit) - данные

остальное условия просто
ab
14:16
asd brain
какие-то недо-ламбды)
OB
14:17
Oleg Baranov
поэтому лучше смотреть в код имхо) сходу понять сложно
KM
14:25
Kirill Malev
T
TON Society 02.08.2022 22:12:03
👋 Here's a shout-out to all developers and creators!

We want more talented people to join us and discover all the great opportunities that the TON blockchain can bring.

🙌 You can help by sharing your interests and credible sources of information. This will be your contribution to the research of the community and will enable us to enhance it together.

✅ Fill in the below form with 5 simple questions and share the link with other community members

https://ton-org.typeform.com/devmedia

👉 Let us get to know you better - your personal opinion is greatly appreciated!
KM
14:26
Kirill Malev
In reply to this message
Есть большая просьба ко всем разработчикам поучаствовать в опросе. Результаты опроса помогут привлекать больше талантливых людей к работе над проектами внутри экосистемы и над самой экосистемой 😌
ab
14:26
asd brain
In reply to this message
а m и n входные параметры типа?
OB
14:27
Oleg Baranov
да
ab
14:30
asd brain
In reply to this message
{n <=m} в данном контексте вернет 0/1 ?
это ведь не условие на выполнение s:(n * Bit) ?
14:31
{m:#} {n:#} len:(Unary ~n) {n <= m} s:(n * Bit)

=

uint uint len(uint) bool и вот последнее s:(n * Bit)
14:32
In reply to this message
s:(n * Bit) - slice данных?
OB
14:32
Oleg Baranov
да
ab
14:33
asd brain
HmLabel ~n m;

n всегда будет обратным? передал 10 = -10?
14:33
это ведь тоже параметры
OB
14:34
Oleg Baranov
In reply to this message
заполнил
ab
14:35
asd brain
In reply to this message
а Bit кстати как константа ?
14:35
вшитая
OB
14:36
Oleg Baranov
In reply to this message
вроде не совсем так) там суть в том что чем глубже тем n мньше, дерево
14:36
In reply to this message
там она где то объявлена, но это просто кол во бит
ab
14:37
asd brain
In reply to this message
Это все не описание функции HmLabel?
OB
14:39
Oleg Baranov
Описание процесса в целом, лейбл это кусок ключа в дереве
14:40
И ветки ссылкаются все глубже и глубже, потом из цепочки полный ключ составляется
ab
14:40
asd brain
мне бы понять само выражение..

hml_short$0 {m:#} {n:#} len:(Unary ~n) {n <= m} s:(n * Bit) = HmLabel ~n m;

Это ведь код который надо вызвать, чтоб он сработал?
14:41
я это понял как описание функции HmLabel
14:41
но что такое ~n m
14:41
hml_short$0 {m:#} {n:#} len:(Unary ~n) {n <= m} s:(n * Bit)

вот это, можно назвать телом функции ведь?
OB
14:42
Oleg Baranov
это стуккртуры скорее
14:42
Some occurrences of “variables” are prefixed by a tilde(~). That means that prior to deserialization the exact value of that variable is not known, but instead will be computed during deserialization.
ab
14:44
asd brain
n будет computed, а m как передал будет получается?
OB
14:45
Oleg Baranov
да
ab
14:47
asd brain
уточню, выражением
= HmLabel ~n m 


мы говорим, что нужно передать n и m, но n будет еще и вычисляться ?
14:48
чет бред получается походу
14:50
hml_short$0 {m:#} {n:#} len:(Unary ~n) {n <= m} s:(n * Bit) = HmLabel ~n m;

вопрос:
Что написано до знака равно и что после?)

Слева инструкция, а справа зачем этот HmLabel ~n m; ?
14:53
bool_false$0 = Bool;
или после равно пишется тип..
14:59
s:(n * Bit) = HmLabel ~n m;

рано относится только к s:(n * Bit) же?
15:07
или это означает, что выражание вернет ~n и m ?
15:13
In reply to this message
так HmLabel это какой-то заготовленный тип?
Выше ты писал, это и есть
hml_short$0 {m:#} {n:#} len:(Unary ~n) {n <= m} s:(n * Bit)
OB
15:15
Oleg Baranov
после = идет название структуры
15:15
до равно - ее определение
ab
15:16
asd brain
In reply to this message
а что может означать в названии структуры ~n m; такие значения?
OB
15:16
Oleg Baranov
параметры которые передаются при ее использовании
ab
15:17
asd brain
In reply to this message
🙏🏼
15:18
Deleted Account
ребят, есть какая то поддержка по брижду тоновскому?
F
15:18
F
In reply to this message
ab
15:23
asd brain
hml_same$11 {m:#} v:Bit n:(#<= m) = HmLabel ~n m;
15:23
что вернет v:Bit?
15:25
вот что нашел, мб кому тоже полезно будет. пойду читать)
s⁢
15:41
ss_kali ⁢
а в ton.sh лимит 30 запросов в минуту можно как-то убрать?
T
15:48
Tim
не использовать ton.sh
15:48
Если хочется прямо http - используйте toncenter.com, если хочется нормально - пишите на лайтклиенте
s⁢
15:48
ss_kali ⁢
In reply to this message
а что вместо него можно использовать?
пробовал фулл ноду поднять, когда собирал выбивало error 2
T
15:49
Tim
Язык какой?
s⁢
15:50
ss_kali ⁢
In reply to this message
ошибку выбивает тонцентр(
15:50
In reply to this message
через скрипт собираю
15:50
используйте это 👍
ab
16:09
asd brain
anycast:(## 1)

## = uint64?
16:09
addr_std$10 anycast:(## 1) {anycast = 0}
workchain_id:int8 address:bits256 = MsgAddrSmpl;
16:10
(## 1) обьясните плз что значит
@
16:16
@
Как поинимать оплату на сайте,автоматом,цену в долларах указывать а пересчитывать будет в тон? Есть плагин для вордпресс или что нибудь?
s
16:20
sd
In reply to this message
Нет, нужно написать скрипт самостоятельно.
AP
16:20
Andrey Pfau
In reply to this message
можно ещё заюзать
https://GitHub.com/andreypfau/ton-kotlin
s⁢
16:49
ss_kali ⁢
пытаюсь установить лайт ноду через https://raw.githubusercontent.com/igroman787/mytonctrl/master/scripts/install.sh

выбивает ошибку:

[ 33%] Built target rocksdb
make: *** [Makefile:141: all] Error 2

возможно ли пофиксить?
T
16:49
Tim
можно!
s⁢
16:49
ss_kali ⁢
In reply to this message
ура спасибо за разрешение
A
16:50
Andrii
In reply to this message
какой вопрос, такой и ответ :)
T
16:50
Tim
Ну надо же хотя бы полностью лог ошибки скинуть. Скорее всего не полностью склонировано всё
16:50
И зачем вам лайтсервер, вы будете держать полную ноду?
16:50
Там нужно жирный сервер достаточно
s⁢
16:51
ss_kali ⁢
In reply to this message
говорю же, устанавливаю через скрипт всё клонит он
16:51
In reply to this message
4/24 для лайта достаточно
16:53
In reply to this message
чтобы нормально получать транзакции, а то никакая апишка это сделать нормально не может

единственное что помогло это ton.sh/api но тут лимиты
T
16:53
Tim
начните с использования лайтклиента
16:54
если вам с ним не будет хватать публичных нод тогда уже поднимайте свою
s⁢
16:55
ss_kali ⁢
тонцентр выбивает это:

{"ok":false,"error":"LITE_SERVER_UNKNOWN: cannot compute block with specified transaction: lt not in db","code":500}
OB
16:56
Oleg Baranov
In reply to this message
нужно получать новые транзкции только? типа для приема оплаты?
s⁢
16:56
ss_kali ⁢
In reply to this message
да, да
16:56
проверка транзакций на кошельке отправителя
OB
16:57
Oleg Baranov
а зачем в 2 местах?
s⁢
16:58
ss_kali ⁢
In reply to this message
проверка у отправителя потому что транзы летят не получателя слишком быстро
OB
16:58
Oleg Baranov
можете юзннуть @TonutilsBot , кидает вебхуки при поступлении новой транзакции на адрес который ему скормите, SLA пока 100 процентов)
s⁢
17:06
ss_kali ⁢
In reply to this message
не пропускает транзы?
OB
17:07
Oleg Baranov
неа
17:07
даж если упадет не пропустит
s⁢
17:07
ss_kali ⁢
тогда супер, спасибо
ab
17:31
asd brain
addr_std$10 anycast:(## 1) {anycast = 0}


никто не в курсе что такое ## ?
M
17:54
MyTons
EQDbhjlcElPzSKQHlZnYDG166lEQJz8RVyiUJlWmFTSvkLZC

Дайте Testnet монет пожалуйста...
AP
17:56
Andrey Pfau
In reply to this message
Целое число размером 1 бит. Это как boolean
17:57
(## 32) тоже самое что uint32
ab
17:57
asd brain
In reply to this message
понял. а (# 1) тоже самое что bool: true?
AP
17:58
Andrey Pfau
In reply to this message
# 1 - это целое число 1 байт, не путай с ##
17:58
## - биты
# - целые число 32 бит
ab
17:58
asd brain
In reply to this message
спасибо
AP
18:02
Andrey Pfau
In reply to this message
Ошибся - # это целое число 32 бит
18:03
# 1 == uint32
# 2 == uint64
ab
18:03
asd brain
# 3 == uint128 ?
AP
18:04
Andrey Pfau
In reply to this message
32 * 3 == 96
32 * 4 == 128
ab
18:05
asd brain
got it
18:07
empty#_ b:bits = Snake ~0;
cons#_ {n:#} b:bits next:^(Snake ~n) = Snake ~(n + 1);

op:#0 comment:Snake = Request;


а что такое Snake?
18:08
твм команда какая-то?
18:08
видимо )
ab
18:12
asd brain
cons#_ {n:#} b:bits next:^(Snake ~n) = Snake ~(n + 1);

что-то совсем запутался.
Snake вон здесь описан, после равно ведь название и параметры конструктора?
18:14
а, ну типа того.

Только передавать n ведь надо?
18:16
In reply to this message
а в этом коде нет рекурсии?
AP
18:16
Andrey Pfau
In reply to this message
Есть
18:16
~ означает что это "возвращаемый" параметр
ab
18:16
asd brain
~ - вычисляемый параметр, нет?
AP
18:17
Andrey Pfau
Т.е. при десерелизации вернётся не только snake но вместе с ним параметр
ab
18:17
asd brain
computed
18:18
In reply to this message
функция разве возвращает не:
uint32 bitsкакие-то cell(Snake) ?
18:18
3 значения
18:19
Вот тут можешь чекнуть десерелизацию
ab
18:20
asd brain
а что тон на котлине?
AP
18:20
Andrey Pfau
Это реализация на котлине, тон на с++ написан)
ab
18:21
asd brain
а зачем ты такие вещи делаешь?)
AP
18:21
Andrey Pfau
In reply to this message
Не совсем понял вопроса
VD
18:21
Vitaly Dmitriev
In reply to this message
о, прикольно
ab
18:21
asd brain
прикольно. но не понял зачем тон на котлине писать)
AP
18:22
Andrey Pfau
Это сдк в первую очередь для разработки
18:22
Для бекенда
ab
18:22
asd brain
аа
18:22
понял
AP
18:23
Andrey Pfau
In reply to this message
А почему нет? 😁
ab
18:24
asd brain
In reply to this message
да интересно просто)) зачем писать свою реализацию тона)

Но раз сдк, это я чет не так понял вначале) там же не прям тон бч кодится)
AP
18:24
Andrey Pfau
In reply to this message
Там все с нуля реализоаанно
18:24
Даже протокол аднл который напрямую с лайтсерверов достает инфу
T
18:24
Tim
Кстати бч реализовать на других языках тоже не помешало бы, хорошо когда есть пара независимых реализаций.
18:25
Много багов сразу находятся, больше доверие к сети
AP
18:25
Andrey Pfau
In reply to this message
Это правда
18:25
Уже на практике проверено)
18:28
Скоро завезу меркиль пруфы для ячеек, чтобы данные проверять. Ну и я недавно начал уже p2p протокол adnl реализовывать. Можно будет без лайтсерверов получать инфу о новых блоках
ab
18:33
asd brain
In reply to this message
а на котлине смарты нельзя будет писать?
18:33
)))
18:34
In reply to this message
чет совсем туго с tl-b(

cons#_ {n:#} b:bits next:^(Snake ~n) = Snake ~(n + 1);

не пойму вообще синтаксис.
cons#_ - название с пустым тагом
{n:#} - первый параметр n тип uint32
b:bits - параметр b типа bits
next:^(Snake ~n) - переменная next с типом ref на cell Snake ~n

= Snake ~(n + 1); - "инструкция запуска"
18:34
In reply to this message
поправьте и дополните плз 🙏🏼
AP
18:34
Andrey Pfau
In reply to this message
Если реализовать DSL какой нибуть - то да, в теории можно. Но прям чистый котлин я думаю без модификации компилятора котлина не получится
18:35
Хотя вроде как котлин может в LLVM компилироваться и заюзать компилятор эверскейла для LLVM->TVM
MK
18:35
Mike Khakhlou
In reply to this message
Это уже как два года назад было сделано.
AP
18:35
Andrey Pfau
In reply to this message
Два года назад на чём?
MK
18:35
Mike Khakhlou
Rust
NN
18:36
Nick Nekilov
In reply to this message
Секта
AP
18:36
Andrey Pfau
И что это меняет? Было на расте, теперь ещё на котлине
ab
18:36
asd brain
а на расте нельзя смарты писать?
AP
18:36
Andrey Pfau
Там на голанг тоже уже сделали
ab
18:36
asd brain
или на голанг
18:37
там структуры были бы а не эти tl-b
AP
18:37
Andrey Pfau
Смартконтракты можно писать на том языке который в TVM умеет компилироваться
18:37
In reply to this message
TLB это просто вид схемы описания структур. Это как protobuf, только он с ячейками тона работает
ab
18:37
asd brain
да как его понимать вообще
ID
ab
18:38
asd brain
cons#_ {n:#} b:bits next:^(Snake ~n) = Snake ~(n + 1);

вообще не понятно, хотя обычный конструктор должен быть здесь
18:38
In reply to this message
я эту страницу уже перечитываю 5 раз)
18:39
там все понятно
AP
18:39
Andrey Pfau
In reply to this message
То что в фигурных скобочках это неявное поле, оно не серелизируется а используется как временная переменная
ab
18:39
asd brain
cons#_ {n:#} b:bits next:^(Snake ~n) = Snake ~(n + 1);

но это не понятно)
18:39
In reply to this message
а выше мне писали это условие вообще
AP
18:40
Andrey Pfau
В доке написано про неявные поля
ab
18:40
asd brain
cons#_ {n:#} b:bits next:^(Snake ~n) = Snake ~(n + 1);

это конструктор ведь?
18:40
какие входные параметры
18:40
n только?
AP
18:41
Andrey Pfau
У него нет входных параметров, только выходные
18:41
~ это выходной параметр
ab
18:42
asd brain
In reply to this message
как такое возможно)
при сериализации ведь что-то передается
AP
18:42
Andrey Pfau
In reply to this message
Если ты знаешь явно тип, то параметры не обязательно должны быть в схеме
ab
18:43
asd brain
если знаешь тип и поряок, так?
AP
18:43
Andrey Pfau
Да
18:43
In reply to this message
Там же не только cons, расматривай оба конструктора
ab
18:48
asd brain
мне бы строчку эту понять
18:48
я вот легкие вроде понимаю
18:48
но эта запутала ппц
18:49
tl-b ведь используется для сериализации и десериализации?
AP
18:50
Andrey Pfau
In reply to this message
Да
18:50
In reply to this message
Чтобы понять как работает тип надо смотреть на все конструкторы
18:50
Ты к 1 привязался поэтому не понятно
18:51
Там кроме cons ещё и tail у Снейка есть
ab
18:55
asd brain
In reply to this message
cons#_ {n:#} b:bits next:^(Snake ~n) = Snake ~(n + 1);

получается выходные параметры тут:
~n и ~(n+1) ?
18:55
это чет совсем не то, как я все понял до этого
AP
18:57
Andrey Pfau
Ещё повторю: Snake стоит из cons и tail, они работают вместе
ab
18:57
asd brain
а что значит состоит из?
AP
18:58
Andrey Pfau
In reply to this message
Если только cons использовать то оно до бесконечно будет в цикле работать
18:58
In reply to this message
У Снейк два конструктора
ab
18:58
asd brain
блин
18:58
я вот это понял
18:58
это потом как юзаться будет
18:58
но я не пойму что конс делает
F
18:59
F
Давайте пожалуйста писать свои мысли одним текстом)
ab
19:01
asd brain
In reply to this message
а где можно посмотреть где юзается cons и tail?
OB
19:14
Oleg Baranov
Новая версия Golang либы TON - tonutils-go v1.1.0! 💎

Много новых крутых фич:
1. NFT - набор методов для работы с нфт и коллекциями, получение информации, контента, минт, трансфер, редактирование и тд. https://github.com/xssnick/tonutils-go#NFT

2. Отправка трансфера/сообщения с ожиданием подтверждения.

3. CurrentMasterChainInfo - самокеширующийся конкурентный GetMasterChainInfo с автоматической проверкой доступен ли блок на самом деле (чтобы не поймать 651 ошибку). Рекомендуется использовать именно его.

4. Сериализация структур в cell, теперь можно описывать запросы к контрактам в виде гошных структур не используя cell напрямую.

5. Добавлено поле Hash в транзакцию. (вычисляемое)

6. Добавлен Highload кошелек с прозрачным использованием (не отличается от обычного, просто новый тип при инициализации).

7. Load/Store Snake строк и байтов

https://github.com/xssnick/tonutils-go
ID
19:32
Igor Diakonov
In reply to this message
Разошелся то! Годнота )
F
19:58
Ferrari Apple
In reply to this message
Топ, вот бы ты однако на JS ещё такое же саппортил, даже ради одного первого пункта, я бы донатил даже на развитие, а так GOLANG, ну не пользуюсь как-то им блин, эх)
T
20:05
Tim
На js ничего не мешает это сделать
20:05
Кроме отсутствия тегов класса человеческих
20:07
龙形的影子
Всем привет.
Помогите, плиз, первые шаги сделать.

Вчера все получалось. Сегодня - нет))

Хочу создать и задеплоить Смарт (big sur)

Создаю шаблонный wallet
toncli start wallet - указываю пути к func, fift, lite-client, получаю структуру проекта в текущей папке/wallet и config+libs в appsupport/toncli

Деплою
toncli deploy -n testnet - получаю копию wallet в appsupport/toncli (так и долго быть???), адреса контракта, просьбу закинуть два тона.

Закидываю тоны

Выполняю get запрос
toncli get hello_world - долго думает, выдаёт то что на скрине. Ни повторный деплой, ни снос конфигурации, ни новый проект - ни что не помогает

Народ, что я делаю не так? Что почитать? Куда копать?
SV
20:07
Sergei Voroshilov
In reply to this message
А что такое теги класса?
Вот это https://morioh.com/p/02f09aed7127 ?
T
20:08
Tim
Да
20:08
Я сделал парсер по json темплейту
20:08
Сделать по декораторам должно быть не сложно но мне лично они не нравятся
A
21:02
Arthur
In reply to this message
у меня другая ошибка, но тоже не могу задеплоить. Есть подозрение, что нужно что то добавить к команде либо вообще какой то команды не хватает. Во всех мануалах, которые я находил именно процесс деплоя описан очень кратно без подробностей, такое ощущение, что ни у кого без бубна не получается
21:07
In reply to this message
В репозитории например вообще вот это написано, хотя в инструкции нет таких команд
21:31
龙形的影子
In reply to this message
В общем, после удаления всех проектов, кроме одного, все заработало.

Но все равно не понятно как связан проект в рабочей папке и проект в системной "Application Support".
code.func разные, адреса разные, но оба адреса присутствуют в INFO: в cli.
A
21:35
Arthur
In reply to this message
Я уже все перепробовал, удалял и заново устанавливал, даже с гитхаба клонировал тестовый проект, все равно не работает. Буду дальше через js пытаться хотя там все еще хуже
21:38
In reply to this message
А можно на config.ini который в папке с конфигом toncli находится посмотреть? Не знаю как на маке все выглядит, я сам на линуксе
21:41
龙形的影子
In reply to this message
Если что, то func, fift , lite-client ставил по инструкции отсюда https://society.ton.org/ton-hello-world-step-by-step-guide-for-writing-your-first-smart-contract-in-func

А потом ставил toncli по инструкции https://github.com/romanovichim/TonFunClessons_Eng/blob/main/1lesson/firstlesson.md
21:43
In reply to this message
Сорри за качество
A
21:44
Arthur
In reply to this message
ага благодарю, а вот этот файл contract_address автоматически создался? у меня его почему то нет и из за этого собственно ошибка
21:44
In reply to this message
Точнее указывает на ошибку в этом файле, но он даже не существует
21:46
龙形的影子
In reply to this message
Да, это все автоматом
A
21:49
Arthur
In reply to this message
Спасиб, Ну я без понятий, у меня они не создаются. Буду наверн пробовать через документацию пробираться если мозгов хватит
21:52
龙形的影子
А где доки читаешь?
A
21:52
Arthur
In reply to this message
официальную имею в виду тона
21:53
龙形的影子
In reply to this message
А ок, думад может по cli есть что-нибудь разжеванное
A
21:57
Arthur
In reply to this message
ну у них документация на гитхабе же есть какая то https://github.com/disintar/toncli/blob/master/docs/quick_start_guide.md
AT
22:03
Andrey Tvorozhkov
In reply to this message
Что-то тут много рассуждений, я вообще в отпуске. Но. Тут проблема не в тонкли, а в выполнении команды лайтклиента. Нужно скопировать все что после Error while running. Запустить в консоли и увидеть реальную ошибку
22:04
In reply to this message
Проект кошелька в системной папке нужен для того, чтобы в будущем оттуда кидать тоны автоматически на новые контракты, которые будут деплоиться. Чтобы ты 1 раз залил много деняк в системный кошелек, а дальше при деплое новых проектов он автоматически закидывает деньги на нужные адреса
22:06
In reply to this message
Попробуйте удалить wallet из системной папки (или всю папку) и пройти всю историю заново (start / build / deploy), с большой вероятностью все заработает.

Файлик контракт адрес появляется при выполнении команды build и deploy
22:07
龙形的影子
In reply to this message
Наконец-то дедовщина))

Благодарю, за наводки
A
22:08
Arthur
In reply to this message
так, я похоже что то пропустил. А как команда build выглядит? Вот все, что я ввожу
AT
22:10
Andrey Tvorozhkov
In reply to this message
Какая-то тз версий тонкли получилась битая. Поэтому на всякий случай можно сделать toncli build в папке с контрактом. Если сработает, а раньше не работало - pip install -U toncli, чтобы обновиться до ласт версии
A
22:14
Arthur
In reply to this message
Благодарю, да попробую переустановить либо на другой машине все сделать. Удалил папку toncli из конфига сейчас и запустил toncli build. Проблема та же, у меня еще и убунту какую то ошибку выводит
AT
22:17
Andrey Tvorozhkov
In reply to this message
По ошибке ничего не понятно, нужно более развёрнутое сообщение
A
22:24
Arthur
In reply to this message
Я не знаю если еще где то какой то лог есть, это все что в консоли появляется если удалить конфиг и запустить заново.
Л
22:40
Лаборатор 2.4
Есть тон кошелек exe ?
22:40
Для ПК
A
22:48
Arthur
In reply to this message
Есть же для всех платформ на сайте https://ton.app/wallets/windows-ton-wallet
PM
22:49
P M
In reply to this message
Слово windows настораживает😀
A
22:51
Arthur
In reply to this message
Да всем пора уже перестать гейтса спонсировать и перекатываться на линукс
Л
22:52
Лаборатор 2.4
In reply to this message
Я давно юзаю , просто юдивляюсь что никто не знает о нем почти))))
22:52
T
22:54
Tim
А есть tl-b описание нфт метода get_nft_data? https://github.com/ton-blockchain/TIPs/issues/62 тут вроде просто InternalMsgBody
4 August 2022
PK
00:39
Peter Krivoschekov
Всем привет!
Можно как то при получении msg в контракте изменить его, а при отправки msg отправить какой нибудь текст?
00:40
Возможно ли это вообще
NN
00:44
Nick Nekilov
Можно прочитать из сообщения столько данных сколько нужно и собрать новое сообщение записав в него то, что необходимо.
PK
00:59
Peter Krivoschekov
In reply to this message
А есть пример как можно отправить сообщение «Hello» в контракт и прочитать его?
PK
01:01
Peter Krivoschekov
спасибо)
PK
01:11
Peter Krivoschekov
In reply to this message
read_domain_from_comment, а откуда берется эта функция я не понимаю
или она есть в стандартных функциях FunC?
T
01:11
Tim
нет, где-то рядом лежит
NN
01:11
Nick Nekilov
dns-utills вроде
PK
01:12
Peter Krivoschekov
Ок щас, спс
T
02:01
Tim
А можно через лайт клиент зная айди блока шардчейна получить айди прошлого блока шардчейна?
AP
02:07
Andrey Pfau
In reply to this message
Просто дикриментишь seqno
02:08
Либо узнаешь из шард блока мастерчейн блок, смотришь прошлый мастерчейн блок и там уже инфа о шардчейн блоках
T
02:08
Tim
А как из шардблока узнать мастерчейн блок?
AP
02:08
Andrey Pfau
В тлб структуре ж
T
02:09
Tim
Понял
NN
02:09
Nick Nekilov
mc_seqno или как-то так
T
02:10
Tim
А можно получить состояние аккаунта между двумя транзакциями в одном блоке?
T
02:10
Tim
In reply to this message
Спасибо
NN
02:10
Nick Nekilov
Только там бывает так что у тебя блок Wn в шард-чейне указывает на один блок Mn, а предыдущий блок в мастерчейне (Mn - 1) указывает на блок через один (Wn - 2).
AP
02:11
Andrey Pfau
In reply to this message
В шардчейн блоке показывается тот мастер блок который был известен на тот момент
02:11
Поэтому это именно референс, а не прямая привязка
NN
AP
02:12
Andrey Pfau
In reply to this message
Поэтому да, такое может быть что в мастер блоке нет шард блока, поэтому вариант лучше дикрементить, как в тонвебе
T
02:13
Tim
Клиент просит помимо секно ещё всякие хеши чтобы запросить инфу... Буду смотреть
02:13
In reply to this message
А на счёт этого?
AP
02:29
Andrey Pfau
In reply to this message
ты делаешь lookupBlock по seqno и получешь TonNodeBlockIdExt вместе с хешем
T
02:29
Tim
In reply to this message
Спасибо
А(
02:31
Андрей Власов (Andrey Vlasov)
In reply to this message
В смысле спонсировать? 😆
AP
02:33
Andrey Pfau
In reply to this message
у транзакций разные logic time, можно по logic time получить состояние аккаунта
T
02:34
Tim
Это запросы какие то к лайт серверу?
D
10:21
Daniil
А есть какие-то jsonrpc кроме тон центра? Желательно без лимитов
В
10:23
Василий
In reply to this message
D
10:25
Daniil
In reply to this message
10 в секунду лимит, надо больше
DS
10:26
Daniil Sedov
In reply to this message
))
AJ
10:29
Adam Johnson
In reply to this message
Поднять свой lite client?
NN
11:21
Nick Nekilov
In reply to this message
Достаточно свой http-api поднять, lite-server не обязательно.
ST
11:59
Sardor Toshqulov
Всем привет. У меня проблемы с установкой toncli. Делал все как в install.MD. Но у toncli проблемы с fift.exe.
12:08
In reply to this message
Как это решить?
DS
12:09
Daniil Sedov
In reply to this message
В чём именно проблема?
ST
12:12
Sardor Toshqulov
12:13
In reply to this message
12:16
In reply to this message
Эта проблема возникает, когда я указываю на exe-файлы
Iz
12:29
Ideš za Kanadu
ребят всем привет, не большой вопрос по синтаксису, который мне показался странным
разбираю третий урок ромновича, в котором идет разбор фнукции получения адреса отправителя:
() recv_internal (int balance, int msg_value, cell in_msg_full, slice in_msg_body) {
slice sender_address = parse_sender_address(in_msg_full);
}
в куске выше я вижу что мы инициализируем переменную, которой мы даем значение функции которая непосредственно достает из ячейки значение адреса отправителя(выделил жирным)

дальше идет кусок кода в котором мы как я понял раписываем данную функцию:
slice parse_sender_address (cell in_msg_full) inline {
var cs = in_msg_full.begin_parse();
var flags = cs~load_uint(4);
slice sender_address = cs~load_msg_addr();
return sender_address;
}
но синтаксис данной функции я не совсем понимаю, почему перед именем функции обозначен тип данных(выделил жирным), похоже на то, как будто это инициализация переменной, объясните пожалуйста что происходит именно в этой строке (slice parse_sender_address (cell in_msg_full) inline)
заранее,благодарю
IR
12:31
Ivan Romanovich
In reply to this message
Перед объявление функции пишется тип который она возвращает https://ton.org/docs/#/func/functions?id=function-declaration
Iz
12:31
Ideš za Kanadu
In reply to this message
а понял, спасибо большое
12:31
In reply to this message
отдельное спасибо за линк на раздел доки, сохраню
K
12:33
Koly
user#d23c81a3 id:int first_name:string last_name:string = User;
vector#1cb5c415 {t:Type} # [ t ] = Vector t;
getUsers#2d84d5f5 (Vector int) = Vector User;


Если
вызвать getUsers([2,3,4])

Получим:
0x2d84d5f5 - getUsers
constructor
0x1cb5c415 - vector constructor call
0x3 - what is this?
0x2 0x3 0x4 - users_ids

Подскажите
пожалуйста что такое 0х3 ?
N
12:40
NT
In reply to this message
кол-во объектов в vector вероятно ) типа uint32
??
13:01
𒐫 𒐫
Привет
K
13:03
Koly
In reply to this message
Спасибо
VD
13:44
Victor Dm.
@xssnik , у тебя в example/blockScan там ошибка с more
13:48
@xssnik , что за ошибка насколько критична
2022/08/04 13:47:08 get shards err: lite server error, code 651: cannot load block (-1,8000000000000000,22558276):8C12AEE980786C8EC835D8A7E84CE7EF683FED7DD71143384E92CFDC86707AE5:FE1564F80E4F155A5E52AA2A79E581B259B2A06062E744DF8AA2B0BE8502B573 : not in d
?
13:48
Я думаю ее из фатал убрать
T
13:48
Tim
её не надо из фатал убирать
13:48
вам надо архивную ноду юзать
13:49
хотя если это свежий блок, то надо сделать ретраи
VD
13:49
Victor Dm.
Что за архивная нода?
T
13:49
Tim
ноды которые хранят стейт больше чем за последние пару дней
VD
13:49
Victor Dm.
Нет, мне нужно мгновенно транзакций проверять
13:50
In reply to this message
Это больше нравится
OB
13:56
Oleg Baranov
In reply to this message
обновись до v1.1, вчера выложил, там есть метод GetCurrentMasterchainInfo он кешит блок и гарантирует наличие путем проверки и доп ожидания если еще не появился
13:56
In reply to this message
.
13:58
она обычно возникает из за того что лайт сервер может отдать блок, а когда ты с ним пойдешь к нему за инфой он скажет - такой не знаю) типа отдал до индексации или вроде того
В
14:20
Василий
Как отлаживать cell underflow?
Можно как-то обработать исключение внутри контракта чтобы хоть понять где именно оно происходит? Спасибо!
VD
14:50
Victor Dm.
@xssnik , в чем может быть проблема работает, работает но потом остановливается на каком то блоке, я с начала подумал может у меня что то с горутинами и каналами, но вроде все нормально
T
14:51
Tim
так ты ошибку напиши
VD
14:52
Victor Dm.
Так нету ошибку, просто тормозит, хотя 2022/08/04 14:37:29 get shards err: lite server error, code 651: cannot load block (-1,8000000000000000,22559142):340D14A0EE6004EE52DE7B800D8B591615D8C19745255DF76038D7E63406756C:DDABB44C39D9197A389E7DB2FA44EEC8AA15EFA4C82CEBA8EFB642A00944F12E : not in db
T
14:52
Tim
не все серверы одновременно синкаются
14:52
делай ретраи
OB
14:53
Oleg Baranov
а контекст прокдываешь?
14:53
может какой то сервер впал в анабиоз и не отвечает, дефолтный таймаут там вроде секунд 60
VD
14:54
Victor Dm.
configUrl := "https://ton-blockchain.github.io/global.config.json"
err := client.AddConnectionsFromConfigUrl(context.Background(), configUrl)
if err != nil {
panic(err)
}
14:54
Как там это функция работает?
14:55
Я думаю там типо если один не отвечает, то другой типо попробует
14:56
Просто 60 секунд в абиози слишком долго, можно же пропустить транзакцию, я думаю может каждый адреса пройти какие мне нужны
14:56
Там уже hash есть
14:56
Но не хочется, снова переделать😂
T
14:56
Tim
ну так таймаут добавь свой
VD
14:57
Victor Dm.
OB
14:57
Oleg Baranov
In reply to this message
ко всем нодам из конфига коннектится
VD
14:57
Victor Dm.
Вот работало, и бах на паузу
14:58
А юзает какой?
OB
14:58
Oleg Baranov
раунд робином
14:58
все
VD
14:58
Victor Dm.
ясно
OB
14:58
Oleg Baranov
можешь к конкретной одной подключиться например и посмотреть
14:58
которая уверен что нормальная
VD
14:59
Victor Dm.
Я вот не знаю, это нужно смотреть
14:59
Но у меня есть решения, если я пропущю транзакции, написать еще один скрипт который по кошелькам проходит
OB
15:00
Oleg Baranov
это уже костыльно как то)
15:00
можно не пропускать)
15:01
err := client.AddConnection(context.Background(), "135.181.140.212:13206", "K0t3+IWLOXHYMvMcrGZDPs+pn58a17LFbnXoQkKc2xw=")
if err != nil {
log.Fatalln("connection err: ", err.Error())
return
}

попробуй к 1 ноде вместо конфига ради интереса
VD
15:08
Victor Dm.
извинияюсь, это у меня ошибка в цикле
15:09
😱🤥
VD
15:24
Victor Dm.
@xssnik , @TrueCarry спасибо
NN
17:48
Nikolay Nick
Извините за беспокойство. Решил тут принять участие в контесте. Потрениться. Но не выполняются тесты в toncli. Как эту ошибку побороть?
SH
17:51
Seitaro Higuchi
In reply to this message
toncli update_libs попробуйте
NN
17:53
Nikolay Nick
In reply to this message
не помогло
SH
17:55
Seitaro Higuchi
In reply to this message
PROCINLINE генерит func последней ревизии, а Asm.fif не последней об этом не знает и ругается. Нужно обновлять Asm.fif
P
18:03
PANTEMON
Какой размер стека вызовов в TVM? Рекурсию можно использовать или лучше циклы
?
SH
18:05
Seitaro Higuchi
In reply to this message
Рекурсия норм.
P
18:05
PANTEMON
In reply to this message
спасибо
NN
18:09
Nikolay Nick
In reply to this message
ставил через pip3 несколько дней назад. такие либы скачались. сейчас из гита скачал и заменил вручную. Работает отлично. Благодарю
PS
18:22
Pablo Samius
Добрый день. Кто разбирается в смарт контрактах ТОН, проконсультируйте по смете и срокам пожалуйста. 5 минут помощь нужна. Может у кого опыт был разработки.

Мне надо порядок цифр (1000/10 000) знать и веремя +/- месяц

Смарт-контракт
1.Токен в сети тон
2.Интеграция токена с андроид приложением, майнинг токена со смарт контракта за целевые децствия
3.НФТ в том же приложении и их покупка за токен.
18:23
Ориентировчно все и грубо.
Н
18:51
Никита
есть инструкция по установке лайт-клиента на винду ?
P
18:56
PANTEMON
In reply to this message
можно просто скачать готовые бинарники

если хочешь из исходников скомпилировать, то думаю, что легче поставить wsl2 и уже на него накатать lite-client, func и fift
Н
19:07
Никита
In reply to this message
что делать, если не запускается ?
*открывается окно, которое мгновенно закрывается
P
19:34
PANTEMON
In reply to this message
Открой через cmd или powershell
о
20:01
о
Ребят, могу ли я создать подобную ссылку для tonkeepr и ton.hub?

ton://transfer/EQDSZaygtNOIhWs8PHNwTWSSxEQF744c8S0d5alQDqqcjQcS?amount=10000000
о
20:07
о
In reply to this message
Спасибо большое :)
о
21:06
о
Ребят, а есть api tonkeepr и tonhub для Python?
VD
21:23
Victor Dm.
Кто знает сколько может быть максимально total_fee?
Н
22:40
Никита
господа, что означает ~перед функцией ?
её обратное значение (?)
DS
22:47
Daniil Sedov
In reply to this message
~ x это логическое отрицание
~x это вызов функции, которая модифицирует аргумент

например msg~load_int(32) получает 32 битовый int и при этом изменяет msg (убирает первые 32 бита в этом случае), а если вызвать через точку, то есть msg.load_int(32), то мы получим 32 битовый инт, но не изменим msg
22:47
https://ton.org/docs/#/func/statements?id=-and-in-function-names

Вот ссылка на документацию по этому поводу
A
23:00
Anonymus
451. if (x->version == std::numeric_limits<uint32_t>::max()) {
ошибка во время сборки проекта 'numeric_limits is not a member of std'
нужно добавить фикс в файл
/ton/third-party/abseil-cpp/absl/synchronization/internal/graphcycles.cc
_
в моём случае проблема решилась добавлением
#include <limits> в заголовочные файлы
DS
23:08
Dmitry Shanin
In reply to this message
В итоге-то у вас собралось все? Я тоже помню такую ошибку. Но у меня были и другие потом.
A
23:08
Anonymus
да, собралось
SH
23:09
Seitaro Higuchi
In reply to this message
Можно попробовать собрать из ветки testnet - она скоро будет смержена с мастером и в ней abseil уже обновлен.
Y
23:12
Yehor
Пытался установить toncli - залогал комп))
Ребутнул и попал в логин скрин луп 😂😂
Нормально в челендже поучаствовал))
A
23:13
Anonymus
с рут пользователя устанавливал что-ли
Y
23:15
Yehor
In reply to this message
Та не, хз как так получилось
23:16
Я ещё не то чтобы эксперт в линукс, буду разбираться сейчас
T
23:16
Tim
в 2 раза больше скилов прокачаешь, только позитив 👍
A
23:16
Anonymus
тогда странно что система поломалась, ни разу такого у себя на опыте не наблюдал, винда чаще ломалась чем линукс xD
T
23:17
Tim
In reply to this message
Да мало что-ли багов бывает. Я как-то в 2017 пытался синкнуть эфир и убил себе ссд этим. Держите бекапы
Y
23:18
Yehor
Поставил lightdm и зашёл) всё ок
A
23:20
Anonymus
In reply to this message
Ни разу ssd не ломались, потому - как-то с осторожностью после этих слухов смотрю на эти диски, а бекапить постоянно большие данные, тупо лень, просто надежда на то что диск в only-read уйдет, и смогу хотя бы данные вытянуть
Y
23:22
Yehor
Ребят, а есть те, кто ставил toncli ? Столкнулся с проблемой и не могу понять в чем вопрос…
ИМ
23:23
Илья Михеев
In reply to this message
Y
23:27
Yehor
намёк понял
в общем, пытаюсь указать путь к func в toncli и получаю:
ERROR: Command '['/usr/local/lib/fift/func', '-V']' died with <Signals.SIGILL: 4>.
23:28
если кто сталкиваля или знает в чем может быть проблема - отпишите плз)
SH
23:28
Seitaro Higuchi
In reply to this message
не для той убунты скачали файлы fift/func похоже.
Y
23:29
Yehor
In reply to this message
сейчас чекну, но вряд ли
Н
23:29
Никита
парни, ещё вопрос, что делают скобки () перед функцией ?
s⁢
23:29
ss_kali ⁢
In reply to this message
пример
Y
23:30
Yehor
In reply to this message
Ubuntu 18.04.5 LTS
ton-binaries-ubuntu-18.04.zip
вроде всё верно
Н
23:32
Никита
In reply to this message
}


() save_data(slice marketplace_address, slice nft_address, slice nft_owner_address, int full_price, cell fees_cell) impure inline {
set_data(begin_cell()
.store_slice(marketplace_address)
.store_slice(nft_address)
.store_slice(nft_owner_address)
.store_coins(full_price)
.store_ref(fees_cell)
.end_cell());
}
23:32
In reply to this message
это из nft-item.fc
DS
23:38
Dmitry Shanin
In reply to this message
архитектура процессора, разрядность?
Убунту и на арм есть (только тон не соберется под арм)
Но может, файл битый просто.
23:45
In reply to this message
ничего не возвращает.в общем случае, перед названием функции тип(ы) возвращаемых значений пишем (slice int builder cell) например. Если одно значение, то можно без скобок. если ничго — ()
NN
23:45
Nick Nekilov
In reply to this message
uname -a что пишет?
Y
23:45
Yehor
In reply to this message
Linux yehor-HP-ProBook-450-G5 5.4.0-122-generic #138~18.04.1-Ubuntu SMP Fri Jun 24 14:14:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
NN
23:47
Nick Nekilov
Всё верно. Наверное что-то с билдом. А сами пробовали собрать?
Y
23:48
Yehor
In reply to this message
Нет, не пробовал
23:48
Советуете самому собрать?
NN
23:49
Nick Nekilov
In reply to this message
Очень рекомендую.
23:50
龙形的影子
Всем привет. Вопрос новичка: какого типа значение выражения 5/3 в func? Как найти остаток от деления?
23:54
龙形的影子
In reply to this message
Я это видел. Что значит / is integer division (rounding??) - целочисленное деление? 5/3=1?
SH
23:55
Seitaro Higuchi
In reply to this message
Да, целочисленное деление
A
23:57
Anonymus
я же смогу собранные смарт конкракты, или как их правильно, запустить как-то и проверить на том же testnet ?
NN
23:57
Nick Nekilov
In reply to this message
Дробная часть отбрасывается.
23:57
Остаток от деления - %

11 / 3 = 3
11 % 3 = 2
SH
23:58
Seitaro Higuchi
In reply to this message
Если вы про конкурс, то да сможете, но это сложнее чем запустить тесты в тонкли
23:58
龙形的影子
In reply to this message
О, спасибо)
A
23:58
Anonymus
In reply to this message
да я в целом, либо свои, либо для конкурса
SH
23:59
Seitaro Higuchi
In reply to this message
Да, в ТОНе достаточно продвинутые смартконтракты, что они работают не только в тестах, но и на блокчейне :)
A
23:59
Anonymus
In reply to this message
я пока просто "хелло ворлды" хочу затестить для начала, перед тем как конкурсы делать
5 August 2022
A
00:02
Anonymus
как бы код собрал из примеров, а что дальше делать, пока не знаю, думаю завтра тогда почитаю что делать, и как работать с ним, а то ночь уже, с установкой возился большую часть времени сегодня
AT
00:03
Andrey Tvorozhkov
In reply to this message
😂😂😂😂😂
DS
00:04
Dmitry Shanin
In reply to this message
мне кажется, для работающего хелловорлда, типа счетчика входящих сообщений хотя бы, с сохранением счетчика в регистр данных и возвращением в гет методе, нужно больше разбираться, чем для решения задач в этом челленже.
A
00:05
Anonymus
In reply to this message
да? я просто новичок пока в смарт контрактах, потому как привык я уже - начинаю с хелло ворлдов, а дальше уже делаю что-то "по делу", когда понял что и как работает
00:07
либо челленджи и созданы чтобы таких же новичков как я заинтересовать и что-то сделать попытаться что хоть как работать будет
DS
00:12
Dmitry Shanin
In reply to this message
Ну ладно, возможно я немного преувеличил. Первая задача точно проще любого рабочего хелловорлда. И во всех, как я понял, нужно написать не рабочий смарт-контракт, а тестируемый метод (в отличие от первого челленжа).
SH
00:13
Seitaro Higuchi
In reply to this message
В тонкли есть деплой кошелька, прям командами, имеет смысл попробовать начать с него. Секно у кошелька, тот же счётчик (в некотором смысле)
A
00:14
Anonymus
In reply to this message
решил глянуть - показалось - можно даже не тестировать их, а просто написать и собрать
предварительно протестировав на уже знакомом мне языке
00:15
In reply to this message
посмотрю, оффлайн версия типа?
DS
00:15
Dmitry Shanin
In reply to this message
Не, там в тестнет деплоить можно. Проще чем через лаитклиетн
A
00:16
Anonymus
попробую тогда, если это проще, он же идет вместе с теми исходниками? или отдельный проект?
DS
00:16
Dmitry Shanin
In reply to this message
Отдельный.
A
00:20
Anonymus
хорошо, спасибо
01:00
龙形的影子
In reply to this message
Форма сдачи - да просто код, но его же надо протестить сначала, а для этого очень помогает хеловорлд
05:15
Deleted Account
hello
05:16
Is this a telegraph project?
SV
05:39
Sergei Voroshilov
In reply to this message
Originally by Telegram but now open source
M
06:09
MksRed
/
PS
07:13
Pablo Samius
Добрый день. Кто разбирается в смарт контрактах ТОН, проконсультируйте по смете и срокам пожалуйста. 5 минут помощь нужна. Может у кого опыт был разработки.

Мне надо порядок цифр (1000/10 000) знать и веремя +/- месяц

Смарт-контракт
1.Токен в сети тон
2.Интеграция токена с андроид приложением, майнинг токена со смарт контракта за целевые децствия
3.НФТ в том же приложении и их покупка за токен.
07:13
Ориентировчно все и грубо.
DS
07:13
Daniil Sedov
In reply to this message
Какой порядок цифр
07:14
Что ты спрашиваешь второй день уже? Я не понимаю
07:14
Какое время +- месяц
SV
07:24
Sergei Voroshilov
In reply to this message
Видимо, он хочет узнать, сколько примерно времени займет разработка смарт-контракта и её стоимость
D
07:27
Daniil
In reply to this message
Ориентировочно и грубо — 15k$ и 9 месяцев работы
SV
07:41
Sergei Voroshilov
Ребят, идите уроки учите что ли. Нечего тут безобразие разводить
PS
07:49
Pablo Samius
In reply to this message
Цена разработки
07:49
Порядок цифр значит не точная цена а приближенная до тысяч
07:54
In reply to this message
Благодарю, а если чуть детализировать по пунктам. Возможно?

Чтоб понимать что важнее и с чего начать. Что сложнее и куда потребуется больше денег