23 March 2022
N
09:42
NoExists 🦟
Если у человека будет возможность смотаться в соседний, то отлично, так и буду делать. За идею спасибо
m
09:42
mystery influence
тогда любой транспортной компанией - человеку трек-номер и ссылку для получения.
09:49
Deleted Account
Существует такая вещь, как абонентский ящик в почтовых отделениях.
09:49
Только не понимаю, о легализации каких доходов ты говоришь?
m
09:49
mystery influence
In reply to this message
+
09:49
Deleted Account
Статуэтка != доход.
N
09:50
NoExists 🦟
In reply to this message
Производство статуэтки. Как объяснить налоговой, что я произвожу, не продаю, и при этом не разорен
09:51
Заявлять, что я получаю оплату криптой нельзя, в нашей стране это запрещено
c
09:52
cryshado
In reply to this message
У тебя оборот 100 млн рублей?
09:53
Если нет, то стоит подумать головой …😅
m
09:53
mystery influence
In reply to this message
Разве масштаб производства настолько большой, что придется открывать ИП?
09:53
Deleted Account
In reply to this message
Налог на подарок. Слышал о таком?
Я тоже не слышал xd
N
09:54
NoExists 🦟
In reply to this message
Нормально ты меня щас на место поставил 🤣
Ну я арендую помещение, под производственные нужды, владелец физ лицу не сдаст
F
09:55
F
Напоминаю, тематика данного чата - разработка в сфере TON. Экономика, производство и бизнес - не по теме чата

PS: я не админ, а модератор
c
09:55
cryshado
In reply to this message
+
N
09:55
NoExists 🦟
Хорошо, спасибо уже за ту информацию, что я получил
q
09:55
qpwe
In reply to this message
О, админушка, вруби реакции, пожалуйста 🙈
c
09:56
cryshado
In reply to this message
Поддерживаю
m
09:56
mystery influence
In reply to this message
Не легче заказать у кого-нибудь? Или в том же Леруа (в некоторых есть) отделения для ручного труда. 3D принтеры и прочие инструменты.
AT
10:04
Andrey Tvorozhkov
А в мейннете проблемы у меня одного?)
D
10:24
Daniil
А где тут адрес контракта?)
P
10:25
Purple
In reply to this message
его и не будет
D
10:26
Daniil
это?
P
10:27
Purple
In reply to this message
да
c
10:27
cryshado
In reply to this message
ага 🙂
D
10:27
Daniil
In reply to this message
твой контракт))
c
10:27
cryshado
In reply to this message
ага 🙂
D
10:28
Daniil
кстати, lite server выдает ошибку с testnet конфигом
c
10:28
cryshado
In reply to this message
какую
D
10:31
Daniil
In reply to this message
[ 1][t 2][2022-03-23 07:25:12.151417345][lite-client.cpp:1150][!testnode] sending query from file auto/init.boc
[ 1][t 2][2022-03-23 07:25:12.194906826][lite-client.cpp:152][!testnode] liteserver error: [Error : 0 : cannot apply external message to current state : Failed to unpack account state]
[ 1][t 2][2022-03-23 07:25:12.195013887][lite-client.cpp:164][!testnode] fatal error executing command-line queries, skipping the rest
c
10:32
cryshado
In reply to this message
а ты тестнет тонов закинул на контракт?
10:32
перед деплоем
D
10:32
Daniil
In reply to this message
неа
c
10:32
cryshado
ну вот)
RG
10:57
Ruslan Gabdullin
In reply to this message
Sorry, I’m not clearly understand what you want to do. @extra field is assigned automatically by api server. This is just a random id, which is unrelated with liteserver responds.
11:45
Deleted Account
Привет
zz
12:14
zz z
In reply to this message
i send transaction by the api(https://toncenter.com/api/v2/sendBoc), but the api doesn't return the transaction hash for me. so i want to kown how can i get transaction hash by the data from returned api(https://toncenter.com/api/v2/sendBoc)
D
12:15
Daniil
In reply to this message
D
12:17
Dario
In reply to this message
You cant do that. You need to wait the transaction to get processed and then you can get the hash and lt
zz
12:19
zz z
In reply to this message
Is it possible to query the latest transaction only through the api (https://toncenter.com/api/v2/getTransactions), or is there another way to query
D
12:20
Dario
Yeah,.you can do that
12:21
You can easly save the transactions in a db and then query lastest using limit=1, lt and hash with your lastest data you saved
zz
12:25
zz z
In reply to this message
it means that I can't correlate transactions of the api (https://toncenter.com/api/v2/getTransactions) with the data from returned api(https://toncenter.com/api/v2/sendBoc)?
D
12:26
Dario
No
RG
12:26
Ruslan Gabdullin
Could you provide an output of your sendBoc?
12:26
If there is no any private info
zz
12:27
zz z
In reply to this message
{'ok': True, 'result': {'@type': 'ok', '@extra': '1647935751.7604656:18:0.42096078722285635'}}
RG
12:27
Ruslan Gabdullin
Fine. There is no way to find your transaction by this output.
zz
12:28
zz z
OK thanks a lot
RG
12:28
Ruslan Gabdullin
And could you also give a message you sent?
zz
12:31
zz z
In reply to this message
It's a base64 string of signed transfers,I didn't save it
RG
12:33
Ruslan Gabdullin
In reply to this message
Ok, I currently have no idea how to do this…
zz
12:34
zz z
I created a new one
12:35
In reply to this message
te6cckEBAgEAuAAB34gBspH9oqjaA2mCAjVfT5/5uubRkK9pEvJklKmEz45Lxn4ErWag2GFDNowM4duqD+ptpQQJ9PEKvryT0QVwBdfMiLcun5Wc69vHm1cq5cz759jOd5LbPdSgXQv8F0+aP9VoUU1NGLsR100YAAAAYBwBAIZiACFoHk0egI9E4A1ZJnJaWqRBEmTqYEWWxX87bwtDG9GmHMS0AAAAAAAAAAAAAAAAAAAAAAAAdGVzdAAAAAAAAAAAlmscWw==
12:36
I send the string and the api return the data {'ok': True, 'result': {'@type': 'ok', '@extra': '1648028031.11834:0:0.7462507410174326'}}
SF
12:46
Slava Fomin
Девчат ну вы чего? Этож русский чат :)
AP
13:47
Andrey Pfau
Внатуре
RG
13:51
Ruslan Gabdullin
Ну блина)
.
14:03
.
Что вообще думаете про ТОН, в ближайшую неделю будут изменения?) у кого сколько тонов вообще ? Интересно
AP
14:07
Andrey Pfau
In reply to this message
вам в этот чат https://t.me/toncoin_rus_chat
C
14:08
Cioni
лул
.
14:08
.
In reply to this message
Thx
0
14:37
0xKeanu☀️Диплом ДАО
подскажите пожалуйста, для своего тестового проекта нужно обязательно поднимать свою ноду?
CZ
14:38
Chak Zefir
In reply to this message
Нет, можете пользоваться тестнетом, однако он нестабилен в последнее время.
0
14:39
0xKeanu☀️Диплом ДАО
In reply to this message
спасибо
MG
15:30
Marat Gevorkyan
Добрый день!

Я попытался задеплоить смарт-контракт в testnet, но не могу проверить его работу. Хочу найти его в каком-нибудь explorer'е, но все, что я знаю/нашёл ищут контракты только в основной сети. Есть ли explorer'ы по тестовой сети?

Буду очень признателен, если поделитесь ссылкой!
SF
15:32
Slava Fomin
In reply to this message
F
15:36
F
In reply to this message
да просто добавляем testnet к любому обозревателю и он обычно отображает тестнет)
Например testnet.tonscan.org
MG
15:37
Marat Gevorkyan
In reply to this message
Спасибо 🙏🙏🙏🙏
SF
15:39
Slava Fomin
tonscan почему-то не показал мне на днях несколько транзакций по адресу, я теперь ему не доверяю ))
T
15:40
TON Дев Чат
In reply to this message
ЛС в тестнете держат энтузиасты из соображений энтузиазма, там не слишком сильные ноды и они хранят по 1-2 неделе истории
0
15:40
0xKeanu☀️Диплом ДАО
Подскажите пожалуйста, как с помощью TON HTTP API в тестнете отправить смартконтракт?
SF
15:40
Slava Fomin
In reply to this message
Не, это были свежие транзакции в мейне.
15:45
In reply to this message
Вот тут есть примеры для JS:
https://github.com/toncenter/examples
0
15:49
0xKeanu☀️Диплом ДАО
In reply to this message
спасибо, а где взять ключи api key?
SF
15:50
Slava Fomin
In reply to this message
https://toncenter.com/

Вот здесь нужно зарегистрироваться через бота в Телеге.
0
15:50
0xKeanu☀️Диплом ДАО
In reply to this message
спасибо
15:54
Deleted Account
Hi
I
15:58
Ihor
Подскажите, чтобы воспользоваться мостом "тест бинанс - тест тон", нужно иметь 5 коинов на тон кошельке для комиссии?

А то странная ошибка в алерте
17:14
Deleted Account
In reply to this message
4 секунды
m
17:23
m
подскажите, где искать информацию/примеры по процессу чеканки NFT в TON?
просмотрел тонну информации, но пазл не складывается(
0
17:31
0xKeanu☀️Диплом ДАО
подскажите пожалуйста а где найти запросы которые которые использует библиотека на js tonweb
17:31
а то я устал с ним мучатся свою напишу на джаве лучше
17:31
какие-то асинхи
17:32
даже метод не вернешь по нормальному
0
17:51
0xKeanu☀️Диплом ДАО
image_2022-03-23_17-51-51.png
Not included, change data exporting settings to download.
181.6 KB
почему вот тут ругается, вроде же все правильно передаю
17:53
о
17:53
все получилось
17:55
но почему-то все равно вместо адреса выдает билиберду
17:55
какие-то хеши
18:03
хеши расшифровал
18:03
но это не нормальный адрес
18:03
какой-то левый
JF
18:05
John Fyodor
Флаги bounceable, testonly и воркчейн
18:05
Влияют на конечный результат в бейз64
0
18:12
0xKeanu☀️Диплом ДАО
In reply to this message
спасибо!
18:19
Deleted Account
Нет
SF
18:19
Slava Fomin
In reply to this message
Я Вам настоятельно рекомендую использоватьTypeScript, это снимет сразу множество вопросов и проблем. В частности в конструктор кошелька нужно передавать инстанс HttpProvider, а не TonWeb.
AP
18:21
Andrew Python
In reply to this message
Это новый дизайн
SF
18:21
Slava Fomin
In reply to this message
Во второй аргумент нужно передавать объект с опциями, а не ключ напрямую. Вы наобум пытаетесь передавать значения в класс? :)

Где Вы взяли такой пример использования?
18:22
In reply to this message
Собственно я советую отталкиваться от примеров выше ^

Ну и TypeScript Вам в помощь, он не даст вызвать класс неправильно.
AP
18:23
Andrey Pfau
In reply to this message
Орнул. (Я бы поставил реакцию, но к сожалению их нет)
0
18:24
0xKeanu☀️Диплом ДАО
In reply to this message
хорошо
18:24
In reply to this message
сейчас вроде исправил
18:25
а такой вопрос, я вроде бы сделал в тест нете, но при сканировании кошелька в ton.sh пишет что blockchain id = mainnet
18:25
image_2022-03-23_18-25-32.png
Not included, change data exporting settings to download.
195.3 KB
18:26
image_2022-03-23_18-26-14.png
Not included, change data exporting settings to download.
26.7 KB
18:26
или кошелек создается сразу и в мейн нет и в тест нет?
SF
18:27
Slava Fomin
Неинициализированный аккаунт фактически не привязан к какой-то конкретной сети.
18:27
Выбор сети имеет значение, когда Вы деплоите контракт.
0
18:28
0xKeanu☀️Диплом ДАО
In reply to this message
понял спасибо
18:28
но когда я смог войти в свой пустой кошелечек ощущения были приятные)
SF
18:56
Slava Fomin
In reply to this message
Пока на аккаунте нет монет он совершенно эфемерен, то есть в блокчейне не записан.
T
19:05
Tonic
Tomorrow at 3pm in London, @toniccx will be hosting a Zoom conference on emerging NFT Marketplaces on TON.

We will be joined by reps from Getgems, Disintar and TonUniverse, where they will present their marketplaces and answer questions that you have.

Please submit questions in advance to @tonicadmin on Telegram.

Link to conference is here. (Conference in in English). Use this link to add the event to your Google Calendar.
SF
19:12
Slava Fomin
In reply to this message
Why aren't you using Telegram for the conference call itself?
AP
19:13
Andrey Pfau
In reply to this message
+
ИМ
19:13
Илья Михеев
In reply to this message
+
SF
19:16
Slava Fomin
I don't really get it, why do you Tonic guys are doing everything to avoid the Telegram ecosystem... 🤔
19:16
In reply to this message
+
VL
19:18
Vladimir Lebedev
In reply to this message
если бы в этом чатике были включены реакции, я бы поставил 👍
AP
19:19
Andrey Pfau
In reply to this message
Можешь написать + в реплае
19:20
Я вообще ненавижу зум, помойка ещё та, пришлось ставить из за конференции тоник как раз таки
VL
19:21
Vladimir Lebedev
In reply to this message
если привыкнуть, то зум норм, качество шеринга экрана гораздо выше чем в других сервисах. но в данном контексте странно использовать что-то кроме телеграма
AP
19:21
Andrey Pfau
In reply to this message
Шаринг экрана нормальный у телеграма, буквально на днях проводил конференцию
VL
19:24
Vladimir Lebedev
In reply to this message
btw you also have Discord, is it not so good for conference?
AP
19:24
Andrey Pfau
In reply to this message
+
19:25
Зачем разводить зоопарк из сервисов, оповещение в телеграме, перекидывают на дискорд сервер, чтобы там дать ссылку на конференцию в зум. Бред же
19:29
In reply to this message
Я также не понимаю, почему сообщество Ton Foundation продвигает Twitter для пользователей Telegram вместо того, чтобы продвигать телеграмму для аудитории Twitter, а также почему они продвигают цензурную платформу Medium вместо продвижения Telegraph. Половина битвы за массовое принятие TON заключается в том, чтобы привлечь людей в Telegram.
AP
19:30
Andrew Python
In reply to this message
Маркетологи гоняют трафик)
I
19:38
I
Interesting questions. In my opinion TON is way bigger than Telegram, and TONs potential lies beyond Telegram too. As far as I know, Discord is a more fully featured for large community management. As far as I know, Zoom is a more fully featured tool for interactive video conferences. Telegram is a better messenger and content delivery service. We use the best tool for the task at hand. But perhaps next time we will try Telegram.
19:47
In reply to this message
+
19:54
In reply to this message
Agree TON potential is bigger than Telegram but for this year Telegram is much bigger than Ton. In my view most of the mass adoption of Ton will take place from Telegram integrating Ton into the Telegram UI. 500 million monthly users will learn about TON right there on their screen perhaps even able to do something simple and get a small Ton starting balance to spend. This is why I still see the most efficient way to being people to Ton other than direct action “can I pay you in Ton” etc is via promoting Telegram as something immediately useful and familiar to everyone. Yes hopefully Telegram will catch up with conference features.
P
21:18
Purple
?
🏆 TON Contests 23.03.2022 21:17:35
TON Smart Challenge 1 Announcement 2

We are getting back to you with two news: TON Smart Challenge web page is live at https://ton.org/contest 🔥!

And we are also ready to shine some light on the format.

Contestants will have 5 smart contracts to optimize, fixing the explicitly added bugs and optimizing the flow, making sure business logic stays intact.

We set up a GitHub repo with the sample task of a simple TON Wallet, so contestants can prepare in advance and to know what they will deal with.

Contest Page on ton.org
AP
21:33
Andrey Pfau
дизлайк за неиспользование intellij-ton
21:34
а толя говорил что он фанат плагина, ех 😢
VL
21:38
Vladimir Lebedev
In reply to this message
По оптимизации было в целом очевидно что удалить, а баг сложно глазами выцепить, не заметил
P
21:39
Purple
In reply to this message
мне он впился в глаза
A
21:41
Andrei
In reply to this message
прикольно)
IR
22:41
Ivan Reinhart
Привет, тут есть разрабы? Хочу задать пару вопросов.

Я следил за тон с самого начала, со времен Телеграмм.

Я хотел бы получить информацию, которую я не смог найти в белой книге.

1) Какова средняя комиссия за транзакцию?

2) Какова текущая и максимальная пропускная способность (tps) для главной цепи и рабочих цепей?

3) Каковы значения завершения транзакции? Количество блоков и время блокировки?
4) Какое количество тонн, которое фактически поступит в обращение из общего числа 5 миллиардов (в настоящее время 1,22 миллиарда)? В первоначальном проекте Telegram разбивка была следующей: 52% (2,6 миллиарда) резервов, 4% (0,2 миллиарда) разработчикам и 46% (2,2 миллиарда) общественности.
Спасибо
ВП
22:43
Влад Павлючков
Есть ли какие-то гайды по FunC кроме документации у TON?
22:44
In reply to this message
Так как прочитав её что-то мало понятно.
SF
23:25
Slava Fomin
In reply to this message
> 1) Какова средняя комиссия за транзакцию?

С комиссиями всё сложно, их много разных и всё сильно зависит от того, что ты делаешь. Если говорить про переводы то это измеряется в единицах центов.

> 2) Какова текущая и максимальная пропускная способность (tps) для главной цепи и рабочих цепей?

БЧ горизонтально масштабируется (за счёт шардирования) и пропускная способность теоретически неограничена.

> 3) Каковы значения завершения транзакции? Количество блоков и время блокировки?

Блок подтверждается примерно за 4 секунды. Достаточно подтверждения одного блока.

Про экономику вопрос скорее не в тех. чат.
24 March 2022
03:08
Deleted Account
Не могу понять, какую версию кошелька создает TON Wallet в хроме?
JF
03:10
John Fyodor
In reply to this message
3 вроде
03:10
На тонкипере 4
03:18
Deleted Account
Еще вопрос:

Вот вывода адреса по JS:
console.log(address.toString(true, true, true));

toString
- что за параметры true? где почитать о них?
SF
03:21
Slava Fomin
In reply to this message
Это флаги, определяющие формат адреса и включенные опции. Влияет на представление адреса и на поведение сообщений при отправке на такой адрес.
03:21
Deleted Account
In reply to this message
А есть подробнее инфа? ну что конкретно за что отвечает?
SF
03:22
Slava Fomin
Вот здесь определение метода:
https://github.com/slavafomin/tonweb/blob/typescripted/src/utils/address.ts#L80-L86
03:23
Тут можно увидеть как один и тот же адрес выглядит с разными флагами:
https://github.com/slavafomin/tonweb/blob/typescripted/src/utils/address.test.ts#L36-L44
03:25
На странице 78 можно почитать про bounce:
https://ton-blockchain.github.io/docs/tblkch.pdf
03:25
Deleted Account
In reply to this message
А какие флаги поставить, чтобы вывести адрес, который отобразился бы в тонкипере например?
SF
03:26
Slava Fomin
Первые два лучше всегда делать true.
03:26
А про третий можно почитать выше.
03:32
Deleted Account
Капец неудобно это все. Задам вопрос иначе, как мне на JS получить адрес из мнемоники, который будет отображаться в кипере?

Адрес создаю вот мо этой схеме: https://ton.org/docs/#/payment-processing/common
03:34
И зачем столько версий кошельков? Последняя я так понимаю самая актуальная 4R2? более рание можно не юзать?
ВК
03:41
Вика Купила TON в 2021
In reply to this message
Можно все использовать
03:47
Deleted Account
Чет вообще не понятно ниче )))

По этому мануалу - https://ton.org/docs/#/payment-processing/common - я сгенерил абсолютно все версии кошельков по 24 словам (со всеми флагами)

Подключаю кошель из этих же 24 слов к тонкиперу - и там совершенно другой адрес. КАК ТАК ТО?!)))
SF
03:51
Slava Fomin
In reply to this message
Адрес зависит от версии кошелька. Кипер его скорее всего автоматически апгрейдит до последнего.
03:52
Deleted Account
In reply to this message
Последний как я понял, это v4R2 - он тоже не тот, который показывает кипер.
SF
03:53
Slava Fomin
А чего Вы пытаетесь добиться?
03:54
Deleted Account
Пытаюсь по JS сгенерить 24 слова и увидеть, какой будет адрес, если я введу эти слова в кипер
03:56
да и не только с кипером так... тот же TON Wallet локальный или хром расширение - тоже самое
D
10:05
Daniil
Можете подсказать, как это вообще работает?)
10:06
Как я вижу, на сервер передаётся адрес кошелька и подпись. Получается, она как-то расшифровывается?
c
10:09
cryshado
In reply to this message
расшифровать подпись нельзя, можно только проверить её, что скорее всего они и делают
10:10
вообще бесполезная вещь, какая разница авториузется владелец кошелька или нет - всё равно, если он не владелец, то он ничего сделать с контрактами не сможет
c
11:08
cryshado
Рады представить документацию ADNL (Abstract Datagram Network Layer). ADNL — это основной протокол TON, который помогает узлам сети общаться друг с другом.

Сейчас мы активно работаем над реализацией протокола ADNL, который позволит нам безопасно общаться с TON.
IM
12:25
Illia Malovanyi
1) ShardChain это совокупность AccountChains. Тогда что такое AccountChain?

2) В чём разница между ougoing queues и incoming queues? ougoing queues содержат сообщения от пользователей, а incoming queues содержат сообщения, которые приходят внутри блокчейна т.е. от смарт-контрактов?
ИМ
12:27
Илья Михеев
accountchain - чейн для отдельного аккаунта
T
12:31
TON Дев Чат
In reply to this message
А вы где читаете, здесь https://ton.org/docs/#/overviews/TON_blockchain_overview ? Тут вроде описывается AccountChain прям надо шардчейном.

Outgoing queues это очередь исходящих сообщений, Incoming queues.
В случае аккаунтчейна - очередь исходящих от аккаунта и адресованных аккаунту.
В случае шарда - очередь исходящих от всех аккаунтов шарда и очередь сообщений ко всем аккаунтам шарда соответственно.
12:32
In reply to this message
Sticker
Not included, change data exporting settings to download.
👍, 40.6 KB
IM
12:40
Illia Malovanyi
In reply to this message
1) 🙈 Затупил с понятием AccountChain. Теперь всё стало на места. Спасибо!)

2) Т.е. если мне нужно, например, передать сообщение смарт-контракту, который находиться в шарде Б, из смарт-контракта, который находиться в шарде А, то

Сообщение помещается в incoming queue шарда А, далее перемещается в outgoing queue MasterChain, далее поподает в incoming queue шарда Б, и наконец-то попадает к нужному смарт-контракту

верно?
T
12:44
TON Дев Чат
2) Сейчас все шарды друг другу соседи, поэтому шард А забирает в свою очередь сообщения напрямую из очереди шарда Б (мастер участвует опосредованно, в виде синхронизатора, т.к. фиксирует на моменты мастер-блоков хэши очередей).
Но в целом верно.
IM
12:47
Illia Malovanyi
In reply to this message
Понял, спасибо большое.

Ещё вопрос. С чем связано то, Cell contains up to 1023 bits? 1 бит выделен под 4 ссылки к другим ячейкам?
VL
12:49
Vladimir Lebedev
In reply to this message
не совсем, если я правильно прочитал вайтпейпер, шард помещает сообщения в свою outgoing queue, а затем в соответствии с hypercube routing соседи забирают оттуда сообщения и помещают в свои outgoing queue, и так до тех пор пока не дойдёт до адресата. параллельно запускается instant hypercube routing, и если он отрабатывает корректно, то получатель сообщения отменяет доставку по hypercube routing.
T
12:49
TON Дев Чат
In reply to this message
Нет, 1023 бита - потому что от 0 до 1023 - 1024 значений. Биты с референсами никак не пересекаются.
IM
12:52
Illia Malovanyi
In reply to this message
Ух-ты, нужно обязательно прочитать вайтпейпер. Спасибо!
12:54
In reply to this message
Т.е. можно выделить ячейку размером от 0 до 1023 бит? Не совсем понял, что значит "от 0 до 1024 значений"
T
12:58
TON Дев Чат
In reply to this message
>Т.е. можно выделить ячейку размером от 0 до 1023 бит?
Да
>Не совсем понял,
пардон, опечатка была.
IM
12:58
Illia Malovanyi
In reply to this message
Спасибо огромное!
AP
13:50
Andrey Pfau
In reply to this message
Надо доссить Леджер запросами
AP
13:52
Andrew Python
In reply to this message
Надо было прописать это в условия аирдропа 😄
AP
13:52
Andrey Pfau
In reply to this message
Кста внатуре
AT
14:29
Andrey Tvorozhkov
In reply to this message
Мы берём по адресу смарт контракта публичный ключ и проверяем пользователя
14:30
In reply to this message
Вещь не бесполезная. Только пользователь должен иметь доступ к своему аккаунту
14:35
In reply to this message
Я каждый раз удивляюсь почему я так мало знаю про ТОН

Хотя казалось бы...
ИМ
16:54
Илья Михеев
думаю это проблема не в TON была
N
17:37
Nick
Куда с ton.org делся раздел с брендингом? https://ton.org/brand-assets
г
21:28
главный человек на базаре
Подскажите, как в расширении включить тестовую сеть?
AT
21:29
Andrey Tvorozhkov
In reply to this message
About -> с зажатым шифтом тыкнуть в версию
г
21:31
главный человек на базаре
In reply to this message
Большое спасибо
21:51
Deleted Account
Чем отличаются версии кошельков? Детальное описание есть где-то? Зачем их столько?
ВП
21:51
Влад Павлючков
v4 - v3 но с поддержкой подписок
21:52
По остальным информации не видел
г
21:53
главный человек на базаре
Есть ли эксплорер для тестовой сети?
VP
21:54
Vladimir Plotvinov
In reply to this message
г
21:55
главный человек на базаре
In reply to this message
Спасибо ☺️
AT
21:55
Andrey Tvorozhkov
In reply to this message
Он достаточно баговый
21:55
SF
22:02
Slava Fomin
In reply to this message
Не только я это заметил )
AT
22:03
Andrey Tvorozhkov
In reply to this message
Я думаю что мы можем сделать свой если будет минутка (тем более оно оч персекается с тем, что нам нужно для @disintar
22:04
Есть идея туда засунуть декомпиляцию, ошибки с которыми падают сообщения
22:05
+поддержку tlb с интерфейсами
22:05
Но это конечно все в мечтах. Хотя когда-то и https://beta.disintar.io был в мечтах :))
AM
22:17
Alex Molina
Всем привет. Может кто скинуть тестовых тонов 10 на этот кошелек? Фаусет обещал выдать, но что-то нет
22:23
EQAuKQNOLFfWQ8G3vciIPVQ2sSiwznEmCxFLmfMU-xLxzWP6 кошелек не указал ...
F
22:34
F
In reply to this message
А как вы поняли что фаусет вам не выдал тестовых монет? Ату эксплорер говорит что в 22:12 вам пришли 2 тестовые монеты от того самого бота)
https://testnet.tonscan.org/address/EQAuKQNOLFfWQ8G3vciIPVQ2sSiwznEmCxFLmfMU-xLxzWP6
AM
22:36
Alex Molina
Я понял с того, что ждал некоторое время, но баланс был 0. Сейчас, конечно пришли еще, но просьба остается открытой
ся
22:38
сергей ясырев
Приветствую такой вопрос есть тестовые монеты тон что с ними на данный момент можно сделать
Г
22:41
Гравировка оболонь
Добрый вечер, ищу разработчика смартконтрактов ТОН
22:46
Deleted Account
Задаю вопрос, уже наверное в 10-ый раз!!! Есть хоть кто-то, кто даст точный ответ?! ДЕТАЛЬНЫЙ!

Создаю по этому мануалу адреса: https://ton.org/docs/#/payment-processing/common

Вывожу 24 слова + создаю абсолютно все версии кошельков по этим словам, с разными флагами!

Далее, по этим 24 словам я вхожу в тонкипер, и вижу адрес - абсолютно другой! Как так?! Ни одна из версий которую я создал по JS - не соответствует тонкиперу!

ВОПРОС: как мне по JS получить именно тот адрес (по 24 словам), который я увижу в тонкипере?
T
23:02
Tolya
In reply to this message
Обратите внимание, что в примере createWallet создаётся новая кейпара, отличная от примера со словами
23:03
В новом аккаунте, созданном в тонкипере, будет v3r2 либо v4r2 смарт контракт кошелька
23:04
Deleted Account
In reply to this message
в этом примере 2 варианта, я использую первый, в котором пара создается из 24 слов.
23:04
In reply to this message
они не подходят 🤷‍♂️
SF
23:16
Slava Fomin
@tolyayanot может быть дело в пароле, который используется при генерации ключей?
JF
23:16
John Fyodor
In reply to this message
1) bounce, test only, workchain
2) разные версии кошельков - разные конечные адреса
AT
23:16
Andrey Tvorozhkov
In reply to this message
Или в количестве раундов
23:17
Deleted Account
In reply to this message
Создаю абсолютно все вариации, ни один не подходит
AT
23:17
Andrey Tvorozhkov
Вопрос кстати хороший, я не знаю какой правильный ответ. Но хотелось бы использовать свои слова везде для входа 🤔
T
23:17
Tolya
Там все подходит, этот же код используется в веб кошельке, просто нужно в createWallet положить нужную кейпару а не рандомную)
23:17
Deleted Account
In reply to this message
Там нет такого параметра даже, пройти по ссылке на мануал
JF
23:17
John Fyodor
In reply to this message
Версии кошельков тоже р1 пробовали?
AT
23:17
Andrey Tvorozhkov
In reply to this message
А, ну отлично. Это хорошо)
23:18
Deleted Account
In reply to this message
да
T
23:19
Tolya
createWallet(TonWeb.utils.nacl.sign.keyPair()); - это рандомная кей пара
23:20
Deleted Account
const keyPair = TonWeb.utils.nacl.sign.keyPair.fromSeed(seed);
23:20
Внимательнее пример посмотри )) там 2 варианта
T
23:24
Tolya
Знаком с этим примером, я его сам и писал

Ок, подредактируем, будет вызываться createWallet из createKeyPair, раз это вызвало затруднения.
ÇY
23:52
Çağrı Yılmaz
/
25 March 2022
00:05
Deleted Account
In reply to this message
Да затруднений тьма)) где к примеру прочитать (детально!) зачем столько версий кошелька? в чем разница? есть ли смысл использовать старые и актуальны ли они вообще?
P
00:07
Purple
In reply to this message
новые кошельки - новые функции. Допустим в v4 добавили плагины, допустим плагин подписки
00:08
Deleted Account
In reply to this message
новые... допустим... это конечно весело, но где почитать?
00:08
в документации не нашел 🤷‍♂️
г
01:29
главный человек на базаре
VK
02:15
Vladislav Kibenko
In reply to this message
Я слышал что сообщество разработчиков TON ещё только развивается и всё появляется со временем. Есть время — разберитесь, опишите для остальных. Документация из земли сама не вырастет, её пишут другие разработчики, такие как мы с Вами. Я вот не сижу и не жду, пока библиотеку допишут, помогаю в реализации чем могу, параллельно пишу библиотеку, которая может в контексте TON пригодиться.

Сообщество разработчиков для этого и нужно — коммуницировать и помогать друг другу, а также это же сообщество развивать.
г
02:15
главный человек на базаре
In reply to this message
Нет.
02:17
Deleted Account
In reply to this message
Все я разобрался! Спасибо 🤝 а подскажи, версии совместимы? Отправка между адресами разных версий?
AP
04:17
Andrew Python
In reply to this message
Кто сказал нельзя? Всё можно. Просто некому)
N
10:01
Nick
как правильно линк на кошелек создается?

ton://transfer/адрес

при переходе не работает, не открывает ни одно приложение
VS
10:04
Victor Shpaga
Добрый день, господа. Подскажите, где я могу подробно почитать про работу валидаторов? Интересует конкретно механизм синхронизации, по документции полазил — не нашёл (может проглядел).
c
10:05
cryshado
In reply to this message
Добрый день. Можете почитать c++ код https://github.com/newton-blockchain/ton и написать какую то статью. Все будут очень благодарны
VS
10:07
Victor Shpaga
In reply to this message
Мне бы для начала разобраться, что именно валидатор запрашивает у соседних нод.
10:07
Изучаем с командой принципиальную возможность кэширования/дампа синхронизационных данных, чтобы быстрее разворачивать нод в случае отказа.
c
10:08
cryshado
In reply to this message
Ну вот там можно и разобраться. Мы недавно изучили и написали доку по ADNL протоколу(правда пока по только over TCP), а ноды между собой говорят по p2p ADNL over UDP
10:08
до общения нод ещё не дошли руки)
VS
10:09
Victor Shpaga
In reply to this message
О, спасибо за наводку! До доков по adnl руки пока не дошли, обязательно изучу.
AT
10:10
Andrey Tvorozhkov
In reply to this message
Тема хорошая. А что делаете, если не секрет?
c
10:10
cryshado
In reply to this message
вот тут если что, https://github.com/tonstack/ton-docs

