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

    Я хочу убедиться, что передача прошла успешно, используя этот метод ответа tonConnectUI.sendTransaction()

    Я использую : React js @tonconnect/ui-react @ton/тонна

    Среда : Тестовая сеть

    отправить транзакцию с помощью : tonConnectUI.sendTransaction()

    ответ на транзакцию с помощью веб-расширения : {boc:"x{B92CC224AD7A1546F9974E8ACD9B4D7305D90A21A75A24C9732DB161B7D034A0D78239814924A11BAED572D69782624216DE00BCEE93A99090469BFEE2477D0029A9A31764E4EA950000000503}\n x{620019F5CCE72C6549AE5B6A58A2B80A5E02FD23B696B24A5EDCD3C6E47A671D3AECA017D7840000000000000000000000000001}\n x{5FCC3D140000000000000000801DC05C9F00471C18F28FB322BE12D4FE504AE6C28DCE7493DB17433AE4959A0CF001AF614CF808EEEE5A8EB27AC9BD31B27BB5F6B986682F71A7F8E1A0C5F0A51F54202}"} ответ на транзакцию с помощью мобильного кошелька :

    {boc: 'te6cckEBAwEA/gAB4YgB3AXJ8ARxwY8o+zIr4S1P5QSubCjc50…T4Ajjgx5R9mRXwlqfyglc2FG5zpJ7YuhnXJKzQZwgKMscEHI='}

    =============================================================

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

    Итак, я пытаюсь получить владельца nft по адресу NFT после получения ответа на транзакцию, но все равно получаю старого владельца, который не обновляется после транзакции, я думаю, это требует времени.

    Итак, я решил расшифровать ответ и получить хэш Trasaction и данные проверки с помощью этого хэша из api.

    Но я не знаю, как получить хэш транзакции.

    Кто-нибудь может каким-либо образом помочь решить эту проблему? мне просто нужно подтвердить, что NFT получен в x wallet.

    Спасибо

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

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

    Решено

    Boc не ограничен по размеру, фактически все состояние блокчейна представляет собой ячейку с кучей ячеек, обернутых внутри них. Все - это клетка!

    Размер внешнего сообщения ограничен 64 Кб, что может ограничить размер boc, который вы пытаетесь создать с помощью своей логики смарт-контракта. Вы можете видеть, что это определено в клиенте lite, но оно может быть изменено:

    https://github.com/ton-blockchain/ton/blob/db3619ed310484fcfa4e3565be8e10458f9f2f5f/validator/impl/external-message.hpp#L40

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

    Решено

    Чтобы лучше понять роль "CRC-32" в сети TON и его связь с "пакетом ячеек" (BOCs), важно сначала ознакомиться с концепцией циклической проверки избыточности (CRC) и ее основным назначением.

    ** CRC - это широко используемый метод проверки целостности цифровых данных.** ** В качестве алгоритма обнаружения ошибок ** он проверяет наличие ошибок в цифровых данных во время передачи или хранения.

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

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

    **В сети TON CRC-32 используется в качестве компонента формата сериализации пакета ячеек (BOC) для обеспечения целостности данных. ** BOC - это двоичный формат, представляющий дерево ячеек, используемый для хранения и передачи данных в сети TON. Каждая ячейка в BOC содержит небольшой фрагмент данных и может содержать ссылки на другие ячейки.

    Во время сериализации или десериализации BOC для данных ячейки вычисляется контрольная сумма CRC-32, чтобы гарантировать, что они не были повреждены во время передачи или хранения. Если вычисленная контрольная сумма CRC-32 не совпадает с суммой, сохраненной в BOC, это указывает на то, что данные повреждены и их необходимо повторно передать или извлечь.

    Для получения дополнительной информации о CRC-32 и его использовании в сети TON обратитесь к следующим ресурсам:

    TON Documentation on CRC-32: https://docs.ton.org/develop/data-formats/crc32 * Online CRC-16 Calculator: https://emn178.github.io/online-tools/crc16.html
  • 0 Голоса
    2 Сообщения
    333 Просмотры

    Решено

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

    === Your Code Parameters === ..... console.log("============================"); console.log("Interacting with Collection Contract: \n" + contract_address); let seqno: number = await wallet_address.getSeqno(); let transfer = await wallet_address.sendTransfer({ seqno: seqno, secretKey: keyPair.secretKey, messages: [ internal({ value: toNano("0.75"), to: contract_address, init: { code: init.code, data: init.data }, bounce: true, body: packed, }), ], }); console.log("Transaction sent. Waiting for confirmation..."); let intervalId = setInterval(async () => { let seqno2 = await wallet_address.getSeqno(); if (seqno2 > seqno) { console.log("✅ Transaction confirmed!\n"); clearInterval(intervalId); } }, 1000);

    Чтобы дождаться возврата "seqno", вы можете подтвердить, что транзакция была обработана валидатором. Я надеюсь, что это будет полезно."

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

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

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