10 April 2022
AP
09:05
Andrey Pfau
In reply to this message
toncenter
NN
10:33
Nick Nekilov
In reply to this message
Там в одном месте отрицательное число, а в другом 8000….00. Это одно и то же число, но signed и unsigned.
AP
11:23
Andrey Pfau
In reply to this message
Это unsigned
11:23
Число в битовом представлении одно и то же
11:24
Шарды вообще unsigned должны быть
SK
11:25
Steve Korshakov
signed они во всех конфигах
11:25
Так же как и айпи
AP
11:25
Andrey Pfau
Разве?
11:25
Чет не совсем логично, но ладно
F
11:43
F
In reply to this message
В lite-client как раз так и отображается как unsigned (8000...0000)
x
12:19
xxffwwoqqzz
Можно ли вызвать get-methods смарт-контракта А из смарт-контракта B? Или get-methods доступны только через TON HTTP API как toncenter.com?
SK
12:21
Steve Korshakov
Нет
P
12:21
Placeholder
In reply to this message
Нельзя.
x
12:22
xxffwwoqqzz
спасибо
NA
12:33
Narek Abovyan
In reply to this message
разве?
AP
12:34
Andrey Pfau
In reply to this message
Да
12:34
Там же little endian
NA
12:34
Narek Abovyan
а хммм
NA
12:50
Narek Abovyan
In reply to this message
так 8000000000000000 это хекс вообще
12:51
🤔
AP
12:51
Andrey Pfau
In reply to this message
Ну
NA
12:51
Narek Abovyan
тогда понятно
x
13:22
xxffwwoqqzz
Я пытаюсь сделать что-то на подобии децентрализованных кейсов CS:GO. Хочу сделать так, чтобы только сообщения от NFT items из NFT Collection A (моих кейсов) могли отправлять сообщения к смарт-контракту NFT Collection B (моих вещей).

У меня возникает трудность с тем, чтобы проверять ли сообщение приходит от NFT items коллекции A (моих кейсов), а не от кого-угодно.

Я схематически изобразил алгоритм открытия кейса тут. Оправдано ли такое решение? Если да, то как можно решить проблему, которую я описал выше?
SK
14:03
Steve Korshakov
In reply to this message
совершенно нет смысла все разделять на тысячу контрактов, сделай все в одном
AP
14:03
Andrey Pfau
>бекенд
>JS
14:03
извинити…
АЩ
14:05
Алексей Щербаков
In reply to this message
Что ты понимаешь в современном бэкенде? Щас так модно 🤣
Еще могут монолит на php написать
AP
14:06
Andrey Pfau
In reply to this message
современный бекенд пишут на go/java/kotlin. JS скорее просто чтобы MVP накидать, а не production ready делать
АЩ
14:07
Алексей Щербаков
In reply to this message
Это ирония была же
AP
14:07
Andrey Pfau
извините, не выкупаю шутки. а так да, забавно)
АЩ
14:09
Алексей Щербаков
Из этого же:
Java программисты дороги говорили они. Давайте на Go
И к чему мы пришли?
RB
14:10
Rail Batyrshin
In reply to this message
Что не так?
AP
14:12
Andrey Pfau
In reply to this message
сделали котлин)0)0)
АЩ
14:14
Алексей Щербаков
In reply to this message
Вообще во всем виноват Oracle. Если бы они java развивали как мс развивает шарпы - то мир бы был бы лучше. А так люди постарше боятся использовать котлин из-за судьбы скалы
AP
14:15
Andrey Pfau
ну не знаю сейчас все современные проекты пишут на котлине уже
14:15
есть знакомые из тинькофф банка - у них уже почти весь бекенд на котлине
АЩ
14:17
Алексей Щербаков
Да, но я все равно не понимаю почему нельзя было развивать джаву с самого начала
AP
14:18
Andrey Pfau
фатальным решением было оракл судится с Google за использование (!) Java в андроиде
АЩ
14:18
Алексей Щербаков
Это уже вторая попытка продвинуться в языке из-за патентных ограничений оракла
ИК
14:18
Игорь Коняхин
In reply to this message
Ну ...
1) Typescript очень норм
2) Много библиотек
3) (!) Это язык фронтенда, и на нём можно писать изоморфный код, который будет работать одинаково на сервере и клиенте
AP
14:19
Andrey Pfau
In reply to this message
kotlin тоже можно юзать и на фронте и на беке. Production Ready пример:
jetbrains.space
ИК
14:20
Игорь Коняхин
Есть ли аналог React на Котлин?
AP
14:20
Andrey Pfau
есть react для котлин
14:20
из котлина спокойно можно подключать любые NPM либы и работать с ними
JF
14:21
John Fyodor
In reply to this message
😬😬😬
AP
14:22
Andrey Pfau
ех вот бы писать смартконтракты на котлине……..
14:22
(извините за больные фантазии, меня просто надо уже в дурку)
SK
14:23
Steve Korshakov
In reply to this message
я лично работал над спейс, это круто только в рамках компании где все джависты
x
15:04
xxffwwoqqzz
In reply to this message
Кейсы и вещи сделать в одном контракте? Но если я так сделаю, то это всё равно не даст мне гарантию того, что кейс принадлежит той же коллекции, что и вещи, не так ли?
АЩ
15:08
Алексей Щербаков
Фронт сейчас это уже про другое. Как модульно скомпоновать большой сайт, как его оптимизировать под desktop и mobile так чтобы поддерживать одну версию сайта а не несколько. Как избежать XSS и прочих проблем. Как сделать чтобы было по дизайну и чтобы анимация такая же была и т.д.
Там как таковые алгоритмы не нужны. Главное чтобы сложность была не выше линейной (хрестоматийный пример - алиэкспресс который в своё время ложился при переходе размера корзины через число в районе 20 вроде). Везде где я работал типичные примеры связанных с задержками проблем выполнения задач на фронте связаны с тем, что не сразу удаётся сделать так как нарисовал дизайнер 😃
x
15:12
xxffwwoqqzz
In reply to this message
Я только что нашел то, что искал. Оказывается я могу получить индекс NFT item изнутри смарт-контракта нфт. Потом отправить его сообщением в коллекцию и превратить в адрес. Если адрес, который я получу, не совпадёт с адресом отправителя сообщение, то значит запрос прилетел левый
S
15:27
S
Ребята, Что такое адрес системы? и почему он не активен в течение длительного периода времени? Адресс: Ef8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAU
ИМ
15:33
Илья Михеев
я когда увидел сообщение подумал что это крик помощи а на самом деле это просто адрес такой
S
15:33
S
In reply to this message
Ахахах
AP
15:38
Andrey Pfau
In reply to this message
Ору
АЩ
15:41
Алексей Щербаков
In reply to this message
Вот почему нужно использовать base64. Крики о помощи могут оканчиваться на = только если просящего уже волозят лицом по клавиатуре и помогать уже поздно
15:55
Deleted Account
Коллеги, добрый день!
Поделитесь, пожалуйста, тестовыми койнами EQDy-j_qe62BEWn9t9M4Q9nIM7TaXkCWx4s89sfaPYtA6YKp
OB
15:56
Oleg Baranov
In reply to this message
добрый день, @testgiver_ton_bot
СВ
16:48
Сергей В
Ниче се тут проектов
https://ton.app/nft

А кошельков(программ) же еще нет с поддержкой нфт?
OO
16:55
Oleg Oskolsky via @CryptoTestnetBot
In reply to this message
Чек на 500 TON ($945) для @julia_avde.
ИК
17:04
Игорь Коняхин
Как работает выдача монет в Testnet?
Это же такая же сеть как и главная, не?
Или там прямо специально в самом блокчейне зашита логика, чтобы любому желающему выдавать дене?
P
17:11
Placeholder
In reply to this message
ИК
17:12
Игорь Коняхин
Ну а откуда он берёт деньги?
SK
17:13
Steve Korshakov
Вы кстати можете стейкать тестовые монеты тоже - там что-то типа 500% годовых
ИВ
17:16
Иван Вундермахер
а зарубежные разбработчики/участники коммьюнити, пилят что ни будь на тон?
а то у нас прям волна нфт и зачатки p2e, а там что и где?
ИК
17:21
Игорь Коняхин
In reply to this message
💵💵💵
Наберу себе бесплатных тестовых монет
Застейкаю под 500% годовых
Через 10 лет буду миллиардер
💵💵💵
N
17:25
Neo
ребята привет
17:25
есть инструкция по установки и запуска toncli
17:26
?
ИМ
17:27
Илья Михеев
на гитхабе тонкли
N
17:30
Neo
In reply to this message
ок спасибо )
17:31
Deleted Account
In reply to this message
Благодарю 🙏
KR
20:05
K R
привет ребят .. кто то ставлкивался с подобным при работе валидатора ?
20:06
млин ... медиа нельзя (
20:06
@tondev_eng в английской группе я описал проблему
ИК
20:58
Игорь Коняхин
In reply to this message
Писали, что в FunC только-только добавили слайс-примитивы, и выкатят после контеста.

Я так понимаю пока примитивов ASCII/UTF-8 строчек также нет и нужно самому преобразовать их в hex представление и, используя трюк ^, сгенерировать слайс с соответствующим содержанием. Так?
KR
21:57
K R
какие приемущества - становится ton node
21:58
что это дает ?
21:59
Если валидатор - понятно .. он раьботу делает .. за то коммиссию получает или что то подобное .. а ton node вообще не понятно
22:00
какую роль выполняет ton ноде ?
ИК
22:14
Игорь Коняхин
А у recv_external и recv_internal модификатор impure на что-либо влияет?

Я тут заметил, что в контракте кошелька функция указана как impure:
() recv_external(slice in_msg) impure {
АЩ
22:16
Алексей Щербаков
In reply to this message
Поидее должен. Но не уверен что для синтетических тестов влияет.
Этот модификатор означает что контракт меняет внутреннее состояние
SK
22:18
Steve Korshakov
Влияет
22:19
Без этого стейт не будет меняться и ничего не будет происходить
ИК
22:20
Игорь Коняхин
In reply to this message
Т.е. оптимизатор может выкинуть даже recv_external и recv_internal?
22:20
😲😧😵
22:21
Организаторы просили не менять сигнатуры функций, и в связи с этим вопрос: правильна ли вообще исходная сигнатура, например, в задании 5:
() recv_external (slice in_msg_body) {

(без impure)
B
22:21
Brand
.У меня вопрос. Вот мы хотели делать ERC1363 (Платежные токены), на TON такое можно сделать?
ИК
22:22
Игорь Коняхин
и в задании 4:
() recv_internal(int balance, int msg_value, cell in_msg_full, slice in_msg_body) {
22:22
и 3:
() recv_internal (int balance, int msg_value, cell in_msg_full, slice in_msg_body) {
22:22
и 2:
() recv_internal (int balance, int msg_value, cell in_msg_full, slice in_msg_body) {
22:23
А вот 1, кстати, уже стоял с impure:
() recv_internal(slice in_msg) impure {
22:23
Вопрос: не завалят ли из-за этого все всё?
Хотя, опять же, официально просили не менять сигнатуру
P
22:23
Placeholder
Блет. Ав тестах работает все без impure
SK
22:25
Steve Korshakov
In reply to this message
Не должно
ИК
22:26
Игорь Коняхин
В тестах вложенные функции без "impure" удаляются, а непосредственно вызываемая функция - нет
P
22:26
Placeholder
In reply to this message
с4 сохраняется, сообщения в с5 появляются
ИК
22:33
Игорь Коняхин
Оказалось, что в toncli даже если функция ни разу не вызывается, сам факт её наличия может приводить к мутным ошибкам:

[ 1][t 0][2022-04-10 19:32:26.4653330][Fift.cpp:67]     top: untuple
level 1: [in get-test:] <literal of type 11> @ <literal of type 11> @ untuple **HERE** <literal of type 11> @ 1 - dup 0> { <continuation 000001A5E5D83F30> } { <continuation 000001A5E5D83E40> } cond <literal of type 11> @ <literal of type 11> @ untuple <literal of type 11> @ ...
level 2: drop <literal of type 11> @ <literal of type 11> @ get-test **HERE** run-test <literal of type 11> @ swap <literal of type 11> ! swap <literal of type 11> !
level 3: <while loop condition:> { dup 0> }
level 4: <text interpreter continuation>
[ 1][t 0][2022-04-10 19:32:26.4655432][fift-main.cpp:204] Error interpreting file `C:\Users\nns20\AppData\Local\Temp\tmp7cwyork2.fif`: tmp7cwyork2.fif:195: while:tuple size mismatch
22:37
Оххх
Оказалось, что данная функция просто стояла в месте, которое тайком не устраивало toncli. Передвинул её, и стало работать. Не знаю внутренних деталей, но для пользователя получается очень неинтуитивно и странно.
АЩ
22:38
Алексей Щербаков
Я везде менял и ставил impure
22:39
Но я надеюсь что тесты это игнорируют
11 April 2022
A
01:21
Andrei
In reply to this message
Это не так
01:22
Отсутствие impure не запрещает стейту меняться. Просто FunC будет выкидывать вызовы pure-функций, если их результат не используется. Но первичного вызова recv_internal это не касается
01:26
Но разумеется хорошим тоном будет указывать impure у recv_internal/external
SK
01:36
Steve Korshakov
Разве он не выкинет impure функции тоже? У меня только топлевел работает без impure
a
01:36
aoritus
может кто-то ответить, к адресам кошельков от 2019 года (тестнет грама) никаким образом нельзя получить доступ? есть мнение, что сейчас кошельки не проверяют версию смарт контракта, которая тогда использовалась
A
02:34
Andrei
In reply to this message
Так оно же и есть топлевел 🤔
RT
08:29
R T
In reply to this message
Так дёрни вручную контракт, сделай перевод на новый кошель
s
09:37
sepеzho.copy
привет, есть у кого пример смартконтракта на TON для работы с NFT?
09:38
банально надо сделать трансфер нфт при поступлении тона на контракт
09:38
хочу разобраться в том, как это работает :/
x
09:39
xxffwwoqqzz
In reply to this message
s
09:42
sepеzho.copy
да, в этом стандарте есть трансфер

но он как я понял может просто вызываться владельцем просто как метод

а сделать вызов его при поступлении тона на контракт, есть мысли или примеры как?)
09:49
In reply to this message
в js sdk в целом все описано

можно выкрутиться через фронтенд)
09:49
я думал все это писать прям в смартконтракте надо или еще что
09:49
спасибо
x
09:51
xxffwwoqqzz
In reply to this message
а, при поступлении тона на контракт, да, там нужно самому дописать логику
09:52
In reply to this message
ты хочешь рандомно расспределять нфт в коллекции? типа децентраллизированых пресейлов?
s
09:59
sepеzho.copy
не, нужно минимальную логику сделать сейла нфтшек

думал делать через контракт все это

юзер кидает тоны на контракт, в обратку получает нфт
AT
10:01
Andrey Tvorozhkov
In reply to this message
А что пилите?)
s
10:04
sepеzho.copy
@toncells апку сайт нашу

увидел комсу за размещение нфт коллекции на маркетплейсе и понял, что проще уже продавать у нас на сайте будет)
AT
10:04
Andrey Tvorozhkov
In reply to this message
🤔, у нас 5% и это типа много?)
10:04
(Если что круто что вы сами делаете, мы будем поддерживать сторонний минт)
s
10:05
sepеzho.copy
In reply to this message
там у дестинар 0.4TON + 5% (с продажи) за размещение каждой нфт

а если их 10к, то уже больно становится
10:06
насколько я понял 0.4тон за нфт надо разом заплатить при листинге, а потом при продаже 0.2тон вернется обратно
AT
10:06
Andrey Tvorozhkov
In reply to this message
Да, все так. Но скоро мы снизим цену.

Это из-за подводных камней, на которые вы тоже наступите скоро
VD
10:06
Victor Dm.
Здравствуйте, почему я иногда не могу тоны на адреса, происходит осткок от адреса, у меня клиент пытался вывести но не получилось? Кто подскажет как решить проблему?
s
10:06
sepеzho.copy
In reply to this message
очень надеюсь))
10:07
In reply to this message
просто реально вот коллекция 10к позиций