Просто ADNL может работать не только по TCP, но и по UDP, как это делают ноды между собой. Но криптография и т д в протоколе будет такая же скорее всего
AT
10:10
Andrey Tvorozhkov
In reply to this message
https://github.com/disintar/ton-k8s/ можете вот сюда глянуть, возможно наработки помогут)
c
10:11
cryshado
In reply to this message
чтобы это норм сделать, нужно ноду переписать, а это долгий путь для нас всех)
VS
10:12
Victor Shpaga
In reply to this message
Да вообще DAO тончейновую)) Мы на начальном этапе, команда только собралась. Изучаем пока доки, вникаем в вайтпейпер, плачем над чужими репозиториями, исступленно смотрим на funC.
AT
10:12
Andrey Tvorozhkov
In reply to this message
😁
VS
10:12
Victor Shpaga
In reply to this message
Спасибо, ознакомлюсь!
10:12
In reply to this message
Ну, великое начинается с малого.
c
10:15
cryshado
In reply to this message
угу
IM
10:33
Ivan Marcinovsky
Привет! Запускаю валидатор в тестнете. В чатике пишут, для этого нужно 10000 монеток положить на сейк. Testgiver выдает 2 монетки в час. Подскажите, есть ли более быстрый способ получить нужную сумму?
F
10:34
Fludy
Продай почку
IM
10:34
Ivan Marcinovsky
Тестовую?
F
10:35
Fludy
Свою
ИМ
10:38
Илья Михеев
думаю должен быть более лайтовый вариант
VL
10:38
Vladimir Lebedev
In reply to this message
@tvorogme на пару сообщений выше кидал кубернейтс кластер для запуска своей собственной сети. все монетки там будут ваши)
N
10:42
Nick
Привет, какое событие нужно отправить чтобы авторизоваться через TON Wallet расширение в хроме?
D
11:47
Daniil
In reply to this message
ton_rawSign
IR
12:13
Ivan Reinhart
Друзья вопрос к разработчикам, может быть не по теме, но можно ли на блокчейн сделать аналог клауда как например гугл документ? Что бы он не был подвержен блокировкам и тд
IK
12:19
Ivan Kuznetsov
можно
c
12:28
cryshado
In reply to this message
Можно, но файлы нужно хранить не в самом блокчейне
VL
12:30
Vladimir Lebedev
In reply to this message
см. ton storage
IR
12:31
Ivan Reinhart
In reply to this message
Спасибо.
VO
12:46
Valeriy Osipov
Народ, привет, правильно понимаю, что блокчейн ТОН по сути похож на субстрат от Полкадота, и для начала работы и сборки проекта необходимо внести депозит для получения доступа к блокчейну TON. Посе этого можно собирать проект уже по своему усмотрению?
IM
12:52
Illia Malovanyi
In reply to this message
чтобы задеплоить проект в мейннет, то нужно заплатить тоном

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

так же знаю, что есть возможность локально развернуть TVM (виртуально машину тон) и запускать смарт-контракты локально
VO
12:58
Valeriy Osipov
In reply to this message
а что за бот? то есть мне не надо до майиннета по сути платить за депозит?
IM
12:59
Illia Malovanyi
In reply to this message
TON уже в мейннете
VO
12:59
Valeriy Osipov
это я понял
12:59
для сборки тестовой сети и построения приложения для проекта где можно получить доступ для работы собственно с с кодом и прочим?
IM
13:04
Illia Malovanyi
In reply to this message
не понимаю формулировку "доступ для работы собственно с кодом и прочим"

если речь идёт о документации для разработчиков, то она доступна по этой ссылке.
VO
13:06
Valeriy Osipov
In reply to this message
ага, по документации понял, спасибо
13:07
In reply to this message
а сколько стоит задеплоить проект в маиннет?
IM
13:08
Illia Malovanyi
In reply to this message
ещё не деплоил, не знаю, но на TON крайне дешевые транзакции (< $0.01), поэтому деплой смарт-контрактов тоже должен быть дешёвым
13:11
вот бот @testgiver_ton_bot, который даёт тестовые тоны, он выделяет 2 тона на руки. Думаю, что деплой смарт-контракта стоит как минимум меньше 2х тонов
VO
13:12
Valeriy Osipov
In reply to this message
понятно, значит я посвтречал скамеров, мне предложили получить доступ к документации и набору готового субстрата на базе тон за 200 тон, а с возможностью имплементации опции стейкинг в экосистему за 5000 тон)))
13:12
это скам бот - @Cryptap2pbot - копирует CryptoBot
13:12
?
IM
13:13
Illia Malovanyi
In reply to this message
+
VO
13:13
Valeriy Osipov
In reply to this message
супер)
IM
13:14
Illia Malovanyi
In reply to this message
осторожнее, тут таких предприимчивых товарищей хватает
VO
13:15
Valeriy Osipov
In reply to this message
да, но скамер был грамотный, обнадёживающий)))
AP
13:16
Andrey Pfau
Это и так звучит очень сомнительно что просят за доступ к "магической документации" за тон, это ж бред )
AP
13:17
Andrew Python
In reply to this message
Это Коля балуется :D
VO
13:18
Valeriy Osipov
хз, кто там балуется, но я уже бюджет начал планировать
VS
13:19
Victor Shpaga
In reply to this message
Магическая документация это вайтпэйпер. Гримуар — моё почтение!
VO
13:19
Valeriy Osipov
Valeriy Osipov | AVG, [25.03.2022 10:12]
привет, я хочу сделать платформу-проект с концепцией create-to-earn и думаю выбрать тон как перспективный блокчейн для этого. С чего стоит начать и где посмотреть инфу?

Ton Airdrop Support, [25.03.2022 10:13]
Здравствуйте, вам нужна документация?

Valeriy Osipov | AVG, [25.03.2022 10:13]
вероятно

Ton Airdrop Support, [25.03.2022 10:13]
Для доступа к документации для разработки и подключение по апи, вам нужно иметь депозит.

Valeriy Osipov | AVG, [25.03.2022 10:14]
так, а для чего подключение, подключение к коду?

Ton Airdrop Support, [25.03.2022 10:14]
Да

Valeriy Osipov | AVG, [25.03.2022 10:14]
можете ликбез какой-то выслать?

Valeriy Osipov | AVG, [25.03.2022 10:14]
по этапам разработки?

Ton Airdrop Support, [25.03.2022 10:14]
Да конечно. Я вам выдам доступ к апи и тд. Потом напишите мне, примем депозит. Секунду.
AP
13:20
Andrey Pfau
In reply to this message
Если бы мне такой бюджет выделили бы я бы эту документацию досконально подробно бы составил да ещё и в открытый доступ выложил))0)
AT
13:21
Andrey Tvorozhkov
In reply to this message
Sounds like скам
AP
13:22
Andrey Pfau
In reply to this message
It is.
VO
13:22
Valeriy Osipov
вери гуд)
AP
13:23
Andrey Pfau
Но один магический инструмент я могу предоставить уже сейчас:

https://plugins.jetbrains.com/plugin/18541-ton-development
VS
13:25
Victor Shpaga
In reply to this message
Ооооо, спасибо!
VO
13:39
Valeriy Osipov
In reply to this message
выглядит магически, что это?
AP
13:40
Andrey Pfau
In reply to this message
плагин для среды разработки Intellij, очень помогает в написании смарт-контрактов и не только. Всякие умные подсказки, подсветка синтаксиса и прочее
13:41
а если кто-то уже активно пользуется этим плагином, то у нас есть чатик:
https://t.me/intellijton_chat
DK
13:56
Dan Kamilov
Всем привет.

Каким образом можно настроить callback при получении оплаты на определенный кошелек?
AP
13:57
Andrey Pfau
In reply to this message
Нужно мониторить последний блок из блокчейна и проверять наличие транзакции на указанный адрес
DK
13:58
Dan Kamilov
спасибо
VO
14:25
Valeriy Osipov
In reply to this message
звучит круто, я пока в прострации, но изучу
14:34
а у ТОНа свой язык на котором он пишется?
ИМ
14:35
Илья Михеев
In reply to this message
Есть funC и fift, они специально для TONa сделаны
AP
14:37
Andrey Pfau
собственно плагин который я ввыше кидал и есть поддержка в intellij для языков func, fift и tl-b схем
AS
14:50
Artem Sultanov
Коллеги, привет. Подскажите в какую стороны копать и что почитать, если у нас есть проект, который мы хотели бы запустить за границей, с оплатой за тоны и главное с возможностью привлечения средств. Это своя монета или ICO или как?
k
17:28
k1ber psix
Парни я не разраб и сорри если кого-то оскорблю тем что вообще спрошу, типо что я тупой))) вообщем 2 года назад разработчики на аутсорсе делали бота в ТГ. Тематику не скажу, но никакого криминала и запрещенки. Не нашел логичного ответа спустя 2 года в чатиках по тону.
Вопрос в следующем. Возможно ли сделать так чтобы смарт контракт отрабатывал как бы как гарант сделок? Ну те, заказчик оплачивает на эскроу счёт тоны за сделку. Человек (исполнитель)видит что оплата совершена на доверительный счёт заказчиком, выполнив задачу, исполнитель жмакает - готово. Человек заказчик типо согласен, говорит ок и жмакает отправить тоны. Такое возможно сделать?
JF
17:29
John Fyodor
In reply to this message
Можно
P
17:29
Purple
In reply to this message
возможно
JF
17:29
John Fyodor
Более того - не сильно сложно
k
17:31
k1ber psix
Ну просто тогда нас теньков тормознул, ну либо те, кто криптографией занимался((( подумал может это типо тоже не возможно тут?
17:33
Останется теперь найти разработчиков чтобы реализовать по красоте))) но уже на тоне эту историю😂😂 типо как в парнерстве. Там и бд была заявок и файервол и админка. Это тоже не сложно всё?
RA
17:38
Real Art
In reply to this message
Напиши в ЛС
А
19:18
Александр
Ребят, когда можно будет, и будет ли возможность привлекать проекты в рокетон не относящиеся к TON?
A
19:44
Alex Tonstarter
In reply to this message
Привет 👋 поддержку cross-chain планируем сделать в Q3, но может и раньше. Мы отслеживаем все заявки @rocketon_bot, будем связываться с проектами по мере подключения других блокчейнов
А
19:50
Александр
In reply to this message
То есть заявку уже можно отправить на рассмотрение?
19:54
Deleted Account
In reply to this message
У меня есть готовое решение, могу продать.
A
20:12
Alex Tonstarter
In reply to this message
Да
Н
20:18
Никита
Добрый день
По документации toncenter.com не понятно, как реализовать перевод с кошелька на кошелек, подскажите как это можно осуществить или где есть информация?
N
20:19
Nick
Насколько мне известно, нельзя реализовать переводы через API
DK
20:23
Dan Kamilov
In reply to this message
а через что можно?
М
20:24
Марьям
In reply to this message
Смарт-контракт
AT
20:25
Andrey Tvorozhkov
20:26
In reply to this message
Для того чтобы как-то взаимодействовать со смарт контрактами - нужно формировать сообщения. Сообщение - это bag of cells со специальной структурой. Такую структуру можно сериализовать в BOC и отправить его в сеть через sendboc метод
Н
20:29
Никита
In reply to this message
А где найти инфоомацию как формировать boc message?
c
20:30
cryshado
In reply to this message
Сериализацию BOC описывают через TL-B схемы, доку по TL-B и не только можно найти тут https://github.com/tonstack/ton-docs
20:31
In reply to this message
если че оно тут хочет base64
M
20:36
Mark
In reply to this message
Спасибо. Не встречали его ещё.
VO
20:49
Valeriy Osipov
In reply to this message
👍👍
AT
20:54
Andrey Tvorozhkov
In reply to this message
Это сложно. Прям вот сложно. Как написали выше это tl-b схемы и они довольно мудрёные.

Простой вариант для разрабов которые хотят сделать перевод из кошелька - использовать tonweb библиотеку

Сложный вариант для людей которые хотят делать продакшн рэди смарты - курить вайтпейперы оригинальные + доки которые пишут ТФ и tonstack, еще есть много интересного от @andreypfau
Н
20:56
Никита
In reply to this message
Спасибо
И
21:06
Илья
🙋
G
21:23
G63🪃
@andreypfau
Хочу поработать с ним, хороший?)))
ИМ
21:25
Илья Михеев
In reply to this message
очень странные у вас вопросы, прямо надменные какие-то
W
21:31
WWarlock
Всем привет, может ли кто-то подсказать, при попытке использовать комманду transfer в lite-client, требует некий секретный ключ.
Где его брать, или как генерить?
q
22:14
qpwe
In reply to this message
Это ты скинул свое портфолио? 🙀
upd: Думал, что сотрудничал с этими нфтишками ;(
c
22:15
cryshado
In reply to this message
да нормальный, уважаемый обычный cat slave
ИП
23:05
Ивайло Попов
Ton api с key не дает больше чем 1 сообщение в секунда
23:05
Только у меня такое?
26 March 2022
Д
11:34
Денис
Всем привет, не могу понять как получить адрес из приложения для Chrome кошелька с помощью tonweb, типа как из метамаска можно получить?
x
13:36
xxffwwoqqzz
In reply to this message
Только что создал новый ключ и выполнил 50 запросов /getAddressInformation. Они выполнились за ~28 секунд. Некоторые запросы исполнялись несколько секунд, некоторые за доли секунды

Вероятно, что проблема в API ключе, либо в самом времени ответа TON Center
13:46
In reply to this message
Это пробовал?

const tonweb = new TonWeb();

const wallet = tonweb.wallet.create({publicKey});
const address = await wallet.getAddress();

источник
RG
13:48
Ruslan Gabdullin
In reply to this message
Если отправляешь больше, то падает с ошибкой?
AT
13:49
Andrey Tvorozhkov
In reply to this message
У меня работает >1 в секунду
13:50
In reply to this message
Кст в beta.disintar.io используется в некоторых штуках)
RG
13:51
Ruslan Gabdullin
In reply to this message
Спасибо за репорт, проверю в чем дело.
Д
13:52
Денис
In reply to this message
Да, только нужно передавать в параметры либо publicKey либо адрес, а мне нужно именно адрес получить
x
13:55
xxffwwoqqzz
In reply to this message
🤝
AP
13:59
Andrew Python
Когда нода синхронизируется в какую сторону секунды должны идти? 😅
У меня сейчас:
Local validator out of sync: 1648292235 s
c
14:00
cryshado
In reply to this message
меньше должны становиться
AP
14:01
Andrew Python
In reply to this message
=( у меня вверх ползут
14:01
Может быть из-за hdd?
AT
14:01
Andrey Tvorozhkov
Кто-то заинтересован в эксплорере, который будет показывать как упали сообщения?

+ с возможностью посмотреть декомрилированный код Смарта, просмотреть данные в юзер френдли формате (если это типичные контракты) с возможностью локального запуска методов
c
14:02
cryshado
In reply to this message
порты закрыты мб
14:02
In reply to this message
нет, для старта нужно сделать просто нормальный эксплорер, а потом обмазывать его всем этим, сейчас даже просто нормального нет
AP
14:03
Andrew Python
In reply to this message
Кто бы сделал эксплорер, который показывает историю контракта после кода 160
c
14:03
cryshado
😀
AP
14:04
Andrew Python
In reply to this message
Стив обещал, но у них база слетела....
c
14:04
cryshado
In reply to this message
у них сейчас эксплорер удобством не отличается
AT
14:05
Andrey Tvorozhkov
In reply to this message
ton.cx нормальный Эксплорер
c
14:05
cryshado
любой bscscan.com подобноый эксплорер в любом нормальном бч, рядом не стоит с тоновыскими
14:06
там и юзер френдли, и для разрабов, и нормальный вереф контрактов по апи, и все все все
14:06
что должно быть в эксплорере в базовом)
AT
14:06
Andrey Tvorozhkov
In reply to this message
Да сколько можно хейтить тон, что это вообще такое)

У тона есть много преимуществ. Но нет хорошо проработанных решений, поэтому тут собрались разработчики
c
14:07
cryshado
In reply to this message
а где хейт, я тут говорю, что нужно делать эксплорер нормальный, а не хейт кидаю на тон
AT
14:07
Andrey Tvorozhkov
<< в любом нормальном бч >> подразумевает что текущий не нормальный
14:07
Я так не считаю
AP
14:07
Andrew Python
In reply to this message
У них эксплорер, зато у нас можно биты считать)
c
14:09
cryshado
In reply to this message
Когда мне говорят, что что-то «ху***** еба****», то меня это очень мотивирует сделать нормально. А не розовые очки, о том, что всё хорошо и вообще зашибись.

В этом и сила русского дев комьюнити, оно не боится сказать, что что-то ху**а, боясь оскорбить какие то чувство.
14:10
Вот и надо говорить, что эксплореров нет нормальных, кто то увидит и скажет: шя будет
14:10
:)
AT
14:11
Andrey Tvorozhkov
In reply to this message
Хм. Верю что такая позиция может существовать. Но кажется лучше пойти сделать самому)

Я согласен, что эксплорера который выполняет все потребности действительно нет
c
14:11
cryshado
In reply to this message
Подразумевает, что тон тоже нормальный блокчейн, а эксплорера нет 😅
AT
14:12
Andrey Tvorozhkov
Я верю что ребята @tester добьют свой Эксплорер до юзер френдли состояния, но уверен что не для разработчиков
14:13
In reply to this message
А вот этого лично мне очень не хватает. Вот хотел узнать кому-то еще нужно такое или нет.

Если нет, то не будем делать для всех)
AP
14:18
Andrew Python
In reply to this message
По идее нужно всем. Чем больше удобных утилит, тем больше разрабов.
14:20
@andreypfau тоже начал делать свой плагин, когда были плагины для вскода(?) и саблайма. Но сделал круче и теперь все юзают и всем советуют)
H
14:47
Hqx5
In reply to this message
Даже не программисту очевидно, что порой ты вещаешь конструктивно, но чересчур стабильно токсично.
14:50
Deleted Account
In reply to this message
Ну в целом почему и нет)
14:52
In reply to this message
В защиту тона скажу, что в целом это молодой бч и тут надо много чего еще сделать.
JF
14:57
John Fyodor
In reply to this message
именно этим мы и занимаемся 😉
14:58
скоро будет жс либа с хешмапами вашими любимыми
16:12
In reply to this message
What is this error from time to time in macOS wallet? @tolyayanot if you can answer no one else answers. Thank you.

Что это за ошибка время от времени в кошельке macOS? @Tolyayanot, если вы можете ответить, никто другой не отвечает. Спасибо.
s
18:14
sepеzho.copy
сталкивался кто?
18:16
не втыкаю вообще че делать

просто создал проект react-create-app, потом просто лять установил TonWeb и вот ошибка

