TON Overflow на русском

552 Темы 1.0k Сообщения

Русское зеркало answers.ton.org

  • Где я могу прочитать о расширении TON Wallet?

    0 Голоса
    2 Сообщения
    8 Просмотры

    Следующее скопировано из новостей Tonkeeper, которые имеют отношение к рассматриваемому вопросу:

    Сквозная безопасность с помощью TON Connect

    Блокчейны напрямую позволяют людям контролировать свои финансовые активы с помощью так называемого “не связанного с хранением” или “не размещенного” кошелька: приложения, которое надежно хранит криптографический ключ на вашем устройстве. Этот ключ используется для авторизации переводов монет и токенов, защищая вашу учетную запись от неожиданных или мошеннических платежей. Ваша учетная запись существует исключительно на блокчейне, и к ней можно получить доступ по открытым протоколам, используя любой кошелек, точно так же, как вы можете выходить в Интернет с помощью любого совместимого приложения для браузера.

    В мессенджерах существует концепция “сквозного шифрования”, которая работает благодаря личному контролю над криптографическими ключами. Мы в Tonkeeper хотим распространить эту идею на “сквозную безопасность” и внедрить ее во многие другие приложения экосистемы TON. Мы хотим, чтобы большинство сервисов работали без тюремного заключения, например getgems.io , где пользователям никогда не придется слепо доверять сервису для корректного выполнения операций от их имени.

    ** Вот как это работает**

    Сначала вы входите в сервис со своим кошельком. Больше никаких электронных писем, паролей, ввода кодов двухфакторной аутентификации, решения капч и других неприятностей. Вы регистрируетесь и входите в систему одним щелчком мыши.

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

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

    Чтобы достичь этого, мы работаем над набором открытых стандартов, которые предложим сообществу TON, и сегодня мы объявляем о запуске экспериментальной поддержки первого протокола из этого набора: TON Connect.

    Представляем TON Connect

    TON Connect - это способ зарегистрироваться и войти в любой сервис без паролей или сторонних учетных записей. TON Connect работает в один клик, уважает вашу конфиденциальность и разработан как простой и открытый стандарт. Мы призываем все кошельки и сервисы внедрить его.

    Есть два способа войти в систему:

    На мобильном устройстве: Нажмите кнопку “Войти с помощью TON”. 2. На рабочем столе: Отсканируйте QR-код с помощью Tonkeeper.

    В обоих случаях Tonkeeper покажет вам панель подтверждения, нажмите “Войти”, и вы в игре!

    TON Connect поддерживается в Tonkeeper 2.2 на iOS и Android.

    Преимущества TON Connect

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

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

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

    Полнофункциональность: TON Connect позволяет вам регистрироваться, входить в систему и подтверждать отдельные действия одним щелчком мыши.

    Начало работы

    Мы приглашаем вас ознакомиться со спецификацией и JS SDK на нашем Github: https://github.com/tonkeeper/ton-connect

    Направления на будущее

    Мы будем постепенно развивать TON Connect, внедряя дополнительные функции в следующих выпусках Tonkeeper. Одним из них будет подтверждение владения кошельком TON, которое будет полезно, когда вы захотите доказать право собственности на блокчейн-элемент. Еще одной важной функцией станет поддержка push-уведомлений, позволяющих беспрепятственно подтверждать транзакции.

  • 0 Голоса
    2 Сообщения
    11 Просмотры

    Утилиту tl-parser можно найти здесь:

    https://github.com/vysheng/tl-parser

    Вам придется скомпилировать и установить его, но после этого скрипт bash должен сработать.

  • 0 Голоса
    2 Сообщения
    38 Просмотры

    Если вы имеете в виду запуск своего собственного узла, то существует несколько вариантов API:

    https://toncenter.com/api/v2/

    https://github.com/ton-foundation/ton-api-v4

    https://tonapi.io/swagger-ui

    Если вы имеете в виду что-то вроде ганаша для TON, то есть исполнитель контракта TON:

    https://github.com/ton-community/ton-contract-executor

  • Как мне проверить блок, в котором находится транзакция?

    0 Голоса
    2 Сообщения
    12 Просмотры

    Конечная точка в http-api, которую вы ищете, скорее всего, /tryLocateTx:

    https://toncenter.com/api/v2/#/transactions/get_try_locate_tx_tryLocateTx_get

  • [Решено] От чего зависит цена реактивного самолета?

    0 Голоса
    2 Сообщения
    7 Просмотры

    Решено

    При добавлении в протокол пула ликвидности jetton определяется спросом и предложением. Если вы ищете способ продать jetton по единой фиксированной цене, то вам, скорее всего, нужен смарт-контракт ICO:

    https://github.com/ton-blockchain/token-contract/blob/main/ft/jetton-minter-ICO.fc#L56

    Где сумма в тоннах, отправленная с транзакцией, умножается на некоторое значение jetton для отправки отправителю.

    int jetton_amount = buy_amount; ;; rate 1 jetton = 1 toncoin; multiply to price here ;; additional code mint_tokens(sender_address, jetton_wallet_code, amount, master_msg);
  • 0 Голоса
    2 Сообщения
    2 Просмотры

    Решено

    Когда вы проверяете исходный код смарт-контракта в blockchain explorer или на веб-сайте, страница генерирует уникальный хэш кода для контракта. Этот хэш кода, по сути, является цифровым отпечатком байт-кода контракта. Когда кто-то просматривает проверенный исходный код в проводнике, проводник просматривает хэш кода и извлекает соответствующий исходный код.

    Однако, если байт-код контракта будет обновлен с помощью инструкции set_code(), хэш кода изменится. Это означает, что проверенный исходный код больше не будет связан с контрактом и исчезнет из проводника.

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

    ** Также стоит отметить, что если у вас есть несколько контрактов с одинаковым хэшем кода, вам нужно подтвердить только один из них, чтобы все они стали проверенными. Это связано с тем, что хэш кода одинаков для всех контрактов, и проводнику нужно только один раз связать исходный код с хэшем кода.**

  • В FunC существует ли эквивалент отображения Solidity?

    0 Голоса
    2 Сообщения
    15 Просмотры
    Диктует

    Dicts можно использовать для хранения сопоставления ключей со значениями. Однако в TON рекомендуется избегать хранения неограниченных dicts. Это диктанты, которые динамически растут с течением времени. Вариант использования, который вы описали, является динамическим. Причина, по которой этого следует избегать, заключается в том, что ваше хранилище растет, и по мере его роста вам приходится платить все больше и больше, чтобы сохранить его в блокчейне.

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

    https://blog.ton.org/how-to-shard-your-ton-smart-contract-and-why-studying-анатомия-тонн-джеттонов

    Кортежи

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

    (1, (2, (3, null())))

    Но в FunC (и TON в целом) это полезно только для работы с данными в памяти, поскольку, когда вы хотите их сохранить, вы должны сериализовать их в ячейку.

  • 0 Голоса
    2 Сообщения
    6 Просмотры

    Стандартные токеновые контракты можно найти в основном профиле блокчейна TON на GitHub. Как правило, вы можете искать смарт-контракты FunC в профилях TON blockchain и TON foundation.

    Есть также некоторые фрагменты, которые предоставляют пользователи, такие как фрагменты функций предоставлено TonoxDeFi на GitHub.

  • 0 Голоса
    2 Сообщения
    10 Просмотры

    Решено

    У Fift есть некоторая документация на официальном сайте:

    https://ton.org/docs/develop/fift-and-tvm-assembly * https://ton.org/docs/develop/fift-deep-dive
  • 0 Голоса
    2 Сообщения
    24 Просмотры

    Сообщение об ошибке, которое вы получаете, предполагает, что переменная serializedBoc, которую вы передаете методу oneFromBoc, не является строкой. Метод slice может быть вызван только для строки, поэтому, если serializedBoc не является строкой, метод выдаст ошибку.

    В частности, возможно, что переменная jettonWalletCodeHex, которую вы передаете методу new TonWeb.token.ft.JettonMinter(), является не строкой, а проанализированным boc. Убедитесь, что jettonWalletCodeHex является строкой, прежде чем передавать ее методу.

  • 0 Голоса
    2 Сообщения
    17 Просмотры

    Решено

    **Да, мнемоническая фраза из 24 слов может соответствовать > неограниченному количеству адресов. ** ⭕️

    Эта фраза генерируется с использованием начального значения детерминированного кошелька и используется для получения нескольких пар открытых и закрытых ключей в соответствии со стандартом иерархического детерминированного кошелька BIP32 (HD wallet).

    **❗️ Важно отметить, что отношение между мнемонической фразой и соответствующими ей парами ключей является отношением "один ко многим", а не "многие ко многим". **

    Другими словами, каждая уникальная мнемоническая фраза из 24 слов генерирует уникальный набор пар ключей. Хотя из одной мнемонической фразы можно вывести несколько публичных адресов, каждый из этих публичных адресов может быть прослежен до одной и той же мнемонической фразы уникальным способом.❤️‍🔥

  • [Решено] Как я могу активировать свой кошелек?

    0 Голоса
    2 Сообщения
    46 Просмотры

    Решено

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

    Стоит отметить, что большинство кошельков в сети TON, таких как TonKeeper и TonHub, теперь используют Wallet V4 смарт-контракт. Это новая и обновленная версия смарт-контракта, которая предоставляет более универсальный и гибко настраиваемый набор функций. С помощью Wallet V4 вы можете легко переводить монеты TON, токены Jetton и NFT. Это особенно полезно, поскольку предыдущие версии контракта кошелька не поддерживали получение NFT.

    Код для Wallet V4 предоставляет несколько методов "get", которые позволяют вам извлекать данные и информацию о кошельке, ** который также известен как "абстракции учетной записи" и первоначально поддерживался в TVM **. Однако эта тема выходит за рамки данного ответа.

    Большинство кошельков в сети TON используют смарт-контракт Wallet V4, который предлагает ряд функций, включая возможность перевода монет TON, токенов Jetton и NFT.

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

  • Как правильно включать порядковые номера в транзакции Tonweb?

    0 Голоса
    2 Сообщения
    14 Просмотры

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

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

  • [Решено] Поддерживает ли TON совместимость с EVM?

    0 Голоса
    2 Сообщения
    17 Просмотры

    Решено

    Короткий ответ - нет. EVM и TVM принципиально отличаются друг от друга, поэтому невозможно напрямую перенести ваш код Solidity в TVM. Однако, возможно, что в будущем будут разработаны инструменты, позволяющие компилировать байт-код ABI в TL-B на основе TVM.

    Для получения дополнительной информации об основных концепциях и сравнения двух блокчейнов вы можете найти дополнительные подробности здесь: https://blog.ton.org/six-уникальныеаспектыблокчейнаton,которыеудивятразработчиковsolidity.

    Для более глубокого понимания различий между Ethereum, Solana и TON сообщество TON создало всеобъемлющий 10-страничный документ, который можно найти здесь: https://ton.org/comparison_of_blockchains.pdf.

  • 0 Голоса
    2 Сообщения
    15 Просмотры

    Конфигурация TON - это данные для смарт-контракта конфигурации. Когда проводятся выборы и голосование за изменение конфигурации проводится в поддержку этого изменения, смарт-контракт config автоматически изменяет данные конфигурации.

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

  • 0 Голоса
    2 Сообщения
    3 Просмотры

    Решено

    Основной репозиторий для TON существует на GitHub и написан на C++:

    https://github.com/ton-blockchain/ton/tree/master/crypto/vm

  • 0 Голоса
    2 Сообщения
    33 Просмотры

    Нет, это не тот же код выхода. Вы получаете код выхода "-13". API вызвал lite-server и получил некоторый результат, поэтому вы получили 200 OK. -13 код выхода, я бы сказал, это означает, что method_id не найден в smartcontract (но я не могу найти это замечание в документации).

    13 - Ошибка с нехваткой газа. (это не отрицательное число и означает, что кончился газ)

  • 0 Голоса
    2 Сообщения
    25 Просмотры

    TON - это децентрализованный блокчейн, и редко существует консоль разработчика для блокчейнов, подобная той, что есть в Web2 (частные блокчейны могут обладать подобными функциями). В некоторых блокчейнах могут быть сторонние инструменты развертывания смарт-контрактов, которые действуют как инфраструктура, но это не обязательно для создания кошелька. То, что вы, вероятно, ищете, - это способ запрашивать информацию из блокчейна и отправлять транзакции, для чего потребуется конечная точка http-api. Некоторые из этих конечных точек действительно имеют ключи API, такие как toncenter. Хотя рекомендуется, чтобы для производственной среды вы размещали свою собственную конечную точку.

  • Есть ли у TON аналог ремикса?

    0 Голоса
    2 Сообщения
    12 Просмотры

    К сожалению, в настоящее время нет чего-то подобного Remix IDE для TON. Лучшей альтернативой, вероятно, была бы загрузка универсальной онлайн-среды разработки для работы со смарт-контрактами на основе [Glitch](https://glitch.com /).

    Как всегда, я бы рекомендовал просто разрабатывать смарт-контракты на локальном компьютере.

  • Как отслеживать цену NFT?

    0 Голоса
    2 Сообщения
    9 Просмотры

    Да, вы можете использовать tonapi.io за это:

    const nftAddress = 'EQBFSbR4087JZ3Em7HQ3FfPz5-_q6T1UGmQqQGAcPuiFdGJ-' fetch(`https://tonapi.io/v1/nft/getItems?addresses=${nftAddress}`) .then((data) => { return data.json() }) .then((res) => { const nft_item = res.nft_items[0] const price = nft_item.sale.price.value / 10 ** 9 // it is necessary to divide by 10^9, because the value initially given in nanoTON's console.log(`${price} ${nft_item.sale.price.token_name}`) })