и получается так, что 4к тона надо заложить под это

за 8к баксов я и сам лучше напишу логику сейла))))
10:08
сижу вот разбираюсь с азов самых
AS
10:09
Aleksandr Shepelev
In reply to this message
а если сам логику напишешь, 0.4 тона отменятся и нетворк станет бесплатным?)
x
10:10
xxffwwoqqzz
In reply to this message
Тут есть пример маркетплейса и покупки нфти, если для маркетплейса нужно

Если нужно сделать так, чтобы пользователь на смарт-контракт коллекции кидал какую-то сумму тона, а ему в ответ одну рандомную, то есть такой классный алгоритм, который позволяет выбрать каждый раз уникальный индекс для нфтишек
s
10:11
sepеzho.copy
In reply to this message
а хер знает, ну есть надежды, что там просто цена транзакции будет хахахах
10:11
из чего эти 0.4тон формируются?
10:11
In reply to this message
о, спасибо большое. Гляну)
F
10:11
F
In reply to this message
Поищите по чату по ключевому слову bounce
AS
10:11
Aleksandr Shepelev
In reply to this message
надежда вещь хорошее :)
10:14
Deleted Account
А разве нельзя сделать контракт для выпуска нфт самими пользователями?
AS
10:15
Aleksandr Shepelev
In reply to this message
закинул деньги и прошел минт одного айтема?
10:15
Deleted Account
In reply to this message
Да
AS
10:15
Aleksandr Shepelev
да можно, только пока писать надо всё :)
можно-то всё :))
10:15
Deleted Account
In reply to this message
А все понял 😄
10:20
Deleted Account
In reply to this message
врятли у вас получится дешевле с учетом возможного переминта. Правда в любом случае удачи.
10:21
любое изучение смартконтрактов, это здорово)
s
10:22
sepеzho.copy
In reply to this message
согласен, дико интересно ковыряться в этом
AT
10:31
Andrey Tvorozhkov
In reply to this message
👍
P
10:33
Placeholder
In reply to this message
Я особо ничего не понимаю в нфт тона, но вроде как, каждый нфт — отдельный смартконтракт. Один смартконтракт может как-то задеплоить другой?
СВ
10:34
Сергей В
In reply to this message
ну он не деплоит прям сам смарт контракт, а "инициалирует" его
10:36
типа деплоится коллекция
потом еще 100 самих айтемов

и когда приходит запрос в коллекцию на создание, она отсылает сообщение одному из итемов с данными для инициализации (типа овнера)
P
10:53
Placeholder
In reply to this message
Все равно не понял. Контракт самого итема кто в итоге деплоит?
СВ
10:53
Сергей В
In reply to this message
тотже кто и коолецию деплоит
x
10:53
xxffwwoqqzz
In reply to this message
смарт-контракт коллекции
СВ
10:58
Сергей В
In reply to this message
коллекция сама деплоит айтем? ну типа до коллекции его в блокчейне даже нет?
LA
11:00
Lazari Andrei
Добрый день, нужна помощь. Как связатся с админом?
x
11:02
xxffwwoqqzz
In reply to this message
Да. Мы сначала деплоим коллекцию. После этого можем отправить к ней (коллекции) сообщение и попросить её задеплоить айтемы
11:04
In reply to this message
Спрашивай тут, что нужно, кто знает, тот поможет
LA
11:06
Lazari Andrei
Сделал обмен через бридже ton/bsc binance не учитывал комиссию монеты ушли а на счету так и не пришли обратно.
F
11:06
F
In reply to this message
СВ
11:28
Сергей В
In reply to this message
message$_ {X:Type} info:CommonMsgInfo
init:(Maybe (Either StateInit ^StateInit))
body:(Either X ^X) = Message X;

так вот что за StateInit, оч круто конечно 🤯
P
11:33
Placeholder
In reply to this message
То есть, контракт коллекции собирает StateInit для контракта айтема, высчитывает адрес айтема и отправляет на этот адрес сообщение со монетой на газ для сторадж фии?
СВ
11:34
Сергей В
In reply to this message
получается что так, да
D
11:47
Dima
In reply to this message
а примеры как использовать есть? И я правильно понимаю, что ты написал интерпретатор смарт-контрактов ТОН на котлин?)
AP
11:49
Andrey Pfau
In reply to this message
Нет, смартконтракты на виртуальной машине выполняются, этого пока нет
D
11:49
Dima
In reply to this message
это я понимаю, но их писать можно на котлин теперь с помощью твоей либы?
AP
11:51
Andrey Pfau
Смартконтракты пишутся на FunC, у меня там только интерпретатор Fift, Adnl клиент и прочие штуки
D
11:54
Dima
In reply to this message
fift разве тоже не для написания смартконтрактов?
AP
11:55
Andrey Pfau
Это скриптовый язык для сборки asm в байтокод
s
11:57
sepеzho.copy
может странный вопрос, но

на тоне есть альтернативы контрактов 721 1155 и 20?
11:57
у меня спросили это, а я ответ не знаю))
СВ
12:01
Сергей В
In reply to this message
Вот тут стандарты которые есть

https://github.com/ton-blockchain/TIPs/issues
ИК
14:40
Игорь Коняхин
Я присоединюсь к вопросам про деплой. tonweb деплоит кошелёк автоматически при первой исходящей транзакции, но хочется понимать, как это работает на самом деле (изнутри).

1) Деплоеер ведь так или иначе должен доказать, что публичный адрес контракта соответствует определённому коду и определённому начальному состоянию?

2) Есть отдельная фаза деплоя?
Нужно высылать отдельное деплой-сообщение?
Или просто к текущему сообщению обычной транзакции добавляется свойство StateInit?

_ split_depth:(Maybe (## 5)) special:(Maybe TickTock)
code:(Maybe ^Cell) data:(Maybe ^Cell)
library:(Maybe ^Cell) = StateInit;

4) А где тут подпись, которая бы подтверждала, что все эти данные действительно идут от владельца приватного ключа?

5) Что за split_depth и special?

6) code - это те зашитые в tonweb, boc-строки скомпилированных контрактов?

7) data - обычное хранилище контракта? Без дополнительных премудростей и мета-полей?
SK
14:46
Steve Korshakov
Деплой это просто сообщение с инитдата
14:46
Подпись не нужна тк проверяется по хешу
14:46
Но контракт должен принять сообщение для успешного деплоя
14:46
(Оно может быть как и внешним так и внутренним)
ИК
14:57
Игорь Коняхин
In reply to this message
Т.е. внешние запросы в блокчейн поступают вообще без каких-либо "вшитых" подписей (которые проверялись бы самим блокчейном, а не контрактом), и блокчейн просто сверяет, что hash(stateInit) == address?
14:58
А кто попало не может задеплоить кошелёк, так как уже сам код смарт-контракта проверяет подпись, и не принимает что попало
15:16
Deleted Account
Друзья, нужны разработчики сайта. Frontend, Backend. Узнать в лс
ИК
15:57
Игорь Коняхин
In reply to this message
А, туплю!
Там же recv_internal принимает абсолютно все сообщения. Т.е. задеплоить может абсолютно любой, но для этого нужно знать начальное состояние, в том числе публичный ключ. При этом, даже зная начальное состояние, злоумышленник не сможет ничего похакерить, потому что любое изменение приведёт к изменению хеша, и он не сойдётся с адресом.
Сейчас верно?
P
16:03
Placeholder
In reply to this message
Вроде, так. https://ton-blockchain.github.io/docs/tblkch.pdf вот тут constructor messages поищи, там описано, как это работает.
AR
16:16
Alexander Ruliov
In reply to this message
Похакерить чисто теоретически можно, найдя неинициализированный кошелёк и миллион лет подбирать такой контракт и данные, чтобы хэш кода&данных сделали коллизию с адресом. Но 256 бит это очень много) куда проще блок в биткоине в соло найти, чем такую коллизию.
ИК
16:17
Игорь Коняхин
Ну так можно (и лучше) и вообще любой кошелёк похакерить, просто подбирая приватный ключ:)
P
17:44
Pepeg
Как-то можно понять, почему external msg not accepted?
Error : 0 : cannot apply external message to current state : External message was not accepted
OB
17:45
Oleg Baranov
In reply to this message
accept_message() может не сделал?
P
17:45
Pepeg
сделал
OB
17:45
Oleg Baranov
а до него не пытаешься что то модифицировать?
AT
17:45
Andrey Tvorozhkov
In reply to this message
В тестнете не дают отправлять сообщения если они не работают)
P
17:45
Pepeg
"TonUtil.fif" include
"Asm.fif" include

"build/contract" =: file-base

file-base +".addr"
load-address
2dup 2constant contract_addr

<b
1 32 u,
b> =: body

<b
b{1000100} s, // wtf?
contract_addr addr,
0 Gram,
b{00} s,
body <s s,
b>

2 boc+>B
saveboc
17:46
ну я избавился от ошибки, что формат не подходит, теперь это 🤔
AT
17:46
Andrey Tvorozhkov
In reply to this message
Советую пересесть на тонкли и sendboc / send —body
P
17:46
Pepeg
ага, я через тонкли делаю
AT
17:46
Andrey Tvorozhkov
Чтобы не мучиться с сохранением бока)
17:46
Аааа
P
17:46
Pepeg
toncli sendboc fift/data_external_msg.fif
AT
17:46
Andrey Tvorozhkov
О, круто
17:46
)
17:47
Локально надо прогонять
17:47
Через ранвм
17:47
И смотреть какая ошибка
17:47
Можно через тесты
P
17:48
Pepeg
ранвм это где?
AT
17:48
Andrey Tvorozhkov
In reply to this message
Легче через тесты
17:48
Точно такое же сообщение составит только в фанкси
P
17:48
Pepeg
окей, спасибо попробую
P
18:07
Pepeg
ext_in_msg_info$10 src:MsgAddressExt dest:MsgAddressInt 
import_fee:Grams = CommonMsgInfo;
ext_out_msg_info$11 src:MsgAddressInt dest:MsgAddressExt
created_lt:uint64 created_at:uint32 = CommonMsgInfo;

а что здесь означают in и out?
18:08
`2.4.7. Log messages, or messages to nowhere.` out - это вот эти логи я так понимаю?
AR
18:19
Alexander Ruliov
In reply to this message
Там не wtf, а 10 — видимо тег ext_in_msg_info, 00 — тег пустого адреса. 10 — тег addr_std, 0 — ничего в anycast)
P
18:21
Pepeg
где вообще про екстернел месседж можно прочитать? Про интернал находил инфу в доках, а про екстернел нет
18:22
поэтому что эти флаги значат - загадка пока что 🤔
18:24
аа, получается, для каждого конструктора нужно указывать его номер?
ext_in_msg_info$10 = 10
ext_out_msg_info$11 = 11 и т.п.
AR
18:25
Alexander Ruliov
Угу, иначе нельзя понять, как парсить, если там может быть несколько конструкторов.
P
18:34
Pepeg
В общем ничего не поменял, и передеплоил, а контракт стал принимать сообщение 🥲
18:38
Оказалось достаточно было в тонскан посмотреть и увидеть, что на счету контракта коины закончились :/
ГЮ
18:39
Глеб Юрьевич
Привет всем, есть ли статьи о разработке и запуске своего жетона?
- С чего начать?
AR
18:42
Alexander Ruliov
Вопрос, что сделать, чтобы на тонскане свой contract type детектился? Хотя, наверное, полезнее чтобы у tonwhales показывало, ибо там код глянуть можно.

Похоже что сейчас шарнуть адрес и чтобы человек мог убедиться, что там именно такой контракт как нужно — это какие-то космические технологии применять нужно.
18:47
Сейчас работу доработаю и хочу кек-контракт задеплоить. Всё что умеет — записывать адрес принимаемого сообщения и текущее время в данные. Если видит, что прошло больше суток — отправляет весь баланс в ответ.
ГЮ
18:49
Глеб Юрьевич
In reply to this message
поделишся примером?
и кратким описанием как поднять в тестнете
AR
18:50
Alexander Ruliov
In reply to this message
Да, скину. Запущу и там и там, солью пару грам на это веселье.

Только в тестнете пусть всего час ждёт))
ГЮ
18:51
Глеб Юрьевич
In reply to this message
Благодарю!
D
18:52
Dmitry
In reply to this message
Пиццу закажи лучше 😁
AR
18:52
Alexander Ruliov
In reply to this message
Через пару лет когда все забудут про этот адрес и скрипты у всех поотваливаются, закажу за них)))
P
19:01
Pepeg
Пополнить баланс можно только через internal msg?
19:01
Хотя вроде логично, что да
ГЮ
19:23
Глеб Юрьевич
In reply to this message
Закажу пиццу тому кто поможет разобраться с чего начать
T
19:24
Tim
Привет всем. А как отправить весь баланс с кошелька? Попробовал sendMode 128, отправилось нормально, но потом сразу же вернулось
AP
19:25
Andrey Pfau
In reply to this message
вы отправили на bounced адрес не инициализированного кошелька
T
19:26
Tim
Спасибо
AR
19:33
Alexander Ruliov
О, блин, это тоже нужно учесть. Достаточно ведь bounce:0 отправить, чтобы сообщение в любом случае не вернулось?
P
19:40
Pepeg
Еще такой вопрос, закинул тонов на свой контракт, и теперь кто-то постоянно дергает external_message, и баланс очень быстро иссекает, это боты какие-то что ли?
Пока без сигнатуры и т.п. сделал, чтобы разобраться что да как
P
19:43
Placeholder
In reply to this message
Ну если без подписи сделал, то ССЗБ
AT
19:44
Andrey Tvorozhkov
In reply to this message
Лол, а скинь адрес?
19:46
ну видно что транза успешная
19:46
но нет исходящих сообщений
19:47
что-то не так с контрактом?
19:47
пишет что неизвестный контракт
NA
19:47
Narek Abovyan
ну видимо он любые экстарналы кушает
SK
19:47
Steve Korshakov
ну да
NA
19:47
Narek Abovyan
там валики их могут дофига раз отправлять одни и те же
P
19:47
Pepeg
да, там просто инкрементор
NA
19:48
Narek Abovyan
учитывай, что receive_external может во-первых дергать кто угодно, а во-вторых одно и то же сообщение может приходить много раз
AT
19:48
Andrey Tvorozhkov
In reply to this message
0_о
NA
19:48
Narek Abovyan
Нужно либо защищаться подписью и seq с таймайтом
19:48
Либо делать через интернал сообщения
SK
19:49
Steve Korshakov
не рекомендую вообще юзать экстерналы они редко нужны
P
19:49
Pepeg
разобраться хотел)
SK
19:49
Steve Korshakov
отправляйте со своих кошельков транзы с деплоем
19:49
можно прямо в терминале QR код генерировать совместимым с Ton Development Wallet и отправлять
АЩ
19:49
Алексей Щербаков
In reply to this message
А какие редкие применения бывают?
SK
19:49
Steve Korshakov
кошелек и мультисиг кошелек
19:50
но мультисиг это дао для бедных
19:50
так что просто только кошельки обычные
AT
19:50
Andrey Tvorozhkov
In reply to this message
😂
19:51
In reply to this message
Я раньше не знал что так детально можно посмотреть транзы у вас в эксплорере. Респект, круто
SK
19:52
Steve Korshakov
👍
ИК
20:06
Игорь Коняхин
@steve_kite Placeholder (не тегиться что-то) @ruliov
Спасибо:)
Почитал https://ton-blockchain.github.io/docs/tblkch.pdf (страницы 27-32), пообдумывал, понял, осознал!
AR
20:27
Alexander Ruliov
Чот я не могу лайтклиентом к тестнету подцепиться :(
20:28
toncli каким-то чудом что-то куда-то задеплоил, а у меня одни Client got error [PosixError : Connection refused : 111 : Error on [fd:5]]
AT
20:28
Andrey Tvorozhkov
In reply to this message
toncli lc
20:28
Что даёт?
AR
20:29
Alexander Ruliov
О, норм коннектит.
20:29
Видимо https://newton-blockchain.github.io/testnet-global.config.json из доки не актуальный или чо.
AT
20:29
Andrey Tvorozhkov
Значит что-то с конфигом не то делали)
AR
20:29
Alexander Ruliov
Да вот только оба скачал и заюзал. Основной работает, тестовый нет)
20:32
Бгг, но и toncli lc --net testnet завершает процесс через полсекунды/секунду. Если успеваю last написать, то реагирует)
AT
20:33
Andrey Tvorozhkov
In reply to this message
У меня так же, я вангую на локацию проживания и провайдера
20:33
И DPI
AR
20:34
Alexander Ruliov
Ну ладно, одну команду выполняет и славно)
P
20:47
Pepeg
Get methods are executed by a stand-alone instance of TVM with the account’s code and data loaded into it.