чисто взял пустой проект и поставил тонвеб, ошибка
JF
18:21
John Fyodor
In reply to this message
Полифил для буффера поставить
18:21
npm i buffer
s
18:22
sepеzho.copy
ставил
18:22
он не видит, так как там в либе вызывается Buffer просто из окружения будто

тип он не импортится, а просто вызыывается)))))
18:23
вот так)

на 20ой строчке
j
18:23
justhocon
Где взять документацию по FunC?
c
JF
18:29
John Fyodor
In reply to this message
require('buffer')
18:29
import * from “buffer”
18:30
import * as Buffer from “buffer”
s
18:38
sepеzho.copy
просто я не понял почему это происходит в файле либы
18:38
т.е. это не мой файл, это просто скачивается при yarn add tonweb
VK
18:44
Vladislav Kibenko
In reply to this message
Какая версия библиотеки?
s
18:45
sepеzho.copy
ставил и последнюю и c 0.0.32 по 0.0.34
18:45
вообще не врубаюсь в чем дело
18:45
мб глобально что-то у меня стоит
VK
18:45
Vladislav Kibenko
Сейчас посмотрю
18:47
In reply to this message
Этот код откуда? Твой кастомный?
s
18:47
sepеzho.copy
In reply to this message
нет, открыл просто файл с первой строчки ошибки
18:47
где она появилась
18:47
hid-farming.js
VK
18:48
Vladislav Kibenko
In reply to this message
Не вижу этого файла в библиотеке
s
18:48
sepеzho.copy
это зависимость мб
EP
18:48
Evgeniy Pronyagin
Всем привет! Поймал стремный баг. Описываю:
- Завел кошелек через TON Wallet записал фразы восстановления.
- Далее вбил эти фразы в TON Keeper
В итоге получил два разных кошелька с двумя разными адресами.
Закинул на 2й монеты, в первом баланс остался нулевым.
Попробовал заново авторизоваться в TON Wallet, в итоге авторизовало в тот который создался на TON Keeper.
Т.е. доступа к первому кошельку нет. При этом туда тоже для теста закинул монеты. И отправляю их на второй кошелек.
Поресерчил куда отправлются запросы с TON Wallet при восстановлении кошелькаю Он почему-то чекает аж 9 адресов. И оба мои адреса в этом списке. Но далее авторизует в последний который был создал через TON Keeper.

Кто-то с таким сталкивался? Как решается такая проблема и почему вообще много адресов чекается при авторизации по фразам?
Нашел кохожую проблему на гитхабе двухгодичной давности. https://github.com/toncenter/ton-wallet/issues/8
VK
18:49
Vladislav Kibenko
In reply to this message
Да, от леджера, кажись
s
18:49
sepеzho.copy
In reply to this message
т.е. там видишь вызывается index.js в тонвебе и на 14ой строчке куда-то потом переходит
18:49
:/
VK
18:49
Vladislav Kibenko
Да, леджер это
18:50
А импортируешь из tonweb как? Всё из корня?
18:51
@ledgerhq/devices это. Там импортируется файл который сразу выполняется и обращается к несуществующем классу Buffer. В браузере нет его
18:52
Попробуй переустанови tonweb и поставь последнюю версию. По идее, там webpack эту проблему разрулить должен был
18:53
Если это не поможет, попробуй установить buffer
s
18:54
sepеzho.copy
In reply to this message
делал)
18:54
In reply to this message
и делал
18:54
ща попробую вообще все с нуля сделать
18:54
еще раз)
18:55
вот на такую штуку вышел, ща попробую конфиг прописать
18:59
In reply to this message
варнинг ушел, а ошибка в браузере осталась)
VK
19:01
Vladislav Kibenko
In reply to this message
Попробуй

cd node_modules/tonweb && npm run build
19:01
Версия 0.0.35?
s
19:06
sepеzho.copy
да, в сраных вебпаках дело походу)
19:07
In reply to this message
вот ой команды скрипта ошибка
VK
19:17
Vladislav Kibenko
In reply to this message
Странно. Такой ошибки вообще быть не должно, потому что вебпак должен был закинуть buffer автоматически
s
19:17
sepеzho.copy
VK
19:17
Vladislav Kibenko
Чуть позже гляну
MS
19:39
Mikhail Sytchev
Всем привет. Хочу удаленно генерировать ТОН адреса пользователям своего сервиса, и мое приложение может иметь АПИ доступ к mytonctlr в защищенной сети.

Я так понял что модуль https://github.com/igroman787/mtc-jsonrpc предоставляет АПИ.

Вопрос 1: Есть ли описание методов, которые предоставляет этот модуль?

Вопрос 2: посмотрел код либы, метод CreateWallet закомментирован там. С какой целью это сделано?
19:40
Может есть какой-то более правильный способ АВТОМАТИЗИРОВАННО генерить адреса?
VK
19:47
Vladislav Kibenko
@sepezh0 а ты случаем напрямую зависимости от леджера никакие не ставил? Которые @ledgerhq
DV
19:47
Dan Volkov
In reply to this message
Просто библиотекой ton из npm
MS
19:47
Mikhail Sytchev
In reply to this message
это канает если у меня приложение на JS
19:47
но у меня не JS
c
19:48
cryshado
In reply to this message
ну чтож
19:48
испольхуй fift
DV
19:48
Dan Volkov
In reply to this message
Ты можешь найти любую другую либу на своём языке либо написать генерацию мнемоников и адреса самому
c
19:48
cryshado
In reply to this message
ну мнемоники одно дело, вот задеплоить кошелек еще и т д
MS
19:48
Mikhail Sytchev
блин, ужасно. это несколько дней работы
c
19:48
cryshado
там уже сложнее
DV
19:48
Dan Volkov
In reply to this message
А в чем тогда проблема заюзать js
MS
19:48
Mikhail Sytchev
если не недеоя
DV
19:49
Dan Volkov
In reply to this message
Он разве просил деплоить?
c
19:49
cryshado
In reply to this message
веселый какой, мы тут ещё больше время тратим даже на более примитивные задачи, свои библиотеки пишем и т д 😀
MS
19:49
Mikhail Sytchev
ну надо чтобы кош был активен и был готов принимать монеты
DV
19:49
Dan Volkov
In reply to this message
Он готов принимать монеты всегда
c
19:49
cryshado
In reply to this message
даже state init собрать, чтобы получить адрес, это надо попыхтеть немнго
MS
19:49
Mikhail Sytchev
In reply to this message
ну так-то во всех блокчейнах с кем приходилось работать АПИ есть для работы с базовыми функциями кошелька
c
19:50
cryshado
In reply to this message
апи плохо, с кошельками надо все локально делать
DV
19:50
Dan Volkov
In reply to this message
Тут тоже есть апи, но генерировать кошелёк через апи это как минимум странно
MS
19:50
Mikhail Sytchev
mytonctrl я так понял специально как абстракция над fift сделан, чтобы дать быстрый старт разработчикам смежных систем
DV
19:51
Dan Volkov
In reply to this message
Так а что у тебя за язык?
MS
19:51
Mikhail Sytchev
In reply to this message
а почему странно-то?
19:51
In reply to this message
go
DV
19:51
Dan Volkov
In reply to this message
Приватный ключ через сеть?
MS
19:52
Mikhail Sytchev
In reply to this message
так сеть внутренняя в кластере в защищенном периметре. можно даже в рамках того же сервера сделать, вообще не по сети
19:52
In reply to this message
Там вроде было все что тебе нужно
19:53
In reply to this message
Можешь тогда микросервис написать на js который будет тебе ключи и адреса бахать
19:53
Если на go это плохо реализовано
MS
19:53
Mikhail Sytchev
In reply to this message
склоняюсь к этому, да
19:54
просто mytoctrl выглядел как уже готовый микросервис, который только понять как правильно ипользовать
DV
19:54
Dan Volkov
In reply to this message
Это консольная утилитка
MS
19:54
Mikhail Sytchev
да, но с модулем АПИ
DV
19:56
Dan Volkov
In reply to this message
Как я понял это для админки и ещё недоделано
MS
19:56
Mikhail Sytchev
попробую с npm пакетом ton тогда двигаться
19:58
Просто странно что до сих пор нет АПИ для ноды
VK
19:58
Vladislav Kibenko
In reply to this message
Занимаюсь этим, но нужен человек, который сможет сгенерить DLL (то есть хорошо знает C++)
19:59
Я недавно тыкался в эту тему, но упёрся в то, что недостаточно хорошо знаю C++ и не могу сгенерировать DLL. Я уверен, что это простая задача, но как её выполнить, к сожалению, не допёр. Если есть понимающие, то буду рад если сделаете это. Что именно надо сделать, могу объяснить
MS
20:01
Mikhail Sytchev
взаимодействие с кошельком по сети ничем не хуже инвокейшена команд с бибилиотеки JS, Go и т.д. Слышал неоднократно этот тезис, но он не выдеживает критики. Если злодей скомпроментировал твое приложение, то он так же сможет управлять кошельком. Тут задача периметр защитить и само приложение больше.
20:01
In reply to this message
К сожалению не владею плюсами на должном уровне. Подключился бы.
20:14
вообще я подумал что чтение ARGV было бы достаточно для тулзы mytonctr
20:14
можно было бы делать mytonctr nw и читать его STDOUT
20:15
тут нет случайно разработчиков mytonctrl? =)
SK
20:18
Sergey Khaylov
Добрый день.

Подскажите, пожалуйста:

const transfer = await wallet.methods.transfer({
secretKey: keyPair.secretKey,
toAddress: destination_address,
amount: TonWeb.utils.toNano(amount),
seqno: seqno,
payload: comment || '',
sendMode: 3,
});

На "коротких" комментах транзакция успешно проходит. Но если comment - достаточно длинная строка, транзакция по БЧ не идет.

Посмотрел в доках, не нашел размерность поля.

Можете подказать или тыкнуть ссылкой?

Спасибо
VK
20:39
Vladislav Kibenko
In reply to this message
Если никто не ответит, можете попробовать "нащупать" эту длину. Только не забудьте остальным сообщить, потому что эта информация будет полезна
F
20:42
F
In reply to this message
lite-server вам ответил, что данного блока у него нету. Что бы понять почему он так ответил - обратитесь к параметрам запуска ноды, а именно параметр --archive-ttl

PS: Вам скорее всего не отвечают, потому что это написано в самом сообщении об ошибке (что данного блока нет у запрашиваемого сервера)
20:42
In reply to this message
Не совсем понятно что именно по вашему мнению стало багом.
Если адреса разные (но сид-фразы 100% одинаковые), то значит используются разные версии смарт-контракта. Для большей ясности (и для проверок) нужно прикреплять эти адреса к своему сообщению.
Кошельки перебирают все известные им версии смарт-контрактов (включая несколько ревизий одной версии) и выбирает с наибольшим балансом.
Проверяются, потому что у разных пользователей могут быть разные версии смартконтрактов, и каждому нужно отображать тот кошелек, который он использует.
20:42
In reply to this message
Описания нет, но если спросишь про конкретный метод - постараемся ответить)
Закомментированы все методы с правами write для безопасности
20:42
In reply to this message
А это в testnet или mainnet? И какой длины комментарий уже не проходит?
20:45
In reply to this message
Спасибо. Причина, по которой я сообщаю об этом, заключается в том, что для кого-то, кто не является блокчейн-разработчиком, средним пользователем TON, сообщение не удобно для пользователя. Это заставляет пользователя думать, что может возникнуть серьезная проблема. Я до сих пор не понимаю, что это значит. )) поэтому я предлагаю, чтобы такие сообщения также содержали нетехнические объяснения?
E
20:47
Egor
Подскажите пожалуйста, может кто сталкивался. Пытаюсь подключить
tonlib-java в свой проект. Добавил native-lib.dll в каталог проекта. При линковке выдается ошибка: Caused by: java.lang.UnsatisfiedLinkError: native-lib.dll: Can't find dependent libraries. В чем может быть проблема? Спасибо.
W
20:47
WWarlock
In reply to this message
Добрый день.

В продолжение вчерашнего вопроса.
С приватным ключом мне так и не удалось разобраться.
Импортирую ключ внутрь tonlib-cli командой
importkey twenty ... four ... words ... here

Вижу его через keys
> keys
Got 1 keys
#0: Public key: PuagkKIPmmykeyhere3v6H Address: EQ_my_address


Кто-нибудь может подсказать как бороться с такой проблемой или куда обращаться?

> gethistory PuagkKIPmmykeyhere3v6H
synchronization: 100%
synchronization: DONE in 754.4ms
Query {gethistory PuagkKIPmmykeyhere3v6H} FAILED:
[Error : 500 : KEY_DECRYPTFailed to decrypt: hash mismatch]


> transfer c PuagkKIPmmykeyhere3v6H EQBd_some_address_dmr 1
Query {transfer c PuagkKIPmmykeyhere3v6H EQBd_some_address_dmr 1} FAILED:
[Error : 0 : Don't have a private key for this address]


Или
> transfer c EQ_my_address EQBd_some_address_dmr 1
Query {transfer c PuagkKIPmmykeyhere3v6H EQBd_some_address_dmr 1} FAILED:
[Error : 0 : Don't have a private key for this address]


Подскажите где взять этот ключ
SK
20:48
Sergey Khaylov
In reply to this message
уже щупаем )))
EP
20:48
Evgeniy Pronyagin
In reply to this message
Баг в том, что адрес который сгенерился впервый раз, больше недоступен ни с какого клиента, в том числе с того в котором его создавали.
В TON Wallet сгенерился сперва адрес: EQDspw7FCc8sZnMAimX7PEo0tlfjfyL-3Cvgzl-Mwd_Vh4Xb (первый)
В TON Keeper вот такой с той же самой сид фразой: EQAlPX_ITEJSzog54tkevdL_6uHaLNjKK7ygcJvlxSZz6R1m (второй)
При вопторной авторизации через сид фразы в TON Wallet открывается второй кошелек.
А в первый никак не попасть. Но в логах вижу что TON Wallet чекает и первый адрес и второй. Авторизуясь в итоге во второй.
VL
20:51
Vladimir Lebedev
In reply to this message
Кошелёк tonhub умеет собирать деньги со всех версий кошельков
F
21:05
F
In reply to this message
1. TON Keeper должен отображать баланс с разных версий кошельков с возможностью перекинуть оттуда на основной.
2. Инициализируйте/Активируйте второй адрес (для этого достаточно совершить одну исходящую транзакцию, например самому себе). Это позволит сравнить версии смартконтрактов этих кошельков, а так же сравнить их публичные ключи
21:06
Screenshot_20220326-210212.png
Not included, change data exporting settings to download.
150.1 KB
Как это отображается в тонкипере
21:06
Screenshot_20220326-210436.png
Not included, change data exporting settings to download.
114.8 KB
EP
21:26
Evgeniy Pronyagin
In reply to this message
Да вы правы, в TON Keeper появилась кнопка "Старый Кошелек" с возможностью перекинуть монеты. Я правильно понимаю, что после того как я создал через TON Wallet кошелек, обновился смартконтракт и когда я зашел через TON Keeper уже сгенерился новый адрес? И при заходе в TON Wallet также подтягивается новый адрес. Но функционал перелива монет со старого и нового кошелька реализован только в TON Keeper? Если так, то это для обычного юзера очень не понятно. Если даже я прогер со стажем не понял как это работает 😂
21:28
Можете дать лику почитать как это работает? Смена смарт контракта основной монеты кошелька я имею ввиду
EP
21:46
Evgeniy Pronyagin
Уже нашел инфу, спасибо!
Еще вопрос, подскажите плиз какие есть варианты принимать оплату на сайте в тонах. Нашел tegro.money но, думаю есть еще какие-то альтернативы
JF
21:47
John Fyodor
In reply to this message
Работает это так: у вас есть приватный ключ, сформированный из 24 слов. Кошельки в тоне - это смартконтракты. Есть разные версии этих Смарт контрактов, после деплоя контрактов разных версий через ваш приватник , будет генерироваться разный адрес контракта, со «старыми» кошельками ничего не произойдёт, вы их так же можете восстановить с приватного ключа
s
22:32
sepеzho.copy
чуваки, что это может значить?)
c
22:34
cryshado
In reply to this message
ну что написано то и значит, можешь в переводчик впихнуть
s
22:37
sepеzho.copy
даже так не понял)
22:37
т.е. проблема в приватнике или как?
c
22:37
cryshado
не факт
s
22:37
sepеzho.copy
что значит он не смог открыть стейт акка
22:51
вот теперь так
22:51
22:51
но при этом транза нигде не отображается
22:52
ни на тестнете ни на мэиннете
22:52
In reply to this message
даже хеша нету)
22:52
может кто помочь?)
23:02
кто работал с tonweb на node.js?
23:04
In reply to this message
что значит этот @extra?)
23:04
так много вопросов и так мало ответов :c
VK
23:06
Vladislav Kibenko
In reply to this message
Это прикрепляемое библиотекой tonlib_api поле. Возвращается от ton-http-api. Касательно его полезности не уверен
23:07
Можешь подебагать ton-http-api, он на Питоне. Инструкция к нему рабочая, простая. Код более-менее понятный
s
23:07
sepеzho.copy
In reply to this message
а почему транзы нету?)
ее надо как-то задеплоить? или в чем суть

