18.5 C
New York
Monday, June 2, 2025

The transaction historical past made to the handle by way of the Electrum Testnet pockets just isn’t displayed


I’m new to this enterprise, so I apologize for such a probably primary and silly query, I attempted to search out any data, however I could not.

I made numerous transfers to the handle proven within the following instance.

I even have these transfers in my historical past, and they’re marked as profitable. For reference, I made a switch from my pockets to the handle that’s linked to mywallet.

2

I even have a connection to the check community.

3

Within the pockets, as proven, every part is there, every part is ok, however whenever you attempt to test the data of my handle, there’s nothing there.

Right here I checked the handle by means of a particular web site.

4


I wrote a small program to test the historical past of the handle, steadiness, however nothing is displayed there.

Connecting to Electrum server...
Efficiently related to Electrum server.
Handle: tb1qc7j5j80s02gupl0qa3svg5kr99smjdq9a7yezd
ScriptHash: bb72dcabbea723d56aa49cd29575e53aaabf832f9dbdb45f251b56e187ce915a
Uncooked historical past response: []
Fetching transaction historical past...
Discovered 0 transactions.
Complete steadiness for tb1qc7j5j80s02gupl0qa3svg5kr99smjdq9a7yezd: 0 satoshis (0 BTC)
Present block top: 900621
Disconnected from Electrum server.

Right here is the code of this system itself:

import * as bitcoin from 'bitcoinjs-lib';
import { ElectrumClient, ElectrumClientEvents } from '@electrum-cash/community';

const ELECTRUM_HOST = 'blackie.c3-soft.com';
const ADDRESS = 'tb1qc7j5j80s02gupl0qa3svg5kr99smjdq9a7yezd';
const NETWORK = bitcoin.networks.testnet;

operate addressToElectrumScriptHash(handle: string, community: bitcoin.Community): string | null {
  attempt {
    const outputScript = bitcoin.handle.toOutputScript(handle, community);
    const hash = bitcoin.crypto.sha256(outputScript);
    return Buffer.from(hash.reverse()).toString('hex');
  } catch (e) {
    console.error(`Did not convert handle ${handle} to scripthash: ${e.message}`);
    return null;
  }
}

async operate debugScripthashHistory(consumer: ElectrumClient<ElectrumClientEvents>, scriptHash: string) {
  attempt {
    const historical past = await consumer.request('blockchain.scripthash.get_history', scriptHash);
    console.log('Uncooked historical past response:', JSON.stringify(historical past, null, 2));
  } catch (error) {
    console.error('Error fetching uncooked historical past:', error.message);
  }
}

async operate checkAddress() {
  const consumer = new ElectrumClient(
    'Handle Checker',
    '1.4.1',
    ELECTRUM_HOST,
  );

  attempt {
    console.log('Connecting to Electrum server...');
    await consumer.join();
    console.log('Efficiently related to Electrum server.');

    const scriptHash = addressToElectrumScriptHash(ADDRESS, NETWORK);
    if (!scriptHash) {
      console.error('Did not generate scripthash for handle.');
      return;
    }
    console.log(`Handle: ${ADDRESS}`);
    console.log(`ScriptHash: ${scriptHash}`);
    await debugScripthashHistory(consumer, scriptHash);

    console.log('Fetching transaction historical past...');
    const historyResult = await consumer.request('blockchain.scripthash.get_history', scriptHash);
    if (historyResult instanceof Error) {
      console.error(`Error fetching historical past: ${historyResult.message}`);
      return;
    }
    if (!Array.isArray(historyResult)) {
      console.error('Sudden historical past response:', historyResult);
      return;
    }

    const historical past = historyResult as { tx_hash: string; top: quantity }[];
    console.log(`Discovered ${historical past.size} transactions.`);

    let totalBalance = 0;
    for (const tx of historical past) {
      const txHash = tx.tx_hash;
      console.log(`Processing transaction: ${txHash} (Block top: ${tx.top})`);

      const txDataResult = await consumer.request('blockchain.transaction.get', txHash, true);
      if (txDataResult instanceof Error) {
        console.error(`Error fetching transaction ${txHash}: ${txDataResult.message}`);
        proceed;
      }
      if (!txDataResult || typeof txDataResult !== 'object') {
        console.error(`Invalid transaction information for ${txHash}`);
        proceed;
      }

      const txData = txDataResult as { vout: { worth: string; scriptPubKey: { hex: string } }[] };
      const outputScriptHex = bitcoin.handle.toOutputScript(ADDRESS, NETWORK).toString('hex');

      for (const vout of txData.vout) {
        if (vout.scriptPubKey.hex === outputScriptHex) {
          const quantity = Math.spherical(parseFloat(vout.worth) * 1e8); // Конвертация BTC в сатоши
          totalBalance += quantity;
          console.log(`Discovered output to handle: ${quantity} satoshis`);
        }
      }
    }

    console.log(`Complete steadiness for ${ADDRESS}: ${totalBalance} satoshis (${totalBalance / 1e8} BTC)`);

    const blockHeightResponse = await consumer.request('blockchain.headers.subscribe');
    if (blockHeightResponse && typeof blockHeightResponse === 'object' && 'top' in blockHeightResponse) {
      console.log(`Present block top: ${blockHeightResponse.top}`);
    }

  } catch (error) {
    console.error('Error throughout handle test:', error.message);
  } lastly {
    attempt {
      await consumer.disconnect();
      console.log('Disconnected from Electrum server.');
    } catch (e) {
      console.error('Error throughout disconnection:', e.message);
    }
  }
}

checkAddress().catch(console.error);

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles