public List<AddressStatus> getAllAddressStatus() { lock.lock(); try { ArrayList<AddressStatus> statuses = new ArrayList<>(addressesStatus.size()); for (Map.Entry<AbstractAddress, String> status : addressesStatus.entrySet()) { statuses.add(new AddressStatus(status.getKey(), status.getValue())); } return statuses; } finally { lock.unlock(); } }
@Nullable public AddressStatus getAddressStatus(AbstractAddress address) { lock.lock(); try { if (addressesStatus.containsKey(address)) { return new AddressStatus(address, addressesStatus.get(address)); } else { return null; } } finally { lock.unlock(); } }
@Override public void onSuccess(ResultMessage result) { AddressStatus status = null; try { if (result.getResult().isNull(0)) { status = new AddressStatus(address, null); } else { status = new AddressStatus(address, result.getResult().getString(0)); } listener.onAddressStatusUpdate(status); } catch (JSONException e) { log.error("Unexpected JSON format", e); } }
@Override public void handle(CallMessage message) { try { AbstractAddress address = BitAddress.from(type, message.getParams().getString(0)); AddressStatus status; if (message.getParams().isNull(1)) { status = new AddressStatus(address, null); } else { status = new AddressStatus(address, message.getParams().getString(1)); } listener.onAddressStatusUpdate(status); } catch (AddressMalformedException e) { log.error("Address subscribe sent a malformed address", e); } catch (JSONException e) { log.error("Unexpected JSON format", e); } } };
@Override public void subscribeToAddresses(List<AbstractAddress> addresses, TransactionEventListener<BitTransaction> listener) { for (AbstractAddress a : addresses) { AddressStatus status = statuses.get(a); if (status == null) { status = new AddressStatus(a, null); } listener.onAddressStatusUpdate(status); } }
HashMap<AbstractAddress, AddressStatus> getDummyStatuses() throws AddressMalformedException { HashMap<AbstractAddress, AddressStatus> status = new HashMap<>(40); for (int i = 0; i < addresses.size(); i++) { AbstractAddress address = DOGE.newAddress(addresses.get(i)); status.put(address, new AddressStatus(address, statuses[i])); } return status; }
for (Protos.AddressStatus sp : walletProto.getAddressStatusList()) { AbstractAddress addr = coinType.newAddress(sp.getAddress()); AddressStatus status = new AddressStatus(addr, sp.getStatus()); pocket.commitAddressStatus(status);