9 August 2022
DS
20:52
Daniil Sedov
Не помню где
20:53
In reply to this message
Да. Компилятор видит что ты возвращаешь [слайс, слайс, инт] и ожидает что твоя функция должна быть прописана так, что она именно такой тип и возвращает, а видит там просто tuple
M
20:58
Mark
We couldn’t find any repositories matching 'org:newton-blockchain unsafe_tuple'
We couldn’t find any code matching 'unsafe_tuple' in ton-blockchain/ton
20:58
Откуда все знают, где его брать?...
20:59
typehelpers это мини-либа написанная под контест чтобы проще было писать тачки
20:59
Там и проверки вроде is_int есть, и приведения к нужным типам
А(
21:01
Андрей Власов (Andrey Vlasov)
In reply to this message
Решил всё не используя дополнительные запросы. Достаточно знать время первой ставки и последней ставки. А дальше математика и условия.
DS
21:02
Daniil Sedov
In reply to this message
Логично
А(
21:02
Андрей Власов (Andrey Vlasov)
In reply to this message
Вопросы возникали при продлении аукциона. )
M
21:33
Mark
depth:(#<= 30) это переменная длинна от 0 до 30 включительно? Как тогда понять сколько? Или всё таки конкретно число? Но почему тогда не # 30?
21:34
В доках нашёл
Parametrized type #<= p with p : # (this notation means “p of type #”, i.e., a natural number) denotes the subtype of the natural numbers type #, consisting of integers 0 ... p; it is serialized into [log2(p + 1)] bits as an unsigned big-endian integer. Type # by itself is serialized as an unsigned 32-bit integer. Parametrized type ## b with b : #<=31 is equivalent to #<= 2^b − 1 (i.e., it is an unsigned b-bit integer). For example:
Нифига не понятно)
В
21:34
Василий
In reply to this message
Я так понимаю это не длинна, это предельное значение
M
21:34
Mark
а не одно и то же?
1 бит длиной 1
2 биты длиной 2
итд
AP
21:34
Andrey Pfau
In reply to this message
Это означает что максимальное число до 30 включительно, 30 в бинарном виде:
11110
Т.е. размер будет таким же как у uint5
В
21:34
Василий
Т.к # это uint. ## в битах
M
21:35
Mark
ааа это максимально число! теперь ясно! прикольно)
AP
21:36
Andrey Pfau
In reply to this message
# это тоже самое что uint32
M
21:36
Mark
ага, через логариф считать размер, по формуле 4,9 округляем до 5 - всё сходится
AP
21:36
Andrey Pfau
## N тоже самое что uintN
M
21:36
Mark
огонь!
AP
21:36
Andrey Pfau
In reply to this message
Да, всё верно
M
21:37
Mark
интересно, зачем убирать это число, несчастное 31
21:37
из области определния
AP
21:37
Andrey Pfau
А там если будет записано 31 то будет кидать эксепшен, это одновременно и проверка на число (от 0 до 30) и одновременно размерность по максимальному числу (5 бит)
M
21:40
Mark
интересно
Так, а { depth >= 1 } не надо десериализовывать, оно не присутствует?
21:40
нафига тогда записано
21:52
аа нет, это другое
21:52
Finally, some equalities/inequalities may be included in curly brackets as well. These are certain “equations”, which must be satisfied by the “variables” included in them
YP
21:57
Yaroslav Paroshin
Добрый вечер! Не подскажите, можно ли в func функции рекурсивно вызывать? Если да, то как это делается?
M
21:58
Mark
можно, просто пишешь вызов как на сях
YP
21:59
Yaroslav Paroshin
In reply to this message
Что-то не хочет оно работать как на сях)
А не могли бы вы подсказать место на документацию, где про это написано?
M
22:00
Mark
не знаю место, доки вообще невпопад, точно работает, проверено)
YP
22:01
Yaroslav Paroshin
In reply to this message
Не на четвертом ли задании контеста? 😁
22:02
In reply to this message
Спасибо, будем разбираться)
M
22:06
Mark
In reply to this message
на самом первом)
DS
22:41
Daniil Sedov
In reply to this message
У меня и на первом, и на четвертом рекурсия. Работает также как в других яп
В
22:42
Василий
Странно. Понаписал ещё проверок и вообще ничего не изменилось.
Как будто какой-то тест не проходит и остальные не запускаются
M
22:42
Mark
In reply to this message
Так вы не из команды TON?
DS
22:42
Daniil Sedov
Интересно, что им там в поддержке каждый раз говорят на такое?
22:42
In reply to this message
Нет 😂
22:43
Я сам func учить за неделю до контеста начал
M
22:44
Mark
жесть, я на выхах в деревне был, у меня считай второй день...
И что уже 500/500?
Моя деревня без интернета и там надо было работать)
DS
22:44
Daniil Sedov
Я 3 таску тоже из деревни закрывал
22:45
In reply to this message
Да, 500, но код кринжовый в парочке задач
M
22:46
Mark
Подскажите за соединение байтов в слайс, по кусочкам? Это что-то типа store_slice()? Или куда хоть посмотреть, не вижу такого примера
DS
22:48
Daniil Sedov
In reply to this message
Ну я прямо через store_slice это делал. Но мне кажется есть способы получше, у меня там end_cell и begin_parse раза 3 вызываются, а это много газа жрёт
M
22:50
Mark
Ну лучше было бы, наверное, двигаться побайтно и записывать, но не хочу ломать голову и так жестоко)
Откуда там бегин парс?
N
22:54
Nick
Пожскажите, сколько места необходимо для toncenter
22:54
Не увидел в доке
T
22:55
Tim
In reply to this message
очень мало, но лучше юзать лайт клиенты на вашем языке, если есть возможность
DS
22:58
Daniil Sedov
In reply to this message
Ну store_slice мы можем делать к builder, а читать можем из slice... Вот я туда сюда эти штуки в cell и обратно перевожу. Скорее всего я что-то не так понял и можно было проще
M
23:01
Mark
А кто нибудь понимает, почему закомментирована функция ;; builder store_uint(builder b, int x, int len) asm(x b len) "STUX"; ?
AP
23:02
Andrew Python
In reply to this message
Потому что компилятор оптимизирует (использует инструкцию STU), т.е. store_uint, как и некоторые другие функции, захардкодена в компиляторе
M
23:06
Mark
crc16 самостоятельно предполагается имплементить или уже нашлась в закромах инструкция компилятора?)
DS
23:07
Daniil Sedov
In reply to this message
Самостоятельно
M
23:08
Mark
в целом радует, что самое активное коммюнити из России (СНГ), спасибо ребята, что вы есть)
IM
23:09
Ivan Milov
Пробую дефолтный wallet задеплоить в тестнет. Запускаю с Windows 10. Получаю ошибку

File "C:\Python\lib\site-packages\toncli\modules\abstract\deployer.py", line 126, in get_address
raise ValueError(f"😥 No address_text found in {contract.address}")
ValueError: 😥 No address_text found in C:\Users\milov\AppData\Local\toncli\toncli\wallet/build/contract_address

Что я делаю не так и как пофиксить?)
DS
23:11
Daniil Sedov
In reply to this message
Там не про рекурсию
AT
23:14
Andrey Tvorozhkov
In reply to this message
Видимо старая версия тонкли?

toncli build
toncli deploy

Если не получится - удалить системную папку с настройками и toncli deploy
23:14
Эту папку C:\Users\milov\AppData\Local\toncli\toncli\wallet
YP
23:18
Yaroslav Paroshin
In reply to this message
Угу, видел, здесь просто про функции написано
Перечитал, вроде про рекурсию не сказано ничего
M
23:21
Mark
А в чем особенность то с рекурсией?
IM
23:24
Ivan Milov
In reply to this message
Удалил её. При запуске деплоя:

INFO: 🚀 You want to interact with your contracts ['contract'] in testnet - that's great!
INFO: ✋ Do not panic - i'm creating wallet in C:\Users\milov\AppData\Local\toncli\toncli, so you can easily manage your contracts
INFO: 🐒 I'll create folder C:\Users\milov\AppData\Local\toncli\toncli/wallet with project wallet and all needed files
INFO: 👑 Folder successfully created - happy blockchain hacking
INFO: 🐼 You now can do cd wallet and toncli deploy -n testnet
INFO: 🤗 Run tests on ['C:\\Users\\milov\\AppData\\Local\\toncli\\toncli\\wallet\\fift\\data.fif']
fatal: cannot open source file C:\Users\milov\AppData\Local\toncli\toncli\fift-libs
INFO: 🥳 Start contract manipulation
fatal: cannot open source file C:\Users\milov\AppData\Local\toncli\toncli\fift-libs

File "C:\Python\lib\subprocess.py", line 524, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['C:\\Python-TON\\func.exe', '-I', 'C:\\Users\\milov\\AppData\\Local\\toncli\\toncli\\fift-libs', '-s', 'C:\\Users\\milov\\AppData\\Local\\Temp\\tmp1opijxcu.boc', '']' returned non-zero exit status 1.
___________________

toncli уже переустанавливал через pip uninstall / pip install. Не помогло.

В C:\Users\milov\AppData\Local\toncli\toncli\config.ini записано:

[executable]
func = C:\Python-TON\func.exe
fift = C:\Python-TON\func.exe
lite-client = C:\Python-TON\func.exe

Это нормально?)

Ещё смущает, что toncli start wallet я писал в папке C:\Crypt\TON\, у меня там проект создался. А при деплое ругается на C:\Users\milov\AppData\Local\toncli\toncli\. Это нормальное поведение, что проект дублируется в другую папку?
YP
23:26
Yaroslav Paroshin
In reply to this message
Да вроде ни в чем, если на своем опыте проверили, что работает, в целом вопрос исчерпан)
Хочется, конечно, чтобы было в доках явно написано, что она есть и что все норм, но хотеть не вредно, ахах
DS
23:26
Daniil Sedov
In reply to this message
Было бы странно, если бы её не было :)
В
23:26
Василий
Просто вызов функции дорогой как я понимаю, а так всё ок. Машина стековая значит стек наверное большой))
IM
23:27
Ivan Milov
In reply to this message
Поправил конфиг, поставил нормальные пути до exe-шников, вроде бы заработало. Спасибо)
YP
23:29
Yaroslav Paroshin
In reply to this message
Каких только приколов в жизни не бывает, так что лучше перебдеть)
AT
23:30
Andrey Tvorozhkov
In reply to this message
Какая ошибка, если выполнить команду в командной строке?
23:30
Которая func.exe ....
23:31
'['C:\\Python-TON\\func.exe', '-I', 'C:\\Users\\milov\\AppData\\Local\\toncli\\toncli\\fift-libs', '-s', 'C:\\Users\\milov\\AppData\\Local\\Temp\\tmp1opijxcu.boc', '']'
23:34
In reply to this message
А, так конфиг неправильный. Везде func указано 😂😂😂
IM
23:34
Ivan Milov
In reply to this message
угу, я же написал выше, что поправил и заработало)
В
23:39
Василий
Я правильно понимаю что тестовая система работает до первого проваленного теста?
M
23:42
Maxim
тут есть кто работает с библиотекой ton на питоне? есть вопросик
DK
23:48
Dmitry Korobeynikov
In reply to this message
Я немного работаю
V
23:48
Victor
In reply to this message
От psylopunk?
M
23:49
Maxim
да
V
23:49
Victor
In reply to this message
Тут даже есть автор
M
23:52
Mark
Кто знает рантайм
Error: Cant execute vm: bag of cells is expected to have exactly one root} ?
10 August 2022
IM
00:02
Ivan Milov
PS C:\Crypt\TON\wallet> toncli deploy -n testnet
INFO: 🚀 You want to interact with your contracts ['contract'] in testnet - that's great!
INFO: 🏗 Config of testnet will be downloaded to C:\Users\milov\AppData\Local\toncli\toncli from None

File "C:\Python\lib\site-packages\requests\models.py", line 318, in prepare
self.prepare_url(url, params)
File "C:\Python\lib\site-packages\requests\models.py", line 392, in prepare_url
raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL 'None': No scheme supplied. Perhaps you meant http://None?

А с такой ошибкой кто-то сталкивался? 😳
AT
00:17
Andrey Tvorozhkov
In reply to this message
В конфиге должен быть тонцентр прописан, судя по всему он None?
IM
00:19
Ivan Milov
In reply to this message
Нет, в конфиге норм. Не знаю, что за фигня. Удаление папки C:\Users\milov\AppData\Local\toncli\toncli\wallet\ и новый билд помог.
IM
00:35
Ivan Milov
In reply to this message
Не, бесполезно.

В конфиге:
[DEFAULT]
toncenter_mainnet = https://toncenter.com/api/v2
toncenter_testnet = https://testnet.toncenter.com/api/v2

Контракт задеплоил, монеты закинул. Пробую по мануалу получить данные:

toncli send -n testnet -a 0.03 --address "тут адрес" --body ./fift/try.fif
INFO: 🏗 Config of testnet will be downloaded to C:\Users\milov\AppData\Local\toncli\toncli from None

File "C:\Python\lib\site-packages\requests\models.py", line 318, in prepare
self.prepare_url(url, params)
File "C:\Python\lib\site-packages\requests\models.py", line 392, in prepare_url
raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL 'None': No scheme supplied. Perhaps you meant http://None?

Не везёт сегодня))
А(
00:36
Андрей Власов (Andrey Vlasov)
Друзья, товарищи.
Можно ли на созданных жетонах менять логотип, точнее установить его, т.к. его нет.
Если да, то как?
Создавался через Jetton. live
В
00:37
Василий
Как в toncli запустить конкретный тест?
AT
00:46
Andrey Tvorozhkov
In reply to this message
Боюсь, никак :(
00:47
Хотя наверное можно написать так, чтобы можно было
00:47
Можете законтрибьютить :)
AK
00:49
Andrey Kravchenko
In reply to this message
Мне было достаточно запуска тестов для определенной задачи toncli run_tests -c task1
AT
01:27
Andrey Tvorozhkov
In reply to this message
Это скорее в рамках разных смартов
01:27
А в рамках одного Смарта конкретный тест нельзя
AK
01:28
Andrey Kravchenko
In reply to this message
Да, я просто все еще оперирую в рамках конкурса. ))
Д
06:00
Дмитрий
Ребят, всем привет)
Компилю я на ubuntu 20.04 из под WSL lite-client командой cmake ~/ton и у меня выскакивает ошибка CMake Could not find ZLIB (missing ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
Кто сталкивался, как решили?
06:01
Ошибка, возможно, не связана с файлами TON, но никак не могу откопать решение
Д
06:17
Дмитрий
zlib1g у меня стоит
06:20
Сам себе на вопрос отвечу, может помогу кому, zlib1g здесь не нужен, ставить необходимо дополнительно zlib1g-dev
06:26
И если будет ошибка связанная с SSL, установите libssl-dev
ИК
07:15
Игорь Коняхин
В FunC вообще есть какой-либо аналог try/catch?
Насколько я понимаю, такого синтаксиса пока что нет, но подобная функциональность судя по всему есть на Fift-Asm.

Может кто-то уже делал обёртки для FunC?
Чтобы можно было делать что-нибудь вроде:
begin_try();

;; Стрёмный код

begin_catch();

;; Обработка ошибок

end_try();
Y
09:07
Yaman2314
Народ есть гайд как вывести ton с бота в кошельке на bsc метомаск?
AS
09:08
Aleksandr Shepelev
In reply to this message
боты не выводят врапнутый токен. хотите врапнутый, воспользуйтесь мостом

https://ton.org/bridge/?fromNetwork=ton&toNetwork=bsc
В
09:44
Вячеслав
just fyi: для 3 таска, оказывается, валидировать body тоже надо
согласно
https://ton.org/docs/#/howto/smart-contract-guidelines
DS
09:57
Daniil Sedov
In reply to this message
все что там с body валидировать надо, это первый бит и наличие ref в случае если бит равен 1 :)
09:57
ничего другого мы и не сможем проверить
09:57
т.к. не знаем тип X
В
09:58
Вячеслав
In reply to this message
ну, тем не менее)
по доке)
я не валидировал структуру internal message
DS
09:58
Daniil Sedov
In reply to this message
ты это все чтоли валидировал ?
09:59
это же неправильно
09:59
In reply to this message
body не обязательно должен подчиняться этим стандартам
В
09:59
Вячеслав
In reply to this message
> A 32-bit (big-endian) unsigned integer op, identifying the operation to be performed, or the method of the smart contract to be invoked.
вот это
DS
09:59
Daniil Sedov
In reply to this message
body вообще любой может быть
В
09:59
Вячеслав
In reply to this message
для internal message должен быть хотя бы один бит
DS
09:59
Daniil Sedov
на практике, да, там какую то инфу нужно ожидать
В
10:00
Вячеслав
в body
DS
10:00
Daniil Sedov
In reply to this message
да
В
10:00
Вячеслав
насколько я понял
10:00
вот это я и валидировал)
DS
10:00
Daniil Sedov
а
10:00
ну
10:00
ща
10:00
body:(Either X ^X)
10:00
просто 1 бит чекнуть и наличие ref если бит 1
В
10:01
Вячеслав
In reply to this message
так, подожди, either_tag это отдельный же бит, нет?
10:01
я чекал 1 бит в X
10:01
что slice_bits(X) >= 1
DS
10:02
Dmitry Shanin
In reply to this message
а есть способ превратить блок кода в continuation на стеке? мне кажется, без этого пока код с обработкой исключений, только на фифте можно писать. обертку не представляю как сделать. ждем синтаксиса в func (или tact уже)
NN
10:13
Nick Nekilov
In reply to this message
var cs = c.begin_parse();
cont f = cs.bless();
int y = f.execute(x);
EK
10:13
Eugene Kalinovskiy
интересно, что нет в func stdlib skip_ref(). Поэтому интересно, как ссылки хранятся, по очереди, или где-то сбоку. Если, например, store_ref сделали, и по slice-у ~load_ref не пройтись, упадёт ли парсинг намеренного?
DS
10:14
Dmitry Shanin
In reply to this message
это ты из села континуешн берешь. а как ты его туда положишь?
AT
10:19
Andrey Tvorozhkov
In reply to this message
Bless