или надо как-то закинуть fee какой-то
23:07
хз
VK
23:08
Vladislav Kibenko
Этого, к сожалению, не знаю. Более-менее разбираюсь только в веб части в проекте. Тонкостей криптовалюты не знаю
RG
23:50
Ruslan Gabdullin
In reply to this message
У поля @extra нет никакого смысла. Это случайный task_id, чтобы внутри ton-http-api сопоставить запрос к ЛС с ответам.
s
23:59
sepеzho.copy
хм
27 March 2022
s
00:00
sepеzho.copy
In reply to this message
получается можно на этот апи закинуть запрос и сделать транзу?
00:00
In reply to this message
минуя этот кусок кода?
00:01
просто хочу написать код, который отправляет транзакции на nodejs, че так сложно то)))
RG
00:02
Ruslan Gabdullin
In reply to this message
Можно, но надо уметь генерировать запрос
00:02
Посмотри toncenter.com
s
00:03
sepеzho.copy
пытаюсь ща реверсинженерить tonweb либу, хочу понять как она запросы шлет эти
00:03
In reply to this message
да, тут есть sendquery, но как я понял нету описания того, что туда кидать и в каком формате
RG
00:06
Ruslan Gabdullin
В итоге получится реализация из тонвеба, скорее всего)
s
00:06
sepеzho.copy
)))))
00:07
я так и не понял почему тонвеб возвращает мне “ок” статус, но при этом транзакиця не отображается на блокчеине
RG
00:07
Ruslan Gabdullin
Это не тонвеб
00:07
Это ton-http-api
s
00:08
sepеzho.copy
ну или он)
00:08
кароч что-то где-то не так идет у меня)
RG
00:08
Ruslan Gabdullin
Этот метод вроде бы не умеет отдавать ничего кроме репорта о выполнении
00:09
Выше спрашивали аналогичный вопрос про sendBoc
s
00:17
sepеzho.copy
)))))
00:18
как-то не особо инфы в типах либы лежит
00:18
либо я плохо искал
VK
00:31
Vladislav Kibenko
In reply to this message
Над этим ведётся работа
SK
00:35
Sergey Khaylov
Кто спрашивал про хеш транзакции? Я задал аналогичный запрос в eng-канале. Почитайте ответы ) Я еще сам не пробовал, пока руки не дошли. Но для меня (после bsc) выглядит как дичь ((((
SK
00:35
Sergey Khaylov
SK
Sergey Khaylov 24.03.2022 12:01:21
Hello, I need help )

I make transfer request via js sdk :

(await wallet.methods.transfer(....))
const transfer_result = await transfer.send();

return { transfer_result };

This code returns data:

{transfer_result={@type=ok, @extra=1648111903.1049073:17:0.537090894452867}}

1. What is it mean EXTRA? What is it?
2. How I can get transfer transaction data (hash, lt and etc...)

Tnx
s
00:37
sepеzho.copy
In reply to this message
++++
00:37
same one here)
SK
00:37
Sergey Khaylov
AS
Aleksandr Shepelev 24.03.2022 12:05:50
you will not get hash from here

hash and lt will be when transaction will be added to block by validators
00:37
basically there are two ways to check if transaction successfully sent

first is to check seqno of wallet (if it is incremented)
00:37
second is to check address for transaction
SK
00:38
Sergey Khaylov
Если решите вопрос раньше меня - дайте знать.... С удовольствием заюзаю решение )
s
01:00
sepеzho.copy
In reply to this message
обязательно)
01:10
можно как-то конвертнуть [
28, 95, 92, 7, 233, 97, 9, ....... 89, 107
] в адрес кошеля?
VK
01:12
Vladislav Kibenko
In reply to this message
Откуда эти числа?
s
01:15
sepеzho.copy
01:15
nacl.sign.keyPair()
01:18
вот нашел либу для конверта мнемоника как раз в такой массив

а как в обратную сторону?)))
AF
01:25
Anton F
Криптография работает только в одну сторону
01:25
Из пары ключей мнемонику не составить.
01:27
Но тем не менее, секретного ключа достаточно для доступа к контракту, мнемоника это больше для удобства пользователей
s
01:27
sepеzho.copy
а из ключей можно получить адрес кошеля?
01:27
поидее да, но я пока не выкупил как
01:28
ибо даже такая штука выплевывает просто Uint8Array
AF
01:28
Anton F
В адрес - относительно не сложно, вам нужно tonweb посмотреть. Достаточно инициализировать нужную версию контракта кошелька с полученным приватным ключем
01:29
In reply to this message
Так это вроде оно и есть, нужно только toString вызвать
s
01:30
sepеzho.copy
а, точняк
01:41
ПОЛУЧИЛОСЬ!))))

получилось произвести транзу на nodejs
01:41
ураааа
01:41
кароч надо гайд записать как это делать
01:41
чтоб остальным ребятам проще было
Р
03:00
Ростик
Всем привет
03:00
Есть кто может помочь, в ЛС пожалуйста
N
09:44
Neo
In reply to this message
Было бы круто бро 😎
Д
12:51
Денис
In reply to this message
Хорошая идея))
IG
13:06
Ilia Gaevskii
Привет. Начал разбираться в смарткнотрактах. Могли рассказать как их правильно компилить и проверять?

Я установил и настроил окружение, у меня есть компилятор func у меня есть набросок простейшего смарконтракта. При запуске которого всплывают ошибки что он не знает про эти функции. Как их можно импортнуть в смарт контракт? Пробовал класть его в папочку со всеми остальным СК, IDE начинает по ним переходить и видит функции, а компилятор нет :(
13:06
AT
13:07
Andrey Tvorozhkov
In reply to this message
Стдлиб не подгрузил
13:07
Советую попробовать toncli с ней будет проще)
IG
13:10
Ilia Gaevskii
In reply to this message
А как его импортировать? 🥲😅
c
13:10
cryshado
In reply to this message
Покажи как собираешь FunC
IG
13:11
Ilia Gaevskii
 ~/ton/crypto/smartcont$ /mnt/d/TonContest/liteclient-build/crypto/func -o output.fif -SPA source0.fc
c
13:11
cryshado
перед source0.fc добавь stdlib.fc и закинь его в папку с проектом https://raw.githubusercontent.com/cryshado/ton-share-smc/main/lib/stdlib.fc
IG
13:12
Ilia Gaevskii
Спасибо!
VK
14:38
Vladislav Kibenko
@sepezh0 а пробовал кошелёк создавать с указанием воркчейна мэйнового?
s
14:39
sepеzho.copy
да, ток на мэиннете все получилось сделать
VK
14:39
Vladislav Kibenko
In reply to this message
wc -1?
14:43
Кажись, ты всё-таки в wc 0 был, потому при wc -1 там будет ошибка из-за некорректного парсинга адреса. В частности, тут:
https://github.com/toncenter/tonweb/blob/f3304156fb3000e96a7ed10123ae31185792d05a/src/utils/Address.js#L83

Там минус в начале на плюс заменится и воркчейн идентифицироваться корректно не сможет.

Можешь попробовать -1 указать? Просто чтобы удостовериться, что не у меня одного воспроизводится
s
14:43
sepеzho.copy
ок, ща
14:43
In reply to this message
я wc 0 указал
14:43
и через это работало все
14:44
“const tonweb = new TonWeb();
let wallet = tonweb.wallet.create({
publicKey: PUBLIC,
wc: 0,
});”
VK
14:44
Vladislav Kibenko
In reply to this message
Этот отработает, попробуй wc: -1, после этого wallet.getAddress()
IG
14:45
Ilia Gaevskii
Что делает команда fift -s output.fif?

Она запускаем смарт контракт?
Как вообще запустить и протестировать СК?
c
14:48
cryshado
In reply to this message
Используйте runvm чтобы локально запустить tvm. Есть в доке по фифту
14:48
Вы скрипт для тестов должны на фифте писать
IG
14:50
Ilia Gaevskii
In reply to this message
Дока по фифту это вот эта пдф на 107 страниц?
https://ton-blockchain.github.io/docs/fiftbase.pdf
c
14:52
cryshado
In reply to this message
Да
14:52
Brief Introduction 😃
14:52
Не Brief это уже исходники читать
IG
14:55
Ilia Gaevskii
In reply to this message
Да.. Вот у меня есть сгенерированный fift из func.
Теперь мне его нужно запустистить, запускаю Я его в TVM..
Как TVM связано с Lite-Client? Или никак?

Я сижу вторые сутки над этим и пока не понял всего.
А есть какие-то ссылки для понимания на примерах?

Хочешь перевести 5 ton в tesnete запусти такой-то смартконтракт так-то в таком-то окружении?
14:56
Документация прикольная, но вот Я бы к ней обратился после того как понял и пощупал основы
c
14:58
cryshado
In reply to this message
lite-client это в прямом смысле клиент, который позволяет отправлять сообщения в блокчейн.

FunC компилируется в Fift-ASM (это микро-программа на Fift). Fift-ASM уже далее компилится в байт-код для TVM.

Также вы на фифте можете писать скрипты для подготовки сообщений в блокчейн и тесты для контрактов(фифт умеет локально запускать TVM)
14:59
In reply to this message
Сообщения сериализуются в бит-ориентированный формат данных, в bag of cells. Важно, что вы работаете именно с битами, а не с байтами
x
15:00
xxffwwoqqzz
https://ton.org/docs/#/func/builtins?id=other-primitives

в каких кейсах полезен touch и ~touch?
15:00
In reply to this message
свои 5 копеечек вставлю в беседу :)
c
15:01
cryshado
In reply to this message
~touch позволяет вам поднять что-то на стек, чтобы далее до этого было быстрее добраться. Посмотрите Fift-ASM выхлоп, станет понятнее
x
15:01
xxffwwoqqzz
In reply to this message
+1 примеров примитивных штук сильно не хватает (всяких каунтеров и т.д.)
AP
15:02
Andrey Pfau
In reply to this message
вообще там каунтер есть)
c
15:02
cryshado
In reply to this message
фифт который собирает сообщение для кошелька https://github.com/newton-blockchain/ton/blob/master/crypto/smartcont/wallet-v3.fif

фифт который создает новый кошелек https://github.com/newton-blockchain/ton/blob/master/crypto/smartcont/new-wallet-v3.fif

код кошелька на FunC https://github.com/newton-blockchain/ton/blob/master/crypto/smartcont/wallet3-code.fc
AP
15:03
Andrey Pfau
поздравьте меня, мне наконец-то разблокировали аккаунт в тг
15:03
кто-то на меня пожаловался за спам (которого не было)
c
15:03
cryshado
In reply to this message
🥳🥳🥳🥳🥳
IG
15:04
Ilia Gaevskii
In reply to this message
Да, это все на просторах гитхаба можно найти, но как с этим работать не понятно
c
15:04
cryshado
In reply to this message
компилите код кошелька, запускаете фифт для создания кошелька и отправляете сообщение через лайт клиент
x
15:04
xxffwwoqqzz
In reply to this message
т.е. она даёт возможность поменять, например, порядок исполнения функций при рекурсии?
15:04
In reply to this message
можно линк, пожалуйста?
c
15:05
cryshado
In reply to this message
нет
15:05
просто помогает что-то достать со стека поближе
S
15:09
Suleyman
Парни, есть кто func учит?
15:09
Всем салют!
c
15:10
cryshado
In reply to this message
документация https://ton.org/docs/#/func/stdlib
x
15:13
xxffwwoqqzz
In reply to this message
фифт это круто, но, лично мне, как новичку, он не сильно помогает в том, чтобы понять как писать код на FunC

код кошелька на FunC видел, но он тоже выглядит непонятно, когда ты нулевой в разработке на тон

что можно почитать, чтобы начать понимать код кошелька? whitepaper TON?
IG
15:14
Ilia Gaevskii
А где брать 32 битный инт? Генерить самому?
F
15:15
F
In reply to this message
IG
15:15
Ilia Gaevskii
А как мой fift понимает что ему нужно работать с теснетом?
c
15:15
cryshado
In reply to this message
Никак
AP
15:15
Andrey Pfau
fift Это скриптовой язык
c
15:15
cryshado
In reply to this message
Не более
AP
15:16
Andrey Pfau
это как bash на стероидах
c
15:16
cryshado
In reply to this message
Передай 0 0 mywallet
15:16
In reply to this message
На кошачьей мяте я бы сказал
IG
15:16
Ilia Gaevskii
In reply to this message
15:17
In reply to this message
ой как хорошо, Я бы закрепил это в этом чатике
c
15:17
cryshado
In reply to this message
Ну, читай ошибку. Он не может найти файл скомпиленного кода кошелька из func
AT
15:19
Andrey Tvorozhkov
In reply to this message
Все еще советую toncli
15:19
)
x
15:20
xxffwwoqqzz
In reply to this message
о, крутяк, спасибо большое!
IG
15:22
Ilia Gaevskii
In reply to this message
А чем он мне может помочь? Как Я понял он упрощает работу с fift and func. Но ведь понимания у меня не прибудет :(
c
15:22
cryshado
In reply to this message
Да а как тогда понять как что работает, в эфире тоже hh ставят, а потом «не могу понять, а как транзакция подписывается»
15:22
In reply to this message
Верная мысль
AT
15:22
Andrey Tvorozhkov
In reply to this message
прибавится)

Она поможет дойти до фазы "я что-то меняю - оно работает" быстрее
15:22
Deleted Account
Коллеги, добрый день.
Скажите, пожалуйста, когда будет (и будет ли) возможность отправить перевод с 0 тонами в Tonkeeper и остальных кошельках?
IG
15:23
Ilia Gaevskii
In reply to this message
Ну раз поможет дойти до такой фразы быстрее, то ставлю 😂
AT
15:24
Andrey Tvorozhkov
Для того чтобы разобоаться хорошо мне понадобилось 3месяца около-фултайм и то я не могу сказать что я прям "шарю"

(у меня очень обширный опыт 8+лет программирования во многих сферах от ML / биоинформатики до интерактвных лендосов на реакте, преподовании)
IG
15:24
Ilia Gaevskii
На скок реально одуплить всё что тут просиходит и принять нормальное участие в контесте на 5 самртконтрактов, который начинается завтра? 🙃
AT
15:25
Andrey Tvorozhkov
In reply to this message
Я верю что можно успеть понять какую-то часть которая поможет хорошо прорешать задания)
IG
15:25
Ilia Gaevskii
In reply to this message
Мда... Чот куда-то Я не туда повернул 😂
AT
15:26
Andrey Tvorozhkov
In reply to this message
Да нет, мб я тугодум) Тут дело каждого. Но я советую начать с тонкли. Правда. Можно менять что-то в файлике и оно будет меняться и работать)
15:28
In reply to this message
А, еще когда я начинал не было доки (https://ton.org/docs/), сейчас дока прям растет хорошо)
D
15:28
Daniil
тон вебу не помешала бы нормальная дока. сейчас ее вообще нет, только примеры.
@tolyayanot
c
15:29
cryshado
In reply to this message
Скоро будет либа лучше тон веба, которая работает с тоном без не безопасных посредников
IG
15:30
Ilia Gaevskii
In reply to this message
Немного офтоп, а с какими мыслями ты пришёл в ton blockchain?
AT
15:31
Andrey Tvorozhkov
In reply to this message
https://ton.org/docs/ за последнее время очень хорошо обновили
15:31
Он прям понятен
D
15:32
Daniil
In reply to this message
Там тоже, только примеры(
15:32
Полной доки нету
AT
15:32
Andrey Tvorozhkov
In reply to this message
Сделать один из самых масштабных продуктов в блокчейне) Я думаю мы ставим целью побить OpenSea / захватить больше областей.
D
15:32
Daniil
In reply to this message
Я лично просматривал весь код, 70% методов нигде не показаны, даже в примерах
AP
15:33
Andrew Python
In reply to this message
Он как-то раз нечаянно посчитал биты и ему понравилось 😄
IG
15:34
Ilia Gaevskii
In reply to this message
А какая роль твоя в побеждении openSea?
Как ведущий разработчик? То есть твоя глобальная цель создать масштабный продукт в области блокчейна?
AT
15:36
Andrey Tvorozhkov
In reply to this message
У меня с кофаундером своя компания) Мы много разных продуктов делаем)

Просто есть ощущение что вот с дисинтаром прям хорошо полетит)
IG
15:37
Ilia Gaevskii
Спасибо!
T
16:37
TON Дев Чат
In reply to this message
Не волнуйтесь, задачи будут идти лесенкой. Начнутся с чего-то очень простого. При этом n-ная задача будет иллюстрацией к чему-то что используется в n+1. Да, подумать головой придется и почитать ton.org/docs тоже, но мы постарались сделать так, чтобы этого было достаточно.
AP
16:42
Andrew Python
In reply to this message
Скорость решения задачи будет играть роль?
T
16:46
TON Дев Чат
In reply to this message
Дается 10 дней, прием будет открыт не сразу, кто первый сдаст - неважно, важно кто правильней и оптимальнее.
Затраты по газу учитываться будут (кто оптимальнее - тот лучше). Впрочем, все это будет подробно описано в условиях.
IG
17:10
Ilia Gaevskii
In reply to this message
А подсчитывать сколько твоя функция тратит газа самому нужно? Нет пайплайнов которые будут считать?
AP
17:11
Andrey Pfau
In reply to this message
Локально твм запускать и смотреть
AT
17:11
Andrey Tvorozhkov
In reply to this message
Ходят слухи, что в toncli это можно, а скоро можно будет просто
IG
17:12
Ilia Gaevskii
In reply to this message
😂
Я его уже поставил, сегодня завтра буду разбираться как сделать что-то и запустить
AP
17:13
Andrew Python
вот бы сделать пост с полезной инфой в чатиках и отключить сообщения на 10 дней контеста)
AP
17:13
Andrey Pfau
In reply to this message
Не забываем про плагин для IDE:
https://plugins.jetbrains.com/plugin/18541-ton-development
IG
17:14
Ilia Gaevskii
In reply to this message
Да, уже поставил
17:14
In reply to this message
Мне кажется там и так людей мало участвует, а так будет ещё меньше
AP
17:15
Andrey Pfau
Мне чет даже кажется что не наберётся людей для контеста и по факту каждый сможет принять участие и получить вознаграждение)
AP
17:23
Andrew Python
Заметил странное поведение dapp-example
Если открыть любую новую страницу в браузере, то dapp теряет соединение с кошельком

