Я могу получить свой баланс биткойнов с помощью закрытого ключа, но когда я попытался получить его со своего адреса, это невозможно, размещенное ниже моего кода, может ли кто-нибудь сказать мне, что я делаю неправильно?
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);
}
Редактировать 1: приведенный ниже код извлекает баланс с адреса, но каждый раз, когда он создает новый адрес.
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);
}
Я могу предложить вам решение этой проблемы. Я использовал веб-API для этой функции. Например https://www.blockcypher.com/dev/bitcoin/#address-balance-endpoint .
Это позволит вам отказаться от загрузки части цепочки блоков и сделать ваш код более простым.
сано143