(Извините)
NN
10:33
Nick Nekilov
In reply to this message
cell f_code() asm "<{ 3 PUSHINT MUL }>c PUSHREF";
DS
10:34
Dmitry Shanin
Вообще, если "<{ " и " }>CONT" такие же команды фифта как и все остальные, можно попробовать провернуть грязный хак для оборачивания блока кода в cont. но скорее всего, компилятор заоптимизирует это как неиспользуемый код.
DS
10:51
Dmitry Shanin
In reply to this message
Я имел в виду из блока кода. О чем спрашивал @nns2009 если я правильно его понял. типа, чтобы писать try catch не в ассемблере, а на func уровне. Я что-то такое пробовал и пришел к выводу, что нет нормального способа. Но может быть, кому-то удалось.
M
10:52
Mark
Коллеги, кто нибудь запускает тесты смартконтрактов через tonstarter? Что удобнее он или lite-client?
AP
10:53
Andrew Python
In reply to this message
Можно использовать в asm функцию из FunC, если присвоить ей кастомный method_id (в теории)
M
10:56
Mark
А еще cell в slice если переводим, result.begin_parse() - корректно? Нужно ли закрывать обязательно end_parse()?
В
10:58
Вячеслав
In reply to this message
end_parse() просто проверяет, что там ничего не осталось после твоего парсинга
https://ton.org/docs/#/func/stdlib?id=end_parse
M
11:01
Mark
вот я тоже подумал так, когда прочитал, просто гештальт не закрыт по ощущениям) Вячеслав, а вы проверяли, что так ок?
11:02
In reply to this message
Кто из js запускает тесты, вот это корректно?
const call = await contract.invokeGetMethod("encode_address", [{ type: 'cell_slice', value: 'test' }]);
11:02
для int у меня работало, а теперь, как будто не пашет
В
11:07
Василий
addr_none это валидный MsgAddressInt?
На мой взгляд нет, но я сделал так, что он принимался как валидный и тест прошёл.
К чему тогда эта портянка про то что никаких MessageRelaxed?
В
11:10
Вячеслав
In reply to this message
я не вызывал end_parse()
11:10
In reply to this message
короче, моя истинная проблема была в том, что я не валидировал никак рефки
я просто смотрел, есть ли они, а дальше забивал и шел дальше)
11:11
а то, что я дописал проверку body просто случайно помогло
M
11:11
Mark
А как их можно валидировать?
if (either == 1) {
msg_bd = cs~load_ref();
В
11:12
Василий
In reply to this message
Воу палехче!
А откуда это? Ведь это только гайдлайн, а в TL-B этого нет!
В
11:12
Вячеслав
In reply to this message
вот только обсудили, что это неправда
11:12
In reply to this message
.
11:13
In reply to this message
как обычный Type, просто предварительно его надо загрузить через load_ref
В
11:16
Василий
In reply to this message
А как так могло быть? Ведь там тоже рефы валидировать не нужно чтобы оно соответствовало гайдлайну
В
11:16
Вячеслав
In reply to this message
там есть один тип в TL-B, который нужно валидировать
В
11:16
Василий
Вообще у меня валидация рефов написана давно, но все равно 80
В
11:47
Василий
Если оба адреса и src и dst addr_none это валидный мессадж? По идее да
11:48
По TL-B, а с точки зрения логики нет
11:48
Вот и хз
M
12:50
Mark
Нашел пример адреса стд в доках
"Ef8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM0vF"a
в hex 11ff3333....
в bin 10 0 0111 1111 1
далее в примере пишут
becomes slice const (addr_std$10 anycast:none$0 workchain_id:int8=0xFF
addr_std$10 anycast:none$0 дают три бита
далее должны быть 8 workchain_id, но 0111 1111 не дают 0xFF
Это ошибка? Откуда лишний бит?
В
13:40
Василий
В 4-й таске может быть такое, что в тапле больше 4-х целлов?
AP
13:43
Andrew Python
In reply to this message
Да. Там до 128 разнообразных элементов (т.е. может быть и 128 cell)
В
14:57
Василий
tuple'ы надо поэлементно сравнивать? Или есть какой-то оператор типа sdeq? Где-то есть дока по инструкциям fift?
Кроме этого:https://github.com/Piterden/TON-docs/blob/master/Fift.%20A%20Brief%20Introduction.md
N
15:21
Nomam3e
тут уже обсуждают контест?
Iz
15:23
Ideš za Kanadu
Привет ребят, у меня к вам опять не много тупой, базовый, но крайне интересущий меня вопрос)
может кто нб подсказать(или дать ссылку на почитать), каким образом мы в коде вызываем папку с жейсон файлами с нашими НФТ?
N
15:29
Nomam3e
In reply to this message
"Ef8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM0vF"a becomes x{9FE6666666666666666666666666666666666666666666666666666666666666667_}

0x9FE666666666666... = 10 0 11111111 00110011...
15:33
если из base64 переводить в hex, то другая структура получается https://ton.org/docs/#/howto/step-by-step?id=_1-smart-contract-addresses
15:33
    one tag byte (0x11 for "bounceable" addresses, 0x51 for "non-bounceable"; add +0x80 if the address should not be accepted by software running in the production network)
one byte containing a signed 8-bit integer with the workchain_id (0x00 for the basic workchain, 0xff for the masterchain)
32 bytes containing 256 bits of the smart-contract address inside the workchain (big-endian)
2 bytes containing CRC16-CCITT of the previous 34 bytes
V
15:35
Victor
In reply to this message
Называется collection base url
Iz
15:36
Ideš za Kanadu
In reply to this message
это зарезервированный метод? он описан в доке?
15:36
не могу его нагуглить чет
V
15:37
Victor
In reply to this message
Что вообще по тону можно нагуглить?)
Iz
15:37
Ideš za Kanadu
In reply to this message
я имею ввиду в доке)))
15:38
название просто мало о чем говорит, прочитать бы подробнее
В
15:54
Василий
А store_ref( builder ) это ок?
ИК
15:57
Игорь Коняхин
In reply to this message
Нет, но есть ассемблер-команда STB и STBR:
https://ton-blockchain.github.io/docs/tvm.pdf
DS
15:58
Dmitry Shanin
In reply to this message
А store_builder() в stdlib нет разве?
ИК
15:58
Игорь Коняхин
Нет, но вот:
builder store_builder(builder a, builder b) inline asm "STBR";
M
16:16
Mark
In reply to this message
А где у меня ошибка? Почему вы один нолик выбросили?
N
16:35
Nomam3e
In reply to this message
Путаешь типы записи адресов. Есть addr_std с своей структурой, а есть запись, удобная для использования. Функ при использовании ""a сам переводит одно в другое, поэтому ошибки нет, просто вот это действие пропускаешь
16:42
Ef8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM0vF=11(bounceable)ff(workchain)3333333...(address)4bc5(crc16)
M
16:53
Mark
То есть вот это Ef8zMz...0vF еще надо преобразовать как-то в addr_std, чтобы можно было распарсить по TB-L? А как?
Да вы правы, не понимаю откуда bouncable берется... это ведь уже другой тип адреса по TB-L который $11
Направьте, пожалуйста?
N
16:56
Nick
Кто уже поднимал тонцентр у себя?
N
16:56
Nomam3e
In reply to this message
Вроде бы первый байт дополнительно добавляется как необходимо, в контесте вот просят 0x11 добавить
M
16:56
Mark
То есть "User-friendly" это не addr_**$** !?
N
16:57
Nomam3e
Не, выше давал ссылку
16:57
In reply to this message
Вот тут посмотреть можно
M
16:59
Mark
не укладывается... То есть то что приходит в метод мы парсим по TB-L, в как раз то что я как пример приводил, так что ли?
То есть адрес в примере Ef8zMz...0vF - это наоброт результат работы метода?
M
17:16
Mark
one tag byte (0x11 for "bounceable" addresses, 0x51 for "non-bounceable"; add +0x80 if the address should not be accepted by software running in the production network)
То есть нам надо прибавить? Записывать 0x91?
N
17:37
Nomam3e
In reply to this message
Если про 5 задание, то да
A
18:33
Artyom
Всем привет, подскажите, пожалуйста, момент один по тестированию контракта на FunC) почему в data-функции сохраняется 0 в ячейку с data, а когда идет проверка этого значения в тестовой функции, то оно уже сравнивается с 10 (и выполняется условие)? откуда там 10 появляется, если 10 кладется только в message, а потом message в stack? Сам контракт просто добавляет приходящее ему сообщение к имеющейся сумме и сохраняет ее. Но не могу понять, где тут отправка сообщения в тестовой функции... то, что в ячейку "message" положили 10 - это же не равно отправить сообщение в контракт?🤯 и почему нельзя посмотреть эту 10 в стэке, который в тестовую функцию передается, взяв первый элемент из него? выдает статус fail с кодом 5
AP
18:57
Andrey Pfau
In reply to this message
Установи плагин чтобы подсветка и подсказки были:
https://plugins.jetbrains.com/plugin/18541-ton-development
s
19:01
sepеzho.copy
Есть идеи почему жетон RedCoin отображается на всех сканах корректно, а жетоны которые я тестово минчу через jetton.live отображаются не везде?
N
19:01
Nomam3e
In reply to this message
вот бы подсветочку под atom
s
19:02
sepеzho.copy
In reply to this message
Поидее один стандарт ведь..
N
19:05
Nomam3e
In reply to this message
в c4 может у тебя в контракте 10 сохраняется
19:15
хелп, никто не сталкивался случаем?
AS
19:17
Aleksandr Shepelev
In reply to this message
в жетон лайв ончейн метадата
19:17
не все ее пока поддерживают
s
19:17
sepеzho.copy
In reply to this message
лучше делать офчеин?
AS
19:17
Aleksandr Shepelev
лучше ончейн
19:17
но не все поддерживают)
s
19:17
sepеzho.copy
нууу это вопрос времени, окей)
A
19:20
Artyom
In reply to this message
вот сам контракт) тут вроде все просто: добавляет к сумме то, что пришло в сообщении, и сохраняет в с4
19:21
In reply to this message
спасибо, поставил)
mメ
19:53
merik メリク
Всем привет!

Использую библиотеку tonweb.js, пытаюсь реализовать трансфер нфт у которого нет collectionAddress, а еще может и не быть индекса

А параметры в классе NFTItem предполагают их наличие

Как быть в таких случаях? Как реализовать трансфер? По идее же должно быть достаточно адреса нфт и адреса получателя
s
20:00
sepеzho.copy
In reply to this message
Я правильно понял, что порядок минтинга жетонов такой:

задеплоить мэин контракт, проставить в него данные
задеплоить кошели на каждый адрес куда мы хотим отминтить жетоны
отминтить токены уже на "спец" кошельки (я так понял это "доп" кошельки для жетонов которые закреплены за осн кошельяками в тоне)

?
AS
20:01
Aleksandr Shepelev
In reply to this message
🙁

просто деплоишь мейн контракт и всё
s
20:01
sepеzho.copy
In reply to this message
ну минт токенов куда производить
AS
20:01
Aleksandr Shepelev
просто хреначишь на производные кошельки от основных, не надо их деплоить никому))
s
20:02
sepеzho.copy
у них получается минт происходит на какие-то другие кошельки, а эти кошельки уже закреплены за обычными тонкоин валетами
Iz
20:02
Ideš za Kanadu
это самая гениальная иллюстрации рабботы тон блокчейна
есть такие кто учился по ээтому уроку?)))0)
A
20:07
Anton
Какие есть работающие библиотеки под питон или js?
a
20:08
assemblerx64
In reply to this message
A
20:15
Alexander
In reply to this message
В docs есть ссылки)
VD
20:24
Victor Dm.
Народ есть инстукий как в телеграме сделать свое nft коллекцию?
C
20:24
Chell
Драсти!
Два вопроса: можно ли в НФТ делать скрытое содержимое, доступное после покупки.
И можно ли продавать НФТ за жетоны?
20:25
In reply to this message
Это секретная информация походу, и не только она.
VD
20:27
Victor Dm.
извиняюсь, я не так вопрос задал, задам более точно какие смарт контракты нужны, нужен только один смарт контракт типо магазина?
Д
20:42
Дмитрий
Всем привет ещё раз! Разворачиваю я значит lite-client по инструкции с офф сайта и ничё не могу понять. Сам клиент развернулся и работает, а вот компиляторы я cmakeлю, а их файлов или даже папок не появляется, при этом процесс не сыпется ошибками.
Вопрос, что я делаю не так?
20:53
Ребят?
20:55
In reply to this message
func и fift не хотят просто работать и всё
А
20:56
Андрей
In reply to this message
попробуйте mytonctrl, он сам все поставит
В
20:59
Василий
У меня тут философский вопрос созрел. Вот сериализовал я cell со ссылками на другие cell'ы. А где они живут по факту? Выполнение закончилось, в памяти их нет, но однако я могу их десериализовать обратно. Получается это не ссылка, а просто склеенная особым образом ячейка? Или как?
20:59
Кто они по жизни такскать
Д
21:00
Дмитрий
In reply to this message
У меня wsl, туда не встанет mtc
N
21:50
Nomam3e
In reply to this message
вроде бы там собирается bag of cells, это структура в которой есть cell и массив ссылок на другие cell, а хранятся как-то так
x{FF00F4A413F4BCF2C80B}
x{62_}
x{CC}
x{D4_}
x{0831C02497C138007434C0C05C6C2544D7C0FC03383E903E900C7E800C5C75C87E800C7E800C00B4C7E08403E29FA954882EA54C4D167C0278208405E3514654882EA58C511100FC02B80D60841657C1EF2EA4D67C02F817C12103FCBC2_}
x{3E910C1C2EBCB8536_}
N
21:51
Nick
Ребят, не подскажете, как в свой тонцентр добавить ключ к API?
T
21:57
Tim
In reply to this message
Никак?
N
21:59
Nick
Не нашел нигде информации, и в коде даже вроде проверки нет, а в хедере инфа про api_key есть
C
22:07
Chell
Короче все понятно, охенное комьюнити, охенный тон, охенные разрабы, охенные мануалы которых нет.
А потом удивляются, что эту шарагу скамом называют...
В
22:08
Вячеслав
а есть какие-нибудь tpush / tpop, но в начало кортежа?
22:09
In reply to this message
на главной страничке сайта:
Register your API key in the @tonapibot to get access with higher limits.
N
22:09
Nick
In reply to this message
Речь про тонцентр на своем хостинге
В
22:10
Василий
In reply to this message
Есть https://ton.org/docs/#/func/stdlib?id=cons
Но я пока не понимаю как этим пользоваться
То ли tuple.cons( unsafe_tuple([1]) )
То ли наоборот. Никакн не работает
В
22:10
Вячеслав
In reply to this message
это для lisp-подобных списков
а мне надо для обычного кортежа
AS
22:11
Aleksandr Shepelev
In reply to this message
для тонцентра на своем хостинге ключи не нужны
F
22:11
Ferrari Apple
In reply to this message
Никто не может подсказать? Тоже нужно
N
22:11
Nick
In reply to this message
Ну справедливо вообще-то да
22:11
Но табличка есть в доке, и это меня смутило
AS
22:11
Aleksandr Shepelev
но если очень хочется, можно поднять своего бота и раздавать ключи))
N
22:12
Nick
да не в том вопрос, вопрос как их туда интегрировать
22:12
In reply to this message
Ладно, я соглашусь с этим
Н
22:20
Никита
Помогите, пожалуйста, по какой причине lite-client открывается и сразу закрывается, что с ним не так ?
T
22:21
Tim
По такому вопросу никто не поможете
22:21
Логи Конфиги в студию
В
23:00
Василий
Как надо сложить в лист чтобы list_next() работал?
list.cons( unsafe_tuple( [ 1 ]  )  )
Или
list.cons( unsafe_tuple( [1,null()] )
Похоже что ни то, ни другое
В
23:15
Василий
list = cons( [...], list)Е
сли кому интересно
C
23:16
Chell
In reply to this message
😂 Ну вы и пингвины, вы бы на вопрос ответили лучше, чем подтверждать мои слова, или через губу не плюнете, все пздц какие занятые?
AS
23:19
Aleksandr Shepelev
In reply to this message
после каждого сообщения так и хочется ответить))
C
23:20
Chell
In reply to this message
Да...
l
23:22
lexxxser
In reply to this message
Так ты сам себе отвечаешь, из вежливости никто не вмешивается
C
23:24
Chell
🤦🏻‍♂️
АГ
23:24
Андрей Гулицкий
In reply to this message
C
23:25
Chell
Да я уже понял, что дебилы, не надо мне это доказывать
l
23:25
lexxxser
In reply to this message
Еще что нибудь?
23:26
Обращайся, бро
C
23:26
Chell
In reply to this message
Нет, можете идти нахуй
l
23:27
lexxxser
In reply to this message
Ой, это так мило ☺️
M
23:30
Mr? BunnyFight
In reply to this message
Мужик, я тебе так скажу, если искать, все найдётся...

Придерживайся этому правилу.

https://ton.org/docs/#/func/statements
это
https://ton.org/docs/#/func/types
это
https://ton.org/docs/#/func/global_variables
и это надо держать под рукой

Если ты не будешь вкладываться в работу, профита не будет...
23:32
Все есть в доке, ответ на любой вопрос) Так же советую разобрать и другие СК в OpenSource, начни с малого, а после лезь во что-то крупное
В
23:33
Василий
В toncli между тестами через дата регистр нормальная тема перенести данные
N
23:46
Nomam3e
In reply to this message
если бы всё...
M
23:47
Mr? BunnyFight
In reply to this message
Было так просто...
Z
23:48
Zainabella
Hello
M
23:49
Mr? BunnyFight
In reply to this message
Поэтому я в дев чате и сижу, все же какие-нибудь вопросы можно задать и за одно встретить неплохих ребят, кто разбирается неплохо на фанцах
23:49
In reply to this message
Hi
N
23:50
Nomam3e
In reply to this message
можно ли как-то делать asm вставки в func отсюда? https://ton-blockchain.github.io/docs/fiftbase.pdf
В
23:51
Василий
In reply to this message
Ну, явного запрета точно небыло
N
23:51
Nomam3e
это было бы удобно брать
23:51
но нормально к подобной функции как обратиться?
DS
23:53
Dmitry Shanin
In reply to this message
Прочитай что берет со стека, что возвращает, соответствующую сигнатуру функции напиши, asm и в кавычках название этой операции
N
23:54
Nomam3e
In reply to this message
а как передавать значения из аргумента функции func в данную? из стека их брать?
DS
23:56
Dmitry Shanin
In reply to this message
не понял вопроса. так же, как и в другие функции передаешь
N
23:59
Nomam3e
In reply to this message
(slice) frendly_parse(int workchain, int address, int code) asm "smca>$";
так?
11 August 2022
AP
00:01
Andrew Python
In reply to this message
нет, это можно использовать только оффчейн. В tvm нет таких инструкций
N
00:02
Nomam3e
In reply to this message
тогда каким образом работает преобразование ""a?
AP
00:03
Andrew Python
In reply to this message
это делает компилятор FunC
N
00:03
Nomam3e
In reply to this message
понял, спасибо
ИК
00:44
Игорь Коняхин
У кого-нибудь есть рабочий билд последнего FunC?
На Windows или на Ubuntu 20 (WSL)
AP
00:49
Andrey Pfau
In reply to this message
В чём проблема?
В
00:51
Василий
Можно между тестами в toncli передать данные через c4?
ИК
00:54
Игорь Коняхин
error: `if` and `else` branches should both return or both not return
На последнем FunC это вроде бы пофиксили, но Windows билд достаточно старый, а Ubuntu: https://github.com/ton-blockchain/ton/actions/runs/2830772469 - нерабочий, пишет: Illegal instruction
В
01:01
Василий
Почему empty_tuple не null как остальные пустые штуки в фанси?
J
04:08
Jenya
from ton.sync import TonlibClient
from ton.utils import wallet

client = TonlibClient()
TonlibClient.enable_unaudited_binaries()
client.init_tonlib()


wallet = client.import_wallet('фраза')
path = wallet.path
wallet = client.find_wallet(path)

wallet.transfer('EQCl1Ug9ZT9ZfGyFH9l4q-bqaUy6kyOzVPmrk7bivmVKJRRZ', client.to_nano(0.01), comment='test')

выходит ошибка

Traceback (most recent call last):
File "/home/ubuntu/egsaa/generate_wallet.py", line 14, in <module>
wallet.transfer('EQCl1Ug9ZT9ZfGyFH9l4q-bqaUy6kyOzVPmrk7bivmVKJRRZ', client.to_nano(0.01), comment='test')
File "/home/ubuntu/.local/lib/python3.10/site-packages/ton/sync.py", line 18, in syncified
return loop.run_until_complete(coro)
File "/usr/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
return future.result()
File "/home/ubuntu/.local/lib/python3.10/site-packages/ton/account/wallet_methods.py", line 79, in transfer
return await self.send_messages(messages, **kwargs)
File "/home/ubuntu/.local/lib/python3.10/site-packages/ton/account/wallet_methods.py", line 33, in send_messages
state = await self.build_state()
File "/home/ubuntu/.local/lib/python3.10/site-packages/ton/account/wallet_methods.py", line 15, in build_state
assert 'source' in self.__dict__, 'source must be specified'
AssertionError: source must be specified
a
07:10
assemblerx64
In reply to this message
Баг, лучше в issue такие штуки, пофикшу в след версии. Пока можно попробовать после find_wallet исполнять wallet.source = “v3r2”

Это я пытался впилить версии кошельков, но tonlib не хочет подписывать сообщения от v4 кошельков. Скоро будет более нативная библиотека с поддержкой всего и тогда я адаптирую эту, чтобы она работала без tonlib и со всеми версиями
NN
07:32
Nikolay Nick
А есть где то пример для 5 задания из какого адреса и что должно получиться?
NN
08:31
Nikolay Nick
In reply to this message
08:31
Вроде он
В
09:28
Вячеслав
In reply to this message
Должен получиться "user-friendly" адрес, согласно доке: https://ton.org/docs/#/howto/step-by-step?id=_1-smart-contract-addresses

Пример такого - адрес твоего кошелька
09:36
А никто еще тут не пробовал написать транслятор с какого-нибудь питона (или любого удобного для вас яп) на func/fift? Может, есть какие-то репозитории? Любопытно посмотреть.
a
09:38
assemblerx64
In reply to this message
У Everscale есть, но я не изучал особо насколько их трудно мигрировать на тон
DS
09:38
Daniil Sedov
In reply to this message
было что то такое, там синтаксис похож на плюсы/раст, транслируется в func
a
09:38
assemblerx64
In reply to this message
Ты про tact-lang.org?
DS
09:38
Daniil Sedov
да
a
09:39
assemblerx64
Он пока не готов вродь сильно, чисто для игрушек можно посмотреть да
NN
10:05
Nikolay Nick
In reply to this message
из :
0:89161774377295515140711721210210229423767269993030697376312246444550094176852

в:
kQDFH8ajQ8J_hr7SLULhZIyVQ-S3DXPgdhk-haFI_xHCVEBa

Верно?
NN
10:07
Nikolay Nick
ну вопрос конкретики, чтобы тест написать. исходник такой результат такой.
В
10:09
Вячеслав
вполне конкретно — на вход задан слайс, в котором лежит адрес в формате, описанном тут https://github.com/newton-blockchain/ton/blob/master/crypto/block/block.tlb#L105

на выходе нужно получить адрес, который будет соответствовать тому, что ты написал (kQD...)
10:10
0:89161774377295515140711721210210229423767269993030697376312246444550094176852
— это raw address, уже не MsgAddressInt, но и не user-friendly
NN
10:12
Nikolay Nick
легко понимаемой информации мало. только такая в которой разбираться - голову сломаешь
В
10:23
Василий
Почему empty_tuple() не null как большинство пустых вещей в фанси?
DS
10:24
Daniil Sedov
In reply to this message
empty_tuple на то и tuple, что он tuple
В
10:25
Василий
In reply to this message
Ну new_dict() null и иже с ним. Странное решение
10:26
Lisp листы тоже ждут null() в конце
10:33
Как в тестах toncli объявить процедуру чтобы было норм?
Сейчас любая процедура, которая не method и не asm ругается на already defined на этапе fift.
AT
10:54
Andrey Tvorozhkov
In reply to this message
https://github.com/disintar/toncli/blob/master/docs/advanced/func_tests_deprecated.md

Если речь про старые тесты, то inline method_id, но советую посмотреть в сторону новых тестов
В
11:00
Василий
In reply to this message
Спасибо! А я и не в курсе что это старые тесты
11:09
In reply to this message
Через c7 можно как-то тапл перетащить между вызовами в старых тестах?
Чет не получается у меня.
Пробовал и через get_c7()/set_c7() и возвращать его вместо содержимого c7 при возврате из функции данных
AT
11:16
Andrey Tvorozhkov
In reply to this message
Да, так и надо.
В
11:37
Василий
In reply to this message
Если я тапл кладу куда надо пи возврате это равносильно set_c7?
Мб я какой ньюанс упускаю? Мб надо положить мой тапл в тот, который уже есть в c7?
11:51
Через глобальную переменную тоже не выходит каменный цветок
12:04
Кейс такой:Первый дата метод генерирует тапл со случайными данными.
Вызывает serialize.
1-й тестовый метод проверяет код возврата и кладёт сериализованный тапл в дата регистр
2-й дата метод делает только get_data, кладёт на стек и вызывает deserialize
2-й тестовый метод сравнивает результат с таплом из первого дата метода. (Вот сюда я и пытаюсь через c7 этот тапл притащить)
12:18
По ходу дело было в том, что я impure не объявил в set_c7();
() set_c7( tuple value ) impure asm "c7 POP"
Но теперь у меня stack underflow
12:27
@tvorogme c7 мб не живёт между тест кейсами?
NN
12:30
Nikolay Nick
А как в func энкодить в base64?
DS
12:31
Daniil Sedov
In reply to this message
Ручками
NN
12:32
Nikolay Nick
Етить же
AT
12:35
Andrey Tvorozhkov
In reply to this message
https://github.com/disintar/toncli/blob/master/src/toncli/modules/fift/run_test_old.fif.template

Вот фифтовый код старых тестов, он не очень сложный, можно посмотреть
В
12:39
Василий
In reply to this message
Спасибо!
Если я правильно понял, он таки да кладёт каждый тест-кейс константный c7.
Получается чтобы сделать как я хочу надо на новые тесты переписать т.к там 1 метод-1 кейс
12:40
Ну либо колхозить get_c7_prev самому на фифте.
Спасибо, но нет
AT
12:44
Andrey Tvorozhkov
In reply to this message
Все еще я бы посмотрел в сторону новых тестов, оно прям намного лучше и красивее. Умные люди же делали :)
IZ
12:44
Ivan Zakharov
Привет! Есть ли описание (или список) всех функций классов tuple, slice? Например, есть функция tuple_length(), о которой я узнал из какого-то исходника. Мне интересно, есть ли аналогичная функция размера у slice и какие еще функции есть у tuple.
DS
12:48
Daniil Sedov
In reply to this message
Вас в ton.org/docs забанили?)
12:48
В поиск вводите что надо и смотрите все что есть
12:48
Бывает fift команда есть, а func функции нет, тогда самому объявлять приходится
IZ
12:50
Ivan Zakharov
In reply to this message
Спасибо, не знал, что там есть поиск)
В
12:51
Василий
In reply to this message
Ну поиск в браузере точно есть.
Печально то, что оно как-то плохо поисковиками индексируется.
DS
12:52
Daniil Sedov
In reply to this message
В самих доках поиск есть
В
12:52
Василий
In reply to this message
Вот этого поворот!
IZ
13:01
Ivan Zakharov
Да вроде все везде есть, да вот только них*я нужного не находится!
В
13:09
Василий
In reply to this message
А где exit_code там?
13:14
@tvorogme теперь fift рубается на PROCINLINE.
Я так понимаю надо какие-то fift либы обновить, но те, что в репо toncli я уже поменял
AT
13:17
Andrey Tvorozhkov
In reply to this message
Нужно поставить toncli из гита, pip install git+...

Дальше сделать toncli update_libs

Так же нужно иметь специальные бинари, как написано в инсталл мд - из репозитория спай чиза
В
13:21
Василий
In reply to this message
Агрх!
update_libs помогло.
Теперь говорит main procedure not defined
AT
13:21
Andrey Tvorozhkov
In reply to this message
Ну теперь надо писать тесты как в новых тестах :)))
13:22
*если бинари правильные*
В
13:28
Василий
In reply to this message
Это я читал. Тест вроде нормальный. Видимо в бинарях дело. Бинари из мастера.
Как поменять пути до них? Я грепал, но не понимаю где он их хранит
AT
13:29
Andrey Tvorozhkov
In reply to this message
Зависит от операционки. Что-то в духе ~/. config/toncli
13:30
In reply to this message
https://github.com/SpyCheese/ton бинари нужны эти тз ветки toncli-local
В
13:31
Василий
In reply to this message
Странно. У меня toncli в venv, а конфиг реально в ~/.config
13:31
Либы я тоже в venv обновлял. Потому и не работало видимо
AT
13:34
Andrey Tvorozhkov
In reply to this message
Задача была сделать скорее кроссплатформено, чем venv-направлено, поэтому все конфигурационные файлы лежат в папках настроек программ :)
13:35
Если хочется сделать что-то лучше - добро пожаловать в контрибьютеры, всегда рад :)
В
13:40
Василий
In reply to this message
В целом понятно, но ИМХО среда исполнения превыше всего. Она и кроссплатформенность обеспечивает по большому счёту же
13:40
Я потому и сделал venv чтоб ничего не потерять и не перепутать, а тут вон оно как
13:40
При том не только конфиги, но и либы fift/func
AT
13:41
Andrey Tvorozhkov
In reply to this message
Да, это как-то само пошло по накатанной дорожке. Конечно, простора для улучшения много :)
В
13:51
Василий
In reply to this message
Собрал новые бинари, всё указал. всеравно ругается на main procedure not defined
Где какой main он ищет? В самом контракте?
AT
13:54
Andrey Tvorozhkov
In reply to this message
Main procedure это функция с айди 0
13:54
Но вероятно что-то конкретно идет не так)
В
13:58
Василий
Бранч не тот был
14:00
Не помогло
SA
14:07
Sergey Andreev
привет
Подскажите, пожалуйста, где прочитать подробно и понятно про разные форматы адресов, в т.ч. почему в func они могут иметь разную длину. А еще интересует где можно узнать подробно про bouncing messages. Спасибо
R
14:23
Restoring
Здравствуйте!
Могу ли я передать сообщение получателю чтобы только он мог его расшифровать.
Например я отправляю ему 1 ton и ключ активации к продукту. Но не хочу чтобы другие пользователи могли его прочитать.
Возможно есть вариант как то подписать чтобы получатель только мог его расшифровать?

Возможно можно через NFT?
В
14:24
Василий
In reply to this message
По новой переставил toncli d новый venv.
Вроде что-то зашевелилось, но теперь ругается на либы из stdlib
.config/toncli/func-libs/tests-helpers.func:16:9: error: undefined function `now`, defining a global function of unknown type
now(), ;; unixtime
AT
14:26
Andrey Tvorozhkov
In reply to this message
Адрес сериализуется по тлб схеме. Про тлб прочитать можно тут https://ton.org/docs/#/overviews/TL-B
14:26
In reply to this message
14:28
In reply to this message
Bounce это флаг сообщения, если произойдёт ошибка - сообщение отскакивает обратно. Подробнее тут https://ton.org/docs/#/smart-contracts/tvm_overview

