Friday, July 25, 2025
Homeบิทคอยน์The transaction historical past made to the tackle by way of the...

The transaction historical past made to the tackle by way of the Electrum Testnet pockets is just not displayed


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

I made a variety of transfers to the tackle proven within the following instance.

1

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 tackle that’s linked to mywallet.

2

I even have a connection to the take a look at community.

3

Within the pockets, as proven, the whole lot is there, the whole lot is okay, however whenever you attempt to test the knowledge of my tackle, there may be nothing there.

Right here I checked the tackle via a particular web site.

4


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

Connecting to Electrum server...
Efficiently related to Electrum server.
Deal with: tb1qc7j5j80s02gupl0qa3svg5kr99smjdq9a7yezd
ScriptHash: bb72dcabbea723d56aa49cd29575e53aaabf832f9dbdb45f251b56e187ce915a
Uncooked historical past response: []
Fetching transaction historical past...
Discovered 0 transactions.
Whole steadiness for tb1qc7j5j80s02gupl0qa3svg5kr99smjdq9a7yezd: 0 satoshis (0 BTC)
Present block peak: 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;

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

async perform debugScripthashHistory(shopper: ElectrumClient<ElectrumClientEvents>, scriptHash: string) {
  attempt {
    const historical past = await shopper.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 perform checkAddress() {
  const shopper = new ElectrumClient(
    'Deal with Checker',
    '1.4.1',
    ELECTRUM_HOST,
  );

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

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

    console.log('Fetching transaction historical past...');
    const historyResult = await shopper.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; peak: 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 peak: ${tx.peak})`);

      const txDataResult = await shopper.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 knowledge for ${txHash}`);
        proceed;
      }

      const txData = txDataResult as { vout: { worth: string; scriptPubKey: { hex: string } }[] };
      const outputScriptHex = bitcoin.tackle.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(`Whole steadiness for ${ADDRESS}: ${totalBalance} satoshis (${totalBalance / 1e8} BTC)`);

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

  } catch (error) {
    console.error('Error throughout tackle test:', error.message);
  } lastly {
    attempt {
      await shopper.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

Most Popular

ความเห็นล่าสุด