значит ли это, что я не могу гет метод дернуть в фифт коде?
AT
20:47
Andrey Tvorozhkov
Можешь конечно
20:48
Тут есть концепция
20:48
In reply to this message
Как в том анекдоте, но он неприличный
20:48
In reply to this message
Она заключается в том, что func собирается в fift asm, кттлрй в свою очередь создает клетку (континуэйшн, как модно выражаться)
20:49
Дальше ты эту клетку можешь вызывать в TVM
СВ
20:49
Сергей В
In reply to this message
мне кажется тут имется в виду что если хочешь получить гет метод, то лайт_клиент скачает код дату, и выполнит его локально.

тогда так сообщения обрабатывают валидаторы
AT
20:49
Andrey Tvorozhkov
Что и делают ноды, когда приходит сообщения
20:49
Внутри клетки естт словарь функций
20:49
Ключ - просто число
20:49
В фиыте есть runvm куда ты можешь передать континуэйшн и номер функции
20:49
И вызывать эту самую функцию
20:49
Все оч просто)
20:50
Метод называется runvmx
20:50
Если ты в тонкли чекай пример external code
P
20:50
Pepeg
🤯
AT
20:51
Andrey Tvorozhkov
In reply to this message
Ладно, тут больше подойдёт анекдот про ньюанс
AR
20:56
Alexander Ruliov
Как можно в тестнете понять, успешно ли внутреннее сообщение обработалось?
СВ
20:57
Сергей В
In reply to this message
внутри контракта который его отправил?
AR
20:57
Alexander Ruliov
Не, просто снаружи.
20:58
А то вижу что походу бажину где-то допустил, что не всегда данные меняются, хотя должны от каждого сообщения меняться)
LL
21:29
Leonid Lavrinenko
Всем привет, подскажите какие критерии должны быть соблюдены у приложения для публикации в Ton app?
AS
21:37
Aleksandr Shepelev
In reply to this message
Оно должно существовать))
LL
21:37
Leonid Lavrinenko
In reply to this message
Это понятно)) а чтобы его опубликовали?)
СВ
21:51
Сергей В
А что происходит с контрактом когда его баланс кончается?
Он становится замороженым на какоето время? а потом удаляется?
AT
21:54
Andrey Tvorozhkov
In reply to this message
Да
21:54
Это все конфиг параметры тоже
21:54
freeze_due вроде
21:54
В тлб
СВ
21:57
Сергей В
In reply to this message
это в секундах? :)
21:58
в секундах 3 года получается...
21:58
freeze_due_limit:100000000 delete_due_limit:1000000000
AT
22:00
Andrey Tvorozhkov
Не
22:00
В тонах вроде
22:00
Ченки тлб
AR
22:15
Alexander Ruliov
Хы, я только что принял внутреннее сообщение с 0.0001 TON, оно не смогло отправить сообщение с 64 флагом, плюс я ещё и данных сохранил, в итоге потерял 0.000000004.

Я думал потерять монеты приняв внутреннее сообщение нельзя) или это за сторадж я заплатил столько?
22:29
Хмм, после 32 флага контракт удаляется и в тонскане не видно больше его истории транзакций. Однако передеплоить можно, потешно, но странно :(. Увели все монеты, а куда — фиг его знает)

Вот, например, если тут в source перейти, то у него якобы никогда транзаций не было https://testnet.tonscan.org/tx/10800970000005:EO46P1ehowK3Rl4LTK+HR%2Fq+ibH41DevnGSxwFPTfgU=:EQB75gM9Hf1czhI37aVm8oiBlDe-Gytneq5SK6tbKeL0pleU
AR
22:58
Alexander Ruliov
In reply to this message
Запилил https://github.com/Rulexec/afkton/blob/testnet/func/code.fc

Скинуть на deployment wallet чутка монет, потом просто toncli deploy и готово.

... правда у этого адрес постоянный, а я его уже задеплоил. Но можно в данных докинуть какой-нибудь ерунды в конец)
SK
22:59
Steve Korshakov
In reply to this message
надо таки запилить контракт с таймерами
AR
23:00
Alexander Ruliov
Кривовато сделано, но если отправить https://testnet.tonscan.org/address/kQDKssfuz2cQoVgiExue5i6CcuAHEo3MqAFPV9AiD-OR4dHM сообщение, то если с момента получения предыдущего (на которое газа хватило) прошло меньше часа, то получишь весь баланс. Чекать время можно методом)

Сейчас ещё в мейннете запущу, пара минут))
23:02
INFO: 🧐 Output: [  [ 97881  ]

Бгг, или нельзя методом чекать >_<

Только что ж нормально писало =/. Заюзал external_data проект из toncli, там ок всё =/
AR
23:33
Alexander Ruliov
In reply to this message
И в мейннете теперь есть пара баксов, которые я не могу теперь снять обратно :D

https://github.com/Rulexec/afkton/blob/mainnet/func/code.fc

Вопрос о том, как провалидировать, точно ли я задеплоил именно то, что положил в гитхаб всё ещё открыт)

Спокойной ночи))

UPD: как смогу забрать монеты обратно, стартану v2, который если не через 24 часа отправляешь, а если 24 часа продержался последним. Тогда когда новое сообщение приходит, оно формирует будущий фонд, а тот кто был прошлым, тому всё уходит. А то не интересно)
ИК
23:48
Игорь Коняхин
tonweb контракты кошельков загружает из boc-hex:
options.code = Cell.oneFromBoc("B5EE9C724101010100710000DEFF0020DD2082014C97BA218201339CBAB19F71B0ED44D0D31FD31F31D70BFFE304E0A4F2608308D71820D31FD31FD31FF82313BBF263ED44D0D31FD31FD3FFD15132BAF2A15144BAF2A204F901541055F910F2A3F8009320D74A96D307D402FB00E8D101A4C8CB1FCB1FCBFFC9ED5410BD6DAD");


Эта строка - просто скомпилированный байткод или есть какие-то примудрости?
Какой самый простой способ получить эту строку для своего контракта?
12 April 2022
ИК
02:30
Игорь Коняхин
In reply to this message
Спасибо
04:36
Deleted Account
Кто объяснит что за комиссия такая storage fee? и почему я к примеру отправляю человеку 1 тон, и у него снимается какая-то еще комса в виде fee 0,000000594 (типо такого) ?
SP
07:21
Serge P
In reply to this message
storage_fees - fees corresponding to occupation of some space in chain state by contract

https://ton.org/docs/#/smart-contracts/fees
07:24
всем привет)
https://github.com/ton-blockchain/token-contract/blob/main/nft/nft-collection.fc#L155
зачем тут individual_nft_content ?
приходит в метод, ничего не делает и выходит
F
08:09
F
In reply to this message
Может поможет tonsc.org раздел проверки
ГЮ
08:12
Глеб Юрьевич
In reply to this message
Сейчас буду пробовать поднять.
Кто какое IDE использует, VSCode или что-то от JetBrains сгодится?
AS
08:13
Aleksandr Shepelev
In reply to this message
тут же @andreypfau пилит плагины под intellij )

так что у jb лучше поддержка функов всяких благодаря ему)
P
08:51
Pepeg
Кстати, как настроить идею так, чтобы и автокомплит работал и файлы библиотек (stdlib.fc например) лежали в отдельной папке, а проектные файлы в другой (src/ и lib/)?
08:52
Сейчас stdlib лежит в двух местах func/ и tests/ например
AP
08:53
Andrey Pfau
Пока к сожалению никак, но мы с @tvorogme работаем над интеграцией toncli в Intellij, чтобы все из коробки работало
08:53
точнее автокомплит работает только по соседним файлам в одной папке
P
08:53
Pepeg
окей, ждемс 👍🏻
ИК
15:52
Игорь Коняхин
Иногда ошибки глупее, чем ищешь:
initState.bits.writeBit(true); // code: (Maybe ^Cell)
initState.refs.push(code);

initState.bits.writeBit(true); // data: (Maybe ^Cell)
initState.refs.push(code);
VD
16:55
Victor Dm.
Народ, я как понимаю если кошелек не инициализированный(не активный), то при отправке денег нужно делать isBounceable=false?
ИК
17:07
Игорь Коняхин
Да
17:07
Иначе автоматически вернётся
D
17:35
Daniil
In reply to this message
Frontend - React, vue
Backend - fastify, express, hapi
Mobile - React Native
Desktop - Electron
Gamedev - Electron + ???

Js всемогуч!
17:36
In reply to this message
Осуждаю
SK
17:36
Steve Korshakov
электрон так себе, есть RN для десктопа и в геймдеве обычно юнити какой
D
17:36
Daniil
In reply to this message
Юзал электрон пару раз в связке с React, штука прикольная
V
17:37
Vyacheslav Flok
In reply to this message
Одобряю)
D
17:37
Daniil
In reply to this message
Если надо сделать простое приложение для декстопа, электрона вполне хватит
ГЮ
17:42
Глеб Юрьевич
Геймдев в js пока вывозит только уровень PixiJS
KS
17:59
Kristina Spoleto
Можно добавить в свой канал бота, чтобы пользователи вызывали команду для пополнения кошелька TON?
ГЮ
18:03
Глеб Юрьевич
In reply to this message
Из того что вычитал за пару дней - можно и даже понятно как.
Так же как @cryptobot делает
18:05
In reply to this message
Но сообщения будут светись всем в канале - наверное не удобно, лучше тэтатет
18:07
Парни, а это уже можно использовать?
https://github.com/ton-blockchain/TIPs/issues/74
Не нашёл гитхабе чтоб кто-нить вызвал эти методы в своих проектах
KS
18:21
Kristina Spoleto
NFT ещё не доступны?
R
18:37
R1GO
In reply to this message
Смотря какие.
VK
18:37
Vladimir Kyvalov
Всем привет. Кто какие продукты делает на TON? Мы продуктовая команда, которая хочет делать продукты решающие проблемы и сейчас пытаемся понять куда движется сеть и почему еще так мало DeFi продуктов внутри.


Буду рад со всеми познакомиться)
R
18:37
R1GO
Покупка/продажа пока недоступна. Но некоторые коллекции уже сминтили свои NFT на TON
OB
18:44
Oleg Baranov
подскажите плиз, адресс контракта это всегда хеш его инит стейта?
AT
18:46
Andrey Tvorozhkov
In reply to this message
G
18:46
Gleb
Привет ребята. Есть какие-то курсы на русском по разработке смарт-контрактов на ton ?
DA
18:49
Dima Akulov
In reply to this message
Вы что вообще хотите? Пока на подготовку какого-то лохотрона похоже.
АЩ
18:49
Алексей Щербаков
In reply to this message
Нужно прочитать 3 pdf-ки (на английском конечно же), скачать репозитарий ton и попробовать написать свой смарт контракт. Только так
V
18:49
Vladimir
In reply to this message
😂😂😂
18:50
In reply to this message
статьи только. Здесь в закрепленных сообщениях есть
ГЮ
18:51
Глеб Юрьевич
Инфы обучающей мало в общем ещё
G
18:54
Gleb
Спасибо)
ГЮ
19:31
In reply to this message
а этот пример имеет что-то общее с
https://github.com/ton-blockchain/TIPs/issues/74

- и как же мало инфы о том как это всё поднимать
19:33
то есть, то что в
github.com/ton-blockchain/token-contract
уже задеплоено и можно использовать?
OB
19:38
Oleg Baranov
а есть где то формула как посчитать storage_fee?
T
19:41
Tonox DeFi
In reply to this message
ГЮ
19:49
Глеб Юрьевич
In reply to this message
Благодарю!
а что указывается в token-admin и контент урл?
T
19:50
Tonox DeFi
In reply to this message
19:51
AR
22:52
Alexander Ruliov
In reply to this message
Не нравится мне эта схема. Если бы там хотя бы нотификации о переводах от мастера приходили, было бы чуть лучше, а так я не понимаю, как сделать контракт, который убедился бы, что кто-то перевёл ему токенов, а не просто шутник какой-то нотификацию прислал. Хотя может не понял чего-то.

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

Хотя то что каждый сам следит за стораджем это добро. Лишь бы не нашлось плохих реализаций, которые забьют на четвёртый пункт и, например, у инициализированного кошелька не хватит монет чтобы нотификацию отправить.
ИК
22:59
Игорь Коняхин
А всем также прислали, что решено 5 задач?
Your tentative result is 5 tasks
СВ
22:59
Сергей В
In reply to this message
мне тоже
P
22:59
Placeholder
In reply to this message
Наверное, всем, кто прислал 5 задач, независимо от того, прошли ли они тесты)
23:01
У кого какие score, поделитесь?
AT
23:02
Andrey Tvorozhkov
Интересненько)
23:02
Кто затащил 😈
СВ
23:03
Сергей В
In reply to this message
стыдно жуть :D
AT
23:03
Andrey Tvorozhkov
In reply to this message
Мне кажется любой результат крут)
СВ
23:04
Сергей В
Ну ладно
Я достаю из широких штанин...
16.2927859878211
SA
23:05
Sergey Antonichev
У мну 16.1780545599932
гоняю тесты, Конечно, провалы на 4 и 5. Причем в 4 почему-то валится именно на аутдейтах
Пытаюсь разобраться
AT
23:05
Andrey Tvorozhkov
In reply to this message
Крутяк)
АЩ
23:05
Алексей Щербаков
А тесты кстати выложат?
AT
23:05
Andrey Tvorozhkov
In reply to this message
🔥
23:06
In reply to this message
Так уже
SA
23:06
Sergey Antonichev
In reply to this message
так в сообщении жи
АЩ
23:06
Алексей Щербаков
О спасиб
СВ
23:13
Сергей В
In reply to this message
Неа 3 из 5... налажал, плак плак 😭
AT
23:13
Andrey Tvorozhkov
In reply to this message
Решить хотя бы одну - уже подвиг)
s
23:14
sepеzho.copy
Привет всем!)