И в вайтпейпере
В
14:34
Василий
@tvorogme По ходу у SpyCheese'а теперь часть из функций в тайпхелперах идут как встроенные ассемблерные
СВ
14:35
Сергей В
In reply to this message
Ну наверное можно если будет поддержка со стороны ПО кошелька
14:36
💎 TON = ЭТО Блокчейн будущего. Выбирайте TON, когда со мной разговариваете!
Друзья, дайте ссылку на обучение, как обновить метаданные контракта жетона.
А
14:37
Андрей
In reply to this message
Помню раньше комментарии были зашифрованы публичным ключом получателя, и только получатель своим приватным ключом мог расшифровать текст комментария
В
14:40
Василий
@tvorogme закомментил часть тайпхелперов и запустился тест. Хотя странно что не успешно
R
14:44
Restoring
In reply to this message
А как сейчас это можно сделать?
Как зашифровать комментарии публичным ключом?
14:44
In reply to this message
Это должен поддерживать кошелёк?
Шифрование и дешифрование?
В
14:52
Василий
@tvorogme Работает! Спасибо
SA
14:53
Sergey Andreev
In reply to this message
спасибо
В
14:54
Василий
@tvorogme Но вообще конечно очень ж0ска это всё
AT
14:55
Andrey Tvorozhkov
In reply to this message
Да, поживем, станет легче
14:55
Жёстко было когда доков не было и никаких тулзов
В
14:56
Василий
Ну уж всяко худо-бедно оно должно работать на мастере, а уж там спец бинарники это для расширенного режима тестирования. Или типа того.
Короче много народу тут надо
14:58
In reply to this message
Ну так я даже toncli не сразу нашёл. На шелл скриптах собирал. При том это пару недель назад 😀
AT
14:59
Andrey Tvorozhkov
In reply to this message
Спец бинарники и есть для специальных и удобных новых tvm кодов, которые в мастер не пойдут
14:59
Но я верю чтт скоро можно будет apt install ton toncli
14:59
На мажорных системах
14:59
И проблем не будет
В
15:00
Василий
In reply to this message
Это я понял, но ставить тестовую систему в жесткую зависимость от этих инструкциий?
Получается что старые тесты более переносимые и при этом depricated
15:01
In reply to this message
В принципе можно pip install toncli и на старых тестах шуршать
15:01
Уже хлеб
AT
15:01
Andrey Tvorozhkov
In reply to this message
Большинство пользователей испытывают проблемы в установки бинари 🥲
В
15:04
Василий
In reply to this message
Ну так вот прямо сейчас из мастера func/fift не отклоняясь от доков не собрать потому что там до сих пор старая либа в сабмодулях. Лечится легко, но этож надо понять. Хз почему так. Уже и issue целых 2 на эту тему и какой-никакой pull есть. Т.к проблема простейшая, а люди спотыкаются
15:05
Хотя щас мб и собрать
15:05
Но неделю назад точно нет
AT
15:07
Andrey Tvorozhkov
In reply to this message
Это про абсеил спп? Уже замерджили
В
15:07
Василий
In reply to this message
Да
AT
15:07
Andrey Tvorozhkov
В целом, как показывает практика, Ton Dev Core Team мерджит редко, но метко
В
15:11
Василий
Мне вот интересно. Люди настолько прошаренные, что я один страдаю с тестами или люди просто сразу шлют код на тестовую систему 🤔
F
15:26
F
In reply to this message
Достать публичный ключ из смартконтракта, вызвав функцию get_public_key
Далее использовать протокол согласования ключей ECDH:
1. берем свой приватный и публичный ключ, публичный ключ получателя. (длина каждого 32 байта)
2. из этих трех ключей согласуем секретный ключ ECDH
3. используем этот ключ для шифрования комментария алгоритмом AES_CTR

Ну это пример, и нужно хоть немного разбираться в криптографии.
Кстати рукопожатие внутри протокола ADNL как раз так и проходит, но там все сложнее

Вот хорошая документация как там все работает внутри ADNL, очень познавательно)
https://t.me/tondev/86884
ИК
15:29
Игорь Коняхин
In reply to this message
Тесты в ТОНе - это самое сложное, я оценил бы что ~80% усилий при решении первого соревнования была именно в написании тестов, но в этот раз сильно проще, так как бот тестирует и говорит результат сразу.
2-ое и 4-ое задание я вообще не тестировал, только довёл до состояния, когда оно скомпилировалось, отправил, и оно сразу зашло
MV
15:33
Max Viksna
Сколько стоит деплой контракта в сеть?
В
15:34
Василий
In reply to this message
Ну мне на 4-е без тестов пока опыта явно нехватает
15:35
А систему флудить это не комильфо
15:35
Да и в образовательных целях тоже хорошо
M
15:47
Mark
In reply to this message
Тесты это вообще АД. Черный ящик, я не нашёл ничего лучше как запускать через tonstarter. Он не возвращает вообще ничего, поэтмоу я пишу "аналогичный" код на питоне и тестирую с ним сначала, потом по фрагментам уже func, но это дико трудоемко. Наверное, тестировать можно проще
15:48
а могут быть в файле *.fc дополнительные функции или их надо все уместить внутри описанных в задании?
ИК
15:48
Игорь Коняхин
In reply to this message
Могут
15:49
In reply to this message
В toncli можно использовать dump_stack();, но цена toncli - крайне неудобное написание тестов
В ton-contract-executor можно return нужные значения, которые хочется посмотреть (я так делал в 3-ем задании)
Но вообще - да, неудобно
M
15:49
Mark
In reply to this message
спасибо! подскажите, пожалуйста, что значит "without test-only flag)" в задании? Это как-то соотнсится с add +0x80 if the address should not be accepted by software running in the production network) ?
ИК
15:50
Игорь Коняхин
In reply to this message
Значит +0x80 добавлять не нужно
M
15:50
Mark
Я уже локально своими недотестами прохожу впринципе 5ое, чуть чуть осталось, но бот пишет 0
15:51
In reply to this message
спасибо! Это у вас прям работает c 0x11ff.... ?
ИК
15:52
Игорь Коняхин
Да, первый байт всегда 0x11
M
15:52
Mark
In reply to this message
спасибо) Вот значит как надо отвечать на комменты (поднимается репа)
15:55
Мой тест для 5 проглатывает 4ff55555.... что читается как 10 0 11111111
Почему мне приходится читать в func как
var flag = Address~load_uint(3); ;; addr_std$10

int maybe = Address~load_uint(1); ;; anycast:(Maybe Anycast)
выяснил методом проб и ошибок, что только так правильно читается wc_id и адрес
15:56
addr_std$10 ведь только два бита, дальше бит мейби, дальше должен идти уже бит воркчейна
15:56
я про 3 в первом лоад
15:57
почему не 2? Это костыль баги или так и нужно?
R
16:10
Restoring
In reply to this message
Спасибо большое!
А есть сейчас кошельки Ton которые поддерживают этот функционал?

Если я отправлю пользователю зашифрованный комментарий, он сможет его где то расшифровать без технических знаний?
ИК
16:15
Игорь Коняхин
In reply to this message
Должно быть 2, да, так как 3-ий бит читается следующей строчкой
16:18
Я тестировал, скармливая решению уже распаршенный (https://ton.org/address/) адрес:
await testEncode(
'0:588af75cd06024fa79dccda32760db928e9797bb69c94b70d9e0aa8b8e8b17e6',
'EQBYivdc0GAk-nnczaMnYNuSjpeXu2nJS3DZ4KqLjosX5sVC'
);
В
16:33
Василий
In reply to this message
Новые тесты toncli вроде ничего! Совсем другая жизнь ))
ИК
16:39
Игорь Коняхин
https://github.com/disintar/toncli/blob/master/docs/advanced/func_tests_new.md
Похоже, действительно!
> No need to split the test into "prepare" and "check" code.
var (int gas_used1, _) = invoke_method(recv_internal, [message.begin_parse()]);

Я несколько месяцев назад топил, что оно так должно работать
В
16:40
Василий
In reply to this message
Я только вот попробовал. Единственное что это всё на специальной сборке работает.
YP
16:44
Yaroslav Paroshin
Добрый день! Можете, пожалуйста, подсказать, есть ли функция, чтобы рассчитать CRC16-CCITT?
AK
16:45
Andrey Kravchenko
In reply to this message
Нету, реализацию нужно писать самому.
YP
16:45
Yaroslav Paroshin
В документации нашел вот такое упоминание, но то же самое ли это?
16:45
In reply to this message
Понял, спасибо)
M
16:48
Mark
In reply to this message
очень полезный ресурс, спасибо! А что в итоге на вход подаете? raw? там же префикс, как он укладывается в any valid MsgAddressInt with addr_std constructor ? Я сочинил сам инпут типа 10 0 11111111 {01} * 128 это фигня полная?
ИК
16:50
Игорь Коняхин
In reply to this message
Я в TypeScript'е паршу строку raw-адреса и собираю (для подачи в решение) правильный слайс согласно формату addr_std
s
16:51
sepеzho.copy
Привет всем. На тоне можно "складывать" (как на солане или нире прикреплять несколько событий к одной транзе) события в транзакции?

Хочу сделать сжигание врап токенов, и приложить месседж к этой транзакции. Но транзакция сжигания токенов сама по себе и состоит из каких-то данных в поле "payload" (когда делаем wallet.methods.transfer на адрес мастер контракта жетона). Можно ли каким-либо образом положить в это поле не только данные для работы контракта (сжигание токена), а еще и мэсседж?
YP
16:54
Yaroslav Paroshin
In reply to this message
Спасибо!
s
16:54
sepеzho.copy
In reply to this message
Надо как я понял как-то сложить cells и в одной написать тип "сожги такие-то токены" для контракта, а в другой клетке данных положить месседж
16:55
In reply to this message
я еще не работал прям с Cell, понимание пока на обывательском уровне)
NN
16:56
Nikolay Nick
как вообще энкодитт в base64?
побитовым сдвигом право вроде бы, но как это сохранять и возвращать? Адрес то не возвращается в виде юзер френдли. не въеду в это
N
17:01
N0
In reply to this message
Почему, возвращается! Ты возвращаешь ASCII код после работы программы
m
17:15
mrchebur
Всем привет, где можно найти документацию по языку Func?
YP
17:15
Yaroslav Paroshin
In reply to this message
N
18:00
N0
Подскажите пожалуйста, а что описывает подобная запись в tl-b len:(#< n)
DS
18:01
Daniil Sedov
In reply to this message
В доках же все написано
N
18:04
N0
In reply to this message
#<= N - это одно и тоже правильно я понимаю? Только в одном случае не включая, а в другом включая?
DS
18:04
Daniil Sedov
In reply to this message
Ну как и операторы <= и < в любом языке программирования :)
AP
18:05
Andrey Pfau
In reply to this message
число которое меньше указанного значения.
#< 31 это тоже самое что #<=30, подробнее тут:
https://t.me/tondev/87056
N
18:06
N0
In reply to this message
Понял, подумал все-же переспросить, просто задача не заходит, решил все что может вызывать сомнения еще раз уточнить
18:06
In reply to this message
Спасибо, понял
А
18:06
Андрей
In reply to this message
Можно как в старые добрые времена первым комментарием отправить самому себе открытый ключ gpg и далее что бы использовали его для шифрования комментариев 😅
А так готовых кошельков для шифрования и расшифрования сейчас нету
AP
18:08
Andrey Pfau
In reply to this message
а зачем gpg ключ, когда в тоне ed25519 юзаются) Он тоже подходит
А
18:10
Андрей
In reply to this message
Просто в linux уже встроенный gpg клиент, и пользоваться им очень удобно)
А так да, можно в кошельках вернуть встроенное шифрование комментариев как было раньше)
AP
18:11
Andrey Pfau
In reply to this message
не с той стороны подходишь, надо не gpg клиент юзать а сделать удобный интерфейс CLI для тона с дешифрованием по ed25519 ключам)
R
18:13
Restoring
In reply to this message
Думаете сложно будет сделать такое решение?

Чтобы начать шифрование нужно чтобы получатель сделал какие-то действия?
Или он может получить зашифрованные сообщения по умолчанию
a
18:14
assemblerx64
Даешь смартконтракт сервер ключей!
AP
18:14
Andrey Pfau
In reply to this message
в payload для сообщений можно записывать любой массив битов
18:15
In reply to this message
у кошельков есть get-method для получения публичного ключа:
https://github.com/ton-blockchain/wallet-contract/blob/3fd1d7ae39f1c46ec1f2be54c4040d8d87505e0f/func/wallet-v4-code.fc#L173

поэтому сервера ключей не нужны)
a
18:17
assemblerx64
In reply to this message
Ага, но для подписей ок 256, а шифры разве не ломаются с такой длиной
&2
18:17
&rey 2ne:v
In reply to this message
Лучше уж смарт-сеть 😃
NN
18:21
Nikolay Nick
почему может последние три символа base64 адреса отличаться от того который долджен быть? где косяк?
AP
18:23
Andrey Pfau
In reply to this message
В тоне используется AES-CTR в качестве ключа для AES и начального вектора используется хеш сообщения и shared secret который вычисляется по публичному ключу получателя и приватному отправителя. Затем в сыром виде передается такой массив:
sender_public_key(можно пропустить в случае кошельков, т.к. можно из get метода достать)
+
digest - хеш sha256 от отправляемого сообщения
+
encrypted_data - зашифрованные данные через AES где ключ шифрования вычисляется из digest и secret_key

реализация на котлине (используется для ADNL протокола TON):
https://github.com/andreypfau/ton-kotlin/blob/main/ton-kotlin-crypto/src/commonMain/kotlin/org/ton/crypto/aes/EncryptorAes.kt
a
18:26
assemblerx64
In reply to this message
Понял, ну для AES ок да. Но AES ведь вроде никогда не используется в gpg, все таки если пилить, то нужны серверы ключей
AP
18:27
Andrey Pfau
In reply to this message
да почему вы к gpg привязались то, я про шифрование через связку ed25519+aes
18:27
сервера не нужны
a
18:27
assemblerx64
In reply to this message
Хз, просто чел говорил ахах. Это норм да, спору нет
AP
18:28
Andrey Pfau
тут вопрос даже не "как реализовать" а к конкретным разработчикам кошельков-приложений чтобы они просто подрубили такую возможность, ибо они и так используют это шифрование для общения с нодами
А
18:30
Андрей
In reply to this message
Я говорил как можно прямо сейчас, без модификации кошельков)
А он про то как можно реализовать по пути модифицировав кошельки)
&2
18:30
&rey 2ne:v
In reply to this message
Контрольная сумма...
N
18:31
N0
In reply to this message
Да, ты скорее всего не правильно crc-16 считаешь, если ты контест делаешь
ИК
19:07
Игорь Коняхин
In reply to this message
CRC код
Вот правильный алгоритм:
https://github.com/toncenter/tonweb/blob/master/src/utils/Utils.js#L169
7C
19:07
7 Arseny Chernov
в четвертой задачке тесты падают если использую store_ref больше четырёх раз, это ведь фича? Просто дальше что делать теперь не понятно
ИК
19:07
Игорь Коняхин
В ячейке не может быть больше четырёх ссылок. Это устройство самого ТОНа.
В
19:10
Василий
Почему b~store_uint можно, а b~store_ref() нельзя?
&2
19:11
&rey 2ne:v
In reply to this message
Потому что криво определена стандартная библиотека.
Если бы store_ref возвращало (builder, ()) - можно было бы
В
19:11
Василий
In reply to this message
Это я понимаю, но я не понимаю какой в этом смысл. Он же наверное есть
&2
19:12
&rey 2ne:v
Легаси, наверно. Обновление сейчас поломает все смарт-контракты.
А вообще, можно самому определить такой метод - просто ассемблерная вставка.
7C
19:15
7 Arseny Chernov
То есть надо смотреть, если количество свободных ссылок кончается, нужно совать ссылки в селл, который сам займет четвертую ссылку, таков примерный путь?
ИК
19:51
Игорь Коняхин
In reply to this message
Да, например
Либо сделать "обычный" связанный список (первая ссылка - текущее значение, вторая ссылка - следующий узел списка)
Либо использовать один из примитивов в стандартной библиотеке, если найдётся что-либо подходящее
7C
19:54
7 Arseny Chernov
In reply to this message
Спасибо, полезная инфа
20:17
Как это возможно?
20:17
"type":"active","code":null
T
20:19
Tim
Интересный покемон, тонкан тоже не понимает
T
20:20
Tim
А контракт твой? Ещё раз задеплоить можешь?
A
20:21
ARS
Не мой
20:21
Он мне индексатор сломал
20:21
Я на такое не расчитывал
T
20:21
Tim
лайт сервер отвечает что в нем нет кода, дело не в индексаторе
A
20:21
ARS
Так понятно, просто я думал так нельзя
&2
20:22
&rey 2ne:v
In reply to this message
Видимо, кто-то при обновлении забыл код закинуть, а данные остались.
В
20:28
Василий
Есть какие случаи, когда целл может держать меньше 4 ref'ов?
A
20:29
ARS
Вот если бы ячейка держала больше 4 рефов, было бы странно
В
20:30
Василий
У меня cell overflow вылетает на store_ref в ячейку где есть свободные рефы исходя из builder_ref
20:30
Хотя скорее всего я что-то не понимаю конечно
A
20:31
ARS
Ты уверен что на store_ref?
В
20:31
Василий
In reply to this message
Да
A
20:31
ARS
Может ты в глубину упёрся
20:31
Больше 1024 глубина вроде быть не может
В
20:32
Василий
In reply to this message
Спасибо, наверное ты прав.
Но 1024 это очень большая глубина
A
20:33
ARS
In reply to this message
Ты smart challenge решаешь? На практике обычно редко можно упереться в ограничение
В
20:34
Василий
In reply to this message
Да
20:34
Но это в локальном тесте происходит у меня
20:45
In reply to this message
По ходу глубина не такая глубокая))
Поправил что в случае если у нас вложенный тапл, то сразу делаем новый целл и теперь всё ок. До этого старался максимально использовать свободные слоты
20:45
Так что там не 1024 а что-то другое. 1023 это бит в целле воде
20:51
Да, но в том-то и дело что 4 - b.builder_refs() == 3
AP
20:51
Andrey Pfau
Cell overflow это когда больше 1023 битов пытаешься записать
В
20:52
Василий
In reply to this message
Но тут точно дело в рефах было
20:52
Но я до конца так и не понял какая глубина
NN
21:01
Nikolay Nick
Контест кончился. Дайте решение 5 задачи. Я уже голову сломал где я ошибся
ИК
21:40
Игорь Коняхин
ИК
Игорь Коняхин 11.08.2022 21:40:10
My solutions of all 5 tasks of TON Smart Contract Challenge 2:
https://github.com/nns2009/TON-FunC-contest-2
d
21:46
default
ребята а можно ли через смарт контракт нфт выставлять на продажу?
21:47
?
21:47
кто знает ответьте пожалуйста
s
21:52
sepеzho.copy
Пытаюсь сжечь жетоны этим кодом (скрин 1)

