TON Overflow на русском

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

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

  • налог с продаж на stonfi или dedust

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

    Есть же пул ликвидности с которого выдает % от оборота. А если тебе мало такого % то тока свой DeFi делать😄

  • Мультисендер на TON - это какое-нибудь похожее приложение?

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

    Попробуйте Oneclicksender https://www.oneclicksender.com/

  • Как я могу отправить ton из кошелька C# на другой кошелек??

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

    я тестирую этот код, но код возвращает эту ошибку: Получена ошибка: {"ok":false,"error":"LITE_SERVER_UNKNOWN: не удается применить внешнее сообщение к текущему состоянию: Внешнее сообщение не было принято\Не удается запустить сообщение в учетной записи: входящее внешнее сообщение отклонено транзакцией 567F1D4BCB17CE7440806854F3DB31A986229B46C73EFE0835F80B9E4CAC5258 :\nexitcode=9, шаги=8, gas_used=0\Журнал nVM (усеченный):\n...выполнить SETCP 0\nexecute DICTPUSHCONST 19 (xC_,1)\nexecute DICTIGETJMPZ\nexecute PUSHPOW2 9\nexecute LDSLICEX\nexecute DUP\nexecute LDU 32\код исключения обработки 9: переполнение ячейки\обработчик исключений по умолчанию, завершение работы виртуальной машины с кодом выхода 9\n","код":500} я не знаю, что произошло.

    это мой код

    try { TonClient tonclient = new(new TonClientParameters { Endpoint = "https://toncenter.com/api/v2/jsonRPC", ApiKey = "...", }); var destination = new Address("UQBWfx1LyxfOdECAaFTz2zGphiKbRsc- _gg1-AueTKxSWPZ9");

    var mnemonic = new Mnemonic(); WalletV4 walletV4 = new WalletV4(new WalletV4Options() { PublicKey = mnemonic.Keys.PublicKey! }); // Create a transfer message for the wallet ExternalInMessage message = walletV4.CreateTransferMessage(new[] { new WalletTransfer { Message = new ExternalInMessage(new() { Info = new ExtInMsgInfo(new() { Dest = destination, ImportFee = new Coins("0.013"), Src = walletV4.Address }), Body = new Message(destination, new Coins("0.5")).Payload, StateInit = new StateInit(new StateInitOptions()), }), Mode = 1 } }, 0).Sign(mnemonic.Keys.PrivateKey, true); await tonclient.SendBoc(message.Cell!);

    } перехват (исключение e) { Приставка.WriteLine(e); throw; }

  • Нет баланса

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

    EQDafdXRryUlB_yDwWJSlKvfhXCnJIxqVie0v625blW_XiHS старый тип адреса как мог про..баться адрес ???? ВТФ?? сидка в блокноте.. что за ДИЧЬ

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

    У меня есть закрытый ключ кошелька, как я могу перевести nft с safepal на другой кошелек? (Мнемоническая фраза, которая у меня есть, состоит из 12 слов, и я не могу импортировать ее в кошельки, такие как tonkeeper)

  • LITE_SERVER_UNKNOWN: не удается загрузить блок ... с указанной транзакцией

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

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

    Оригинал вопроса

  • рабочие цепочки

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

    Является ли тестовая сеть ice network рабочей цепочкой тестовой сети TON или полностью независимой копией сети TON. Как мне отличить эти две вещи?

    Исследователь ЛЬДА находится по адресу https://explorer.testnet.ice.io/

    Я также нашел этот URL masterchaininfo https://http-api.testnet.ice.io/getMasterchainInfo

    Оригинал вопроса

  • Ошибка: Не удалось выполнить метод get. Получен код выхода: -13

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

    Здравствуйте, уважаемые разработчики TON

    Я получаю сообщение об ошибке при запуске скрипта getter .ts. Имя метода getter в смарт-контракте (он развернут с помощью getter) совпадает с моим вызовом оболочки.

    https://drive.google.com/file/d/1XgxbQho-51QVi8nF6n3k9h9qAlAMrhm9/view?usp=share_link – получатель в функциональном смарт-контракте https://drive.google.com/file/d/19TDWkkwjkPQkEN8u3nWewCC3vW-iL09G/view?usp=share_link – Скрипт getWalletData .ts

    https://drive.google.com/file/d/19TDWkkwjkPQkEN8u3nWewCC3vW-iL09G/view?usp=share_link – jetton wallet wrapper .ts https://drive.google.com/file/d/1W3twTuxVSyGRVBrP_KMyZclFrY8Ax2sK/view?usp=share_link _ я получаю сообщение об ошибке

    Заранее благодарю вас!

    Оригинал вопроса

  • tsTON на кошелек TON

    0 Голоса
    1 Сообщения
    71 Просмотры
  • Пожалуйста, найдите мой Тонкоин

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

    Если вы только что отправили ton на адрес gate.io, вам следует обратиться в службу поддержки gate io. Они должны помочь

  • Dedust sdk заменяет jetton на ton

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

    https://docs.dedust.io/docs/swaps

    Здравствуйте, это работает, когда я меняю ton на jetton. Но не jetton -> ton.

    В документах "VaultJetton.createSwapPayload({ poolAddress })", откуда берется VaultJetton?

    Это из-за этого?

    const tokenVault = tonClient.open(await factory.getJettonVault(Address.parse(tokenAddress)));

    но в данном случае у него нет функции createSwapPayload

    Спасибо

    Оригинал вопроса

  • Как сгенерировать адрес из начальной фразы в Python?

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

    Как сгенерировать адрес из исходной фразы в Python? Как сгенерировать адрес из исходной фразы на python?

    Оригинал вопроса

  • Я не могу отправить свои токены в chain ton на другой кошелек.

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

    устал от этой сети

  • Как добавить ton raffes в кошелек safepal

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

    Я хочу добавить токен ton raffes в safepal, но кошелек safepal не поддерживает пользовательскую сеть ton. Как вручную добавить сеть ton в кошелек safepal

    Оригинал вопроса

  • Переход с Trust Wallet на другие кошельки Ton

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

    @Answers, сеть тон и сеть erc-20 не могут быть совмещены. Тебе нужно использовать несколько приложений, чтобы хранить биткоины и тоны(к примеру).

  • на некоторые вопросы нужна помощь в ответе

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

    Основано ли подтверждение депозита на номере подтверждения или пакете

    Оригинал вопроса

  • на некоторые вопросы нужна помощь в ответе

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

    Привет, сообщество TON, у меня есть несколько вопросов, на которые мне нужна ваша помощь, чтобы ответить

    Существуют ли какие-либо специальные советы по пополнению счета, такие как lunc, списать 1 Lunc со счета при первом пополнении, 2. К какому типу цепочек относится ton chain, evm? Или другие типы? 3. Основано ли подтверждение пополнения счета на номере подтверждения или пакете?

    Оригинал вопроса

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

    Вероятно, вам следует добавить параметр "archival=true" в ваш запрос транзакций.

  • Серийная/массовая чеканка NFT

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

    Привет, сообщество TON,

    Я создаю игру на основе TON, которая использует некоторые NFT. В моем коде в основном используется код из этого туториала и библиотеки ton/ton-core/ton-crypto:

    Мой код развертывания NFT:

    public async deploy( wallet: OpenedWallet, collectionAddress: Address, params: mintParams ): Promise<number> { const seqno = await wallet.contract.getSeqno(); await wallet.contract.sendTransfer({ seqno, secretKey: wallet.keyPair.secretKey, messages: [ internal({ value: "0.05", to: collectionAddress, body: this.createMintBody(params), }), ], sendMode: SendMode.IGNORE_ERRORS + SendMode.PAY_GAS_SEPARATELY, }); return seqno; }

    И после того, как я снова буду ждать:

    export async function waitSeqno(seqno: number, wallet: OpenedWallet): Promise<number> { for (let attempt = 0; attempt < 20; attempt++) { await sleep(2000); const seqnoAfter = await wallet.contract.getSeqno(); if (seqnoAfter == seqno + 1) { return Promise.resolve(seqno) } } return Promise.reject(`Seqno ${seqno} timeout`) } export function sleep(ms: number): Promise<void> { return new Promise((resolve) => setTimeout(resolve, ms)); }

    Затем я получаю подтверждение с помощью seqno, я запрашиваю адрес элемента NFT по индексу NFT:

    static async getAddressByIndex( collectionAddress: Address, itemIndex: number, tonCenterApiKey: string ): Promise<Address> { const client = new TonClient({ endpoint: "https://toncenter.com/api/v2/jsonRPC", apiKey: tonCenterApiKey, }); const response = await client.runMethod( collectionAddress, "get_nft_address_by_index", [{ type: "int", value: BigInt(itemIndex) }] ); return response.stack.readAddress(); }

    Весь процесс занимает до 30 секунд на 1 NFT. Мне интересно, есть ли лучший вариант для чеканки, например, 10 NFT, или лучший способ - чеканить один за другим и ждать подтверждения? В этом случае у меня есть некоторые опасения по поводу количества NFT, которых я могу достичь в течение 1 часа. Прямо сейчас я должен отчеканить все элементы последовательно, потому что для команды отчеканки требуется параметр индекса nft, и перед отчеканкой следующего элемента я должен получить подтверждение того, что предыдущий отчеканен правильно.

    Оригинал вопроса

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

    Я пытался повторно использовать кошелек, удаленный с помощью флага DESTROY_ACCOUNT_IF_ZERO (32). Способ, которым я осуществляю перевод:

    Представьте, что у нас есть 2 кошелька: A и B.

    Мы переводим N1 тонну из "A" в "B". Например, с помощью веб-кошелька, скрипта, не имеет значения. 2. B неинициализирован - его еще нет в блокчейне. Имея это в виду, мы хотели бы отправить все деньги из B обратно в A. Для этого мы собираемся использовать прилагаемый скрипт. 3. Теперь мы идем дальше и переносим N2 ТОННЫ из A в B ** снова **. Не имеет значения, сколько.

    Ожидаемое поведение: мы получаем транзакции: A->B (N1), B->A (все), A->B (N2); в конечном итоге в кошельке B содержится N2 тонн.

    Фактическое поведение: мы получаем транзакции A->B (N1), B->A (все), A->B (N2), B->A (все); в кошельке B в итоге 0 тонн.

    Сценарий для передачи B->A (all), который вызывает такое поведение:

    import TonWeb from 'tonweb'; import tonwebMnemonic from 'tonweb-mnemonic'; const apiKey = "" || undefined; // WALLET B const mnemonic = "..."; const walletVersion = "v4R2"; // WALLET A const toAddress = "..."; const SendMode = { CARRY_ALL_REMAINING_BALANCE: 128, CARRY_ALL_REMAINING_INCOMING_VALUE: 64, DESTROY_ACCOUNT_IF_ZERO: 32, PAY_GAS_SEPARATELY: 1, IGNORE_ERRORS: 2, NONE: 0 } const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); (async () => { const provider = new TonWeb.HttpProvider('https://toncenter.com/api/v2/jsonRPC', {apiKey}); const WalletClass = TonWeb.Wallets.all[walletVersion]; const mnemonicArray = mnemonic.split(" "); let { publicKey, secretKey } = await tonwebMnemonic.mnemonicToKeyPair(mnemonicArray); publicKey = Buffer.from(publicKey); secretKey = Buffer.from(secretKey); console.log(`PUBLIC KEY: ${publicKey.toString('hex')}`); const wallet = new WalletClass(provider, { publicKey }); const seqno = await wallet.methods.seqno().call() || 0; console.log(`SEQNO: ${seqno}`); await sleep(2000); const transferParams = { secretKey, toAddress, amount: 0, seqno, sendMode: SendMode.CARRY_ALL_REMAINING_BALANCE | SendMode.IGNORE_ERRORS | SendMode.DESTROY_ACCOUNT_IF_ZERO, payload: "test bug" }; console.log(JSON.stringify({...transferParams, secretKey: transferParams.secretKey.toString('hex')}, null, 2)); const response = await wallet.methods.transfer(transferParams).send(); console.log(`transfer sent to blockchain: ${JSON.stringify(response, null, 2)}`); })();

    Странная вещь: если вы отправите A->B (N) снова, он автоматически создаст новую передачу B->A (all) снова и снова. Иногда она останавливается на 2 повторениях, иногда на 4.

    Я использую недоступный адрес: UQAPqRlewultl8xHCKGsrenb4PZaQ0QDfPYoK1fwVUODdZRd.

    Я также попробовал отправить TON с кошелька "C (C->B). И деньги ДЕЙСТВИТЕЛЬНО остались на B`. НО как только я снова сделал перевод "A->B", все деньги, включая тонны, отправленные с "C", автоматически перешли на "A"!

    Пример проявления этой ошибки (это ошибка??) находится здесь:

    https://tonviewer.com/EQAySjlsHUY2EEedO5GTenzFvAnR5E-4ptwfeox6OZYnNvGF

    Это кошелек B. Скрипт отправил только первое сообщение с текстом "тестовая ошибка". Остальные сообщения отправлялись автоматически при любом входящем переводе с A.

    В этом взаимодействии:

    A is UQAPqRlewultl8xHCKGsrenb4PZaQ0QDfPYoK1fwVUODdZRd * B is EQAySjlsHUY2EEedO5GTenzFvAnR5E-4ptwfeox6OZYnNvGF * C is UQBwpXsIVrij8UQ2OpPK2EyeVBrlN6mnOkmThb3k6K-UHZyL

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

    Оригинал вопроса