Guthaben von meiner Adresse mit Bitcoinj abrufen [Duplikat]

Ich kann mein Bitcoin-Guthaben aus dem privaten Schlüssel abrufen, aber als ich versuchte, es von meiner Adresse abzurufen, ist es nicht möglich, unter meinem Code zu posten. Kann mir jemand sagen, was ich falsch mache?

public static void main( String[] args )

        {
            NetworkParameters params = TestNet3Params.get();
            WalletAppKit kit = new  WalletAppKit(params, new File("."), "sano");
            kit.start();
            kit.isRunning();
            Address address = new Address(params, "mj255GgoGKN6uTjtWdNcF7obu88iLSTZdm");
            boolean add =kit.wallet().isAddressWatched(address);
            Wallet wallet = new Wallet(params);
            DumpedPrivateKey key = new DumpedPrivateKey(params,
                   "cTH6YyRZSqF8VvtjkfqABqjGF682cQkW3mMuageraH4CEzCrweqT");
            wallet.addKey(key.getKey());
            wallet.addWatchedAddress(new Address(params, "mj255GgoGKN6uTjtWdNcF7obu88iLSTZdm"));
            BlockChain chain = new BlockChain(params, wallet,
                   new MemoryBlockStore(params));
         PeerGroup peerGroup = new PeerGroup(params, chain);
         peerGroup.addPeerDiscovery(new DnsDiscovery(params));
         peerGroup.addWallet(wallet);
         peerGroup.start();
         peerGroup.downloadBlockChain();
         BigInteger balance = wallet.getBalance();
         System.out.println("Wallet balance: " + balance);
}

Bearbeiten 1: Der unten angegebene Code ruft den Kontostand von der Adresse ab, erstellt jedoch jedes Mal eine neue Adresse.

public static void main(String[] args) {

    NetworkParameters params = TestNet3Params.get();

    String filePrefix = "forwarding-service-testnet";

    WalletAppKit kit = new WalletAppKit(params, new File("."), filePrefix);

    // Download the block chain and wait until it's done.
    kit.startAsync();
    kit.awaitRunning();

    List<Address> list = kit.wallet().getWatchedAddresses();
    if (list.size() < 2) {
        kit.wallet().addWatchedAddress(kit.wallet().freshReceiveAddress());
        System.out.println("New address created");
    }

    System.out.println("You have " + list.size() + " addresses!");
    for (Address a: list) {
        System.out.println(a.toString());
    }

    String balance = kit.wallet().getBalance().toFriendlyString();
    System.out.println(balance);
}
@alcio Ich habe das überprüft, aber ich bekomme mein Guthaben immer noch nicht

Antworten (1)

Ich kann Ihnen die Problemumgehung für dieses Problem anbieten. Ich habe die Web-API für diese Funktion verwendet. Zum Beispiel https://www.blockcypher.com/dev/bitcoin/#address-balance-endpoint .

Es ermöglicht Ihnen, das Herunterladen von Blockchain-Teilen abzulehnen und Ihren Code einfacher zu machen.

Danke @Konstantin, aber ich brauche es so "mit Bitcoin", wie erwähnt