Падает ошибка как бы я не менял данные:
https://tonscan.org/tx/vnL66cQibZI4hP9zaB3HKW8ObnYq6ppF28E374tCDOE=

Можете намекнуть куда смотреть и в чем ошибка? (код 706 мне мало что говорит)

Я правильно понял что "to" это адрес жетон кошелька где они лежат, а в функцию burn (функция burn на втором скрине) идет адрес тон кошелька?
21:52
d
21:53
default
ты на FunC пишешь или это JS?
АГ
21:54
Андрей Гулицкий
In reply to this message
Я уже хотел вопрос про enum в FunC задать, а потом присмотрелся получше
d
21:54
default
In reply to this message
значит js)
s
21:56
sepеzho.copy
In reply to this message
жс
21:56
это фронт
d
21:56
default
In reply to this message
понял
В
22:00
Василий
In reply to this message
Как safe_load_msg_addr так работает? Я порядочную портянку на func писал для этого
ИК
22:01
Игорь Коняхин
In reply to this message
Там самая первая строчка в файле
Есть Asm команда, которая считывает адрес, но в случае неуспеха не кидает исключение. Я её использовал. Такая же есть для чтения Grams, но тот кусок кода уже был полностью написан (к тому моменту, как я про эти команды сообразил).
&2
22:02
&rey 2ne:v
А мне пригодилось вот это:
forall X -> int is_int(X x) asm "<{ TRY:<{ 0 PUSHINT ADD DROP -1 PUSHINT }>CATCH<{ 2DROP 0 PUSHINT }> }>CONT 1 1 CALLXARGS";
Я по образцу написал перехватчик исключений на Fift, и он, как ни странно, заработал.
В
22:04
Василий
In reply to this message
👍 я не один час потратил только на это. В следующий раз буду смотреть инструкции первым делом
22:15
In reply to this message
NN
22:15
Nikolay Nick
In reply to this message
l
22:23
lexxxser
In reply to this message
Блин, трудное детство…. Аж слезу пустил
ИК
22:36
Игорь Коняхин
In reply to this message
Что там было?
DS
23:56
Daniil Sedov
In reply to this message
Можно было просто в доках в поиск try catch ввести :)
12 August 2022
R
00:20
Roma
Ребят, всем привет!
00:21
Подскажите, такая проблема, делаю перевод jetton средствами tonweb, и транзакции проходят, но сумма перевода 0 TGR, почему такое может быть? Уже всё что можно проверил
R
01:04
Roma
Разобрался, в tonweb опечатка :)
NI
03:01
No Caller ID
Что за функция с отправкой транзакции через цепочку самоудаляющихся кошельков, кто-нибудь в курсе как это работает?
T
03:22
Tim
In reply to this message
Отправляешь с кошелька деньги с кодом 128+2 и он удаляется. Ничего интересного в функции нет, контракт удалится, но история транзакций все равно будет
J
12:08
Jardis
@f_closer а есть уже примеры или стандарт для обновления кода смартконтракта?
VD
12:38
Victor Dm.
Народ, а как получить или сделать qr-code для своего кошелька?
C
12:40
Chaimaa-mab
Hello
В
12:45
Вячеслав
А есть какие-нибудь либки на питоне по типу TonWeb, чтобы можно было посоздавать ячейки, поконвертить их в boc и обратно?

Хочу по public key + workchain id получить адрес, полез в код TonWeb и понял, что малой кровью это не переписать.
T
12:45
Tim
Ребята в функ за 20 строк на контесте справились, у вас тоже получится
В
12:47
Вячеслав
Я решил пятую задачку в контесте, вопрос вроде совсем в другом был
T
12:48
Tim
Там не сильно сложнее
https://github.com/xssnick/tonutils-go/blob/master/example/vanity_fast/main.go

Вот версия которая просто с массивами байт работает вместо кодов и ячеек, можно с неё переписать
В
12:50
Вячеслав
In reply to this message
Там есть еще ряд нюансов, разные версии кошельков, например
Хотелось бы не мастерить велосипеды, если кто-то уже подобное писал
Вопрос, писал ли кто что-нибудь удобное:)
T
12:52
Tim
Я помню кто-то из панков что-то писал, но судя по частоте вопроса как получить адрес на питоне и отсутствии ответа, думаю проще написать самому)
В
13:06
Вячеслав
In reply to this message
Кажется, нашел что-то релевантное: https://github.com/psylopunk/pytonlib
a
13:08
assemblerx64
In reply to this message
> понял, что малой кровью это не переписать.

Главное не лезь в tonlib, он только на начале мне упростил все, а оказался не оч клевым. Нужно нативно все делать и уже делают, а я переделаю под нее для новичков эту либу
M
14:23
Maxxi
Как можно создать кошелек с определенным набором символов на конце адреса? Перебором сид фраз? Или есть более элегантный способ? :)
К
14:24
Криптокун
In reply to this message
M
14:34
Maxxi
In reply to this message
Ну, в общем, как я и думал, перебором
M
14:41
Mark
In reply to this message
Если бы он был, грош цена блокчейну, не?)
Н
14:55
Никита
как узнать версию кошелька тон ?
T
14:58
Tim
адрес в тонскане вставь
DK
15:05
Dmitry Korobeynikov
In reply to this message
А у такого?
T
15:05
Tim
никак, код же не опубликован
DK
15:06
Dmitry Korobeynikov
In reply to this message
То есть сид-фраза известна, адрес известен, входящие транзакции есть, баланс ненулевой, но версию кошелька узнать нельзя, потому что код не опубликован? О_о
T
15:06
Tim
Если сид фраза известна, то можно
15:07
инициализируешь кошельки всех версий и ищешь нужный)
DK
15:07
Dmitry Korobeynikov
In reply to this message
Прекрасно) А если неизвестна?
T
15:07
Tim
15:08
адрес кошелька это хеш от его кода(v3, v4) и его публичного ключа, если не знаешь обе переменные - не забрутфорсить
S
15:15
Stas
Такой вопрос, возможно тупой, но как тон понимает какой версии кошелек? Или ему это надо?
В
15:32
Василий
In reply to this message
Ну генерируешь в читабельной форме а потом с него код с помощью qrencode или любой другой либы. Это же просто строка.
VD
15:33
Victor Dm.
In reply to this message
Ааа, но у меня не было опыта, думал что в тоне как то делается, спасибо
M
15:48
Maxxi
In reply to this message
Так я ж не пароль пытаюсь узнать или сид фразу :)
Это типа, как адрес сайта
M
16:01
Mark
In reply to this message
Адрес кошелька - производная от пароля. Вы же хотите знать пароль от этого кошелька? Или нет? Если нет, то берите любой адрес и готово) Только толку от него без пароля
SM
16:04
Sam Mnats
Уважаемые знатоки, вопрос из чата коммьюнити.
Какие плюсы у сайтов созданных на тон днс перед обычными? Точнее когда они смогут быть созданы какие будут плюсы?
S
16:05
Stas
Человекочитаемый адрес самый очевидный плюс
16:05
Или ты про что?
SM
16:06
Sam Mnats
Ну есть мнение что сайты .ton нельзя будет заблокировать. Миф или правда?
A
16:06
ARS
Миф
SM
16:07
Sam Mnats
In reply to this message
Не сомневался
A
16:07
ARS
Домен в целом можно будет удалить если валидаторы проголосуют за это
M
16:08
Mark
In reply to this message
Ну вообще по идее сайт будет жить в децентрализованной сети на основе блокчейна, а не в интернет. Конечно, доступ к этой сети будет через обычный интернет)
16:08
In reply to this message
вообще интересен этот механизм. Если сайт это нфти, значит валидаторы могут отжать нфти тоже. Получается как бы власть немногих)
SM
16:09
Sam Mnats
Так а какие плюсы? Ну зачем мне создавать копию своего сайта на тоне? К примеру: создают доменные имена типа google.ton в надежде что гугл захочет создать свой сайт на тоне и этот домен гуглу продать. Так вот зачем это нужно условному гуглу?
A
16:09
ARS
In reply to this message
Не совсем
&2
16:09
&rey 2ne:v
In reply to this message
Валидаторы могут поменять указатель на корневой DNS, лежащий в конфиге сети. Все сайты могут обломаться 🙂
A
16:10
ARS
В коде домена прописано что если он есть в ЧС, то его можно удалить
16:10
А в коде популярных нфт нет
16:11
In reply to this message
Ну вот это как раз мало что изменит, ничто не мешает обращаться к старому адресу
&2
16:11
&rey 2ne:v
In reply to this message
Другая сторона может проверить код сайта.
Например, доступ по подписке или что-нибудь подобное. Человек может проверить, что если он пошлёт деньги, то точно получит доступ к содержимому.
SM
16:12
Sam Mnats
In reply to this message
То есть защита от мошенничества?
&2
16:12
&rey 2ne:v
Правда, никто замаиваться проверкой не собирается, наверно - но за продолжительное время кто-нибудь да проверит.
16:12
In reply to this message
Да. Получается, что исходный код сервера открыт и проверяем.
M
16:12
Mark
In reply to this message
Причем тут гугл) Децентрализация против гугла
Сеть эволюционриует, я уверен, ТОН и подобные это прожемуточный этап к реальной децентрализации
SM
16:14
Sam Mnats
In reply to this message
Ну гугл пример просто. Любой другой владелец сайта. Я ищу именно практическую полезность сайтов на тон
&2
16:17
&rey 2ne:v
In reply to this message
Так ничто не мешает и альтернативную сеть сделать, с другим корневым DNS) Только надо посмотреть, сколько содержание этого смарт-контракта будет стоить.
M
16:17
Mark
Не, гугл это не просто пример. Это другой концепт. Я не претендую ни на что (возможно, моё представление слишком идеализированно), но у меня впечатление, что вы воспринимаете идею децентрализации поверхностно. Сейчас сетью правит гугл. В сети ТОН гугла не будет, это будет другой мир совершенно.
A
16:18
ARS
In reply to this message
Корневой днс контракт не дороже кошелька
&2
16:19
&rey 2ne:v
In reply to this message
Ну, наверно, слегка дороже в плане storage_fees. У него же словарь доменов должен быть.
A
16:19
ARS
Не должен
&2
16:19
&rey 2ne:v
А
16:19
Да, вспомнил, он отошлёт на контракт зоны .ton.
M
16:20
Mark
In reply to this message
Если позволите, я писал в один паблик статью, но её не приняли. Тут приличная портянка, но в целом ответ на ваш вопрос там закопан достаточно подробно. Это не теническая сторона, а социальная:
Невозможно предугадать будущее… Важнее оглянуться вокруг и глубже понять настоящее.

Интернет — это параллельный мир, в котором всё взаимосвязано. Сеть организует общество, будь то жители одного дома, граждане одной страны, пользователи одной услуги.

Мы и не заметили, как из людей превратились в пользователей. А фундаментальная потребность пользователя — это безопасность его присутствия в сети. Любимые приложения проверены временем и накапливают репутацию.

В результате Интернет оккупирован корпорациями-циклопами. Они знают о нас всё и привыкли этим злоупотреблять. Они пылесосят данные, требуют огромные комиссии и давят конкурентов в игре на выживание. Их доходы растут, увеличивается неравенство. Тем не менее пользователи доверяют корпорациям вместо того, чтобы доверять друг другу.

Но однажды сетевой пророк представил миру Bitcoin и предложил механизм консенсуса. Теперь в наших силах вырвать будущее из антиутопии, порожденной удушающим злоупотреблением властью. Мы можем уничтожить само понятие “власть”.

Ведь справедливость больше не нуждается в опоре на сильный центр.

Что если возникнет маркетплейс, в котором не будет посредника? Крупные продавцы разработают свой рынок без центра, вместо того чтобы платить ежемесячную комиссию циклопу. Рынок станет дешевле и доступнее, но не перестанет быть надежным, благодаря блокчейну.

Что если однажды жители дома объединятся в ТСЖ, где траты каждого рубля станут прозрачны? Инициативные жильцы смогут проявить себя в благоустройстве своего дома, а после района и города. Появится рейтинговая система, в которой активиста будут поощрять по его делам.

Что если NFT будет подтверждать право обладания жильем или автомобилем? Тогда его можно будет использовать как залоговое обеспечение. А кредит под низкий процент выдадут пользователи, которые зарегистрировались в новом DeFI Банке. Они разделят между собой риски и прибыль.

Теперь пользователи могут доверять и помогать друг другу вместо того, чтобы кормить корпорации.

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

Это не попытка увидеть будущее. Это попытка увидеть возможности настоящего.
A
16:20
ARS
In reply to this message
Контракт зоны .ton тоже не хранит хешмапов
16:20
К тому же там лям $ заблокирован навсегда
16:20
Так что никуда не денется
16:21
А вот механизм с ЧС сомнительная вещь
ID
16:25
Igor Diakonov
In reply to this message
Сразу видно человека который никогда не пытался организовать ТСЖ 😂
M
16:25
Mark
Да, у меня в доме тоже многие инфантильны, но тем не менее даже бабули научились пользоваться вайбером, ну и в целом общество не стоит на месте)
16:26
Хочется верить в лучший мир. Для него нам пригодится децентрализованный блокчейн. Тон обещает что-то. Посмотрим)
AP
16:27
Andrey Pfau
In reply to this message
дизинфа
A
16:28
ARS
Нет, я изучал код
&2
16:29
&rey 2ne:v
In reply to this message
Хочется верить, что ни аппаратный кошелёк никто не сможет украсть, ни ОС (разработанные злобными 😁 корпорациями) не будут содержать дыр, через которые кто-нибудь сможет украсть секретный ключ и перевести квартиру себе.
M
16:42
Mark
In reply to this message
Кража квартиры будет видна в блокчейне. Если это реально кража, вор не сможет воспользоваться украденным, но не оказаться пойманным.
Возможно появится изобретение на стыке биологии и ИТ, которое, например, свяжет тело и приватный ключ.
Уже есть положительные примеры использования блокчейна в лагерях беженцев, как раз препятствует кражам.
AP
16:49
Andrey Pfau
In reply to this message
Что нет? Конкретно говорите
16:49
Сайты никак нельзя заблокировать
A
16:50
ARS
In reply to this message
Щамс
СВ
16:50
Сергей В
Хочу поднять свой личный testnet
Вроде все прошло хорошо, блоки создаются, могу запросы делать и даже простой кошель задеплоил туда.
Нужно ли мне что-то с election делать? что бы выборы проводить и тд?
MyLocalTon что-то делает, но я не знаю нужно ли мне это с одним валидатором?
&2
16:51
&rey 2ne:v
In reply to this message
Ну, поймают вора, а дальше что? Если он переведёт токен квартиры на несуществующий адрес, то этот токен придётся перевыпускать. Для этого нужны голоса всех остальных людей - и это максимум, что можно получить.
Теперь представим себе, что один человек в доме любит слушать ночью громкую музыку и достал всех соседей. Тогда все они могут собраться... и перевыпустить токен его квартиры на себя. Браво!
T
16:52
Tim
Ребят, криптоанархия за скоупом этого чата
A
16:52
ARS
In reply to this message
Вот этот кусок кода за что отвечает?
16:53
Чем это не блокировка домена?
AP
16:54
Andrey Pfau
In reply to this message
Это только в случае если 75% валидаторов проголосуют за это
16:54
И домен возвращается на аукцион
16:55
Но это не относится никак к сайту, вопрос был про блокировку сайта а не о отзыве домена в случае голосовании сети
16:55
Этот механизм врятли когда либо будет применяться
A
16:55
ARS
In reply to this message
Если он есть, значит будет
M
16:56
Mark
In reply to this message
Это вопрос деталей, а не концепта
Вон 75% валидаторов должны проголосовать)
A
16:56
ARS
In reply to this message
Не возвращается
M
16:56
Maxxi
In reply to this message
Тебе (если позволите) нужно фантастические рассказы писать. )) Это типичная утопия. Какими бы ни были супертехнологии, все в конечном итогеиупирается в человеческий фактор. А когда людей больше 2, они никогда не смогут прийти к единому мнению во всем. Да даже двум человекам сложно долгое время быть в консенсусе, чего уж там говорить..
Вот когда (если) технологиями будет управлять беспристрастный ИИ, тогда можно будет говорить о реализации утопии. Но какой человек позволит управлять своей жизнью кокому-то ИИ? ))
AP
16:57
Andrey Pfau
In reply to this message
Ты считаешь это проблемой? Должна быть весомая причина чтобы вся сеть проголосовала. Это врятли когда либо случится, только разве не будет что-то критическое
A
16:57
ARS
Если я правильно понял то transfer_ownership может кто угодно вызвать и присвоить домен себе если config_op == 0
M
16:58
Mark
In reply to this message
Так я как раз пишу)
На конкурсы типа этого, только рассказов)
Почитайте Талеба Нассима. Может случиться, что угодно) случалось уже не раз)
AP
16:59
Andrey Pfau
In reply to this message
Да, но только если в конфиге сети есть указанный домен
А
17:03
Андрей
In reply to this message
А вот это точно нет
Сейчас есть механизм голосования валидаторов за изменение конфига сети.
Валидаторы могут сделать с сетью что угодно - поднять комиссии, увеличить награду за валидацию
Хоть и есть такой механизм и такая возможность - он не используется, так как не наберет 75%
s
17:13
sepеzho.copy
In reply to this message
Получилось решить этот вопрос?