У меня возник вопрос с совершением перевода на Nodejs через TonWeb

Интересно то, что этот код работает на мэиннэте. А на тестнете все падает с такой ошибкой (второй скрин)

Есть идеи в чем дело?)

Очень сильно поможете 🙏
23:14
23:14
23:14
ой, скрины отправились отдельно

сори
T
23:16
Tim
Приватный ключ точно в таком формате работает?
SK
23:17
Sergey Khaylov
Всем привет.
Подскажите, есть ли возможность с кошелька v3r1 отправить тоны на кошелек v4r2? Почему-то средства уходят и тут же возвращаются...
s
23:18
sepеzho.copy
ну вот я сгенерил еще одну пару

у меня такие же в целом (ток байты другие)
T
23:18
Tim
Ну так их и записать надо как uint8Array
23:18
А не просто []
s
23:18
sepеzho.copy
аааааа
23:18
нифига
AR
23:19
Alexander Ruliov
In reply to this message
Это точно js?

Выглядит как дважды undefined.
T
23:19
Tim
In reply to this message
У меня вчера такое было из-за того что кошелёк не инициализирован и используется bouncable адрес
s
23:20
sepеzho.copy
In reply to this message
не, это просто консоль лог с ноджс

скрин с консоли
AR
23:20
Alexander Ruliov
А, окей)
SK
23:20
Sergey Khaylov
In reply to this message
кошелек v4 мне тонкипер создал.
А уменя кошелек в v3...И я пытаюсь на него закинуть...
AR
23:21
Alexander Ruliov
In reply to this message
Точно создал? Гляньте в tonscan/tonwhales, активен ли он.
SK
23:21
Sergey Khaylov
неактивен
AR
23:22
Alexander Ruliov
Нужно махинации видимо какие-то с адресом провести, чтобы non-bounceable адрес заюзать)
SK
23:26
Sergey Khaylov
In reply to this message
Спасибо за наводку. Получилось.
Если кому поможет - я взял адрес из кошелька тонкипера, нормализовал (с nonbounce) и перекинул на получившийся адрес.
И средства поступили
23:27
и в тонкипере отобразились
s
23:31
sepеzho.copy
In reply to this message
поменял

теперь ошибок не выкидывает, но

почему-то просто совершает “транзу”, ну делает запрос на тонцентер, а в консоли вижу только “{"@type":"ok","@extra":"1649****944"}

а транзакция не происходит

на тестнете (если через скан смотрет) как небыло ничего, так и нету
T
23:32
Tim
Раз что-то пишет значит что-то отправил) скорее всего не хватает чего-то, либо ключ неправильный.
s
23:32
sepеzho.copy
тона на кошеле с запасом взял
T
23:32
Tim
Я про параметры
23:32
Всё валидным должно быть
s
23:32
sepеzho.copy
хм хм хм
23:33
а, там seqno Null почему-то
T
23:33
Tim
Не почему-то, он всегда null когда его нет.
s
23:35
sepеzho.copy
думал сам 0 будет отдавать
23:35
понял, спасибо)
АС
23:37
Антон Соловьев
Тон коин ещё можно майнить?
AR
23:40
Alexander Ruliov
Я помайнил разок пока спал, понял, что проще купить))))
s
23:43
sepеzho.copy
Могу последний вопрос задать с минтом коллекции на тестнете?))

Скорее всего он такой же простой, но я не втыкаю)

Адреса - просто строчки (например “UQDhmJCTXVeezjphBMlL_d48dOzSAiHSDyoUhEavR-b-95AD”)

Код так же на Nodejs
23:43
23:43
23:44
сделал прям как по доке этой (https://github.com/toncenter/tonweb/blob/master/src/test-nft.js)
T
23:46
Tim
s
23:47
sepеzho.copy
секунду)
AK
23:51
Andrey Kravchenko
Где можно посмотреть что за ошибку выдает func? (return code 3221225725 - 0xC00000FD)
13 April 2022
AT
00:04
Andrey Tvorozhkov
In reply to this message
0_о
SO
00:07
Sash Osh
In reply to this message
у меня toncli run_tests -c contest-5 -o вылетает с такой ошибкой
AT
00:09
Andrey Tvorozhkov
In reply to this message
Мне кажется фокус в винде
00:10
На линуксе работает, а на Винде что-то с памятью может быть
00:10
Там подписи тяжкие
00:10
На подъем
SO
00:10
Sash Osh
In reply to this message
тяжкие для кого и чего?
AT
00:11
Andrey Tvorozhkov
In reply to this message
Файл большой
00:11
Там миллиард ифов
s
00:12
sepеzho.copy
In reply to this message
все заробило, спасибо)
AK
00:12
Andrey Kravchenko
А докер-контейнера ни у кого нет с toncli? А то не проверить что там в 5 задании =)
s
00:12
sepеzho.copy
вот вопрос еще один возник (уже не технический)

мы можем минтить нфт на другие кошели?

т.е. транзу и тд оплатить, а получателя указать другой кошель?
SO
00:12
Sash Osh
In reply to this message
можно wsl
T
00:12
Tim
In reply to this message
Wsl?
s
00:12
sepеzho.copy
вот тут
T
00:13
Tim
In reply to this message
Да
AT
00:15
Andrey Tvorozhkov
In reply to this message
ton-k8s есть в нем есть образ компилющий все исходники тона
00:15
Можешь заюзать
00:16
In reply to this message
Ну или так, да
AK
00:21
Andrey Kravchenko
In reply to this message
Спасибо, поставил сборку, надеюсь без ошибок будет.
OB
00:23
Oleg Baranov
Подскажите, а разве пустой словарь нельзя сохранять через set_data ? Без begin cell, тк он сам cell
AT
00:27
Andrey Tvorozhkov
In reply to this message
Неа
00:27
null ! = cell
OB
00:29
Oleg Baranov
Жаль, единственное место где у меня феил)
00:29
In reply to this message
Спасибо за инфу
s
00:30
sepеzho.copy
вот этот toAddress обязательно должен быть адресом нфт коллекции?

а если я хочу заминтить нфт напрямую на кошель другой
00:30
In reply to this message
непонятно как тогда)
AT
00:30
Andrey Tvorozhkov
In reply to this message
😥
s
00:30
sepеzho.copy
In reply to this message
если вот таким способом, то нфтхи не оч хотят минтится
T
00:30
Tim
itemOwnerAddress
s
00:32
sepеzho.copy
тоже ставил на сторонний

не минтит :/
00:35
или я хз как просмотреть нормально
00:36
если зайти на https://testnet.explorer.tonnft.tools/

и вбить адрес коллекции, то “items” не становится больше при этом всем

но если глянуть тонскан, там отображаются просто какие-то транзакции

нифига не понятно. Можно как-то ввести кошель и увидеть находятся ли на нем нфтхи?
AR
00:41
Alexander Ruliov
In reply to this message
Можно вбить nft'ху и глянуть, находится ли на нём кошель))
s
00:43
sepеzho.copy
In reply to this message
а чтоб ее глянуть, надо знать ее айдишник

а его взять можно из коллекции через nftCollection.getNftItemAddressByIndex(SOMEID)
00:43
но проблема в том, что именно у коллекции не прибавляются id
00:44
In reply to this message
если поменять его на адрес не овнера, а сторонний
T
00:48
Tim
In reply to this message
Значит ничего не задеплоилось
NM
01:49
Nikita Misharin
А у всех тесты к 5 заданию нормально запускаются? Потому что у меня валятся прям на prerare_storage_result
NM
02:23
Nikita Misharin
А ну и странно, что readme просит использовать toncli 0.0.33, а эту версию еще не зарелизи
ИК
02:24
Игорь Коняхин
Ну pip update или как там сработал и обновил до 0.0.33
NM
02:27
Nikita Misharin
In reply to this message
спасибо
ИК
03:01
Игорь Коняхин
In reply to this message
В чате соревнования обсуждали, что на Windows не запускаются
И да, у меня также не запускаются
NM
03:02
Nikita Misharin
In reply to this message
У меня мак, но я пробовал твое решение запускать, такая же ошибка. Так что не уверен, что дело в платформе
AK
03:05
Andrey Kravchenko
In reply to this message
Я не пробовал через wsl, а собрал все через docker - потом скопировал исполняемые файлы func, fift и lite-client в другой контейнер с toncli и все тесты запустились.
ИК
03:07
Игорь Коняхин
In reply to this message
Не понял:
Было два отдельных docker-контейнера?
AK
03:09
Andrey Kravchenko
In reply to this message
Собрал сначала ton-compile-source из репозитория ton-k8s, там используется python 3.7, а для toncli нужен минимум 3.8, поэтому создал второй докер и просто скопировал из первого скомпилированные файлы.
03:09
FROM python:3.8

WORKDIR /var
RUN git clone https://github.com/disintar/toncli.git
RUN cd toncli && pip install -e .

RUN mkdir /var/contest1
WORKDIR /var/contest1

RUN git clone --recursive https://github.com/ton-blockchain/func-contest1-tests.git

WORKDIR /var/contest1/func-contest1-tests
COPY funct-contest1.tar /var/contest1/func-contest1-tests/submitions