upd: работает нормально, если убрать await connect();
17:24
In reply to this message
Но в tonch.cc такого бага нету
ИК
17:26
Игорь Коняхин
Планирую участвовать в https://ton.org/contest
Разобрался (не полностью, но в значительной степени) с FunC по https://ton.org/docs/#/func
А также с тестовым заданием https://github.com/ton-blockchain/docs/tree/master/docs/func-task
До этого был немного знаком со-смарт контрактами Ethereum.

Какие лучше делать следующие шаги по изучению Ton смарт контрактов?

Документация советует изучать https://github.com/newton-blockchain/ton/tree/master/crypto/smartcont, но там кажется слишком продвинутые (и по большей части не-откоментированные) контракты для моего текущего уровня.
AP
17:27
Andrey Pfau
In reply to this message
Рекомендую для FunC использовать плагин для Intellij:
https://plugins.jetbrains.com/plugin/18541-ton-development

А ещё toncli:
https://github.com/disintar/toncli
ИК
17:28
Игорь Коняхин
Спасибо, установлю
AP
17:33
Andrew Python
In reply to this message
Поизучать свежие контракты (номинаторов, нфт, ton fruits, и т.д)
ИК
17:34
Игорь Коняхин
Можно, пожалуйста, ссылку на какие-нибудь самые простые из них
ИК
17:39
Игорь Коняхин
Спасибо!
Буду изучать
17:52
Изучаю контракт простого кошелька https://github.com/newton-blockchain/ton/blob/master/crypto/smartcont/wallet-code.fc
и есть несколько непонятных моментов.

Что делает (в принципе) cs~touch() ?
В документации указано, что touch перекладываем переменную на вершину стека, и было бы понятно зачем это, если бы код был на Fift, но ведь код на FunC, и вроде бы никаких отсылок к порядку стека в коде нет
AT
18:04
Andrey Tvorozhkov
In reply to this message
Кстати в каких доках?)
ИК
18:05
Игорь Коняхин
Я пока только в официальных
Про touch на этой странице пол строчки:
https://ton.org/docs/#/func/builtins
AT
18:10
Andrey Tvorozhkov
Ну если там так написано, значит так и есть)
Могу предположить, что это для того, чтобы оптимизировать действия.
Func собирается в asm и ты платишь за каждое действие. В т.ч. за изменение порядка стека. Для того чтобы опитимизировать действия, видимо, иногда полезно положить какие-то объекты повыше (чтобы потом было дешевле)

  define_builtin_func("~touch", TypeExpr::new_forall({X}, TypeExpr::new_map(X, TypeExpr::new_tensor({X, Unit}))),
AsmOp::Nop());

В какой либо AsmOp эта штука не собирается, только для оптипизации func используется, видимо)
18:11
Но возможно есть лучший ответ от более шаристых людей)
18:16
In reply to this message
Если посмотреть в сближенный с правильным флагом func код можно увидеть что предположительно будет лежать в стеке VM
AP
18:25
Andrew Python
In reply to this message
Хотя не, только ton_rawSign и ton_sendTransaction продолжают работают, остальные методы отваливаются.

upd: я не первый https://github.com/toncenter/ton-wallet/issues/111 и там уже есть пул-реквест с исправлением
S
19:43
Sergei
In reply to this message
привет. да, это уже исправлено, в следующей версии скорее всего внесут изменения
η️
21:30
ηк ️️️
имеется технический вопрос про устройство блокчейна. К примеру блокчейн только написали, и что в первую очередь надо хэшировать ? если быть точнее из каких данных состоит хэш ? и почему хэш ? почему не uuid ?
AP
21:34
Andrey Pfau
In reply to this message
Добро пожаловать в криптографию, сам принцип блокчейна основан на хешировании цепочки данных где берется формула транзакция = хеш(данные+хеш прошлой транзакции)

Это гарантирует что цепочка данных не была изменена
д°
21:37
да ня °°°°° | ~
Привет всем devчатам, сформировался такой вопрос: А как мы будем сохранять комфортную стоимость комиссий в блокчейне, при изменении цены нашего Toncoin'a?

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

А если цена кратно упадёт? Доход с комиссий перестанет окупать затраты на железо. Валидаторы будут терпеть значительные издержки до тех пор, пока не проголосуют 70% их коллег в сети. Это может занять значительное кол-во времени (Насколько мне известно голосования не всегда проходят достаточно быстро, хотя в случае потенциального убытка - это всё же сильный стимул).

На протяжении последних пару лет, например, у нас были серьезные скачки цены токена. Насколько мне известно (я могу ошибаться, поправьте меня), за весь этот период стоимость комиссий оставалась неизменной - 20 и 21 газ юнит; 1000 нанотон за юнит.

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

Из этого вытекает другой закономерный вопрос: Возможно ли построение системы рыночного регулирования цен на газ? Как говорится, чтобы и юзеры оставались довольны, и валидаторы не банкротились. И происходило это, чтоб в реальном времени, а не в течение месяцев.

Премного буду благодарен тому, кто меня распутает.
AP
21:37
Andrey Pfau
транзакция1 = хеш(данные, хеш транзакции0)
транзакция2=хеш(данные,хеш транзакции1)

И так далее
21:37
Это очень примитивно, чтобы было понятно как вообще блокчейн в общем устроен
21:39
In reply to this message
Валидаторы получают доход преимущественно из системы через инфляцию, а не с комиссий вроде как. Так что у них мотив будет понизить комиссию не потеряв в доходе
η️
21:42
ηк ️️️
In reply to this message
но чем являются эти данные ? которые потом будут захэшированы вместе с предыдущем хэшем. время создания ? или к примеру в блокчейне создают первый блок, что хэшировать ? любой текст ?
AP
21:43
Andrey Pfau
In reply to this message
В разных блокчейнах по разному, мы сейчас конкретно про тон или в теории примитивный блокчейн?
η️
21:46
ηк ️️️
In reply to this message
в теории, к примеру если взять обычный блокчейн, что хэшировать при создании первого блока
AP
21:47
Andrey Pfau
In reply to this message
Обычно что на аккаунте Х лежит N монет
21:48
А дальше в транзакциях пишут что Адрес X отправил N монет адресу Z
21:48
+ любые другие данные по желанию
д°
21:48
да ня °°°°° | ~
In reply to this message
Хмм, тогда другой вопрос - инфляция сети около 2% в год. А наш китовый пул даёт 13.3% годовых даже номинаторам. Хотя это наверное лучше в чат пула уже почемучить с:
η️
21:49
ηк ️️️
In reply to this message
окей, спасибо
JF
22:18
John Fyodor
In reply to this message
инфляция - 0.6% (от 5 млрд)
22:18
делится на всех валидаторов
22:19
минимальный стейк на 1 цикл ~315, на оба ~630
22:20
итого 1 валидатор с 630к стейком мог бы забрать ~30кк монет в год
22:21
но валидаторов уже больше 150, а инфляция за год одна для всех
22:21
либо я где-то ошибся в калькуляциях, но примерно картина такая
22:25
In reply to this message
если перефразировать ответ - потому что 0.6% инфляции считается со всего объема монет в сети, а APY считается с вашего стейка
д°
22:26
да ня °°°°° | ~
In reply to this message
Ага, разобрался, спасибо большое
AT
23:11
Andrey Tvorozhkov
23:11
Всем еще раз привет.

Рады сообщить, что выпускаем новую (v0.0.22) версию toncli с большим количеством фичей.

Основные из них:

1. Func тесты, поиграться с примером можно тут
2. Поддержка Windows
3. Новая команда send которая позволяет отправлять Internal сообщения из fif файлов в другие смарт контракты
4. Возможность отправлять сообщения / делать запросы к гет методам напрямую по адресу контрактов --address "....."
5. Возможность парсить вывод гет методов через fift, даже если там slice или cell
6. Много фиксов
7. Автоматический перезапуск lite-client если в процессе он не смог подключиться к серверу
8. Возможность подключить ownnet. Создать такую с тонцентром и плюшками можно на примере ton-k8s (доступны образы compose)
9. Параметр --data-params в который можно передать аргументы перед деплоем контракта (например, если у вас контракт 1, а данных много разных (nft 👀))

Много других фичей, но их не записали ;)

К несчастью, для обновления нужно немного пострадать и мерджить ~/.config/toncli, легче все сдампить ключи для ~/.config/toncli/wallet и удалить всю папку, чтобы создалать новая. Сорри.

https://github.com/disintar/toncli
s
23:12
sepеzho.copy
а у tonweb есть @types/tonweb?)
23:12
как эту штуку завести на TS
23:12
привет всем кстати
QS
23:21
Qin Shi
Добрый вечер, слышал про USDJ, есть драфт их кода? Рассматриваю лаунч своего проекта на ТОН. Хотел бы ознакомится с похожими работами.
23:22
Или в общем, есть драфт контракта на ТОН?
28 March 2022
ИК
00:50
Игорь Коняхин
In reply to this message
Если для оптимизации, то я так понимаю оптимизатор самого компилятора FunC пока что очень ограниченный, верно?
00:51
In reply to this message
Как кстати работает механизм инфляции?
С каждого кошелька снимается 0.6% и полученный пул распределяется между валидаторами?
P
00:54
P
In reply to this message
эмитируется 0,6% и распределяется между валидаторами
ИК
00:55
Игорь Коняхин
In reply to this message
Понял
А оно так каждый год "бесконечно" эмитируется? Т.е. запас монет не ограничен?
P
00:56
P
In reply to this message
да, иначе бы была дефляция
ИК
01:01
Игорь Коняхин
Понял, спасибо
SC
03:37
Sand Cat
Ребята, по мимо машины с нужными характеристиками 600к стейкать это как?
03:37
Я чего-то не понимаю или их нужно иметь на балансе?
03:38
Прошу прощения за глупые вопросы но я только вникаю в процесс =)
03:46
если офтоп то где можно почитать или обсудить информацию, за ранее спасибо
?H
03:50
💎Saito Hatsune
In reply to this message
L
04:42
L
Всем привет, есть ли тут хорошие креативные кодеры? В частности разработчики больших, игровых gamefi и просто более сложных телеграм необычных ботов, а так же кто хочет дружить с тон и уже двигается в этом направлении - отпишите пожалуйста в лс, с примерами своих работ, кто заинтересован. Финансы и задачи есть, нужно обсудить возможности и план действий
x
10:30
xxffwwoqqzz
1. В чём суть sequence number в TON? Насколько я понимаю, это число, которое генерируется на основе предыдущего числа, например, как числа арифметической прогрессии с шагом 1. Тогда суть даного решения в том, чтобы иметь возможность определить сколько раз был выполнен смарт-контракт и избежать его повторного исполнения за одну транзакцию?

2. Почему необходимо поменять местами порядок сохранения в ячейку public_key и stored_seqno в этом примере?

3. Почему в correct solution в задании из предыдущего вопроса для seqno выделяется 32 бита? Если я правильно понял суть seqno, то такое выделение памяти предполагает, что будет максимум 2^32 - 1 вызовов смарт-контракта. Что будет, если вызвать смарт-контракт 2^32 раза?

Correct solution: set_data(begin_cell().store_uint(stored_seqno + 1, 32).store_uint(public_key, 256).end_cell())

4. Вопрос по получению даних из ячейки. Есть следующий код из задания в предыдущих вопросах:

var data = begin_parse(get_data());
var stored_seqno = data~load_uint(32);
var public_key = data~load_uint(256);

Допустим, под seqno тоже было бы выделено 256 бита и код бы выглядел вот так:

var data = begin_parse(get_data());
var stored_seqno = data~load_uint(256);
var public_key = data~load_uint(256);

Как в таком случае TVM определяет, что сначало будет stored_seqno, а потом public_key? Просто считывает первые 256 битов, а потом следующие 256 битов?

5. Можно ли сохранить больше одной ячейки в одном смарт-контракте? Если да, то как в таком случае будут считываться данные?

6. Почему в коде ниже используются коды 33 и 34? Где можно прочитать про значения кодов ошибок?

throw_unless(33, msg_seqno == stored_seqno);
throw_unless(34, check_signature(slice_hash(in_msg), signature, public_key));

Спасибо
AP
10:31
Andrew Python
In reply to this message
У меня такие же вопросы были 2 месяца назад
x
10:32
xxffwwoqqzz
In reply to this message
Можешь, пожалуйста, поделиться ответами?
AP
10:34
Andrew Python
In reply to this message
1 верно
2 - в каком порядке данные положили при деплое, в таком и надо их брать/перекладывать в контракте
4 - данные(биты) берутся по порядку с начала ячейки
5. В каждую ячейку кроме 1023 бит можно положить 4 ссылки на другие ячейки. Кроме этого есть ещё dict (hashmap)
6. Первые 31 (или около того) кодов ошибок зарезервированы TVM. В контракте используются "кастомные" коды ошибок (стандарта пока нет)
AT
10:37
Andrey Tvorozhkov
In reply to this message
(2) это же задание для решения, а не пример. Оно содержит намеренно неправильный код
P
10:39
Placeholder
In reply to this message
Речь про run_transaction? Не могу понять, как оно работает. Выводит операции как будто не для моей транзакции. Запускаю с lt и хэшем, скопированными с тонскана, функция по умолчанию -1, контракт кошелька из примеров из toncli, который с проверкой subwallet_id. В выводе вижу, что якобы выполнение завершилось с ошибкой 33, хотя на самом деле та транзакция прошла, на второй адрес пришла монетка.
10:45
In reply to this message
При этом, ДРУГАЯ транзакция действительно была неудачной из-за неправильного seqno. Там должна была быть ошибка 33, но у другой хэш и lt другие, соответственно.
AT
10:45
Andrey Tvorozhkov
In reply to this message
Вот тут первый пункт
10:45
In reply to this message
Но не забудьте обновиться до 0.0.22
10:46
In reply to this message
Монетки ходят по интернал сообщениям
10:46
Т.е. функцию нужно 0 брать)
x
10:47
xxffwwoqqzz
In reply to this message
Спасибо тебе огромное! Картинка прояснилась в разы
P
10:47
Placeholder
In reply to this message
Но в функции -1 тоже должен быть правильный вывод проверки seqno, wallet_id, подписи.. Или я чего-то не понимаю?
x
10:48
xxffwwoqqzz
In reply to this message
А у тебя есть предположение по третьему вопросу?
c
10:49
cryshado
In reply to this message
3 - смарт контракт помрет, если seqno станет больше uint32
(просто это 4294967295)
x
10:49
xxffwwoqqzz
In reply to this message
Мне не хватало понимания почему именно так это задание было решено. Теперь всё стало на свои места)
10:50
In reply to this message
Помрёт в плане его нельзя будет вызывать больше и нужно будет снова задеплоить?
c
10:50
cryshado
In reply to this message
ну деньги из этого кошелька юзер больше не получит 😀
x
10:51
xxffwwoqqzz
In reply to this message
(упс, не учёл, что там unsigned int)
AP
10:52
Andrew Python
Программирование контрактов на тоне приближено к программированию микроконтроллеров 😅
c
10:52
cryshado
In reply to this message
согласен 😀
x
10:52
xxffwwoqqzz
In reply to this message
🙃
AP
10:54
Andrew Python
In reply to this message
c
10:55
cryshado
In reply to this message
x
10:56
xxffwwoqqzz
In reply to this message
+1, мне как человеку, который с битами работал только во время региональных олимпиад, очень дико всё это выглядит
P
11:00
Placeholder
In reply to this message
Успеть бы разобраться в func до переполнения
AT
11:01
Andrey Tvorozhkov
In reply to this message
😂 вспоминается хороший анекдот категории Б на эту тему
MO
11:01
Mister Osminolog
In reply to this message
Сказал, как обрезал
JF
11:23
John Fyodor
Доделываем хешмапы в нашей js библиотеке, вот так выглядит сахар для сериализации:
11:23
11:23
Если есть предложения/комментарии - пишите
x
11:41
xxffwwoqqzz
In reply to this message
Можно линк на репозиторий библиотеки?
c
11:42
cryshado
In reply to this message
https://github.com/tonstack/tontools-js
(в орге на гитхабе ещё много чего интересного)
(либа пока не продакшн реди, что-то может измениться перед релизом)
x
11:44
xxffwwoqqzz
In reply to this message
спасибо!
JF
11:51
John Fyodor
In reply to this message
И конкретно хешмапы ещё не залиты, но уже со дня на день
F
12:47
Fezco
привет! возник вопрос на ton же можно создать свой блокчейн? если да, то почему тон называет себя layer-1, а не layer-0 блокчейном?