Сейчас сижу туплю, не знаю пока где получить "JETTON_WALLET_ADDRESS"
17:14
на мэиннете это выглядит так
J
17:21
Jardis
In reply to this message
А зачем чс сделали?
I
17:24
Isaac
In reply to this message
Чтобы потом не было вот так https://t.me/DeCenter/10482
A
17:25
ARS
Ну давайте сами всех перебаним
AP
17:27
Andrey Pfau
In reply to this message
Это тоже самое что щас возмущаться по поводу того, что можно комиссии сделать в 10000% но этого никто делать не будет
МГ
17:43
Михаил Гусев
Добрый день, есть ли документация по tonlib? В идеале для Java TonLib wrapper https://github.com/ton-blockchain/tonlib-java, но c++ тоже устроит.
Хочется иметь список всего, что можно сделать с помощью библиотеки.

В частности, возможно ли через tonlib отправить подписанную транзакцию, имея только ее сырой BOC (массив байт)? В идеале еще и распарсить, достав оттуда адрес отправителя, получателя и т.д.
ИК
17:45
Игорь Коняхин
In reply to this message
Ну события последних двух лет (локдауны 2020 и санкции 2022, но всё-таки локдауны в большей степени) показывают, что внезапный 75% консенсус - не такая неподсильная задача
17:48
Вообще, я ведь правильно понимаю, что домены не в собственности?
Нет приоритетного продления?
Т.е. любое продление - аукцион, с заранее неизвестными предложениями конкурентов.
Покупаю я jkasdfsadf.ton, развиваю сервис, и на следующее продление выясняется, что теперь на этот домен претендует куча желающих, и я должен отвалить кучу бабла, чтобы его сохранить.
AT
17:49
Anthony Tsivarev
In reply to this message
Продление идёт без аукциона. Нужно просто отправить минимальную транзакцию со своего кошелька
VP
17:50
Vladimir Plotvinov
In reply to this message
Когда аукцион заканчивается (~1 неделю), то домен переходит на твой кошелек и дальше продлевание зависит от тебя. Но там вроде на балансе остается 1 тон и этого хватает на много лет
ИК
17:50
Игорь Коняхин
Тогда этот аспект норм
17:53
In reply to this message
Ещё это вопрос динамики развития. Если есть возможность голосовать за бан, то государства могут требовать валидаторов голосовать за бан того, что они хотят.
P
18:02
Pi
In reply to this message
Требовать могут, но выполнятся ли требования или нет вопрос еще тот
18:03
Да и требовать.. где, по первому каналу если только
AP
18:03
Andrey Pfau
In reply to this message
Государства не могут знать кто является валидатором
ИК
18:03
Игорь Коняхин
Сайты норм блокируют
Требовать от валидаторов в чужой стране
Требовать от крупных официальных валидаторов в своей - изи
AP
18:03
Andrey Pfau
В скором времени все валидаторы будут стоять за тон прокси
ИК
18:03
Игорь Коняхин
Это хорошо
18:04
💎 TON = ЭТО Блокчейн будущего. Выбирайте TON, когда со мной разговариваете!
In reply to this message
😁
AP
18:05
Andrey Pfau
Поэтому такой сценарий когда государства будут "давить" на валидаторов - исключён, разве что если они сами не начнут поднимать валидаторы)
P
18:05
Pi
Ту вопрос даже ниже чем требовать от валидаторов, как бы вся телега не подконтрольна госам, не просто так ее разбанили в рф
T
18:05
Tim
Государства по тихому заберут 75% сети, а никто и не узнает, они же за тон прокси
ИК
18:07
Игорь Коняхин
In reply to this message
У меня больше доверия к блокчейн-людям, чем к государствам, но даже среди них 75% консенсус - далеко не запредельно.
Сколько там процентов не помню решило сделать хард-форк Эфира?
(Хотя может в этом случае это было и не совсем приятнуто за уши)
s
18:11
sepеzho.copy
Гайс, есть какой-либо сампл как можно сложить cells в "data" параметр когда транзу отправляешь?

Надо вызвать метод контракта положить данные для него и потом доложить туда просто транз мэсседж
18:11
In reply to this message
UPD это решить смог - кому надо ответ пишите
SV
18:24
Sergei Voroshilov
In reply to this message
Хард форк тона можно и в одиночку поднять) Только зачем?
&2
18:45
&rey 2ne:v
А в каком формате recv_internal получает входящее сообщение?
Где-то вижу () recv_internal() {...},
где-то () recv_internal(slice in_msg) {...},
а где-то () recv_internal(int msg_value, cell in_msg_cell, slice in_msg) {...}.
Я так понимаю, эти параметры заранее кладутся на стек, и функция просто берёт сколько-то из них для работы. Сколько всего аргументов передаётся в recv_internal?
A
18:48
ARS
4
&2
18:50
&rey 2ne:v
Ну я вот понимаю по названиям, что три - это кол-во коинов, прикреплённое к сообщению, дальше само сообщение в сыром виде, потом тело сообщения. Правильно? + четвёртый параметр - подозреваю, адрес отправителя?
В
18:51
Вячеслав
Переписал ton-connect на python:
https://github.com/stspbu/ton-connect

Если кто-то еще хотел сделать авторизацию через Tonkeeper на питоне — enjoy :)
P.S. Не уверен, что этого никто не делал до меня, но когда я начал писать код, реализацию нашел только на typescript (что и являлось референсом для текущей либки)
A
18:51
ARS
Не помню, но кажется баланс
18:52
() recv_internal(int balance, int msg_value, cell in_msg_full, slice in_msg_body)
&2
18:55
&rey 2ne:v
In reply to this message
Ага, спасибо! Кажется, придётся парсить in_msg_full, чтобы узнать отправителя...
19:37
龙形的影子
«In the same way, we can cut ShardChain into the ShardBlocks, which are an aggregation of individual AccountBlocks.»

Вопрос: это значит, что shardblock содержит транцы всех эккаунтов шарды за некоторый период времени?
TD
19:53
Tyler Durden
Пытаюсь задеплоить нфт-коллекцию, задеплоилось 15 элементов, на 16 получаю это:
[Deployer] deployNft error Error: http provider parse response error
в чем искать проблему?
IG
20:06
Ilia Gaevskii
Привет. А что такое Non-Bounceable?
T
20:09
Tim
Это как баунсбл только нет. Значит если ты пошлешь деньги и произойдёт ошибка они не вернутся
AP
20:14
Andrey Pfau
In reply to this message
Bounceable - в случае ошибки деньги вернуться обратно
Non-bounceable - принудительно отправить деньги.

Отсутствие контракта = ошибка по дефолту, поэтому перед деплоем надо на адрес отправить немного монет
IG
20:20
Ilia Gaevskii
То есть есть адрес контракта, но чтобы пополнить средства контракта надо посылать на адрес не контракта а на второй?
AP
20:24
Andrey Pfau
In reply to this message
Это оба вида адреса контракта - в base64 закодирован флаг bounceable: true/false
20:24
In reply to this message
Для того чтобы задеплоить надо на non-bounceable отправить 0.1 тон к примеру, а затем юзать обычный bounceable
IG
20:25
Ilia Gaevskii
In reply to this message
Спасибо!
20:25
А расскажите ещё пожалуйста как по адресу контракта кошелька в3 получить адрес контракт в4
J
20:27
Jack Rotgar
Срань
AP
20:29
Andrey Pfau
Адрес - это хеш ячейки в которой записан StateInit
J
20:29
Jack Rotgar
In reply to this message
Счастье
T
20:30
Tim
В v3 есть гет метод на публичный ключ
AP
20:31
Andrey Pfau
_ split_depth:(Maybe (## 5)) special:(Maybe TickTock) code:(Maybe ^Cell) data:(Maybe ^Cell) library:(HashmapE 256 SimpleLib) = StateInit;

StateInit.code - код контракта,
SrareInit.data - ячейка с данными, в которой лежит публичный ключ и seqno 0 (в более новых версиях кошелька там еще его ID и другие параметры)
20:33
In reply to this message
WalletV1R3,
WalletV2R2,
WalletV3R2,
WalletV4R2

есть метод get_public_key
IG
20:37
Ilia Gaevskii
In reply to this message
То есть Я могу получить адрес каждой версии через публичные методы? Чот не понял
T
20:38
Tim
Через публичный метод получаешь ключ и с ним инициализируешь v4
В
20:39
Василий
In reply to this message
Ну оно вроде через разные контракты работает вроде? Но это не точно!
Я вообще не понимаю почему кошелёк реализован контрактом, а не локально хранимым стостоянием.
AP
20:40
Andrey Pfau
Вообще публичный ключ практически во всех контрактах есть, просто не во всех есть гет-методы для его получения. Можно и ручками спарсить из дата-ячейки)
IG
20:40
Ilia Gaevskii
In reply to this message
Что значит инициализируешь? Как это сделать?
AP
20:41
Andrey Pfau
In reply to this message
у одного ключа может быть сколько угодно разных версий контрактов, поэтому зная код и начальные данные можно вычислить адреса для всех нужных типов контракта
IG
20:41
Ilia Gaevskii
In reply to this message
Как Я понимаю Гайда как это сделать нет?
AP
20:42
Andrey Pfau
ты каким языком программирования пользуешься?
20:42
обычно почти во всех либах этот функционал есть
IG
20:42
Ilia Gaevskii
In reply to this message
Гошная либа для тона
A
20:47
ARS
Есть либы для работы с highload кошельками?
IG
20:48
Ilia Gaevskii
In reply to this message
То есть Я сюда передаю работе кей, версию кошелька, версия это енам? А что такое сабваллет?
AP
20:49
Andrey Pfau
In reply to this message
subwallet по дефолту - 698983191
IG
20:51
Ilia Gaevskii
In reply to this message
И прокатит везде, да?

Спасибо!
&2
21:40
&rey 2ne:v
Кто-то знает, как отправить с контракта сообщение на него же, но чтобы оно дошло через минуту? Реально ли так сделать?
21:41
Условно - нужен таймер, срабатывающий не каждый блок (5 секунд вроде), а реже.
SV
21:43
Sergei Voroshilov
In reply to this message
Кстати да, было бы прикольно иметь механизм отложенного вызова метода смарт-контракта
&2
21:44
&rey 2ne:v
А нету, что ли? Ладно, будет всё работать в 12 раз быстрее, чем планировалось...
21:44
Правда, и тоны будут тратиться быстрее, а это уже проблема.
Н
21:47
Никита
парни, можете изменить этот боунсиблс адрес на нон-боунсибл, пожалуйста
kQCGLFDs7oM_Nyijd7z8ZXkErelQ1UfPsgKnB5eeSNIKs8Xb
F
21:48
F
Н
21:54
Никита
In reply to this message
лучший
&2
22:08
&rey 2ne:v
Блин, неплохо так оптимизировался метод: изначально он записывал 43 раза по 20 нулей в builder, теперь записывает кусками по 256 бит - дало выигрыш в 3,5К газа. 😮 😁
22:09
Не знал, что сохранять значения в builder настолько дорого. Убрать даже одну запись - сэкономить сразу 54 газа.
&2
22:30
&rey 2ne:v
Ещё странно как-то себя ведёт inline. Несколько результатов у функции возвращаются в неправильном порядке, в результате вызывающий код не работает.
В
22:44
Василий
In reply to this message
А какая версия FunC? Бинарники?
22:45
In reply to this message
Вроде в мастер что-то мерджили на эту тему
&2
22:45
&rey 2ne:v
In reply to this message
Пару дней назад переставлял toncli по инструкции https://github.com/disintar/toncli/blob/master/INSTALLATION.md
22:47
Коммит от 6 июля.
В
22:58
Василий
In reply to this message
Не представляю как ждать не сжигая газа.
get методом нельзя же вызвать отправку мессаджа?
Тут только какая-то програмная логика которая будет дергать его извне наверное.
Н
23:13
Никита
пробовал деплой коллекции через деплоер от даймондов, можете подсказать, что не так ?
Н
23:13
Никита
Н
Никита 12.08.2022 23:11:05
возможно ошибка в .csv ?
СВ
23:26
Сергей В
А toncli не умеет лайтклиент запускать не конфигом а напрямую через пабкей? типа
lite-client -p /ton/liteserver.pub -a ton:6002 last
13 August 2022
AT
01:22
Andrey Tvorozhkov
In reply to this message
Нет :(
01:22
Но умеет проектировать запросы к лайт клиентовскуиу бинари
01:22
toncli lc ....
СВ
01:29
Сергей В
In reply to this message
Он всегда подставляет -С и хочет грузить конфиг :)
Ладно, не страшно:)
DS
08:22
Daniil Sedov
"Asm.fif" include
1 PUSHINT

как такой код может выдавать PUSHINT: stack underflow ?
08:23
pushint ведь даже ничего из стека не берет...
DS
08:41
Daniil Sedov
"Asm.fif" include
NOP

даже nop выдает stack underflow
08:42
видимо проблема не в pushint и не в nop
08:42
правильно ли что я запускаю fift как toncli fift run code.fif ?
AT
09:25
Andrey Tvorozhkov
In reply to this message
Нужно открыть блок для tvm op
СВ
09:40
Сергей В
запускаю toncli из мастера + fift func из toncli-local для новых тестов
делаю
toncli start wallet
cd wallet
toncli deploy

получаю
INFO: 🚀 You want to interact with your contracts ['contract'] in testnet - that's great!
INFO: ✋ Do not panic - i'm creating wallet in /root/.config/toncli, so you can easily manage your contracts
INFO: 🐒 I'll create folder /root/.config/toncli/wallet with project wallet and all needed files
INFO: 👑 Folder successfully created - happy blockchain hacking
INFO: 🐼 You now can do cd wallet and toncli deploy -n testnet
INFO: 🤗 Run tests on ['/root/.config/toncli/wallet/fift/data.fif']
Saved new private key to file build/contract.pk
INFO: Depth test pass 🏁
INFO: Type test pass 🏁
INFO: 🥳 Start contract manipulation
[ 1][t 0][2022-08-13 05:28:23.694964697][Fift.cpp:67] top: <text interpreter continuation>
level 1: <continuation 0x5600edfff350>
level 2: <text interpreter continuation>
[ 1][t 0][2022-08-13 05:28:23.694975397][fift-main.cpp:204] Error interpreting file `/toncli/src/toncli/modules/fift/contract_manipulation.fif`: contract.fif:15: PROCINLINE:<{:-?

куча python стека

subprocess.CalledProcessError: Command '['/usr/local/bin/fift', '-I', '/root/.config/toncli/fift-libs', '-s', '/toncli/src/toncli/modules/fift/contract_manipulation.fif', '/root/.config/toncli/wallet/build/contract.fif', '/tmp/tmpd3tzq2am.boc', '0', '/root/.config/toncli/wallet/build/boc/contract.boc', '/root/.config/toncli/wallet/build/contract_address']' returned non-zero exit status 2.


не знаете как починить?
DS
09:41
Daniil Sedov
In reply to this message
жиза.
09:41
я уж думал я не так переустановил компилятор
AT
09:45
Andrey Tvorozhkov
In reply to this message
Нужно обновить либы и использовать правильный компилятор
09:46
Сначала toncli update_libs
AT
09:46
Andrey Tvorozhkov
AT
Andrey Tvorozhkov 11.08.2022 13:30:12
https://github.com/SpyCheese/ton бинари нужны эти тз ветки toncli-local
СВ
09:47
Сергей В
In reply to this message
Так я их и собирал специально
09:49
In reply to this message
Это тоже не помогает:)
AT
09:54
Andrey Tvorozhkov
In reply to this message
Тогда надо удалить системную папку и поставить тонкли из гита
09:55
pip install git+....
СВ
09:55
Сергей В
In reply to this message
так я так и делаю :)

