public void setTransaction(AbstractTransaction tx) { outputs.clear(); final Value value = tx.getValue(pocket); isSending = value.signum() < 0; // if sending and all the outputs point inside the current pocket it is an internal transfer boolean isInternalTransfer = isSending; for (AbstractOutput output : tx.getSentTo()) { if (isSending) { // When sending hide change outputs if (pocket.isAddressMine(output.getAddress())) continue; isInternalTransfer = false; } else { if (pocket.getCoinType() instanceof NxtFamily) { // TODO review the following outputs.add(new AbstractOutput(tx.getReceivedFrom().get(0), tx.getValue(pocket))); break; } // When receiving hide outputs that are not ours if (!pocket.isAddressMine(output.getAddress())) continue; } outputs.add(output); } feeAmount = tx.getFee(); hasFee = feeAmount != null && !feeAmount.isZero(); itemCount = isInternalTransfer ? 1 : outputs.size(); itemCount += hasFee ? 1 : 0; notifyDataSetChanged(); }
checkState(request.isCompleted(), "Only completed requests are currently supported."); checkState(request.tx.getSentTo().size() == 1, "Only one output is currently supported"); sendToAddress = request.tx.getSentTo().get(0).getAddress(); sourceType = request.type; return;
for (AbstractOutput txo : outputs) { if (isSending) { if (pocket != null && pocket.isAddressMine(txo.getAddress())) continue; isInternalTransfer = false; } else { if (pocket != null && !pocket.isAddressMine(txo.getAddress())) continue; outputAmount = txo.getValue(); output.setAmount(GenericUtils.formatCoinValue(type, outputAmount)); output.setSymbol(symbol); address = txo.getAddress(); output.setLabelAndAddress(address); break; // TODO remove when supporting more than one output
wallet.getAccounts(request.tx.getSentTo().get(0).getAddress()).get(0); if (!account.broadcastTxSync(request.tx)) { throw new Exception("Error broadcasting transaction: " + request.tx.getHashAsString());
Value outputAmount = txo.getValue(); output.setAmount(GenericUtils.formatCoinValue(type, outputAmount)); output.setSymbol(symbol); output.setLabelAndAddress(txo.getAddress()); output.setSending(isSending);
@CheckForNull private static List<AbstractAddress> getToAddresses(@Nonnull final AbstractTransaction tx, @Nonnull final AbstractWallet pocket, boolean toMe) { List<AbstractAddress> addresses = new ArrayList<>(); List<AbstractOutput> outputs = tx.getSentTo(); for (AbstractOutput output : outputs) { boolean isMine = pocket.isAddressMine(output.getAddress()); if (isMine == toMe) { addresses.add(output.getAddress()); } } return addresses; }
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (position >= outputRows.getHeaderViewsCount()) { Object obj = parent.getItemAtPosition(position); if (obj != null && obj instanceof AbstractOutput) { UiUtils.startAddressActionMode(((AbstractOutput) obj).getAddress(), getActivity(), getFragmentManager()); } } } };
@Override public List<AbstractOutput> getSentTo() { return ImmutableList.of(new AbstractOutput(new NxtAddress(type, tx.getRecipientId()), Value.valueOf(type, tx.getAmountNQT()))); }
@Override public List<AbstractOutput> getSentTo() { List<AbstractOutput> outputs = new ArrayList<>(); for (TransactionOutput output : getOutputs(false)) { try { AbstractAddress address = BitAddress.from(type, output.getScriptPubKey()); outputs.add(new AbstractOutput(address, type.value(output.getValue()))); } catch (Exception e) { /* ignore this output */ } } return outputs; }