если я что-то не так понял про слои, то буду очень благодарен за объяснения!
T
12:50
TON Дев Чат
In reply to this message
Нет, это не как в Польке один проект - один блокчейн. Хотя в ТОНе могут быть несколько блокчейнов (как сейчас мастер и бейзчейны) с возможно разными правилами, совместно создаваемых валидаторами, они "общие" и проекты реализуются на них "совместно".
F
12:53
Fezco
In reply to this message
ага, разобрался, спасибо

а у польки получается на каждый проект могут быть свои валидаторы, которые никак не связаны с валидаторами другого проекта?
IR
13:08
Ivan Reinhart
Друзья всем привет, вопрос такой, можно ли на базе блокчейна тон сделать свою монету?
F
13:09
Fezco
In reply to this message
да!
IR
13:09
Ivan Reinhart
In reply to this message
Спасибо, можешь дать инфу где можно почитать как это сделать?
QS
13:09
Qin Shi
In reply to this message
Как? В BEP20 есть гайд и драфты контрактов? Уже раза 3 спрашивал тут, тишина никто не знает
F
13:10
Fezco
@i7d6_Ta3z0p
@I_Reinhart

насколько я понимаю, сейчас доделывают стандарт: https://t.me/toncoin/343
QS
13:11
Qin Shi
In reply to this message
Понял, значит пока лучше просто ждать когда будет готов стандарт?
F
13:11
Fezco
In reply to this message
верно
QS
13:11
Qin Shi
А будет ли чтото типа remix? где всё это дело можно будет запускать )
F
13:12
Fezco
In reply to this message
вот это хороший вопрос, не знаю)
VE
13:14
V E
In reply to this message
пока есть только онлайн Deployer и Verifier

https://tonsc.org/
QS
13:17
Qin Shi
In reply to this message
А драфта стандартного еще нет, правильно?
VE
13:19
V E
In reply to this message
драфта чего нет?
QS
13:19
Qin Shi
Смарт контракта
13:20
Ну вот к примеру у Binance на bep20 есть такая страница
13:20
Тут есть драфт и описание
F
13:20
Fezco
In reply to this message
если вы про контракт создания своих монет, то вроде вот оно: https://github.com/ton-blockchain/TIPs/issues/74
AP
13:58
Andrew Python
Кому не лень, можете поправить ссылки на pdf'ы в доках?
Там все pdf'ы лежат в репе, но в доке ссылки на другой сайт
https://github.com/ton-blockchain/docs
или так должно быть?)
QS
14:01
Qin Shi
In reply to this message
Спасибо, посмотрю.
14:02
In reply to this message
А аналог Pancakeswap есть на ТОН блокчейне? к примеру чтобы на старте можно было положить USDT и свою монету чтобы создать ликвидность и установить цену?
AP
14:03
Andrew Python
In reply to this message
а что свапать то?) токенов ещё нет
QS
14:04
Qin Shi
In reply to this message
Ну можно же создать свой токен уже? или нет?
D
14:04
Dario
In reply to this message
Soon 😁
AP
14:04
Andrew Python
In reply to this message
лучше не надо, пока стандарта нет
QS
14:04
Qin Shi
Понял.

Значит пока можно стартовать на BEP20 а потом создать аналог на TON
14:07
In reply to this message
Еще один вопрос, вот человек отправил мне ссылку, разве это не стандарт?
https://github.com/ton-blockchain/TIPs/issues/74
AP
14:08
Andrew Python
In reply to this message
Ft
14:09
In reply to this message
вот это уже можно аккуратно юзать
?
14:17
🐈
Всем привет. Подскажите, как создавать новые адреса (кошельки) через toncli? Создавать методом toncli start wallet -n [name], но создавались смарт-контракты

Задача - создавать кошельки с именами и использовать их для получения и отправки TON
AP
14:23
Andrew Python
In reply to this message
в тоне кошелёк это смарт-контракт
или ты имеешь ввиду адрес с разными флагами?
?
14:24
🐈
Тогда другой вопрос. Как с него перевести монеты?)

На него могу. С него пока не получается, переводит с основного кошелька
14:24
Нет, имею в виду большое множество адресов
AP
14:25
Andrew Python
In reply to this message
много адресов - это много контрактов
?
14:25
🐈
Тогда с их созданием проблемы нет. Только с тем, как оттуда перевести что-то)
14:27
In reply to this message
Попробую, спасибо. Если создавать не с основного контракта, то переводить с этих контрактов нет возможности?
AP
14:32
Andrew Python
In reply to this message
Я имел ввиду написать кастомный прокси-кошелёк)
А по поводу перевода, там же надо usage.fif использовать
?
14:33
🐈
In reply to this message
Спасибо)
ИК
14:38
Игорь Коняхин
In reply to this message
Вопрос по тому же смарт-контракту в сравнение с Ethereum.

В Ethereum (насколько я помню) при деплои конкретного экземпляра контракта, мы бы сохранили инициатора сообщения в переменную/хранилище и затем при проведении операций мы бы просто сравнивали от кого исходит текущее сообщение с сохранённым инициатором. Проверять подписи самим там не нужно, Ethereum гарантирует того, что нам доступен правильный инициатор. Это позволяет писать более прямой, простой код. Ручных проверок подписей не требуется.

Я правильно понимаю, что TON не предоставляет нам проверенного инициатора сообщения? Из-за этого нам приходится самим писать код проверки подписей для того, чтобы убедится, что именно изначальный инициатор (публичный ключ которого сохранён в хранилище) является инициатором текущего сообщения?
c
14:39
cryshado
In reply to this message
в эфире ток интернал сообщения, тут есть сообщения и интернал, и экстернал
14:39
экстернал это от никого к контракту
ИК
14:42
Игорь Коняхин
Оо! Вот это поворот. Я предполагал, что это другое означает, хотя вопрос также был на очередь. В таком случае понятно, почему так закожено
14:42
Но на всякий случай: я правильно понимаю, что если бы мы переписали этот контракт как internal, то можно было бы написать (по логике) как в Ethereum?
c
14:45
cryshado
In reply to this message
Интернал это от контракта к контракту и мы всегда имеем доверенные данные об отправителе.
ИК
14:46
Игорь Коняхин
Понял, спасибо
14:49
И ещё базовый вопрос: почему нет функции типа create, которая создаёт контракт?
Т.е. по идее должна быть функция, которая создаст контракт: запишет в хранилище предоставленный публичный ключ и установит stored_seqno = 0.
Иначе выходит, что единственная функция, которая у нас есть recv_external вначале читает данные из хранилища, и только в конце записывает
c
14:49
cryshado
In reply to this message
Чтобы контракт задеплоился он должен принять сообщение, и если нужно сделать что то еще
ИК
14:52
Игорь Коняхин
Я по-прежнему про контракт из примера:
https://github.com/ton-blockchain/docs/blob/master/docs/func-task/wallet-code.fc
Там единственная функция recv_external

И в ней есть
var data = begin_parse(get_data());
var stored_seqno = data~load_uint(32);
var public_key = data~load_uint(256);
Но ведь при самом первом вызове у нас ещё ничего не хранится в контракте.

Дальнейшая проверка:
throw_unless(34, check_signature(slice_hash(in_msg), signature, public_key));
не пройдёт и сообщение не примется
c
14:52
cryshado
In reply to this message
Хранится 😃
ИК
14:53
Игорь Коняхин
А откуда оно берётся до первого вызова? :)
P
14:53
Purple
In reply to this message
ты задаешь изначально хранилище еще в фифте
ИК
14:54
Игорь Коняхин
У этого смарт-контракта вроде бы нет дополнительного кода на фифте
14:54
Там дан только один файл
P
14:54
Purple
ну как то его же надо задеплоить
ИК
14:55
Игорь Коняхин
Т.е. для деплоя всё-таки нужно написать ещё код?
P
14:55
Purple
да
c
14:55
cryshado
In reply to this message
да и не мало
P
14:55
Purple
In reply to this message
где ты задаешь хранилище
T
14:56
TON Дев Чат
In reply to this message
Во входящем сообщении есть поле init. Из него могут браться код и данные контракта, если сообщение идет к неинициализированному контракту.
При этом подойдут не любые данные. А именно хэш от init поля - должен совпадать с адресом. Этим обеспечивается авторизация. Т.е. можно посылать деньги например на неинициализированный кошелек зная, что инициализировать его можно только правильным кодом и данными в которых лежит правильный публичный ключ.
Схема init поля описана здесь: https://github.com/ton-blockchain/ton/blob/master/crypto/block/block.tlb#L143
ИК
14:56
Игорь Коняхин
In reply to this message
А почему оно не входит в контракт?
Интуитивно я ожидал бы, что-нибудь типа функции recv_deploy, которая как раз и занимается всей инициализацией
n
14:57
nnnnn888
Всем привет, с чего можно начать изучение FunC?
c
14:58
cryshado
In reply to this message
если бы была бы ещё такая точка входа, это раздувало бы код - мы экономим каждый бит, так как платим за сторедж. Но вы можете сделать себе такую функцию сами, обычно так делают в более сложных контрактах
n
14:58
nnnnn888
In reply to this message
🙏
P
15:02
Purple
?
🏆 TON Contests 28.03.2022 15:00:00
🏆 TON Smart Challenge 1 has begun!

Prize fund: 17,777 TON ($30,000)

Deadline: 18:00, April 7 (UTC).

Level: Suitable for beginners.

Who can participate? Anyone.

Rules and tasks »

Bot for receiving submissions will be announced later in this channel.

We are glad to recommend the toncli toolkit for working with smart contracts created by independent open source developers tvorogme and acadabus.
ИК
15:04
Игорь Коняхин
In reply to this message
Т.е. весь код, который можно не хранить на самом блокчейне, на блокчейне и не хранится?
И деплой, я так понял, решили, что каждый может исполнить у себя локально и отослать готовые данные для инициализации.
Я верно понимаю?

Это не может привести к уязвимостям?
Т.е. автор основного контракта recv_external рассчитывает, что инициализация будет проходить по его задумке, а какой-нибудь хитрый хакер замутит неправильную инициализацию, так что экземпляр-контракта начнёт работу в неправильном состоянии и будет возможна его эксплуатация каким-либо образом
15:14
In reply to this message
Стало чуть яснее
Спасибо
ИК
15:44
Игорь Коняхин
Хранить TON-монеты вне сети нельзя - это же блокчейн, а не наличка :)
15:45
(Или я чего-то не понимаю конкретно о TON? ...)
M
15:45
Mарсель Дюшан
In reply to this message
разве не для этого холодные кошельки?
AT
15:45
Andrey Tvorozhkov
In reply to this message
Все так. Хранить отедельно можно только приватный ключ с доступом к контракту.
T
15:47
TON Дев Чат
In reply to this message
Специализированного и удобного решения для этого сейчас нет.
Сообщение можно генерить с помощью фифт скриптов. А потом можно отправлять с помощью https://toncenter.com/api/v2/#/send/send_boc_sendBoc_post

https://github.com/ton-blockchain/ledger-app-ton (пока еще не принятый в офф каталог) в целом это и делает. Сообщение подписывается на леджере, а отправляется уже из плагина/браузера.
VK
15:53
Vladislav Kibenko
Помню с кем-то тут обсуждал Node для работы с TON напрямую без Http. Нашёл способ как это сделать. Кому интересно - толкайте в личку. Скажу сразу, что есть ограничения ОС. Если найдутся люди которые смогут скомпилить dll (для Windows) и dylib (для Mac) из исходников ton, то буду крайне благодарен, потому что без них не будет работать связка Windows + Node. Сейчас проверил, Ubuntu 19+ + Node вроде как заводится
15:53
За основу брал .so файл, который у ребят в ton-http-api лежит
JF
15:54
John Fyodor
In reply to this message
Мы уже работаем над этим
VK
15:54
Vladislav Kibenko
In reply to this message
Над чем именно? Node + Ton native?
JF
15:54
John Fyodor
(Если речь о Nodejs)
VK
15:54
Vladislav Kibenko
Да, о Node JS
JF
15:55
John Fyodor
In reply to this message
Над взаимодействием с лайтсервером напрямую без хттп посредников
15:55
Напрямую через adnl
VK
15:55
Vladislav Kibenko
In reply to this message
А есть репозиторий или что-то типа того чтобы подписаться?
JF
15:55
John Fyodor
In reply to this message
VK
15:55
Vladislav Kibenko
Благодарю
JF
15:56
John Fyodor
Там в репозитории есть бета версия жс библиотеки
15:56
Она пока не умеет в аднл, но в планах - первая половина апреля
15:56
Сейчас дописываем хэшмапы, после этого переключимся на жс-аднл
VK
15:57
Vladislav Kibenko
In reply to this message
А можешь носом ткнуть туда? Не вижу её
JF
VK
15:57
Vladislav Kibenko
In reply to this message
Спасибо
F
16:00
F
In reply to this message
А скинь тоже ссылку на гитхаб, интересно посмотреть)
VK
16:01
Vladislav Kibenko
In reply to this message
Ещё пока не выкладывал ничего, пока просто способ нашёл, вроде работает. Как только вылью что-то, обязательно сообщу. В рамках этой-следующей недели
JF
16:02
John Fyodor
In reply to this message
В целом достаточно просто взять скомпиленный лайтклаент и обвязать его exec’ами
VK
16:02
Vladislav Kibenko
In reply to this message
А что под лайтклиентом понимается?
JF
16:02
John Fyodor
In reply to this message
16:03
Там аднл и много всякого лишнего мусора
16:03
Ну как мусора, просто лишнего
16:04
In reply to this message
Его можно взять из майтонконтрола
16:04
Он при установке компилит лайтклаент
VK
16:04
Vladislav Kibenko
In reply to this message
Посмотрю потом, спасибо
AZ
16:26
Anton Zlobin
Здравствуйте, зашёл сюда - https://github.com/ton-blockchain/token-contract/tree/main/nft%2Fweb-example
Нажал кнопку, появилась коллекция в тест сети
Вопрос: почему пустая коллекция выдает адрес нфт по индексу
T
16:36
TON Дев Чат
In reply to this message
Это адрес будущего нфт который будет задеплоен. Можно заранее просмотреть адрес для нфт с любым возможным индексом
AZ
16:37
Anton Zlobin
In reply to this message
А, и при деплое указывать адрес из индекса?
ИК
16:38
Игорь Коняхин
In reply to this message
Я верно понимаю, что благодаря тому, что есть external-сообщения, то теоретически можно было бы отказаться от "человеческих/обычных" кошельков (как в Ethereum) и сделать так, чтобы любой кошелёк был тем или иным смарт-контрактом?
P
16:39
Purple
In reply to this message
в тоне каждый кошелек - смарт-контракт и так
T
16:39
TON Дев Чат
In reply to this message
Нет, при деплое в коллекцию передается просто индекс и прочие параметры, коллекция сама задеплоит контракт.
P
16:39
Purple
In reply to this message
то есть чтоб совершить транзакцию, то нужен смарт-контракт
ИК
16:40
Игорь Коняхин
In reply to this message
Аа
Интересно
Тогда понятно, почему там для кошелька нужна обработка recv_external и именно его:)
Спасибо!
T
16:40
TON Дев Чат
In reply to this message
Да, в ТОНе нет first-citizen аккаунтов с какой-то предефайненой логикой. Все аккаунты это смартконтракты. Соответственно каждый смартконтракт сам решает способ авторизации и реплей защиту.
ИК
16:43
Игорь Коняхин
Понял
16:48
На логику работы (кажется) не влияет, но интересно с точки зрения структуры:
Если, скажем, 100 000 человек деплоит один и тот же контракт, байткод этого контракта будет дублироваться в блокчейне 100 000 раз или есть какая-то "база" кодов в блокчейне?

(Т.е. например, при деплое считается хеш кода, и если данный хеш уже присутствует в базе кодов контрактов, хранящейся на блокчейне, то задеплоенный-экземпляр-контракта просто хранит ссылку (256 (или сколько там) бит) на найденный по хешу код, вместо того, чтобы сохранять/дублировать код целиком)
T
17:06
Tolya
In reply to this message
Да, для такого есть библиотеки. Можно хранить расшаренный код ончейн в библиотеках. Для простейших контрактов вроде кошелька это не всегда эффективней, для более сложных, вроде нфт - имеет смысл.
T
17:09
TON Дев Чат
Кроме того стейт шардчейна хранится в ячейке, а ячейки хорошо умеют в дедупликацию.
ИМ
17:11
Илья Михеев
а что за error code 101 в toncli? в [TVM exit codes] прописаны только 0-38
T
17:12
TON Дев Чат
In reply to this message
Это ошибка вызываемая контрактом. Где-то в коде есть throw(101) или throw_if(101, -1)
ИМ
17:13
Илья Михеев
In reply to this message
благодарю
ИК
17:16
Игорь Коняхин
In reply to this message
Ну т.е. верно что:
а) автоматической (хард-функциональности самого блокчейна) по шарению кода нет
б) если 100 000 людей задеплоят себе по простому кошельку, то действительно байткод продуплируется 100 000 раз
?
17:17
А почему не всегда может иметь смысл шарить код?
Адрес блокчейна 256 (?) бит - кажется, заведомо меньше, чем практически любой код
17:17
In reply to this message
Или сам блокчейн вообще автоматически делает дедупликацию всего, не только кода?
T
17:17
Tolya
In reply to this message
+
ИК
17:18
Игорь Коняхин
In reply to this message
Понял
Спасибо
?
17:19
🐈
В toncli кому-то удалось с windows отправлять ton с контракта? Не могу понять, я что-то не так делаю или в windows клиенте ошибка
T
17:19
TON Дев Чат
In reply to this message
Код простых кошельков очень короткий и влезает в одну ячейку. С точки зрения затрат на газ, юзеру выгоднее просто хранить эту ячейку, чем хранить ячейку с хэшом библоитеки и потом загружать библиотеку.
AT
17:19
Andrey Tvorozhkov
In reply to this message
Пути неправильно написаны
17:20
В windows разделитель \ не /
?
17:20
🐈
In reply to this message
./fift/usage?
AT
17:20
Andrey Tvorozhkov
Ага
AZ
17:20
Anton Zlobin
In reply to this message
Еще вопрос: смотрю код контракта, тут

slice calculate_nft_item_address(int workchain, cell state_init)
, а передают в неё

calculate_nft_item_address(0, state_init)

0 это для маиннет? Для тестнет другое значение нужно?
AT
17:20
Andrey Tvorozhkov
In reply to this message
Если что в консоли есть tab, он помогает правильно пути писать)
17:21
(там чето в винде оч сложно это ручками делать)
ИК
17:21
Игорь Коняхин
In reply to this message
👌 Понял
T
17:21
TON Дев Чат
In reply to this message
нет, это id воркчейна. В ТОНе могут быть много чейнов, но сейчас их два. -1 это мастерчейн (он дорогой и не шардится) и бейзчейн 0.
?
17:21
🐈
In reply to this message
Попробовал поменять. Тоже ошибки посыпались (возможно из-за русского имени пользователя). Наверное, пока лучше на линуксе
AT
17:22
Andrey Tvorozhkov
In reply to this message
Неа, 100% работает с русскими именами)
?
17:22
🐈
In reply to this message
Работает-то оно работает. Но вот конкретно это не срабатывает)
17:22
AT
17:23
Andrey Tvorozhkov
In reply to this message
Выглядит как сработало
17:23
)
?
17:23
🐈
Хм, проверю
AZ
17:23
Anton Zlobin
In reply to this message
просто при нажатии Create NFT вылезает транзакция на 0.05 тон, но если попробовать эту нфт получить через
runGetMethod - get_nft_data
то
exit_code: -13
T
17:24
TON Дев Чат
In reply to this message
Эта ошибка означает, что контракт отказывается принимать сообщение. Тестнетовские ноды в этом случае не молчат, а говорят что cannot apply. Мейннетные лайтсервера пока молча принимают и ничего не делают.
AT
17:25
Andrey Tvorozhkov
In reply to this message
А, точно. Что-то мой глаз подвёл)
T
17:25
TON Дев Чат
In reply to this message
Вы пытаетесь вызвать метод у незадеплоеного контракта? Это не сработает, т.к. контракт не задеплоен, значит код его еще не ончейн и при вызове метода - неоткуда взять код гетметода.
AT
17:26
Andrey Tvorozhkov
In reply to this message
Кстати, если это что-то для контеста, то вроде можно и локально погонять контракт через run_tests, а деплоить можно и проще (можно в квикстарт глянуть в доках тонкли)
AZ
17:26
Anton Zlobin
нет, контракт уже есть, и в https://testnet.explorer.tonnft.tools/ его видно
17:26
а вот по адресу нфт там инвалид адрес
?
17:26
🐈
In reply to this message
Не, это для своих разработок
17:27
In reply to this message
Не совсем понятно, что это означает и как исправить)

То есть на тестовой сети не работает и на main работает?
T
17:28
TON Дев Чат
In reply to this message
Эм, вы пытаетесь вызвать метод get_nft_data у коллекции? Это метод nft (отдельного контракта).
17:28
In reply to this message
Нет, на тестовой не работает и сразу ясно, а на мейне не работает и неясно.
?
17:30
🐈
In reply to this message
То есть оно совсем никак не работает и с контракта средства отправить не получится?)
AZ
17:31
Anton Zlobin
In reply to this message
Нет, метод вызываю у нфт. Просто если в Ton NFT Explorer вставить адрес коллекции, он даст информацию, а если адрес нфт то ошибку
T
17:32
TON Дев Чат
In reply to this message
Если послать неправильное сообщение к контракту, то он его не примет. Это правильное поведение. Вопрос в том, на каком этапе можно узнать что он его не примет. В тестнете - на этапе отправки, в мейннете - только обнаружив, что сообщение не принялось через некоторое время.
17:32
In reply to this message
Т.е. нфт сам не задеплоен (хотя его коллекция задеплоена), и у незадеплоеного контракта не вызывается метод?
AZ
17:33
Anton Zlobin
нфт вроде задеплоен, только как это проверить не имею понятия
T
17:33
TON Дев Чат
In reply to this message
Чекнуть адрес в tonscan.org или любом друглм эксплорере https://ton.app/explorers
AZ
17:34
Anton Zlobin
там показывает неактивный. А можно как-то посмотреть информацию о транзакции и узнать что не так?
?
17:34
🐈
In reply to this message
Понял, спасибо. Осталось понять, что не так
ИК
17:37
Игорь Коняхин
Я правильно понимаю, что единственные две функции, которые могут принять транзакцию и изменить внутреннее состояние контракта, это recv_internal и recv_external?

А если нам хочется (по аналогии с обычным программированием) написать разные функции, то нам нужно самим распарсить входящее сообщение, и, например, выполнить нужный код в зависимости от 'op' как описано в:

https://ton.org/docs/#/howto/smart-contract-guidelines?id=internal-messages
T
17:41
TON Дев Чат
In reply to this message
Вообще, есть еще хэндлеры специфические: recv_ticktock, recv_split, recv_merge (которые ловят специальные транзакции). Но к обычным контрактам они не относятся и пока их можно игнорировать.
На второй вопрос - да. Ветвление кода в зависимости от входящего сообщения должно быть в recv_external или recv_internal.
ИМ
17:45
Илья Михеев
а у recv_internal method_id всегда 0?
ИК
17:45
Игорь Коняхин
In reply to this message
Понял, спасибо
А известно почему решили так сделать?
Кажется, что и с точки зрения удобства программирования, и с точки зрения минимального количества операций (быстрее сразу сослаться на нужную функцию, чем сослаться на общую, а затем разбирать случаи), лучше было бы допускать определение разных "транзакционных" функций
G
17:49
Graber
Всем привет. Компилирую ton по этой статье, но выходит ошибка:
17:49
In reply to this message
CMake Error at CMakeLists.txt:5 (project):
Running

'nmake' '-?'

failed with:

Не удается найти указанный файл

-- Configuring incomplete, errors occurred!
See also "C:/Users/sulta/Desktop/TON/build/CMakeFiles/CMakeOutput.log".
17:49
In reply to this message
Помогите плиз
AP
17:49
Andrey Pfau
Какой командой запускаете компиляцию?
G
17:50
Graber
In reply to this message
cmake ../ton в папке build
AT
18:03
Andrey Tvorozhkov
In reply to this message
Да
T
18:04
Tolya
In reply to this message
В других языках вызов функции по имени под капотом устроен точно также, через id функции.

Возможность доступа на низком уровне может быть полезной при написании выскооптимизированных или нетривиальных контрактов.

Учитывая, что оптимизация контрактов реально экономит $ в любых блокчейнах, то доступ на низком уровне лучше иметь, чем не иметь.
ИК
18:11
Игорь Коняхин
In reply to this message
Я понимаю, что тут очень важна оптимизация, но именно с точки зрения оптимизации и не понятно, почему так лучше

> В других языках вызов функции по имени под капотом устроен точно также
Нет же: обычно вызов функции преобразуется на ассемблер в команду, которая сразу прыгает куда надо
call functionAddress
или в простых случаях даже
jump functionAddress

А тут получается, что нужно:
call genericFunctionAddress

а в самой общей функции:
cmp 1, eax
je code1Address
cmp 2, eax
je code2Address
cmp 3, eax
je code3Address
...

Другими словами, добавляются лишние операции CMP и JE, и кажется, что ситуация для блокчейна не отличается
18:13
Другими словами, сделать
jump address
быстрее, чем:
if (address == 1) jump 1;
else if (address == 2) jump 2;
else if (address == 3) jump 3;
else jump 4;
c
18:13
cryshado
In reply to this message
да это не совсем функции, а псведо-точки-входа, просто точка входа одна, а дальше мы там получаем код и понимаем, что делать
T
18:14
Tolya
мы же говорим про вызов функции другого смарт-контракта
18:14
т.к это акторная модель, то мы исходим, что не знаем устройство другого смарт-контракта, а знаем только интерфейс входящих/исходящих сообщений
ИК
18:15
Игорь Коняхин
In reply to this message
Да, я понял, что точка входа одна
Интересно понимать, почему не разрешили произвольное количество точек входа
c
18:17
cryshado
In reply to this message
ну так устроена TVM, никто не мешает ее доработать, и если это будет оправдано, это может пойти в хардфорк например

но в конкретной ситуации маловероятно, да и обычно в контрактах мы не устанавливаем много точек входа, а говорим что-то вроде “если не оно, то иди нафиг”
ИК
18:18
Игорь Коняхин
Ок, отложу разбирательства до лучшего понимания остальных частей
18:27
Более насущный и практичный вопрос
Касательно обработки ошибок, отката транзакций

Насколько я понимаю:
1) Весь блокчейн открыт, т.е. любой человек может про-симулировать результат любой транзакции
2) Таким образом "добропорядочный" человек, увидев, что транзакция не прокатывает (где-то выполняется throw, либо не хватает средств), даже и не станет отправлять её в сеть на выполнение

Не понятно:
3) Если транзакция всё же отправляется в сеть и там она не прокатывает (например, происходит throw), то ... что тогда?
3а) Транзакция игнорируется, как будто бы она и не посылалась
3б) Что-то всё-таки происходит
Интуитивно, мне казалось, что верно "3а", но читая https://ton.org/docs/#/howto/smart-contract-guidelines?id=internal-messages, создаётся ощущение, что всё-таки что-то там происходит

4) Поскольку можно про-симулировать транзакцию, то известна абсолютно точная стоимость её выполнения, т.е. нет смысла закладывать в неё денег "с запасом", а потом ждать часть в качестве возврата, можно сразу заложить ровно нужную сумму

Что из этого верно?
18:28
Вопросы в контексте TON, но ответы для Ethereum также интересны
AT
18:36
Andrey Tvorozhkov
In reply to this message
3) тут 2 варианта, зависит от того какая транзакция. Есть "отскок". Если выполнение транзакции с флагом bounce произошло с ошибкой - транзакция отскочит обратно к отправителю (если он известен :))

3а) изменение стейта аккаунта не происходит, исторические ноды могут хранить информацию об этой транзакции

4) я кстати не знаю что там с количеством прыжков между нодами. Вроде как ты должен заплатить за прыжки сообщения и эту штуку нельзя эмулировать (но тут я вообще не разбираюсь, самому интересно)
ИЯ
18:42
Иса Яхиев
Здравствуйте! Не могу запустить toncli из под win 10. Установил всё как в инструкции, но при вызове toncli в папке ton-win64-binaries такая ошибка:
"File "C:\Users\SkyNET\AppData\Local\Programs\Python\Python310\lib\site-packages\toncli\modules\utils\check_hash.py", line 25, in check_2_libs_actual
global_fift_hashes = get_dir_hashes(os.path.abspath(f"{global_path}/fift-libs"))
File "C:\Users\SkyNET\AppData\Local\Programs\Python\Python310\lib\site-packages\toncli\modules\utils\check_hash.py", line 16, in get_dir_hashes
with open(fname, 'rb', encoding='utf-8') as file:
ValueError: binary mode doesn't take an encoding argument"
ИК
18:44
Игорь Коняхин
In reply to this message
Т.е. пусть цепочка инициаций:
external >
(1) A >
(2) B > ошибка
(3 bounce) A

мы инициируем внешнюю транзакцию в A (1), она выполняется успешно, и инициирует транзакцию в B (2), она завершается с ошибкой

Насколько я понял,
транзакция (1) примется
транзакция (2) откатится, но автоматически инициирует bounce-транзакцию (3) в A, и т.е. таким образом данная ошибка се равно сможет оказать влияние на состояние блокчейна

Так?
AT
18:47
Andrey Tvorozhkov
In reply to this message
Вы уже ранее использовали тонкли. Удалите тонкли папку в %AppData%/../Local/toncli
ИЯ
18:48
Иса Яхиев
In reply to this message
Удалил, теперь так:
PS C:\Users\SkyNET\Downloads\ton-win64-binaries> toncli
INFO: 🥰 ←[32mFirst time run←[0m - i'll create config folder 4you and save some stuff there
INFO: 🤖 Check all executables are installed...
INFO: Adding path to executable func success!
INFO: Adding path to executable fift success!
INFO: Adding path to executable lite-client success!
INFO: 🥰 Feel free to change it if needed: ←[36mC:\Users\SkyNET\AppData\Local\toncli\toncli/config.i ni←[0m
disintar.io NFT owners today say: 🙈 🙉 🙊
ERROR: 🔎 Can't find such command
AT
18:48
Andrey Tvorozhkov
In reply to this message
Все супер
18:48
Идите дальше по гайду :)
ИЯ
18:48
Иса Яхиев
In reply to this message
Да, точно. Спасибо!
ИК
18:57
Игорь Коняхин
В TON ведь нет целых чисел разной длины?
Если мы делаем cs~load_uint(16), то на выходе се равно 257-битный int?
19:00
Я имею в виду, насколько я понимаю, он читает 16 бит, и восстанавливает из них int, но восстановленный int се равно 257-битный
19:01
Т.е. например если:
int a = cs~load_uint(8); ;; 255
int b = cs~load_uint(8); ;; 255
то
a + b ;; 510 - без переполнения
Так?
AP
19:04
Andrey Pfau
в TVM тип Int 257-битный
19:04
load_uint означает прочитать 8 бит и преобразовать их в int257
19:04
поэтому переполнения сложения восмибитных чисел не будет
ИК
19:05
Игорь Коняхин
In reply to this message
Понял, спасибо
NB
19:15
Nicholas Babaev
подскажите пожалуйста, для установки toncli надо установить скачать образ отсюда
как это сделать(в случае с ubuntu например)?
p
19:29
paket
Добрый вечер. Какие равнозначные символы могут быть в адресе кошелька, помимо "-" и "+"?
AP
19:31
Andrew Python
In reply to this message
_ /
вроде всё
p
19:32
paket
In reply to this message
Благодарю
P
19:33
Placeholder
In reply to this message
по ссылке workflow без ссылок на собранные артифакты. Что и как оттуда можно скачать, я тоже не понял. возможно, @tvorogme объяснит, что имелось в виду. мне для работы toncli было достаточно собрать lite-client, func и fift из исходников, никаких образов не скачивал.
NB
19:38
Nicholas Babaev
In reply to this message
Понял, попробую, спасибо!
Действительно странно, поскольку это первый шаг в туториале)
j
20:24
justhocon
Ничего не понял
JF
20:25
John Fyodor
In reply to this message
Добро пожаловать в тон
AT
20:25
Andrey Tvorozhkov
In reply to this message
🤔
20:25
Идея была дать ссылку без привязки к конкретной OC
20:26
Т.е. нужно выбрать ветку мастер и нужную ос, в ней скачать
20:26
Нужно как-то по другому?
20:27
Вроде все ок. Выбираешь свою ось и качаешь
AP
20:27
Andrew Python
In reply to this message
внизу той страницы есть другой туториал, более простой
AT
20:28
Andrey Tvorozhkov
In reply to this message
Ну, кажется, скачать архив и запустить банарники проще, чем компилить исходники. Нет?
AP
20:28
Andrew Python
In reply to this message
:D нет
P
20:31
Placeholder
In reply to this message
Я попробовал понажимать. Могу увидеть, что сборка прошла успешно. А вот увидеть собранный артифакт, доступный для скачивания не могу)
AT
20:34
Andrey Tvorozhkov
In reply to this message
А на гитхаб залогинены?
20:34
Оно дает скачивать только если войден в гх
20:35
Должно быть что-то типа такого)
T
20:39
The Find
Всем привет. Вопрос:
Как я могу получить сид фразу кошелька созданного при помощи toncli, а потом использовать ее в том же toncli. Заранее спасибо
P
20:41
Placeholder
In reply to this message
Да, после логина ссылки появляются. Mea culpa. Но это было неочевидно.)
AT
20:42
Andrey Tvorozhkov
In reply to this message
Спасибо за неочевидность гитхабу. Я допишу в туторе
20:42
In reply to this message
Никак :(
20:42
А, сид фразу
20:42
Не мнемонику
T
20:43
The Find
In reply to this message
Ну... Ту которая из 24 слов, не особо понимаю терминологию
AT
20:44
Andrey Tvorozhkov
In reply to this message
Мнемоника
20:44
Нет, ее не получить
20:44
Сами страдаем
20:45
Как я понял мнемонику из ключа нельзя получить. Только из мнемоники ключ. Хотя я могу ошибаться. Будет круто если кто-то из шаристых поправит.
P
20:47
Purple
нельзя, там же мнемоник шифруется в приват, а приват в паблик
T
20:52
The Find
А через, что тогда можно создавать кошельки и получать их мнемонику? Tonweb нельзя?