через pip install -e .
AT
09:57
Andrey Tvorozhkov
In reply to this message
Ну тут явно эта ошибка))
09:57
Значит что-то где-то не так пошло))
09:58
Можно ручками скопировать asm.fif
09:58
:)
СВ
10:07
Сергей В
In reply to this message
В доке написано что его надо брать из
https://github.com/disintar/toncli/blob/master/src/toncli/lib/fift-libs/Asm.fif

ок
cd ~/.config/toncli/fift-libs
wget https://raw.githubusercontent.com/disintar/toncli/master/src/toncli/lib/fift-libs/Asm.fif

# 2022-08-13 07:05:13 (2.19 MB/s) - 'Asm.fif.1' saved [37587/37587]

sha256sum Asm.fif Asm.fif.1

# eda426c0c618c5f2d5da214044558c5c23e38e1ec03ff1c938221308b3a1208f Asm.fif
# eda426c0c618c5f2d5da214044558c5c23e38e1ec03ff1c938221308b3a1208f Asm.fif.1

одинаковые
AT
10:10
Andrey Tvorozhkov
In reply to this message
AsmTest.fif одинаковые?
СВ
10:11
Сергей В
In reply to this message
да
10:12
я склонировал мастер, он их отуда и возьмет
toncli update_libs

INFO: Succesfully copied fift-libs func-libs test-libs
from /toncli/src/toncli/lib
to /root/.config/toncli
10:14
сделаю issue на гитхабе в общем :)
SK
11:38
Sergey Konakov
Добрый день !

А где можно почитать о логике использования кошелька валидатора ?
На что расходуются суммы и с каких операций возвращаются начисляются ..

Месяц назад при запуске валидатора на кошелёк закинули 1000 ТОН, а на данный момент там 75 осталось ….

Может следует что-то пересмотреть ? Чтоб как минимум сумма не уменьшалась на кошельке валидатора ? Чтоб небольшое вознаграждение и на этот кошелёк падало …

Вот 100К ТОН инвестора почти удвоились … А 1К ТОН кошелька валидатора уменьшились до 75 …
А
11:41
Андрей
In reply to this message
Судя по вашему сообщению у вас не только кошелек валидатора, но и номинатор-пулы есть
Поэтому нужно уточнить конфигурацию пула и сколько процентов валидатор оставляет себе
Далее вам периодически нужно возвращать награду валидатора из пула
SK
11:48
Sergey Konakov
In reply to this message
На сколько помню пропорции были сделаны 30% валидатору 70% номинатору

> Далее вам периодически нужно возвращать
> награду валидатора из пула

А есть ссылка ? Я вроде в документации не читал такого … Мне казалось что доход валидатора автоматически должен начисляться на кошелёк валидатора, а номинатор сам запросит вывод своих доходов …
11:49
Вот один из пулов:
11:51
там у инвестора на счету почти 97К … такое же положение и на втором пуле …
А
11:52
Андрей
In reply to this message
Все работает не совсем так
Награда из электора всегда возвращается в пул, и дальше улетает в электор
Доля и валидатора и номинатора всегда хранится в пуле
Поэтому валидатору нужно периодически снимать награду с пула, что бы поддерживать свой баланс в комфортном диапазоне
Возможно в будущем mtc сам будет это делать
А сейчас вам помогут команды get_pool_data и withdraw_from_pool
SK
11:54
Sergey Konakov
получается 97К эта общая сумма ? и 30% от 47К (97000 - 50000) это награда валидатора и её можно вывести на кошелёк валидатора ?
Н
12:03
Никита
Как удалить задеплоеную нфт-коллекцию ?
В
12:09
Василий
In reply to this message
Предположу что ты кладёшь добро на стек и к возврату из процедуры у тебя лишнее добро там где должен быть возврат. Но возможно все совсем не так
&2
12:11
&rey 2ne:v
In reply to this message
DUMPSTK тоже?
SK
12:12
Sergey Konakov
In reply to this message
Большое спасибоо !
Вроде отправил запрос на вывод ..
🙂
DS
12:31
Daniil Sedov
In reply to this message
Так это весь код :)
12:32
Я весь код программы сюда скинул
12:32
Две строчки
В
12:35
Василий
In reply to this message
Ну надо посмотреть как происходит завершение выполнения tvm. В регистровых машинах если положил на стек, будь добр забрать, а то будут проблемы с возвратом. В стековых не знаю
SH
12:58
Seitaro Higuchi
In reply to this message
PUSHINT это не команда которая "создает опкод". А команда которая его записывает в ячейку.
Но ячейки нет - вот и stack underflow. <b 1 PUSHINT - работает
DS
12:59
Daniil Sedov
In reply to this message
Спасибо
a
14:04
available314
Здраствуйте, я создал простой смарт контракт с методом get_total который должен возвращать 11, но когда я задеплоил контракт и вызвыл метод get_total, он выдает Output: [ [ 128253 ]. В чем проблема?
DS
14:06
Daniil Sedov
In reply to this message
жиза была помню, а в чем прикол был не помню
14:06
только я делал random(), у меня тоже похожее число постоянно выдавало, сколько бы я не вызывал метод
a
14:08
available314
А контрак из быстрого старта работает нормально
СВ
14:43
Сергей В
In reply to this message
В общем проблема в toncli/func-libs/math.func
Из за inline спецификатора, если его поменять на inline_ref то ошибка проходит
AT
14:44
Andrey Tvorozhkov
In reply to this message
А не сделаешь PR?) 🥺
СВ
14:45
Сергей В
In reply to this message
Я просто не знаю это правильное решение или нет, вдруг из за него что-то работать не будет :)
14:46
Хотя с другой стороны хуже не станет :D
Да сделаю :)
T
14:54
Tim
In reply to this message
Famous last words
СВ
14:54
Сергей В
In reply to this message
Ну кнопку мерж не я жать буду :)
AT
14:55
Andrey Tvorozhkov
In reply to this message
😂😂
M
15:06
Maksim
Привет!
Подскажите, пожалуйста, какой сид требуется в первом шаге спецификации тон коннект от тонкипера? Нужен какой-то отдельный кошелек, типа сервисная учетка?
T
15:07
Tim
Это для клиентов
15:08
Вы в свой кошелёк встраиваете?
M
15:08
Maksim
Мне нужно просто авторизация в боте через тонкепер. Мне достаточно просто в коллбеке получить адрес кошелька
T
15:09
Tim
Там в репозитории есть пример сервера. Смотрите его. Если будут вопросы потом уже спеку
M
15:09
Maksim
Но там требуются всякие session и session_payload
15:09
Я пошел по шагам, чтобы повторить на питончике
T
15:09
Tim
Это все генерирует либа
15:11
И вам нужен ton-ownership, а не адресс . Адресс легко подделать
d
15:13
default
привет ребята
15:13
как можно делать сейл через смарт контракт в нфт?
M
15:13
Maksim
А sessionData там откуда берется?
T
15:13
Tim
Из аргумента же)
d
15:13
default
In reply to this message
кто может скинуть гитхаб репу? просто я потерял я видел ее раньше
M
15:14
Maksim
In reply to this message
На а что в нем лежать должно?) Сорри, если туплю
T
15:14
Tim
15:14
В том же репозитории пример
M
15:14
Maksim
Ох
15:14
Понял
15:14
In reply to this message
Попробую, спасибо!
d
15:15
default
In reply to this message
?
M
15:15
Maksim
In reply to this message
Разверни вопрос, пожалуйста
d
15:16
default
Как продать нфт через смарт контракт выставить цену ?
T
15:16
Tim
Гетгемс смотри
M
15:17
Maksim
In reply to this message
Насколько я понял, можно просто в сейл отправить нужную сумму, и тебе придет НФТ
d
15:17
default
In reply to this message
нет ты не понял
15:17
например
15:17
у меня есть миллион нфт
15:17
и мне нужно выставить их на продажу
15:17
как я это сделаю?
M
15:18
Maksim
Имеешь ввиду, как это сделать скриптиком, а не руками?
d
15:18
default
ага
M
15:18
Maksim
In reply to this message
Тогда это
d
15:19
default
In reply to this message
можешь ссылку кинуть по этой теме?
T
15:19
Tim
гитхаб гетгемс
d
15:19
default
ок
15:21
блин сорян за тупость можешь скинуть ссылку на репу гетгемса?
15:21
я не смог найти
15:21
буду очень благодарен
15:21
d
15:22
default
In reply to this message
спасибо огромное
A
18:06
Alexander
@andreypfau спасибо за обновление Kotlin библиотеки! Если позволите, небольшой фидбек по классам ContractV*.

IMHO, решение с передачей liteApi в конструкторы имеет пару недостатков:
- если нужно просто сгенерить кошелек определенной версии (чтобы, например, получить address), то приходится либо передавать фейковый liteApi, либо провайдить настоящий.
- в действительности liteApi нужен только для deploy() и transfer(), все остальное, насколько я вижу, работает без него.

Предложение:

убрать liteApi из конструкторов ContractV*, при этом перенести методы deploy() & transfer() непосредственно в LiteClient, типа:
- client.deploy(contract)
- client.transfer(contract.transferMessage(...))

Что думаете? 🙂
AP
18:07
Andrey Pfau
контракты в скором времени будут перерабатываться
18:07
там сейчас висит отдельный PR с изменениями
T
18:08
Tim
Такая же проблема в tonweb и ton на самом деле. В идеале клиент не должен передаваться в конструктор контракта
A
18:11
Alexander
In reply to this message
Понял, тогда ждем
о
20:50
о
Ребят, как реализовать свой ключ к запросам на тон апи?
A
21:07
ARS
A
21:23
Artyom
Вопрос к организаторам второго контеста: можно посмотреть где-то список тестов к заданиям, по которым оценка идет, чтобы можно было локально решать задачи и проверять, т.к. бот больше не оценивает?
о
21:23
о
In reply to this message
И куда этот потом токен применить?
DS
21:24
Daniil Sedov
In reply to this message
В чате контеста спроси
RG
21:33
Ruslan Gabdullin
In reply to this message
Ключ передаётся через хедеры. Подробнее вот тут: https://toncenter.com/api/v2/
M
21:33
Maksim
In reply to this message
В заголовке Authorization
Iz
21:34
Ideš za Kanadu
всем привет ребят, такой вопрос
я задеплоил нфтихи сегодня с помощью этого деплоера:
https://github.com/tondiamonds/ton-nft-deployer
правильно ли я понимаю что он связан посредствам ТОН апи с контрактами: nft-collection-editable.fc, nft-item.fc, из данного репазитория:
https://github.com/ton-blockchain/token-contract/tree/main/nft
то есть если я правильно понял при деплое билдится и 2 этих контракта, то есть нфтихи падают на баланс кошелька который появляется при билде этих контрактов, я верное понял?
RG
21:34
Ruslan Gabdullin
In reply to this message
Через X-API-Key будет надежнее
о
21:35
о
In reply to this message
Я выполняю запрос на Пайтон, не пользуюсь JS, можно ли вставить ключ через ссылку?
M
21:35
Maksim
Что имеешь ввиду?
RG
21:35
Ruslan Gabdullin
In reply to this message
А можно твой код с запросом?
о
21:36
о
In reply to this message
RG
21:36
Ruslan Gabdullin
Кстати говоря, можешь ещё посмотреть на https://GitHub.com/toncenter/pytonlib.
Там есть все методы из toncenter.com.
о
21:37
о
In reply to this message
Спасибо :)
RG
21:37
Ruslan Gabdullin
In reply to this message
headers={‘X-API-Key’: ‘…’}
о
21:38
о
In reply to this message
О, спасибо :)
NI
22:55
No Caller ID
Я правильно понял, что голосованием валидаторов домены могут быть изъяты у владельца? Не очень в духе децентрализованного интернета.
RG
23:00
Roman Geints
In reply to this message
добро пожаловать в proof of stake
А
23:01
Андрей
In reply to this message
Ну почему же, в любом блокчейне есть этот дух - например если 75% майнеров битка проголосуют за изменение блокчейна, в том числе создания блока и отъем средств у какого либо пользователя, то тут будет то же самое
NI
23:03
No Caller ID
In reply to this message
Собрать 75% майнеров сложнее, чем проголосовать валидаторами, большинство из которых так или иначе связаны с командой разработчиков. Давайте правде в глаза посмотрим: у проекта есть проблема с децентрализованностью, это прокатит какое-то время, но потом это убьет доверие к тону.
А
23:06
Андрей
In reply to this message
Почему собрать консенсус майнеров сложнее чем консенус валидаторов?
NI
23:17
No Caller ID
In reply to this message
Повлиять на 75% децетрализованных, разбросанных по всему миру майнеров биткоина в тысячу раз сложнее(если вообще возможно), чем на подконтрольных валидаторов. Я просто тогда не очень понимаю, чем это отличается от обычных интернет проектов. Вся суть в децентрализации и независимости участников сети от какого-либо центра, если такая зависимость есть(даже если она маскируется), то это уже не веб3. Мне кажется это важный момент, в рунете может это не все поймут, но западное крипто сообщество очень быстро это увидит, и за счет чего тогда будет развиваться проект и расти цена не очень понятно.
А
23:19
Андрей
In reply to this message
Почему валидаторы подконтрольные?
J
23:20
Jack Rotgar
In reply to this message
Потому что у автора фантазия хорошо работает.
DS
23:25
Daniil Sedov
In reply to this message
К сожалению, в PoW существуют майнинг пулы, из-за которых, мощности всех этих "тысяч майнеров" оказываются под контролем централизованных компаний
NI
23:29
No Caller ID
In reply to this message
У меня нет цели здесь компрометировать проект или очернять, при желании не сложно самостоятельно разобраться. Я дал обратную связь, не более. Если разработчики считают, что это не так - ок. Я просто говорю, что по факту это ничем хорошим не кончится. И фишка с удалением доменов и тем более их изъятием это просто еще один шаг к централизации.
DS
23:29
Daniil Sedov
In reply to this message
Интересно, как же так "западное сообщество" допустило, что в топ-20 криптовалют по капитализации находится сразу 6 разных блокчейнов на proof-of-stake 😳😳😳
F
23:34
F
In reply to this message
Данный чат про разработку, вам сюда: https://t.me/toncoin_rus_chat
14 August 2022
VE
00:20
Vladimir Eliseev
Всем привет! Подскажите, Кто то собирал проект https://github.com/trm-dev/wallet-android ?
00:31
Пытаюсь собрать, пишет

process_begin: CreateProcess(NULL, "", ...) failed.
make: *** No rule to make target `A:/Workspace/wallet-android3/app/jni/./ton/crypto/smc-envelope/WalletInterface.cpp', needed by `A:/Workspace/wallet-android3/app/build/intermediates/ndkBuild/afatDebug/obj/local/armeabi-v7a/objs-debug/tonlib/./ton/crypto/smc-envelope/WalletInterface.o'. Stop.

Подскажите, пожалуйста, куда копать
I
03:02
Ihor
Мне вот интересно, чисто теоретически, что если бОльшая часть валидаторов вступят в сговор и решат навредить сети ради собственной выгоды?

Есть ли механизмы или хотябы идеи, которые предотвратили бы подобное поведение? Или ТОН всегда будет заложником подобной централизации со стороны валидаторов?

Я понимаю, что подобный сценарий маловероятный, но всё же его вероятность далеко не стремится к нулю. Как мы можем перестраховаться от появления этого чёрного лебедя?
VA
03:03
Vlad Arbatov
In reply to this message
мастер-ключ )))
AP
03:10
Andrey Pfau
In reply to this message
Почитай как работает Proof of stake, это вопрос не по тематике чата
I
03:12
Ihor
In reply to this message
Речь не только о валидировании блоков. Я о концепции принятия решений в целом.

