Bitcoinj Wallet kann keine Coins in Testnet3 empfangen

Ich habe ein Problem mit Bitcoin.

Ich habe eine Brieftasche erstellt und versuche dann, Münzen in Testnet3 mit diesem Faucet zu senden: https://coinfaucet.eu/en/btc-testnet/

Münzen gesendet, Transaktion bestätigt, aber wenn ich versuche, ein Guthaben zu erhalten, ist es immer Null (verfügbar = verfügbar, auszahlbar = extimated = geschätzt spandable = 0).

So erstelle ich eine Wallet:

NetworkParameters params = TestNet3Params.get();
Wallet wallet = new Wallet(params);
BlockChain chain = new BlockChain(params, wallet, new MemoryBlockStore(params));
PeerGroup peerGroup = new PeerGroup(params, chain);
peerGroup.addWallet(wallet);
peerGroup.startAsync();
File file = new File("testwallet");
wallet.saveToFile(file);

Adresse:

wallet.currentReceiveAddress().toString()

Gleichgewicht:

wallet.getBalance()
wallet.getBalance(Wallet.BalanceType.AVAILABLE_SPENDABLE)
wallet.getBalance(Wallet.BalanceType.AVAILABLE)
wallet.getBalance(Wallet.BalanceType.ESTIMATED_SPENDABLE)
wallet.getBalance(Wallet.BalanceType.ESTIMATED)

Und es ist immer null.

Was mache ich falsch? Warum kann ich keine Coins empfangen?

Antworten (1)

Verwenden Sie WalletAppKitdiese Klasse ist eine Utility-Klasse, die die Boilerplate umschließt, die zum Einrichten einer neuen SPV-Bitcoinj-App erforderlich ist. Instanziieren Sie es mit einem Verzeichnis und einem Dateipräfix, konfigurieren Sie optional ein paar Dinge, verwenden Sie dann startAsync und optional awaitRunning.

Ich habe die Brieftasche erstellt und die Münzen mit dem von Ihnen erwähnten Wasserhahn gesendet, und es funktioniert gut und ich empfange Münzen, hier ist mein Code ...

public class Main {
    static NetworkParameters params = NetworkParameters.testNet3();
    static String path = System.getProperty("user.home") + "/Desktop";
    private static File walletFile = new File(path);
    private final static String APP_NAME = "MyWallet";
    private static WalletAppKit kit;

    public static void main(String...args)
    {
        kit = new WalletAppKit(params, walletFile, APP_NAME)
        {
            @Override
            protected Wallet createWallet() {
                Wallet wallet = new Wallet(params);
                return wallet;
            }
            @Override
            protected void onSetupCompleted() {
                super.onSetupCompleted();
                System.out.println(kit.wallet().currentReceiveAddress());
                System.out.println(kit.wallet().getTotalReceived().toFriendlyString());
                txHistory();
            }
        };
        System.out.println("start syncing...");
        kit.startAsync();
        kit.awaitRunning();
    }



    private static void txHistory()
    {
        List<Transaction> txx = kit.wallet().getTransactionsByTime();
        if (!txx.isEmpty())
        {
            int i = 1;
            for (Transaction tx : txx)
            {
                System.out.println(i + "  ________________________");
                System.out.println("Date and Time: " + tx.getUpdateTime().toString());
                System.out.println("From Address: " + tx.getOutput(1).getAddressFromP2PKHScript(params));
                System.out.println("To Address: " + tx.getOutput(0).getAddressFromP2PKHScript(params));
                System.out.println("Amount Sent to me: " + tx.getValueSentToMe(kit.wallet()).toFriendlyString());
                System.out.println("Amount Sent from me: " + tx.getValueSentFromMe(kit.wallet()).toFriendlyString());
                long fee = (tx.getInputSum().getValue() > 0 ? tx.getInputSum().getValue() - tx.getOutputSum().getValue() : 0);
                System.out.println("Fee: " + Coin.valueOf(fee).toFriendlyString());
                System.out.println("Transaction Depth: " + tx.getConfidence().getDepthInBlocks());
                System.out.println("Transaction Blocks: " + tx.getConfidence().toString());
                System.out.println("Tx Hex: " + tx.getHashAsString());
                i++;
            }
        }
        else
        {

            System.err.println("No Transaction Found");
        }
    }
}