/** * Calls {@link PeerGroup#broadcastTransaction(Transaction,int)} with getMinBroadcastConnections() as the number * of connections to wait for before commencing broadcast. */ @Override public TransactionBroadcast broadcastTransaction(final Transaction tx) { return broadcastTransaction(tx, Math.max(1, getMinBroadcastConnections())); }
protected boolean send(Bitcoin.Transaction t) throws ExecutionException, InterruptedException, CoinNetworkException { if (!t.canSend || t.sent) { return false; } //checks to see if transaction was broadcast if (peerGroup == null) { return false; } peerGroup.broadcastTransaction(t.bitcoinj).future().get(); t.sent = true; return true; }
/** * Calls {@link PeerGroup#broadcastTransaction(Transaction,int)} with getMinBroadcastConnections() as the number * of connections to wait for before commencing broadcast. */ @Override public TransactionBroadcast broadcastTransaction(final Transaction tx) { return broadcastTransaction(tx, Math.max(1, getMinBroadcastConnections())); }
/** * Calls {@link PeerGroup#broadcastTransaction(Transaction,int)} with getMinBroadcastConnections() as the number * of connections to wait for before commencing broadcast. */ @Override public TransactionBroadcast broadcastTransaction(final Transaction tx) { return broadcastTransaction(tx, Math.max(1, getMinBroadcastConnections())); }
/** * Calls {@link PeerGroup#broadcastTransaction(Transaction,int)} with getMinBroadcastConnections() as the number * of connections to wait for before commencing broadcast. */ @Override public TransactionBroadcast broadcastTransaction(final Transaction tx) { return broadcastTransaction(tx, Math.max(1, getMinBroadcastConnections())); }
@Override public boolean broadcastTransaction (Transaction tx) { System.out.println("Broadcast transaction: "); System.out.println(tx); try { TransactionBroadcast broadcast = peerGroup.broadcastTransaction(tx); broadcast.future().get(10, TimeUnit.SECONDS); System.out.println(tx.getHash() + " broadcasted successfully!"); wallet.addWalletTransaction(new WalletTransaction(WalletTransaction.Pool.PENDING, tx)); return true; } catch (Exception e) { System.out.println("e.getMessage() = " + e.getMessage()); } return false; }
@Override public int onStartCommand(Intent intent, int flags, int startId) { if (intent != null) { String action = intent.getAction(); if (action != null && action.equalsIgnoreCase(ACTION_BROADCAST_TRANSACTION)) { byte[] hashArray = intent.getByteArrayExtra(ACTION_BROADCAST_TRANSACTION_HASH); Sha256Hash sha256Hash = Sha256Hash.wrap(hashArray); Transaction transaction = wallet.getTransaction(sha256Hash); if (peerGroup != null) { Log.d(TAG, "onStartCommand: broadcast transaction " + transaction.getHashAsString()); peerGroup.broadcastTransaction(transaction); } } } return super.onStartCommand(intent, flags, startId); }
peers.broadcastTransaction(req.tx).future().get(); } else { PaymentProtocol.Ack ack = future.get();
peers.broadcastTransaction(req.tx).future().get();
final TransactionBroadcast transactionBroadcast = peerGroup.broadcastTransaction(sendRequest.tx); ListenableFuture<Transaction> transactionFuture = transactionBroadcast.future();
peers.broadcastTransaction(t).future().get();
peers.broadcastTransaction(req.tx).future().get();
peers.broadcastTransaction(req.tx).future().get();
kit.peerGroup().broadcastTransaction(request.tx).future().get(); System.out.println("Send complete, waiting for confirmation"); request.tx.getConfidence().getDepthFuture(1).get();
@Override public void send() { String recipientAddress = view.getRecipient(); String amount = view.getAmount(); if(TextUtils.isEmpty(recipientAddress) || recipientAddress.equals("Scan recipient QR")) { view.showToastMessage("Select recipient"); return; } if(TextUtils.isEmpty(amount) | Double.parseDouble(amount) <= 0) { view.showToastMessage("Select valid amount"); return; } if(walletAppKit.wallet().getBalance().isLessThan(Coin.parseCoin(amount))) { view.showToastMessage("You got not enough coins"); view.clearAmount(); return; } SendRequest request = SendRequest.to(Address.fromBase58(parameters, recipientAddress), Coin.parseCoin(amount)); try { walletAppKit.wallet().completeTx(request); walletAppKit.wallet().commitTx(request.tx); walletAppKit.peerGroup().broadcastTransaction(request.tx).broadcast(); } catch (InsufficientMoneyException e) { e.printStackTrace(); view.showToastMessage(e.getMessage()); } }
@Test public void lateProgressCallback() throws Exception { // Check that if we register a progress callback on a broadcast after the broadcast has started, it's invoked // immediately with the latest state. This avoids API users writing accidentally racy code when they use // a convenience method like peerGroup.broadcastTransaction. InboundMessageQueuer[] channels = { connectPeer(1), connectPeer(2), connectPeer(3), connectPeer(4) }; Transaction tx = FakeTxBuilder.createFakeTx(PARAMS, CENT, address); tx.getConfidence().setSource(TransactionConfidence.Source.SELF); TransactionBroadcast broadcast = peerGroup.broadcastTransaction(tx); inbound(channels[1], InventoryMessage.with(tx)); pingAndWait(channels[1]); final AtomicDouble p = new AtomicDouble(); broadcast.setProgressCallback(new TransactionBroadcast.ProgressCallback() { @Override public void onBroadcastProgress(double progress) { p.set(progress); } }, Threading.SAME_THREAD); assertEquals(1.0, p.get(), 0.01); }