(знаю за фишерменов)
А(
07:05
Андрей Власов (Andrey Vlasov)
Друзья, подскажите, как получить список NFT с адреса кошелька?
Указанный ниже код возвращает пустой список, хотя NFT там есть.

"https://tonapi.io/v1/nft/searchItems?owner={}&include_on_sale=true&limit=50&offset=20".format(Address)
J
07:53
Jardis
In reply to this message
Привет, TF может сделать доверенный ценовой оракул для курса? Чтобы контракты оттуда данные читали
СВ
08:05
Сергей В
In reply to this message
А если offset 0 сделать? :)
А(
08:29
Андрей Власов (Andrey Vlasov)
In reply to this message
👍🏻
&2
09:06
&rey 2ne:v
Есть задача, сделать словарь, в котором ключами адреса пользователей. Получится ли сэкономить на комиссии, если брать адрес по модулю какого-то большого числа ~2^128 и писать только остаток от деления (который окажется короче в два раза)? Или есть шанс натолкнуться на коллизии?
09:07
Вообще, я хочу использовать модуль 998244353*1000000007*1000000009*1073676287. Есть ли сейчас два адреса, дающие один остаток при делении на это?
09:08
Или комиссия не зависит от длины ключей в словаре и вообще не получится сэкономить?
DS
09:21
Daniil Sedov
In reply to this message
А схема с 1 главным контрактом и любым кол-вом контрактов юзерских не подходит? Как у жетонов и нфт
09:22
Или тебе нужна экономия не в том плане, что с ростом юзеров будет дорого, а в том плане, чтобы сразу было дешево, а потом юзеров не будет много?
&2
09:22
&rey 2ne:v
In reply to this message
Хм, любопытно, даже не знал о таком. Но есть параметры, которые и не слишком важные, чтобы попасть в конфиг TON, но которые надо обновлять на всех смарт-контрактах.
09:22
In reply to this message
Не, я про экономию с ростом числа пользователей.
09:23
In reply to this message
Но за идею спасибо)
DS
09:23
Daniil Sedov
In reply to this message
Тогда да, надо постараться разбить твою систему на две части. Основной контракт и по контракту на юзера
09:24
In reply to this message
Не совсем понял тебя.
Нужно потом будет всем контрактам юзеров изменять какие то параметры?
А нельзя этот параметр в основной контракт внести, а юзеры будут к нему обращаться?
&2
09:24
&rey 2ne:v
In reply to this message
Хм, обращаться через внутренние сообщения? Можно, конечно - правда, любопытная конструкция получится.
09:26
Ещё можно добавить поддержку шардов, как в самом TON. И делить СК на два, когда понадобится.
DS
09:26
Daniil Sedov
Ну в принципе то можно сделать и с дефолтной архитектурой через словарь. Она "сломается" по идее только при огромном колве юзеров
09:26
In reply to this message
😳
09:26
Это уже слишком
SH
09:32
Seitaro Higuchi
In reply to this message
На это можно посмотреть с другой стороны:
1) от наличия явно прописанного механизма доменов теоретическая возможность что-то с ними сделать не пропадает: валидаторы могут поставить другой днс, могут "прямо" зафорсить стейт итп. Так что с чисто абстрактной точки зрения ничего не меняется.
2) с практической же разница огромна: приходит к нам какой-нибудь регулятор и говорит "gov.ton" должен вести на сайт белого дома в аднл сети. Мы ответим - отлично, но это не к нам, это к валидаторам: подавайте заявку на голосование, они вас наверняка поддержат. Если бы механизм не был предусмотрен, то запрос на форсинг изменений лег бы на разработчиков. Это не только нам неприятно, но и для сети хреново.
Резюмируя: созданием механизма мы явно обозначили чья это сфера ответственности, при этом в любом случае предполагается, что использование этого механизма это что-то из ряда вон выходящее (и чего скорее всего никогда не будет)
Д
09:52
Дмитрий
Ребят, всем привет
09:52
Уже появилась возможность ончейнить нфт?
VA
09:53
Vlad Arbatov
In reply to this message
она изначально была
Д
09:54
Дмитрий
In reply to this message
😕 Здесь кто-то писал, что в ончейн можно пока только метадату жетонов кидать
VA
09:54
Vlad Arbatov
In reply to this message
ну посмотрите стандарт контракта нфт
ON
10:23
Olya Nemo
In reply to this message
Мне кажется, в своих выводах, вы не учитываете эвристический принцип децентрализации — если система разделена на части, то части все равно будут (и должны )взаимодействовать Это не я сказала, а док Columbia University Tim Roughgarden.

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

Проблема как раз в этом (это уже имхо). Но я не разработчик, не претендую на безошибочное суждение.

И насчет децентрализации на 75% майнеров BTC, вы сильно ошибаетесь.
NN
10:30
Nick Nekilov
F
F 13.08.2022 23:34:45
Данный чат про разработку, вам сюда: https://t.me/toncoin_rus_chat
&2
12:09
&rey 2ne:v
Очередной интересный вопрос про сообщения и комиссии. Если смарт-контракт отправляет другому сообщение и прикрепляет A наноTON, комиссия за обработку сообщения получателем равна B наноTON, то получатель получит A - B, а с отправителя будет снято A?
12:10
Или с отправителя будет снято A + B, а получено будет A?
a
12:15
assemblerx64
In reply to this message
Это зависит от send_mode, поищи в доках. 0 - списывается из переводимой суммы, 1 - отдельно. И есть разные коды еще
&2
12:18
&rey 2ne:v
In reply to this message
Ага, спасибо. А получающий контракт может как-то проверить, вычитается ли комиссия (как минимум по газу) из переданного параметра coins или нет?
12:19
Ну, то есть, у recv_internal есть несколько аргументов, и один из них - int coins. Можно ли проверить, будет ли удержана цена газа из этих coins или газ оплачивается отправителем отдельно?
a
12:20
assemblerx64
In reply to this message
В in_msg_full вроде в флагах должно быть, но хз надо смотреть
&2
12:20
&rey 2ne:v
Там вроде только ihr_disabled, bounce, bounced.
12:21
In reply to this message
А, понял, цена газа списывается всё равно с сообщения - +1 к send_mode даёт отдельную оплату только transfer_fees.
M
13:28
Mr? BunnyFight
Доброго дня, господа, появился такой вопрос, что такое Token Address и в чем различия между Token Address и Owner?
VE
13:30
Vladimir Eliseev
Всем привет! Есть тут кто делает кошелек под Андроид на Котлин?
DS
13:35
Daniil Sedov
In reply to this message
кошелек жетонов это отдельный смарт контракт, как и кошелек тонов
J
13:45
Jardis
In reply to this message
Ответит кто-нибудь?
AP
13:46
Andrey Pfau
In reply to this message
Ну у меня на гитхабе есть прототип
13:46
Но он не доделал)
VE
13:54
Vladimir Eliseev
In reply to this message
Можно взглянуть?)
14:00
Просто вот этот не собирается https://github.com/trm-dev/wallet-android (
14:02
Но он не доделан, это чисто эксперемент
VE
14:03
Vladimir Eliseev
In reply to this message
Спасибо!
AP
14:03
Andrey Pfau
Но можно прикрутить эту либу:
https://github.com/andreypfau/ton-kotlin
VE
14:03
Vladimir Eliseev
In reply to this message
Пишет 404)
14:04
А вот эту историю не пробовал собирать https://github.com/trm-dev/wallet-android?
AP
14:04
Andrey Pfau
In reply to this message
А теперь?
14:04
In reply to this message
Нет
VE
14:05
Vladimir Eliseev
In reply to this message
А тут есть пример использования?)
14:05
In reply to this message
Теперь норм
VE
14:07
Vladimir Eliseev
In reply to this message
Супер! Еще раз спасибо!
AP
14:09
Andrey Pfau
In reply to this message
Вообще чекай тесты в модулях - там можно по примерам понять как юзать
14:09
Документацию надо ещё дописывать, это пока прототип
d
15:01
default
ребятки
15:01
если допустим
15:01
есть коллекция нфт
15:01
и там минтили через гетгемс
15:01
можно ли потом через даймондсов заминтить ?
15:01
остальные
M
15:09
Mr? BunnyFight
Почему в Tonkeeper (тестовой сети) не отображается NFT коллекция во владении?

Распишу более подробно, почему после минта нфт, владельцам отображается non-bounceable адрес кошелька, а при входе на кошелек с bounceable адресом, они не отображаются, хотя не смотря на то что это один и тот же кошелек, но с разным видом записи...
T
15:11
Tim
In reply to this message
Не знаю как у них там устроено точно, но если вы владелец коллекции, то можно самому написать скрипт который доминтит
d
15:12
default
In reply to this message
смарт что ли ?
15:12
я просто в смартах не профи
15:12
и ни разу не имел опыта в тоне
T
15:12
Tim
In reply to this message
Звучит как баг, не встречал такой вроде
d
15:12
default
раньше минтил только на полигоне и эфире
15:13
In reply to this message
нету каких нибудь уроков ? про минт нфт ?
Iz
15:13
Ideš za Kanadu
In reply to this message
есть деплоер
d
15:13
default
In reply to this message
.
15:14
я знаю но у меня есть вопросы по этому поводу)
M
15:14
Mr? BunnyFight
In reply to this message
хм... я уже второй день с этой проблемой, пробовал и менять кошельки, но все же, не особо выходит
T
15:14
Tim
In reply to this message
Т.е. если заминтить на баунс все отображатеся, а наоборот нет?
M
15:14
Mr? BunnyFight
In reply to this message
Задавай, если что, помогу, я через него деплоил коллекцию
T
15:14
Tim
In reply to this message
Я же написал, у гетгемс другой контракт
15:15
напрямую не заработает, можно попробовать переписать
d
15:15
default
понял
M
15:15
Mr? BunnyFight
In reply to this message
Я пытался так делать, да, но безрезультатно
T
15:15
Tim
похоже скорее на то что какие-то проблемы с нфт
M
15:16
Mr? BunnyFight
In reply to this message
Если, что, могу к тебе обращаться?
15:16
Я еще денек посижу, попробую другую коллекцию заминтить, если будут вопросу, напечатаю
T
15:17
Tim
ну я тонкипер не делаю)) мету можно попробовать посмотреть
15:17
если на tonapi.io показывается правильно, то и в тонкипере все должно быть ок
M
15:18
Mr? BunnyFight
In reply to this message
Сейчас гляну
[
16:32
[💎] polevskyy
Всем привет!
Хотел узнать, можно ли как-то автоматизировать отправку NFT на разные кошельки из списка на python?
DK
16:56
Dmitry Korobeynikov
In reply to this message
Можно. В последней версии библиотеки pytonlib/psylopunk добавлена функция отправки нфт
M
17:34
Murat
Всем привет!
Кто может подсказать как загрузить нфт коллекцию в каталог ton.app
При загрузки данных в бота, он просит store link. Я попытался отправить ссылку на маркетплейс getgems, однако пишет это:
«The value isn't valid. Please, enter new value (You can use a-z, 0-9 and dash. Minimum length is 5 and maximum 100 characters.)»
Кто нибудь знает что делать?
A
19:47
Alexander
Help, pls!

Я могу как-то из смарт контракта получить его jetton X wallet address? (вариант сохранять при deploy невозможен)
М
21:33
МАН69К
Привет! Не могу найти - какой размер словаря для построения seed-фразы? В поисковике всё про Биткоин в основном попадается. У нас тоже BIP39 используется или что-то своё?
T
21:34
Tim
In reply to this message
Tonweb-mnemonic смотри
&2
21:35
&rey 2ne:v
2048 слов вроде.
М
21:39
МАН69К
In reply to this message
Спасибо! (и @TrueCarry)
Н
21:45
Никита
Что такое мнемоник адрес ?
15 August 2022
F
00:59
Ferrari Apple
Добрый вечер. Не подскажите как получить отсюда информацию, в текстовом виде, что это за домены?
M
01:00
Mr? BunnyFight
In reply to this message
Могу только вкинуть предположение...

Мнемоника — это способы запомнить информацию путем смены типа информации.

Значит по идее, мнемонический адрес это грубо говоря динамический адрес, который постоянно записывает информацию, чтобы во время случайного сбоя при следующем шаге не откатиться в начало
T
01:03
Tim
In reply to this message
через тон апи не знаю, а так можешь вызвать гет метод по адресу нфт
WZ
01:03
Wladislav Zh
In reply to this message
ты можешь у гетгемс в api прям на такой же квере получить и домены
F
01:05
Ferrari Apple
In reply to this message
Спасибо, это понимаю, но хотел через это API)
А
08:08
Алексей
Всем привет!
В Java SDK используется библиотека libnative-lib.so, проблема в том, что все работает пока TonApi находится в пакете drinkless.org.ton.
Только стоит переместить этот класс в другой пакет как libnative перестает работать (видимо в нативной библиотеке захардкодили путь до класса, хз)

Вопрос, можно ли это как-то вылечить ? Ибо в руководстве сказано что после генерации нативной библиотеки и java-классов их можно поместить в свой проект и спокойно использовать
AP
08:19
Andrey Pfau
In reply to this message
Вы можете попробовать использовать
https://github.com/andreypfau/ton-kotlin
d
09:46
default
всем привет
09:48
как можно сделать сейл уже заминченной коллекции?
09:49
не ручками а смартом например?
Iz
09:50
Ideš za Kanadu
In reply to this message
+ тоже интересует
d
09:50
default
In reply to this message
го в лс у меня есть некоторая инфа но я не знаю как реализовать
[
09:55
[💎] polevskyy
In reply to this message
Написать самому софт, не?
d
09:55
default
In reply to this message
О привет братан)
F
09:57
F
In reply to this message
Здесь не сайт знакомств, такие сообщения пожалуйста в личку
А
10:04
Алексей
In reply to this message
Спасибо, вечером ознакомлюсь)
r
16:49
rafici
Всем привет, какой параметр в майтонконтрл отвечает за переключение в тестнет? Если тыкните в доку по параметрам, буду благодарен.
IM
16:50
Illia Malovanyi
Как использовать ton-contract-executor на линуксе? Как я понял, то в ton-compiler предустановлены бинарники для макос, поэтому у меня ошибки вылазят. Можно как-то в ton-contract-executor поменять путь к компилятору?
PG
16:55
Prime G.
In reply to this message
При установке -c вроде и указываешь конфиг тестовой сети
АТ
17:14
Андрей Турбин
Ищу разработчика TON смартов.
Желающих поработать прошу откликнуться в ЛС
r
17:25
rafici
In reply to this message
Да, спасибо.
https://ton-blockchain.github.io/testnet-global.config.json
Кому инересно
T
17:54
Tim
In reply to this message
Не пользуйся компилером в js, загружай сразу из cell
M
19:46
Maksim
Привет!
Попробовал реализовать механизм создания ответа из мануала по tonkeeper по авторизации. Вроде получается что-то, похожее на правду, но тонкипер пишет ValidationSchemeError: undefined. Кто-то может подсказать, в чем проблема?
V
20:02
Vitaly Yagodkin
Кто знает, умеет как делать некастодиальный кошелёк на Андройд или iOS? Готов платную консультацию купить или оплатить разработку.
T
20:03
Tim
In reply to this message
Покажи какой json выдаёт
Iz
20:10
Ideš za Kanadu
а у вас тоже тон орг лежит?
&2
20:10
&rey 2ne:v
In reply to this message
DNS от гугла выдаёт адрес, начинающийся со 188 - этот адрес не пингуется. Поставил другие DNS, всё заработало.
Н
20:35
Никита
добрый вечер, можете скинуть скрин как рабочий лайт клиент выглядит, пожалуйста
DV
21:52
Dan Volkov
https://github.com/ton-blockchain/TIPs/issues/83

Сделали спеку про стандатизацию конфига проекта, может быть кто-то может что-то еще добавить? Хотим вставить в расширения intellij и vscode
SV
22:29
Sergei Voroshilov
In reply to this message
А директорию с тестами там не надо указывать?
В
22:40
Вячеслав
In reply to this message
Могу порекомендовать свою либку, решающую ту же задачу :)
DV
22:55
Dan Volkov
In reply to this message
Можно
AT
23:35
Andrey Tvorozhkov
In reply to this message
Топлю за то, чтобы взяли тонкли формат за основу)
DV
23:35
Dan Volkov
In reply to this message
Велкам, жду комменты с пожеланиями
AT
23:36
Andrey Tvorozhkov
In reply to this message
А я ведь напишу
DV
23:42
Dan Volkov
In reply to this message
Я знаю))
AP
23:58
Andrey Pfau
In reply to this message
у тонкли плохой формат я тебе уже об этом писал
16 August 2022
м
00:52
максим
на тоне есть конструктор типа remix.etherium чтобы быстро токены делать?
AG
00:56
Alex Golev
не знаю что такое remix.etherium, но может это
https://tonwhales.com/tokens/launcher ?
D
00:56
Dvredin ️
In reply to this message
Да
м
00:58
максим
In reply to this message
оо от души🙏
A
01:21
Alexander
In reply to this message
Для тонхаба подойдёт?
T
01:21
Tim
In reply to this message
Нет, у тонхаба другая схема
A
01:21
Alexander
In reply to this message
У них вообще инструкций нет
01:21
И библиотек
01:22
Или есть?
01:22
In reply to this message
Если либа стабильная, предлагаю написать тонкиперу, чтобы они добавили ссылку в свой гит и доку
A
01:23
Alexander
In reply to this message
Спасибо
01:23
AG
01:31
Alex Golev
In reply to this message
https://developers.tonhub.com/docs/getting-started
Про это речь, или нет?
M
08:19
Maksim
In reply to this message
Спасибо!
&2
08:43
&rey 2ne:v
deploy-request-code.js
Not included, change data exporting settings to download.
4.5 KB
Не разворачивается СК через браузер.
Пытаюсь развернуть через TonWeb таким кодом.
08:43
Получаю ошибку
Uncaught (in promise) LITE_SERVER_UNKNOWN: cannot apply external message to current state : External message was not accepted
Cannot run message on account: inbound external message rejected by transaction F9D19BECA08FAF8E6B5C31D102E9BA41522C863ACF7D5E4A5C4F17A7A26AF4D0:
exitcode=11, steps=4, gas_used=0
VM Log (truncated):
...execute SETCP 0
execute DICTPUSHCONST 19 (xC_,1)
execute DICTIGETJMPZ
execute THROWARG 11
default exception handler, terminating vm with exit code 11