COPY --from=ton-base-testnet /usr/local/bin/lite-client /usr/bin/
COPY --from=ton-base-testnet /usr/local/bin/fift /usr/bin/
COPY --from=ton-base-testnet /usr/local/bin/func /usr/bin/
RUN mkdir /usr/lib/fift
ENV FIFTPATH /usr/lib/fift
COPY --from=ton-base-testnet /usr/local/lib/fift/* /usr/lib/lift/
ИК
03:11
Игорь Коняхин
In reply to this message
😮Оо, понял, спасибо!
Можно ещё, пожалуйста, .zip с бинарниками
AK
03:12
Andrey Kravchenko
In reply to this message
С бинарниками fift, func, lite-client?
ИК
03:13
Игорь Коняхин
Да
Ну или вообще со всеми результатами сборки, чтобы наверняка
AK
03:16
Andrey Kravchenko
In reply to this message
Отправил в личку архив
ИК
03:22
Игорь Коняхин
In reply to this message
Превосходно!
С ними всё на WSL сразу заработало
AK
03:23
Andrey Kravchenko
In reply to this message
Отлично, прошли тесты 5 задания? =)
ИК
03:23
Игорь Коняхин
👌 Да
AK
03:25
Andrey Kravchenko
Здорово, а у меня провалились последние тесты, начиная с mass_second_sign_10_77
ИК
03:25
Игорь Коняхин
А из-за чего именно?
AK
03:26
Andrey Kravchenko
10 запросов в минуту и дальше я выкидываю ошибку, комментирую одну строчку с проверкой и все тесты проходят.
ИК
03:26
Игорь Коняхин
Там же можно было не допускать больше 10 запросов в минуту?
03:27
Я просто не успел под это оптимизировать 😅
AK
03:27
Andrey Kravchenko
Вот в этом-то и прикол.. =))
AP
03:28
Andrew Python
А я вырезал эти оптимизации перед отправкой))
03:28
In reply to this message
Вообще очень странно
AK
03:29
Andrey Kravchenko
Надо было тоже не заморачиваться.
AP
03:29
Andrew Python
Можешь показать как реализовано ограничение?
AK
03:31
Andrey Kravchenko
Я сделал счетчик запросов и дату последнего успешного запроса, если счетчик достигает 10, то все остальные запросы выдаются с ошибкой, пока время не будет больше, чем последний успешный + минута:
  if (now() - ctx_last_attempt > 60) {
ctx_cnt_attempts = 0;
}
ctx_cnt_attempts += 1;
throw_if(63, ctx_cnt_attempts > 10);
ctx_last_attempt = now();
AP
03:32
Andrew Python
In reply to this message
Не идеально и тем более должно работать

upd: ненене, ошибка
AK
03:33
Andrey Kravchenko
Сейчас вот думаю, что надо было от первого успешного считать, но все равно бы не прошел тесты 😃
03:33
А то получается, что при отправке 1 запроса с интервалом в 59 секунд, то через 10 минут нельзя будет целую минуту отправлять запросы 😃
ИК
03:34
Игорь Коняхин
In reply to this message
Ну это неправильно на самом деле ...
AP
03:34
Andrew Python
погодите
ИК
03:34
Игорь Коняхин
Представь, что тебе каждые 10 секунд идёт запрос
03:35
Ты при таком коде никогда не сбросишь счётчик до 0
AK
03:35
Andrey Kravchenko
In reply to this message
Сброшу, последний успешный не обновится и будет таймаут в 1 минуту.
03:36
Но то, что он работает не совсем так как надо - это да 😊
AP
03:36
Andrew Python
In reply to this message
тестил так?
AK
03:36
Andrey Kravchenko
In reply to this message
Неа, сейчас попробую
ИК
03:38
Игорь Коняхин
Тут вряд ли можно как-то сильно схитрить
Как ни крути нужно целиком хранить список времён последних 10 запросов
Я в том числе потому и из-за ограниченного времени и не стал это делать
AK
03:39
Andrey Kravchenko
In reply to this message
Вот так вышло
03:40
In reply to this message
Это в идеале, но тут расход газа больше, поэтому решил ограничиться просто счетчиком, как никак некая защита от ddos, но в итоге нужно было отказаться от этого =)
AP
03:40
Andrew Python
In reply to this message
странно, должно работать (но пропускать до 19 запросов в минуту при некоторых условиях)
ИК
03:43
Игорь Коняхин
In reply to this message
Не, не должно
Когда такой контракт загружается до 10 запросов, то в течение минуты он вообще ничего не будет принимать
AK
03:44
Andrey Kravchenko
In reply to this message
Там получается вот такие значения времени:
[mass_first_sign_1] #DEBUG#: s0 = 945
[mass_first_sign_2] #DEBUG#: s0 = 945
[mass_first_sign_3] #DEBUG#: s0 = 945
[mass_second_sign_4] #DEBUG#: s0 = 948
[mass_second_sign_5] #DEBUG#: s0 = 948
[mass_second_sign_6] #DEBUG#: s0 = 948
[mass_second_sign_7_251] #DEBUG#: s0 = 951
[mass_second_sign_8_251] #DEBUG#: s0 = 951
[mass_second_sign_9_77] #DEBUG#: s0 = 1000
[mass_first_cosign_9_77] #DEBUG#: s0 = 1000
[mass_second_sign_10_77] #DEBUG#: s0 = 1000
[mass_second_sign_11_77] #DEBUG#: s0 = 1011
[mass_second_sign_12_77] #DEBUG#: s0 = 1011
[mass_second_sign_13_77] #DEBUG#: s0 = 1011
[mass_second_sign_14_77] #DEBUG#: s0 = 1011
[mass_second_sign_15_77] #DEBUG#: s0 = 1011
[mass_second_sign_16_251] #DEBUG#: s0 = 1011
AP
03:46
Andrew Python
In reply to this message
Тут уже вариант с сохранением времени первой (из 10-ти) транзакции
03:47
При этом можно отправить одну, а через 59 секунд ещё 9 и через секунду ещё 10
03:51
Мб надо считать(и ограничивать) только новые запросы, а не повторы и вторичные.
Или у тебя уже так?
AK
03:52
Andrey Kravchenko
У меня только те запросы, для которых был сделан accept_message
03:53
Т.е. любые запросы, где были ошибки сохранены в этот счетчик не будут.
AP
03:53
Andrew Python
а если это вторичный запрос, который отправляет сообщение?
03:53
может быть его надо пропустить?
AK
03:54
Andrey Kravchenko
В смысле вторичный запрос? От второго владельца?
AP
03:54
Andrew Python
или на чём там падает?
03:54
In reply to this message
дадада
AK
03:54
Andrey Kravchenko
Нет, такие запросы в счетчике не пропускаются.
03:56
Я вообще не спорю, что решение далеко от идеала, но немного обидненько, что из-за него не прошли тесты, лучше бы уж совсем не было бы этих проверок. =)
04:03
В полностью выпиленной проверкой
Task 5: submitted True, accepted True, score: 5.43
С закомментированной строчкой throw_if чуть похуже:
Task 5: submitted True, accepted True, score: 5.41 😃
AP
04:04
Andrew Python
у меня 5.5129687998154076 за пятое...
04:04
без проверки и без очистки словаря
AK
04:05
Andrey Kravchenko
In reply to this message
👍
ИК
04:34
Игорь Коняхин
На самом деле, несмотря на большое эмоциональное вовлечение в соревнование, я обещал себе, что постараюсь быть довольным, если зайдут все пять задач, в не зависимости от трат на газ и результатов. Так что:
https://youtu.be/04854XqcfCY
AP
04:39
Andrew Python
In reply to this message
++ больше всего переживал за непрошедшую пятую. А сейчас уже будь что будет
P
05:43
Pepeg
🤦‍♂️1, 4, 5 тесты прошли, а 2 и 3 нет
в стор грамс зачем-то указал значение
д°
08:57
да ня °°°°° | ~
Ребята, а архитектурно в тоне вообще можно получить как-то все NFT, принадлежащие одному адресу?
AS
08:58
Aleksandr Shepelev
In reply to this message
гениального решения вроде нет, надо парсить конкретные штуки.
примерно как в эфире.
чекать на соответствие стандарту и всё такое и делать большую базу
c
11:06
cryshado
Всем привет. Меня разбанили в чате. (Децентрализованный мир проиграл 🥲🥲🥲)
11:07
In reply to this message
В других блокчейнах это тоже не так просто, либо собирают все эвенты, и потом еще проверяют владение дополнительно при необходимости. Либо есть у ERC721 дополнение, которое позволяет контрактом нфт индексировать все нфт юзера - но оно сжирает газа больше при различных операциях.

Но в эфире и т д, просто парсить(индексировать) эвенты. В тоне пока не научились.

Сейчас наверное, просто, не перебирая весь блокчейн, с текущим стандартом, наверное никак
11:09
In reply to this message
Надо просто переделать стандарт NFT 🥲
11:13
In reply to this message
По хорошему, чтобы сделать нормальные нфт(и не только), нужны изменения в ноде. В текущем легаси коде их почти нереально внести. Так что да
AP
11:19
Andrew Python
Забаньте его обратно. Разбаньте, когда перепишет ноду.
c
11:20
cryshado
In reply to this message
Нинадо. А то никогда не разбанят (
д°
12:08
да ня °°°°° | ~
In reply to this message
А почему банили то?
12:09
Ты просто обычно важные вопросы поднимаешь
c
12:09
cryshado
In reply to this message
За шутку безобидную 🥲
АЩ
12:11
Алексей Щербаков
In reply to this message
Только не говори что про чью-то маму шутил. Это уже лет 15 как непопулярно
д°
12:11
да ня °°°°° | ~
In reply to this message
Цяжко дыхае. Не ну должны ведь быть какие-то решения у нас кроме переписывания ноды.....
12:12
In reply to this message
А то я как не приду сюда с вопросом, в итоге все упирается в несовершенство блохчейна
c
12:14
cryshado
In reply to this message
Тут много что в это упирается. Есть конечно и костыли, но зачастую они не красивые.

Один из таких костылей, это странная и не удобная реализация нфт и токенов. (Да и много чего)
д°
12:15
да ня °°°°° | ~
In reply to this message
Просто быстрое отображение твоих нфт и удобная система оплаты газа с любого контракта это вещи, которые позволяют создавать революционные сервисы
c
12:16
cryshado
In reply to this message
Когда дуров делал блокчейн, тот же DNS кантракт, планировалось что в одном контракте будут храниться тысячи доменов, а не по контракту на каждый домен.

Такой контракт, не допиленный правда, есть в репе тона.
12:16
А домены, ну это почти те же нфт. Владелец -> запись
д°
12:16
да ня °°°°° | ~
И это немного демотивируют, ибо казалось, что тончик панацея в этом плане. (мне промыли мозги мощным маркетингом, простите)
12:16
In reply to this message
А как так вышло, что в итоге сегодня это не так
12:16
In reply to this message
Угу
c
12:17
cryshado
In reply to this message
Дуров блокчейн делал, не доделал. Доделывать никто не стал, «х**к х**к и в продакшн»
12:18
Ну извините, если тон станет гипер популярным, все эти сотни тысяч одинаковых контрактов, это гипер избыточная нагрузка на блокчейн, как минимум
К
12:19
Кирилл
А обновить ведь теоретически возможно на каждой ноде код? Я не особо шарю
T
12:19
TON Дев Чат
In reply to this message
Лучше избыточная нагрузка которая масштабируется до бесконечности, чем оптимальная, но которая встанет когда колво юзеров превысит критическое значение.
д°
12:19
да ня °°°°° | ~
In reply to this message
А почему он не доделывает его сейчас (при том, что тележка балует нас пасхалками)¿ ГОСПОДА ИНСАЙДЕРЫ, НАПИШИТЕ ПОЖАЛУЙСТА ДУРОВУ, ПЛАКАЛА ПОЛОВИНА КОМЬЮНИТИ
c
12:20
cryshado
In reply to this message
Можно сделать масштабируемость, не на таком костыльном уровне. Просто для этого нужно глобальное «допиливание» блокчейна
12:21
In reply to this message
Если дуров возьмется за TON, начнет опять SEC бухтеть и «запретят» везде тон. Но это тема не для этого чата наверное, не хочу бан за оффтоп
T
12:21
TON Дев Чат
In reply to this message
Ты просто не думал об этом больше 10 минут. Твой аргумент "ну как-то можно это сделать" (на самом деле нельзя, под капотом твои решения упираются в то, что контракт должен иметь доступ к контексту из разных шардов)
c
12:21
cryshado
In reply to this message
Плавный процесс, зачастую не быстрый
д°
12:22
да ня °°°°° | ~
In reply to this message
Мировое соглашение ведь кончается через годик другой, но ты прав, оффтоп не нужно поднимать
c
12:22
cryshado
In reply to this message
Я думал, и не 10 минут, уже какой день думаю, и пытаюсь накопать решение. Оправдывать костыли нельзя так…
д°
12:24
да ня °°°°° | ~
In reply to this message
Но нам ведь тогда нужно как-то делать альтернативные архитектуры реализации простых вещей. Мы ведь не можем просто сказать разработчикам - «Извините, этот блокчейн не для этого»
c
12:24
cryshado
In reply to this message
Это не избыточная нагрузка, а сверх избыточная. Представьте если в тоне будет только одних нфт, как в эфире, это не учитывая, что другие контракты работать будут по такой же «распределенной» схеме
T
12:25
TON Дев Чат
В общем, остальным товарищам в чате, не стоит сходу демотивироваться криками "СЛАЖНА! ДАВАЙ ПО НОВОЙ". Не утверждается, что все идеально сделано, критика, разумеется, допустима, с другой стороны "чет криво, мне не нравится" - не критика.
Бесконечная масштбируемость - небесплатное удовольствие. Ее цена - акторная модель, при переходе на которую требуется переосмыслить подходы (прямой перенос эфирного кода очень часто не сработает)
c
12:26
cryshado
In reply to this message
Там сложно что-то делать, нет внятной документации по коду, а весь код ноды это «набросок» на плюсах. Там пока в одной мелкой детали разобраться, можно убить кучу времени.

Код абсолютно не поддерживаемый, и вряд ли кто-то полноценно будет его поддерживать.

Также такой код повышает риск zero-day уязвимостей
T
12:27
TON Дев Чат
In reply to this message
И чего? Данные дедуплицируются автоматически. Потребление газа даже в х10 оправдано, если это позволит весь этот газ распределить по 10+ группам валидаторов, а вот если вся нагрузка неизбежно будет падать на одну группу валидаторов что станет бутылочным горлышком, то зачем это все?
c
12:27
cryshado
In reply to this message
Никто и не говорит, о прямом переносе эфирного кода. Это уже от крайности к крайности, нужно искать оптимальную середину
12:28
In reply to this message
А не возможно сделать, тоже самое нативно на уровне блокчейна, без кучи контрактов?
12:28
Я не говорю даже про какие то «ограничение в куске кода», или ограничения ноды. Я про переосмысление, переделывание некоторых вещей, для реализации более оптимального варианта
T
12:28
Tim
In reply to this message
Сделай, в чем проблема?
c
12:29
cryshado
CP
12:29
Catchain Protocol
In reply to this message
….. ………
c
12:29
cryshado
In reply to this message
Если я, или кто-то сделает, или скорее группа разработчиков, они пойдут на 4 стороны. Никто такое обновление не примет, увы, даже если его признает сообщество
12:30
Это обновления уровня, TON2.0
T
12:30
Tim
Так в тон оно и не пойдёт уже, я про свой блокчейн
AP
12:30
Andrey Pfau
In reply to this message
Чтобы получился эверскейл какой нибудь?)
F
12:31
F
In reply to this message
Сделай хардфорк, если твоя версия будет лучше, то все будут юзать ее)
Вопрос желания)
T
12:31
TON Дев Чат
In reply to this message
эм, на каждую версию нфт контракта менять консенсусную ноду и добавлять интернал сущности?
Мы лучше пойдет как сейчас.К слову теоретически можно как в битке - если нода хочет она для предефайненого списка контрактов может не твм запускать, а сразу плюсовый обработчик (который оптимальнее). Плюс такого подхода - что каждая нода может делать это самостоятельно, оптимизированная и неоптимизированная нода будут в консенсусе.
AP
12:32
Andrey Pfau
In reply to this message
Вы изобрели аналог JIT в JVM
c
12:32
cryshado
In reply to this message
Может к этому и дойдет когда-то , это не быстрая задача, и задача не для одного человека, а для группы разработчиков.

Просто проблемы, которые уже есть важно поднимать, и говорить о них. А то люди будут думать, о костылях, как о панацее
СВ
12:33
Сергей В
In reply to this message
У нас есть мастерчейн, воркчейн, народ требует NFT чейн! 😁
T
12:33
Tim
Да какая разница что получится. Техническая часть переоценена. Если есть возможность решить задачу - этого достаточно. А костылями называть можно бесконечно решения
AP
12:33
Andrey Pfau
In reply to this message
Мастерчейн синхронизирует воркчейны. Не правильно нфт-чейн сравнивать с ними
А
12:33
Андрей
In reply to this message
+
c
12:34
cryshado
In reply to this message
Да зачем на каждую версию нфт, пожалуйста опять не бегайте к крайностям.

Можно сделать более менее универсальное, подход который сейчас юзается в нфт, юзается и будет юзаться много где. Его нужно просто заменить
AT
12:35
Andrey Tvorozhkov
😔
c
12:35
cryshado
In reply to this message
Все немного сложнее, это не пару месяцев работы даже. Поднятие проблем, привлекает разработчиков к проблеме - вместе сообщество сможет предложить альтернативы
А
12:35
Андрей
In reply to this message
Замени, сделай.
https://t.me/tondev/65901
AP
12:35
Andrey Pfau
In reply to this message
Какие предложения? Лучше по пунктам расписать почему сделать надо то-то то-то
T
12:36
Tim
In reply to this message
Очевидные предложения. Убрать как сейчас. Сделать хорошо.
AP
12:36
Andrey Pfau
А хорошо это как?)
T
12:36
TON Дев Чат
In reply to this message
Если есть продуманное решение без handwaving'а важных деталей - это всегда интересно. Код ноды не высечен в камне и будет меняться и обновляться. Даже если легаси не позволит обновить basechain, возможность сделать чейн с новыми правилами имеется.
F
12:36
F
In reply to this message
+
c
12:36
cryshado
In reply to this message
Нативная масштабируемость контрактов, без их не нативного «размножения». Переработка стоимости работы с хешмапами. Возможно потребуется что-то еще, но это и так большие задачи
А
12:37
Андрей
In reply to this message
Ок, как этого достичь?
AP
12:37
Andrey Pfau
In reply to this message
Что значит нативная масштабируемость? И почему сейчас это не нативно?
c
12:38
cryshado
In reply to this message
То что, сотни тысяч пользователей постоянно деплоятт сотни тысяч контрактов, это звучит разумно?
AP
12:39
Andrey Pfau
In reply to this message
Я не спрашиваю в чем проблема сейчас. Я спрашиваю про конкретное решение этой задачи
12:39
Сейчас да, пока так
12:39
А как надо сделать лучше?
T
12:39
Tim
Раз уж начали про тон, в тоне есть Роллбек чейна транзакций? Если вызов контракта вызывает внутри ещё контракт и ещё и на 5 уровне ошибка, можно сделать чтобы стейт выше откатился?
AT
12:40
Andrey Tvorozhkov
In reply to this message
Баунс
c
12:40
cryshado
In reply to this message
Нет нельзя, можно только в рамках одного контракта в цепочке out actions
12:40
In reply to this message
Это не роллбек
AT
12:40
Andrey Tvorozhkov
In reply to this message
Ну ты же можешь через баунс роллбек реализовать 🤔
c
12:41
cryshado
In reply to this message
Ну это контракты в цепочке с позади, должны уметь реагировать на баусн. А еще везде должно хватить газа и т д и т п
12:41
Нативно сделать нельзя
T
12:42
Tim
Дефай нам не светит в общем
AT
12:42
Andrey Tvorozhkov
In reply to this message
Почему?
12:43
Все светит
c
12:43
cryshado
In reply to this message
Да у нас по 4 контракта на одну торговую пару DEX собрались делать
12:43
Там че то накрутят с обработкой интерналов, и будет жрать газа как паровоз
T
12:43
Tim
In reply to this message
Как ты сделаешь динамический свап через 5 пар?
СВ
12:43
Сергей В
Ну так потмоу что чейн асинхронный, весь веб порезаный на (микро)сервисы живет без единых транзакций в базу данных, обходятся же
AT
12:44
Andrey Tvorozhkov
In reply to this message
@steve_kite а что вы там с этим придумали?
c
12:44
cryshado
In reply to this message
Ну будут контракты, знать, о том, что следущий контракт может им послать сообщение обоатно: алло я ошибка(баунс) и т д. Как вот выше говорили
12:44
Что-то сделают, может еще что-то придумают
AP
12:50
Andrey Pfau
Ответа не последовало
AP
12:50
Andrey Pfau
c
cryshado 13.04.2022 12:38:25
То что, сотни тысяч пользователей постоянно деплоятт сотни тысяч контрактов, это звучит разумно?
AP
12:50
Andrey Pfau
AP
Andrey Pfau 13.04.2022 12:39:02
Я не спрашиваю в чем проблема сейчас. Я спрашиваю про конкретное решение этой задачи
12:50
Сейчас да, пока так
12:50
А как надо сделать лучше?
AR
12:50
Alexander Ruliov
Мне лично кажется, что нужно продумать, как задеплоив контракт он мог создать себе extra_currencies на балансе, которые затем кому-то переводить и жизнь сразу наладилась бы)

Вроде "пусть id валюты будет хэш адреса контракта, который за неё отвечает, плюс есть метод по расхешированию обратно".
T
12:51
Tim
Тогда изменение одного баланса будет перезаписывать все?
AP
12:52
Andrey Pfau
In reply to this message
Расхешированию? Что это значит?
AR
12:52
Alexander Ruliov
In reply to this message
Тогда баланс бы хранился отдельно на всех кошельках и по сути "физически" на кошельках, а не в табличке контракта (и перевод токенов/nft был бы обычным сообщением где говоришь "перевожу токены"). А контракт бы только минтингом управлял.
12:53
In reply to this message
Что у блокчейна есть табличка хеш — адрес, так же как с клетками её хеш показывает на её данные.
c
12:57
cryshado
In reply to this message
Он не может сейчас это сделать, так как нет контракта минтера. Для этого надо его написать, а валикам проголосовать за новый конфиг сети
AR
12:57
Alexander Ruliov
In reply to this message
Звучит как проблема, у которой есть решение :)
c
12:58
cryshado
In reply to this message
Ну голосование за новый конфиг с новым «системным» контрактом масштабная задача
12:59
Легче это было перед запуском маиннета сделать
AR
12:59
Alexander Ruliov
Легче, но тогда ничего бы не было и я бы тут не писал ничего)))
T
13:00
Tim
А почему Минтер должен быть системный? Почему нельзя сделать walletv5 который позволяет любому адресу записать себе + баланс на свой хеш?
А
13:00
Андрей
In reply to this message
Насколько видно по его сообщениям он и не знает как это сделать, только поговорить что этого нету
AR
13:00
Alexander Ruliov
Любые продукты делаются переговорами и договорённостями, то что тут нужен консенсус валидаторов это нормально)
ИМ
13:01
Илья Михеев
In reply to this message
ну, давайте токсик тут разводить не будем
А
13:02
Андрей
In reply to this message
Не я это начал. Я только за что бы не разводить токсичность в чате, поэтому предлагаю что то критикуя - предлагать
P
13:04
Placeholder
А какая проблема обсуждается? Что сложно увидеть, какие nft принадлежат аккаунту, или уже что-то другое?
AR
13:06
Alexander Ruliov
In reply to this message
Что комиссии не такие большие как в эфире.
P
13:14
Placeholder
В тоне кошельки разные есть, в v4 есть даже какие-то плагины. Нельзя сделать так, чтобы нфт контракт при смене владельца отправлял кошельку нового владельца сообщение "я твой теперь навеки", а кошельку предыдущего "извини, дело не тебе, дело во мне", а кошелек, соответственно, добавлял/удалял адрес соответствующего токена? 🤔
AP
13:19
Andrey Pfau
In reply to this message
Ору
P
13:19
Placeholder
In reply to this message
П*дорбота добавьте еще))
P
13:22
Purple
In reply to this message
гыг
w
13:25
witkoil.ton
А как сейчас с разработкой P2E на тоне?
13:27
Есть уже разработанный стандарт для контрактов?
VD
13:32
Victor Dm.
У меня вопрос народ, можно как то получать hash и lt после отправки транзакций, но я имею веду вот сделал send и получаю ответ ok, и цифры, и не понятно, не ошибки, не данных о транзакций и так далее?
AR
13:35
Alexander Ruliov
In reply to this message
Если сделать такой контракт, то почему бы и нет.
c
13:46
cryshado
In reply to this message
V4 это излишний функционал кошелька, для обеспечения максимальной безопасности и оптимизации, контракт кошелька должен быть максимально минимальным и примитивным. Или вообще на уровне ноды можно добавить аккаунты
13:49
In reply to this message
Экстра каренсис работают на уровне блокчейна, это нативная технология
13:50
In reply to this message
А подобно как ты написал, шяс и делают токены
13:50
Это тоже костыль, у нас по умолчанию любой контракт хранит хешмапу с балансами extra токенов на уровне блокчена
P
13:50
Placeholder
In reply to this message
Никто не заставляет его использовать, вроде. Используй "максимально минимальный". А что такое "аккаунты на уровне ноды"?
c
13:51
cryshado
In reply to this message
Как в солане, или других блокчейнах. Когда кошелек, это не контракт, чтобы снизить нагрузку на блокчейн. Примитивные кошельки можно сделать на уровне блокчейна, а расширенные уже могут люди юзать по желанию
AR
14:09
Alexander Ruliov
А есть дизассембер у кого, или самому писать нужно?)
AT
14:10
Andrey Tvorozhkov
In reply to this message
Есть)
ИК
15:45
Игорь Коняхин
In reply to this message
Может кто-нибудь пояснить фишку с отдельными контрактами на каждый NFT?
Насколько я понимаю, любое успешное выполнение смарт-контракта должно быть атомарным, т.е. если одновременно поступает несколько запросов, то результат выполнения должен быть такой, как если бы они выполнялись последовательно в каком-нибудь порядке.
И основной затык в том, что если много людей захотят менять NFT через один контракт, то все эти обмены должны будут произойти последовательно.
Верно?
T
15:46
Tolya
In reply to this message
ИК
15:51
Игорь Коняхин
In reply to this message
Спасибо, прочитаю
زز
15:55
زہر زابروڈنی
Привет
P
16:04
Pepeg
{
"ok": false,
"error": "render_tvm_element() missing 2 required positional arguments: 'element_type' and 'element'",
"code": 503
}

тэкс, это траблы тонцентра?
AT
16:05
Andrey Tvorozhkov
In reply to this message
Нет, ваши) Не указали 2 поля как написано
ИК
16:55
Игорь Коняхин
In reply to this message
@mahoozed
Тесты на Typescript 👍
AT
16:56
Andrey Tvorozhkov
In reply to this message
🙈
16:56
In reply to this message
В примере контеста есть
16:56
Но там кодогенерация на фифте
16:56
В фанкси
VT
17:17
Vladislav Torbaev
Всем привет, кто может коротко фундаментально проконсультировать по поводу разработки проектов в TON

На чём делать БЭК и ФРОНТ?
ГЮ
17:31
Глеб Юрьевич
Можно на коленке, а можно на js, котлине, голанге , сях… на чём умеете ) наверное можно и на экселе
ИМ
17:31
Илья Михеев
In reply to this message
На экселе и фронт не надо делать
TI
17:55
Timur Iskakov
Что там с аппаратным кошельком ledger? Как я понимаю, код уже готов и лежит на гитхабе, а команда Леджера апрувить его уже как несколько месяцев не торопится. Может сейчас подходящий момент лишний раз напомнить о себе, зная что сейчас проходит NFT Paris week и что их главный офис располагается в Париже?
AR
18:03
Alexander Ruliov
In reply to this message
И бэк тоже, если он в блокчейне)
c
18:04
cryshado
In reply to this message
Можно на intel assembly language
18:04
🥲
TK
18:55
Till Koch
Всем добрый вечер.
коллеги, подскажите пожалуйста, кто знает где (в каком файле) момент генерации первых монет TON (собственно, изначальных Toncoin)? я же правильно понимаю, это был премайнинг на старте сети (кажется вначале это была testnet) и уже только после этого из отправили на смарт-контракты?
F
19:00
F
In reply to this message
Нет, при старте POS сети происходит инициализация монет.
TK
19:00
Till Koch
In reply to this message
любопытно, а в каком файле этот момент инициализации POS-сети? сможете подсказать?
F
19:07
F
In reply to this message
Я не поднимал с нуля приватную сеть, может другие подскажут кто имел такой опыт (точно знаю что сенсей @tvorogme такое делал)

Возможно инициализация первых монет происходит в этом файле:
https://github.com/EmelyanenkoK/ton-private-network/blob/master/gen-zerostate.fif
TK
19:09
Till Koch
In reply to this message
спасибо большое! проверю, сели что, буду писать сенсею :)
AT
19:11
Andrey Tvorozhkov
In reply to this message
Да, это так. Ещё можно посмотреть ton-k8s там в компоузе поднимается своя сеть полностью
19:11
Ну и в кубере, но это только нам интересно
F
19:13
F
In reply to this message
+
TK
19:14
Till Koch
да, судя по всему, тут https://github.com/EmelyanenkoK/ton-private-network/blob/master/gen-zerostate.fif
при инициализации сети все параметры задавались. в том числе первые монеты и закидывались на так называемый main-walet
AT
19:15
Andrey Tvorozhkov
In reply to this message
Оно не так просто как кажется
19:15
Вот думаешь фифт, а запускается не фифтом 😀
TK
19:15
Till Koch
In reply to this message
в кубере? это где? ( извините, я новичок в ТОНе, только только начинаю грызть гранит науки, так сказать)
AT
19:15
Andrey Tvorozhkov
In reply to this message
Kubernetes, это не относится к тону
TK
19:16
Till Koch
In reply to this message
а заем тогда на фифте сделано? 😳
19:16
In reply to this message
а, тьфу... туплю.... с 5 утра на ногах 🤦🏻‍♂️ сорри
AT
19:17
Andrey Tvorozhkov
In reply to this message
Возможно если есть желание разобраться - легче начать с базовых смартов. Покорить зеростейт будет сложно без знаний того, что в смартах происходит
TK
19:19
Till Koch
логично... какие смарты считаются базовыми?
все эти? https://github.com/newton-blockchain/ton/tree/master/crypto/smartcont
AT
19:22
Andrey Tvorozhkov
In reply to this message
Если ещё ничего не смотрели - легче начать с тонкли. Там есть quick start.

Можно поэкспериментировать с func / fift.

Если хочется прямо в зеростейт погружаться - нужно читать вайтпейперы.
19:23
In reply to this message
Эти базовые, но боюсь будет сложновато сразу понять что происходит. (мне было тяжко)
AP
19:27
Andrey Pfau
@tvorogme когда бинари чтобы я мог в intellij в один клик его устанавливать???
19:29
Слушай я вайтпейпер уже раз 10 фулл читал. И каждый раз узнаю что-то новое при повторном прочтении)
TK
19:29
Till Koch
In reply to this message
вайтпейперы уже читаю, просто они одним махом и все сразу в голове почему-то не помещаются 😂 поэтому периодически просто в код хочется смотреть, для переключения задач, так сказать
сейчас хочу понять, откуда взялись первые монеты и как они "ходят" по сети, т.е. увидеть механизм реализации транзакций в коде
19:29
In reply to this message
сейчас посмотрю тонкли
QS
19:30
Qin Shi
Добрый вечер, есть ли тут разработчики которые за оплату сделают тон контракт для токена?
AT
19:34
Andrey Tvorozhkov
In reply to this message
Я честное слово очень хочу эту штуку. Но я работаю над дисинтаром в нереальный овер фулл тайм, чтобы у нашего проекта было очень далекое будущее и очень хорошие инвесторы.

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

Кажется вариант, когда нам хватает денег на наше развитие в долгосрочной перспективе (и когда мы становимся миллиардной компанией) мне нравится больше и для общества полезнее. Тем более мы планируем еще несколько крутых продуктов запустить для разработчиков.

Ну или коротко: как только будет время - сяду и сделаю. Не ругай, пожалуйста 🥺
AP
19:35
Andrey Pfau
Ладно пока накостылю интеграцию
19:35
Но в релиз по хорошему надо сделать чтобы из коробки все работало
T
19:36
Tim
In reply to this message
Не правильно ты дядя Фёдор пишешь сделайте пулл реквест
AT
19:42
Andrey Tvorozhkov
In reply to this message
😂
19:45
Deleted Account
In reply to this message
Интересно что это я сам открытл
19:48
👋
19:48
Привет всем привет
AR
19:54
Alexander Ruliov
Заглянул в англоязычный чат, вопрос возник по общему количеству монет. Их количество может только уменьшаться, или валидаторам могут выдаваться новые? Или общий объём фиксирован и перетекает валидаторам?
Р
19:55
Русский TON
In reply to this message
+0.6% в год от общей эмиссии.
AP
19:55
Andrey Pfau
In reply to this message
У тона инфляционная модель
AR
19:58
Alexander Ruliov
In reply to this message
Спасибо, звучит неплохо.
19:59
Deleted Account
In reply to this message
Неплохо
AR
20:00
Alexander Ruliov
In reply to this message
-
AP
20:02
Andrey Pfau
In reply to this message
А чё так можно было?
D
20:05
DmitriyO4eshuel
Ребята всем привет спасайте , у меня не стандартная проблема и как ее решить ума не приложу , я хотел отправить токены TON с одного метамаска на другой на новый , и что бы добавить токен в новый метомаск я скопировал адрес контрака на коинмаркеткепе ( сеть bsc) , и по запарке отправил токены на адрес контракта , а не на метомаск
VA
20:06
Vlad Arbatov
всем привет, не хочу захламлять чат, но (придётся) очень нужно написать пару в теории несложных контрактов на тоне, ищу разработчика. пишите в личку, если сможете помочь. за деньги) спасибо и не бейте 🙏
D
20:09
DmitriyO4eshuel
Можно отменить транзакцию ?
ИМ
20:13
Илья Михеев
Нет
AR
20:14
Alexander Ruliov
In reply to this message
Можно, собрав консенсус 😂

Прям представляю картину, открываешь код валидатора, а там "если id транзакции такой вот, то её нет".
К
20:50
Кирилл
Скажите, пожалуйста, как новичку, который вообще раньше не интересовался блокчейном, если сначала изучить технолгию Ethereum, а потом перейти к тону, сильно ли придется переучиваться? На сколько это разные технологии?
c
20:56
cryshado
In reply to this message
Сильно, максимально разные
20:57
но легче начать с эфира конечно
20:57
намного легче
К
21:04
Кирилл
Спасибо
AP
21:45
Alexander Popov 💎
Добрый вечер, использовал мост TON - BSC. В итоге коины списались, пришело сообщение ОК, а в metamask не поступило ничего, в чем может быть проблема?
V
21:55
Victor
такая ерунда (
21:55
какая же
AP
22:04
Alexander Popov 💎
?
T
22:10
TON Дев Чат
In reply to this message
V
22:18
Victor
In reply to this message
спасибо !
V
23:08
V
Здесь есть кто-то из тех, кто разрабатывал стейкинг от TON Whales? Смотрю, когда кто-то вывод запрашивает, ответ с лишним словом when приходит:
Comment: Withdraw requested. Please, retry command when when your balance is ready.
AP
23:12
Andrew Python
In reply to this message
У них есть свой чатик. Лучше пиши туда
14 April 2022
AR
00:13
Alexander Ruliov
> The smart-contract service guarantees that your coins will be used for validation only.

() op_controller_withdraw_unowned(int value, slice in_msg) impure {
...
;; Send message to controller
send_empty_std_message(
ctx_controller,
0,
send_mode::carry_remaining_balance(),
op::withdraw_unowned::response(),
ctx_query_id
);
}


Страшно, вырубай.
DV
00:26
Dan Volkov
https://tonwhales.com/explorer/address/Ef9VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVbxn/code

киты научились дизассемблить контракты
T
00:27
Tim
In reply to this message
Осталось написать asm -> func
DV
00:28
Dan Volkov
In reply to this message
все открыто - пожалуйста, кто угодно может написать
AT
00:32
Andrey Tvorozhkov
In reply to this message
Ура больше не надо использовать растовый дизасемблер)
A
00:33
Andrei
In reply to this message
Было бы прикольно трекать стек
DV
00:33
Dan Volkov
In reply to this message
а есть на него линк?
A
00:33
Andrei
Как в выводе FunC с флагом -S
DV
00:34
Dan Volkov
In reply to this message
это уже вмка считай
00:34
можно сделать но 641 инструкция это долго
AT
00:34
Andrey Tvorozhkov
In reply to this message
c
00:35
cryshado
In reply to this message
опять раст захейтили
DV
00:35
Dan Volkov
In reply to this message
а как он работает?
TI
00:37
Timur Iskakov
Скиньте, пожалуйста, ссылку на рабочий тестнет Эксплорер
A
00:37
Andrei
In reply to this message
Да, причем в некоторых случаях так не получится сделать, так как оно будет зависеть от входных данных. Это даже интереснее, чем вмка.
DV
00:38
Dan Volkov
In reply to this message
можно попытаться понять что ожидается
A
00:40
Andrei
In reply to this message
Ну надо просто недетерминированно трекать, и в хороших случаях (когда код получен компиляцией из фанси) недетерминизм будет схлопываться
00:40
Засчет всяких NULLSWAPIFNOT
00:41
Но наверное в полном виде это неразрешимая задача
SK
01:44
Steve Korshakov
In reply to this message
там выше лочится баланс всех
AR
01:50
Alexander Ruliov
In reply to this message
Ну ладно, читнул raw_reserve. Но там энивей в другом экшене есть set_code)
SK
01:50
Steve Korshakov
мы это и не скрываем
01:50
мы пока не выключили но оставили про запас если что-то произойдет, например найдут багу и начнут выводить деньги
01:51
ключ хранистя оффлайн и никогда не был в сети так что норм
02:42
丂卄卂Ҝ卂
Деньги должны быть оплачены по счету. Номер счета вводится в разделе Сообщение. Однако некоторые платежные системы, например боты, не имеют раздела обмена сообщениями. Каковы лучшие решения для оплаты счетов
02:43
Или лучше создавать новый кошелек для каждого счета.‌‌?
AP
02:45
Andrew Python
In reply to this message
вообще отсутствие сообщений у ботов - это проблема ботов
V
08:30
V O
Всем привет. Сорри за оффтооп. Если кто то собирается пилить метаверс в сети TON, то могу продать домен TON.Town , кажется что лучше не придумаешь )
СВ
11:15
Сергей В
А знает в кто в каком формате stack передавать? https://toncenter.com/api/v2/#/run%20method/run_get_method_runGetMethod_post
11:38
Deleted Account
@steve_kite у вас https://raw.tonhubapi.com/ умер, есть шанс на фикс?
SK
11:51
Steve Korshakov
In reply to this message
Нет, нам из-за санкций базу грохнули
ГЮ
11:59
Глеб Юрьевич
In reply to this message
Это как? что за провайдер такой?
SK
11:59
Steve Korshakov
MongoDB Atlas
12:17
Deleted Account
In reply to this message
И у вас бэкапов не было? и вы единственные челы с архивной нодой? или впадлу заново индексировать?
SK
12:18
Steve Korshakov
Месяц индексировать, смысла мало, можно и без этого апи нормально работать с данными
12:20
Deleted Account
In reply to this message
🙁
AP
12:22
Andrey Pfau
In reply to this message
Добро пожаловать в веб 3.0 🤣🤣🤣
AP
12:30
Andrew Python
Есть очень интересный вопрос
12:31
Можно сделать кошелёк который принимает во входящей нагрузке готовый c5 регистр (actions)
12:31
Насколько это безопасно?
12:32
Просто если так сделать, то любое количество транзакций можно отправлять одной командой в контракте
12:32
Также можно обновить версию кошелька без изменения адреса
SK
12:33
Steve Korshakov
там вроде все равно лимит на 256
12:33
а с обновляемым кошельком можно покруче
12:33
положить в конфиг сети просто код
AP
12:33
Andrew Python
In reply to this message
Ну я условно. Что контракту не надо распаковывать их по одной как в хайлоад кошельке
AT
12:37
Andrey Tvorozhkov
In reply to this message
Я думаю что с вероятностью 90% это будет работать
СВ
12:37
Сергей В
In reply to this message
все равно не понял формат :)
AP
12:38
Andrew Python
In reply to this message
Я уже испытал, всё работает
AT
12:39
Andrey Tvorozhkov
In reply to this message
👍
12:39
Хорошая идея
AR
12:39
Alexander Ruliov
Красиво. А это газ не тратит ведь почти, только forward fee?
AP
12:40
Andrew Python
Газ потребляет меньше кошелька в3 для одиночных транзакций и меньше хайлоад кошелька для множественных
P
12:40
Placeholder
In reply to this message
подпись и seqno надо будет проверять все равно
AP
12:40
Andrew Python
In reply to this message
Ага
AT
12:40
Andrey Tvorozhkov
Более того, можно сделать такую штуку, которая фигачит бесконечное количество таких сообщений
12:40
Просто в ласт сообщении отправляешь запрос в свой контракт
12:40
И так батчами отправляешь
AP
12:41
Andrew Python
Меня больше всего привлекает, что можно менять версию контракта без изменения адреса
12:41
Т.к. set_code это тоже с5 регистр
AT
12:41
Andrey Tvorozhkov
😂
12:42
In reply to this message
Будь аккуратен с этим
12:42
Можно изменить код так, что потом нельзя будет менять код)
12:42
И вообще сжечь контракт)
Hz
12:43
H z
народ кто выйграл в розыгрыше?
AK
12:44
Andrey Kravchenko
In reply to this message
Дружба 😉
AP
12:44
Andrey Pfau
In reply to this message
Вот идея кстати для сжигания монет в тоне 😂
12:44
Сделать контракт с пустым кодом и туда кидать деньгу
AT
12:44
Andrey Tvorozhkov
In reply to this message
Ну это не так красиво
12:44
Красиво, когда всё на комиссии))
12:45
Бесконечный реактор пораждающий только комиссии
AP
12:45
Andrey Pfau
In reply to this message
Комиссия же валидаторам идет
12:45
Так что по сути монеты из сети не деваются
AT
12:45
Andrey Tvorozhkov
In reply to this message
AT
12:48
Andrey Tvorozhkov
In reply to this message
Sponsored by людьми
EP
12:49
Evgeniy Pronyagin
А
12:52
Андрей
In reply to this message
Никак, у транзакции есть lt и hash. В вашей ссылке этих данных нету
F
13:36
F
Напоминаю, данный чат создан исключительно для технических вопросов TON.
Обсуждение иных тем, включая биологию и природоведение - за пределами тематики данного чата.
Сообщения не относящиеся к тематике чата удалены. Пользователям мут на сутки за оффтоп:
@ruliov
@artdeepdapp
@XaBbl4
@Priani4ek

Канал за оффтоп заблокирован (мы не любим когда пользователь не удосужился показать свое лицо)
SK
13:37
Steve Korshakov
Сорри но у тебя на Аватаре тоже нет твоего лица
p
13:38
paket
In reply to this message
Наверное, под словом "лицо" подразумевается личный аккаунт
F
13:38
F
In reply to this message
+
А
13:39
Андрей
In reply to this message
Это был твой канал? 😏
W
13:39
Whales
нет
EP
14:17
Evgeniy Pronyagin
In reply to this message
а вот еще пример:
https://tonscan.org/tx/27076531000001:Jl1jUHzn7PJTpF8XQLLUkfUykHOtAAs8G0QNy0wj38M=:EQCtiv7PrMJImWiF2L5oJCgPnzp-VML2CAt5cbn1VsKAxLiE

Есть ссылка на транзакцию, но через toncenter я не вижу если смотрю по входящим транзакциям кошелька
https://toncenter.com/api/v2/getTransactions?address=EQCnKKP2r7vMPxnKNIoqIz8J8TD_kMHXJUt0vK1eeuQ6vrA2&limit=100&to_lt=0&archival=true

Как так?
14:18
Но при этом есть с таким же mesasge другая транзакция
14:18
J6hd2cxPM2dL3n0zaQCpZmhWkS8rpugcy
14:18
Как такое может быть?
RG
14:27
Ruslan Gabdullin
In reply to this message
Метод getTransactions ищет все транзакции для адреса. Нужно передать lt транзакции, чтобы найти конкретно твою.
14:27
И ещё limit=1 поставить
14:39
на кошельке отправителя эта транзакция видна
14:39
но на получаетеле другая совсем
T
14:43
Tim
Так транзакции же к адресам привязаны
RG
14:43
Ruslan Gabdullin
Ага, понял. Посмотри в out_msgs. Там есть сообщение для таоего адреса. Оно придёт в другой транзакции с другим lt. Тебе придётся эту транзакцию поискать
14:44
Чтобы ее найти, надо скачать все начиная с твоего логикал тайм, затем найти транзакцию, у которой in_msg такой же, как out_msg у твоей исходной.
14:45
Сейчас нет апи и сервиса, который это делает. Придётся руками
VD
15:01
Victor Dm.
Народ, кто в курсе что за @extra { '@type': 'ok', '@extra': '1649937563.9380102:0:0.5591557017312829' }, что за цифры?
RG
15:03
Ruslan Gabdullin
Буквально ничего
15:04
Внутренний айди запроса
VD
15:04
Victor Dm.
Понятно спасибо
AT
15:26
Andrey Tvorozhkov
In reply to this message
👋🏻 мы делаем @disintar это очень общирная штука) В первую очередь единтвенный рабочий NFT маркетплейс в сети. Но у нас еще есть некоторые планы и продукты 🙈
EP
16:17
Evgeniy Pronyagin
In reply to this message
странное конечно поведение блокчейна. Типа есть исходящая транзакция и входящая и они разные, но не всегда, обычно одинаковые. Вот жешь блин
T
16:18
TON Дев Чат
In reply to this message
в ТОНе транзакции != сообщения. И транзакции всегда разные
SK
16:21
Steve Korshakov
In reply to this message
это очень популярная концепция при разработке распределенных приложений, ты не дерагешь транзакцию на всю систему а посылаешь сообщения между автономными сущностями (акторами)
16:21
это единственная масштабируемая модель чего угодно на данный момент
ИК
16:30
Игорь Коняхин
Неужели нет ссылок транзакций друг на друга?
Понятно, что не совсем ясно, что делать со ссылкой "вперёд" (от отправляющей транзакции к получающей), так как получающая транзакция ещё не записана в блокчейн,
но для ссылки "назад" (от получающей к отправляющей), кажется, особых технических проблем нет
T
16:31
TON Дев Чат
In reply to this message
Этой ссылкой выступает сообщение
ИК
16:36
Игорь Коняхин
In reply to this message
Сообщения в некотором смысле являются "проиндексированными"?
Т.е. имея id отправляющей транзакции, можно сделать переход:
(отправляющая транзакция) => (сообщение) => (получающая траназкция)
без собственного индексирования всего блокчейна
T
16:39
TON Дев Чат
In reply to this message
Переход (сообщение) => (получающая траназкция) без индекса, к сожалению не сделать (ну или эвристиками, зная примерное lt и адрес назначения)
ИК
16:39
Игорь Коняхин
А обратный путь:
(получающая траназкция) => (сообщение) => (отправляющая транзакция)
возможен?
T
16:41
TON Дев Чат
In reply to this message
У сообщения есть created_lt и адрес источника, так что, не то чтобы был прям метод, но да - запрашиваем соответствующий блок (по адресу и lt) и находим транзакцию
ИК
16:44
Игорь Коняхин
Но верно, что выходит тоже не совсем напрямую?
Т.е. если, например определённый контракт был вызван в пределах одного блока много раз и создал много исходящих сообщений, то уже (без глубокого анализа) не восстановить однозначное соответствие между отправляющими транзакциями и сообщениями. Верно?
SK
16:45
Steve Korshakov
у сообщений есть что-то вроде lt или еще чего что их уникально идентифицирует
T
16:48
TON Дев Чат
In reply to this message
у каждой транзакции есть свой lt - range, соотвественно зная created_lt сообщения однозначно определить какая транзакция его породила - можно строго.
16:49
Более того гарантируется что сообщения будут обрабатываться в порядке created_lt (сообщение посланое раньше гарантировано обработается раньше)
ИК
16:54
Игорь Коняхин
In reply to this message
Понял, спасибо
N
17:06
No one
не знаю кому писать, на сайте тон даймондс заметил.
T
17:08
Tim
Скоро пофиксится.
w
17:11
witkoil.ton
In reply to this message
Я думаю с учетом обновления ботов, скоро это пофиксят
СВ
17:18
Сергей В
если я хочу использовать tonlib, нужно ли мне накатывать вот этот патч? :)
https://github.com/toncenter/ton-http-api/blob/master/infrastructure/patches/tonlib.patch
AP
17:18
Andrey Pfau
А для чего absent в boc нужен? В исходниках тона там просто захардкожено 0 всегда
T
17:26
TON Дев Чат
In reply to this message
Вероятно это такие меркли на минималках, когда выкидываешь ячейки которые не нужны (но без гарантии целостности). Соответственно, при наличии мерклей - лучше использовать их, чем боки с дырками.
ГЮ
17:55
Глеб Юрьевич
И снова привет!
Добрался до создания жетона по примеру:
https://github.com/toncenter/tonweb/blob/master/src/test-jetton.js#L71
- в тестовой сети всё работает.
а в основной падает при попытке получить инфу по кошельку жетона.
 result: {
gas_used: 0,
stack: [ [ 'num', '0x17b02' ] ],
exit_code: -13,
'@extra': '1649947699.91854:5:0.706219289033982'
}

Мне кажется с адресом жетон-валета что-то нужно сделать. Я попробовал адрес нагенерённый через `tonweb.wallet.create({publicKey})` - та же ошибка.

Подскажите куда далее копать?
ИК
17:56
Игорь Коняхин
tonweb.wallet.create({publicKey})
Создаст wallet V3R1, и подсчитает соответствующий адрес
17:57
Адрес зависит далеко не только от ключа, но и от:
+ Кода контракта
+ Начального хранилища
+ (для кошелька) subwalletId
+ (для кошелька) публичного ключа
ГЮ
18:00
Глеб Юрьевич
In reply to this message
ага, но этот метот походу не применим для жетон-кощелька, там дальше идёт
new JettonWallet(tonweb.provider, {
address: JETTON_WALLET_ADDRESS
});

и не ясно как получать JETTON_WALLET_ADDRESS если его нужно указать при создании экземпляра

и еще момент. в тестнете пример работет
в мэйне нет
ИК
18:08
Игорь Коняхин
Ответил в личке
ГЮ
18:11
Глеб Юрьевич
In reply to this message
+
Н
18:30
Никита
Где-то можно узнать как распределились изначальные 5В тонкоинов?
c
18:43
cryshado
In reply to this message
https://tonwhales.com/explorer/top
там в топе около 4+млрд
Н
18:44
Никита
In reply to this message
Спасибо, но я хотел бы знать принципы по которым они это получили
c
18:45
cryshado
In reply to this message
Если брать людей, то это в основном самые первые майнеры. Есть ещё системные контракты разные(например электор и т д), на них тоже много тонов, и есть ещё гиверы, которые раздают монеты майнерам
18:45
Много не активных кошельков, так как майнили еще когда тестнет2 назывался, и многие потеряли доступ. Но есть и активыне
AM
18:50
Alex Madway
Всем салют.
А если я специалист по ИБ и web-программист, который сидит сейчас на фриленсе, есть куда воткнуться? :)
Сейчас начал изучать питон. Сразу с практики - пишу агрегатор для телеграм ботов.
Немного работал с node.js.
Есть варианты, чем заняться?
18:50
за компом с трёх лет.
AP
18:50
Andrey Pfau
In reply to this message
это вопрос по тону?
AM
18:50
Alex Madway
а хз. вполне может быть. не просто так зашёл
c
18:50
cryshado
In reply to this message
иди учи intel asm lang
AM
18:50
Alex Madway
мне интересно, чем могу быть полезен в БЧ
AP
18:51
Andrey Pfau
In reply to this message
тебе так явно никто не скажет)
c
18:51
cryshado
очень широкий вопрос
AM
18:52
Alex Madway
In reply to this message
широкий, но не толще шутки про ассемблер
c
18:53
cryshado
In reply to this message
ну ты что в блокчейне хочешь делать, контракты и т д или сам блокчейн делать?
AM
18:57
Alex Madway
In reply to this message
интересный вопрос. Для ответа на него пришлось ознакомиться с термином "Смарт-контракты" только что.
я понятия не имею. Мне интересно совмещать свои навыки ИБ и разработки (в принципе - на любом языке, я быстро включаюсь). На данный момент я фриленсю на свои 150 рублей в месяц, но это просто не интересно. Я, скорее, ищу небольшую команду с уже заданной целью.
AP
18:57
Andrey Pfau
In reply to this message
напиши интерпретатор фифта
AM
18:57
Alex Madway
Скажем так, я могу пингануть тебя со стендфорда.
AP
18:58
Andrey Pfau
пока будешь это делать уже начнёшь понимать что в тоне происзодит
AM
18:58
Alex Madway
Или с сотни других интересных ресурсов.
c
18:58
cryshado
In reply to this message
на фифте?
AP
18:58
Andrey Pfau
на пыхтоне
18:58
или жабьих скриптах
c
18:58
cryshado
на С
18:59
🥰
AP
18:59
Andrey Pfau
In reply to this message
ну кстати это на самом деле здравая мысль без шуток
19:00
такие вещи и должны на си писать
19:00
а не на с++
CP
19:00
Catchain Protocol
раст или си минуя плюсы
c
19:00
cryshado
на го
19:01
😎
AM
19:04
Alex Madway
In reply to this message
отличная идея, чтобы прожечь время.
уже прочёл и понял, что к чему.
AP
19:04
Andrey Pfau
In reply to this message
Изучение = прожечь время?
AM
19:05
Alex Madway
In reply to this message
Совершенно верно. Это для студентов, которых мамки кормят.
Я люблю на практике познавать что-либо.
19:05
А практика - это то, что кому-то будет нужно
19:05
и кто-то за это будет платить.
AP
19:06
Andrey Pfau
нужно tlb (де)серелизатор на JS сделать
19:06
этого пока никто нормально не сделал
19:06
все хардкодят конструкции
19:06
чтобы на вход можно было подать битовую строку и схему
19:06
и на выходе получить JSON
SK
19:07
Steve Korshakov
есть уже просто старая
19:07
и на чистом JS
AP
19:07
Andrey Pfau
In reply to this message
чё прят можно подать TL-b схему голую?
SK
19:07
Steve Korshakov
да
AP
19:07
Andrey Pfau
и она прям её распарсит и построит?
19:08
нука скинь
19:08
я не видел
SK
19:08
Steve Korshakov
это часть реализации ANDL
T
19:09
Tim
Платить за "практику" когда ты не разбираешься в вопросе это странно
AM
19:15
Alex Madway
In reply to this message
не так уж и долго это делать.
и оплата в командах бывает в совершенно разных форматах. По модулям либо с пониженной ставкой на начальном этапе.
AP
19:25
Andrey Pfau
проанализируй рынок, посмотри каких продуктов не хватает - и начни делать
19:25
тебя никто за ручку не поведёт и не скажет что и как делать - мы живём во взрослом мире
ИМ
19:25
Илья Михеев
золотые слова
SK
19:25
Steve Korshakov
> во взрослом мире

ORLY?
AP
19:26
Andrey Pfau
In reply to this message
жесть мему больше чем я живу
19:27
In reply to this message
 ___ 
{o.o}
|)_(|
-"-"-
YA RLY
SK
19:27
Steve Korshakov
это не мем это просто фразеологизм
CP
19:28
Catchain Protocol
так и знал что андрею 15 лет
AP
19:28
Andrey Pfau
но мне не 15 🥺
19:28
я дединсайд мне 9 лет...
CP
19:29
Catchain Protocol
ну 20 какая разница
19:30
20 15 одно и то же все
15 April 2022
J
01:19
Jack Rotgar
Привет у тонвеба слетел серфикат?
01:19
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
type: 'system',
errno: 'CERT_HAS_EXPIRED',
code: 'CERT_HAS_EXPIRED'
}
c
01:20
cryshado
In reply to this message
у тонвеба слетело что-то другое где-то не в коде…, какой серфикат у библиотеки?
J
01:21
Jack Rotgar
Знать бы мне. Попрошу разработчика пообщаться тут)
ГЮ
04:12
Глеб Юрьевич
In reply to this message
а это уже починили?
calculate_user_jetton_wallet_address
- таки тоже уткнулся
Y
04:29
Yamil
Hi, is really necesary it have a internet connection 1gb/s, to become validator ?
04:33
Any people who speaks spanish or English ? I'm from venezuela and i would like become in a validator
ГЮ
04:35
Глеб Юрьевич
In reply to this message
Y
04:37
Yamil
In reply to this message
Thanks You
ГЮ
05:07
Глеб Юрьевич
комунить удавалось этим пользоваться?
https://github.com/ton-blockchain/token-contract/blob/jettons/ft/jetton-minter.fc#L98
slice get_wallet_address(slice owner_address)
AS
07:24
Artem S
Всем привет. Есть вопрос: есть ли возможность поднять узел валидатора в тестовой сети и какое количество тестовых монет нужно, чтобы протестировать стейкинг? Не хочется проводить тесты на реальных монетах с риском их потерять
T
08:11
TON Дев Чат
In reply to this message
В тонвебе была обвязка для жетонов, посмотрите как они не методы вызывают
ГЮ
08:28
Глеб Юрьевич
In reply to this message
обвязка есть, но не полная, получить адресс жетона нельзя. Об этом писали выше
https://t.me/tondev/66406
на что был ответ, что проблема на стороне тонцентра вообще а не тонвеба

get_wallet_address(slice owner_address) - этот метод не имплиментирован
T
08:40
TON Дев Чат
In reply to this message
А, со слайсами действительно может быть проблема
ГЮ
08:56
Глеб Юрьевич
Проблема у тонцентра остаётся открытой тоесть.

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

- Либа на golang так же работает с тонцентром по http?
СВ
09:12
Сергей В
In reply to this message
не знаю про какую либу речь, но если про ту что из официального репо тона, то это обертка над libtonlibjson и ее же должен использовать toncenter
AT
09:12
Andrey Tvorozhkov
In reply to this message
Да, проблема с слайсами в либтон джсоне
09:12
Но там оч простой фикс а одну строчку
ГЮ
09:14
Глеб Юрьевич
как думайте когда правку выкатят в прод? вроде уже внесли
AT
09:19
Andrey Tvorozhkov
In reply to this message
А вы какой-то проект делаете или для себя?
СВ
09:19
Сергей В
у меня своя обертка над libtonlibjson для языка который нельзя называть, и такое чувство что есть баг в run_method внутри libtonlibjson.
1. делаю load smc
2. делаю run method
происходит adln timeout, и tonlib_client_json_receive не возвращает ошибку

если кто пользовался, было ли у вас такое, может просто я что-то не так делаю, к другим метода притензий нет
ГЮ
09:20
Глеб Юрьевич
In reply to this message
для себя по большей части,
09:20
разбираюсь что к чему
AT
09:21
Andrey Tvorozhkov
In reply to this message
Если проект - поднимите свою ноду с тонцентром, это очень не сложно. Мы выкатили пример в гитхаб как это сделать к кубере или в компоузе
09:21
А если для себя - просто скомпильте с фиксом и поднимите у себя pytonv3 или тонцентер без ноды
ГЮ
09:23
Глеб Юрьевич
с компоузом понятно, могу и поднять, так легче так как у меня ноут на arm-m1, зависимостей тьму тащит и не всё гладко
09:23
In reply to this message
а где пример композа найти?
таким запросом в поиске на гитхабе org:newton-blockchain compose будет пусто
AT
09:32
Andrey Tvorozhkov
In reply to this message
https://github.com/disintar/ton-k8s

В репе нашей организации :)
09:32
In reply to this message
На m1 не залетит :(
09:33
Но можно собрать локально тон и просто без всего запустить
09:33
Если собирали для m1 по нашему гайду - там как раз собирается всё (не только фифт / фанкси)
T
09:46
TON Дев Чат
In reply to this message
А вы чекали, вот так
{"address":"...","method":"get_wallet_address","stack":[["tvm.Slice","..."]]}


точно не работает?
AT
09:57
Andrey Tvorozhkov
In reply to this message
Там прям на уровне толиба проблема, он слайс преобразует в бок и возвращает клетку
09:58
А надо, чтобы возвращал слайс
09:58
На вход ранвм поступает клетка в итоге, а не слайс :(
10:00
Кажется на уровне тонцентра это просто заменить тонлиб правильным. Еще кажется, можно не дожидаться принятия пулл реквеста и сразу поменять, там оно не такое «опасное», тем более 1 строчка @ruslixag
ГЮ
10:38
Глеб Юрьевич
In reply to this message
запрос

curl -X 'POST' \
'https://testnet.toncenter.com/api/v2/runGetMethod' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"address": "EQAqp9nCXMxmoHc_XCn-KhisLN2G5gHLAYL08UdKJM2TNaFf",
"method": "get_wallet_address",
"stack": [
[
"tvm.Slice", "EQBvI0aFLnw2QbZgjMPCLRdtRHxhUyinQudg6sdiohIwg5jL"
]
]
}'


можно через вебинтерфес перепроверить :
https://testnet.toncenter.com/api/v2/#/run%20method/run_get_method_runGetMethod_post
SG
10:44
Serge Grigorenko
Тут опечатка в запросе: нужна не точка, а запятая:
curl -X 'POST' \                                                                                                                                        
'https://testnet.toncenter.com/api/v2/runGetMethod' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"address": "EQAhIf-c3jZUHQeGfvzg4RckLOydYaGDBxIGsyMn41rgl9Cu",
"method": "get_wallet_address",
"stack": [
[
"tvm.Slice", "EQBXo0ZZj6xqKUPkDsEK4PKcv22Fo77LnMq7XbMqxzHjOZNb"
]
]
}'
Ответ ожидаемый невалидный, т.е. такой, как писали выше:
{"ok":true,"result":{"@type":"error","code":0,"message":"cannot deserialize bag-of-cells: invalid header, error 0","@extra":"1650008588.2969987:4:0.07631449416469416"}}
ГЮ
10:56
Глеб Юрьевич
опечатку поправил, адреса контракта и админКошелька поставил из примера
https://github.com/toncenter/tonweb/blob/master/src/test-jetton.js
AS
11:01
Artem S
В каком чате можно задавать вопросы по узлу валидатора?
SG
11:12
Serge Grigorenko
@glebpw Пока получение адреса жетонов в тонвебе увы не работает из-за бага в слайсе для тонцентра. Бился тоже с этим долго, пока ребята не описали суть проблемы в тонцентре. Тут два варианта: либо ждать приема мерж-реквеста, либо как писали выше, поднять свой тонцентр. Благо есть сетапы, так что пока их будем запускать) В любом случае для нормального проекта нужно иметь свои ноды.
SK
15:25
Steve Korshakov
Парни слайсы не работают в тонцентре и думаю еще не скоро будет, патч лежит у фаундейшена
T
15:30
TON Дев Чат
Во избежание случайной или намеренной путаницы между разными объединениями, с этого момента будут выдаваться мьюты за использование термина "фаундейшн" в контексте Decentralized Ton Foundation.
SK
15:33
Steve Korshakov
In reply to this message
если это про меня то я про обычный
T
15:34
TON Дев Чат
In reply to this message
Никаких претензий, просто публично объявляем новые правила.
AP
15:34
Andrey Pfau
In reply to this message
а я говорил что называть так - плохая идея)
ИК
15:35
Игорь Коняхин
> Decentralized Ton Foundation
А какие ещё есть?
ИМ
15:35
Илья Михеев
In reply to this message
+
ИК
15:35
Игорь Коняхин
Centralized Ton Foundation
ИМ
15:36
Илья Михеев
Semi-centralized Ton Foundation
T
15:38
TON Дев Чат
In reply to this message
Комьюнити растет, люди объединяются по интересам. Помимо DTF, есть еще tonstack. В прошлом были ton community foundation (продан/помер) и объединение ставшее TON Foundation.
D
15:40
DROP DATABASE users; ‘
Всем привет. Верю что все хорошо. Посоветуйте чатик по п2п в банкофф пожалуйста. Тон там тоже есть, но не официально. Или может кто подскажет альтернативное решение?
OB
20:07
Oleg Baranov
привет, подскажите плиз, а реально ли патчить контракт не передеплоивая его? (не меняя адрес и данные в сторе)
ИК
20:08
Игорь Коняхин
Возможность патчить должна быть изначально заложена в код контракта
OB
20:08
Oleg Baranov
а есть пример какой то реализации?
SK
20:10
Steve Korshakov
OB
20:13
Oleg Baranov
In reply to this message
спасибо
20:13
In reply to this message
спасибо
w
20:20
witkoil.ton
А подскажите на ТОН сейчас можно альты запускать?
T
20:25
Tim
Пока только тестировать
w
20:25
witkoil.ton
+- когда стандарт ожидается?
TP
21:40
Tim Pavlov
ребят, а где сапорт по TON Bridge?
А
22:56
Андрей
In reply to this message
Есть общая поддержка:
@ton_help_bot
s
23:44
sepеzho.copy
тестнет лежит?
23:44
давно?
T
23:45
Tonox DeFi
In reply to this message
😔
s
23:45
sepеzho.copy
In reply to this message
какой бридж тебе нужен?)

елси тонана - то это к нам))))
23:45
In reply to this message
:C
16 April 2022
s
08:39
sepеzho.copy
привет всем)

а есть иной способ просмотреть транзакцию кроме как через такой фетч?

он у меня 429 возвращать начал) я боюсь на реальном билде сайта у меня в него упрется сразу же бэк

кароч есть способ глянуть транзы по кошельку НЕ через этот линк?

допустим 100 раз в секунду))
А
08:39
Андрей
In reply to this message
Поднять свою ноду и ходить через него
m
09:28
m
In reply to this message
AF
09:36
Anton F
В проде только свою ноду и поднимать, в тоне 80% сервисов отваливаются как только с тонцентром что-то не так 🙄
NN
10:36
Nick Nekilov
In reply to this message
Нужно ключ передавать, иначе можно только 1 запрос/секунду делать.
10:37
Using API without API key is limited to 1 request per second.
Register your API key in the @tontestnetapibot to get access with higher limits.



API Key should be sent either as api_key query parameter or X-API-Key header.