Ответы пользователя по тегу Криптовалюта
  • Почему функция mnemonicToWalletKey из библиотеки тон генерирует неверный адрес кошелька?

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

    1) Мнемоническая фраза: Проверьте, что мнемоническая фраза правильно разделена и передана в функцию mnemonicToWalletKey. Убедитесь, что мнемоническая фраза состоит из правильного количества слов и корректно обработана (например, не содержит лишних пробелов или символов).

    2) Версия контракта кошелька: В вашем коде используется WalletContractV3R1. Убедитесь, что это соответствует версии кошелька, которую вы ожидаете использовать. Если вы хотите использовать WalletContractV4, вам нужно изменить эту часть кода.

    3) Проверка на деплоирование контракта: Ваш код проверяет, деплоирован ли контракт на блокчейне. Это хорошая практика, но стоит убедиться, что API клиента TON корректно обрабатывает этот запрос.

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

    Вот модифицированный пример кода, включая некоторые дополнительные логи для отладки:

    import { mnemonicToWalletKey } from "ton-crypto";
    import { TonClient, WalletContractV3R1 } from "ton";
    import { getHttpEndpoint } from "@orbs-network/ton-access";
    
    async function main() {
        const mnemonic = "your,mnemonic,phrase,here";  // Укажите вашу мнемоническую фразу
        const key = await mnemonicToWalletKey(mnemonic.split(","));
        console.log("Public Key:", key.publicKey);  // Логирование публичного ключа
    
        const wallet = WalletContractV3R1.create({ publicKey: key.publicKey, workchain: 0 });
        console.log("Wallet Address:", wallet.address);  // Логирование адреса кошелька
    
        const endpoint = await getHttpEndpoint({ network: "mainnet" });
        const client = new TonClient({ endpoint });
    
        if (!await client.isContractDeployed(wallet.address)) {
            console.log("Wallet is not deployed.");
            return;
        }
    
        console.log("All OK -", wallet.address);
    }
    
    main();


    Этот код добавляет логи для ключевых переменных, что поможет вам понять, какие именно данные генерируются и используются в вашем скрипте. Если вы продолжите сталкиваться с проблемами, возможно, стоит проверить документацию или исходные коды используемых библиотек на предмет известных проблем или обновлений.
    Ответ написан
  • Как подключиться к trust wallet при помощи node js?

    Привет.
    Для работы с Trust Wallet через Node.js, тебе нужно взаимодействовать с блокчейном напрямую, поскольку Trust Wallet лишь интерфейс для блокчейна и не предоставляет собственного API для подобных задач. Вместо этого, ты можешь использовать различные библиотеки и API, для работы с блокчейнами, с которыми Trust Wallet может взаимодействовать (например, Ethereum, Binance Smart Chain и т.д.).

    Популярные либы:
    • Web3.js
    • ethers.js
    • Binance Smart Chain


    Пример кода на web3.js
    Вот базовый пример того, как можно начать работу с web3.js для получения баланса Ethereum адреса:

    const Web3 = require('web3');
    // Указываем провайдера. Это может быть Infura, Alchemy или любой другой узел Ethereum.
    const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_PROJECT_ID');
    
    const address = 'адрес_кошелька';
    
    web3.eth.getBalance(address, (err, wei) => {
      // Переводим из wei в Ether
      balance = web3.utils.fromWei(wei, 'ether');
      console.log(balance);
    });


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

    Важные соображения:
    • Безопасность: Будь осторожны при обработке приватных ключей. Никогда не храни их в открытом виде и не передавай через незащищенные каналы.
    • Инфраструктура: В зависимости от твоего приложения, может понадобиться узел блокчейна (например, через Infura для Ethereum). Это может потребовать регистрации и, возможно, подписки.
    • Совместимость: Убедись, что выбранный блокчейн поддерживается Trust Wallet и твоим приложением.


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