Java 类org.bitcoinj.core.TransactionBroadcast 实例源码

项目:bitnym    文件:TransactionGenerator.java   
public void sendBroadcastAnnouncement(BroadcastAnnouncement ba, File f, ProofMessage pm, int lockTime) throws InsufficientMoneyException {
    //build transaction
    Transaction tx = new Transaction(params);

    Script s = ba.buildScript();
    System.out.println("Script size is " + s.SIG_SIZE);
    //System.out.println(s.getScriptType());
    ECKey psnymKey = new ECKey();
    long unixTime = System.currentTimeMillis() / 1000L;
    //TODO use bitcoin nets median time
    tx.setLockTime(CLTVScriptPair.currentBitcoinBIP113Time(bc)-1);
    CLTVScriptPair sp = new CLTVScriptPair(psnymKey, CLTVScriptPair.currentBitcoinBIP113Time(bc)+lockTime);
    w.importKey(psnymKey);
    tx.addOutput(new TransactionOutput(params, tx, pm.getLastTransactionOutput().getValue().subtract(estimateBroadcastFee()), sp.getPubKeyScript().getProgram()));
    tx.addOutput(Coin.ZERO, s);
    tx.addInput(pm.getLastTransactionOutput());
    tx.getInput(0).setSequenceNumber(3); //the concrete value doesn't matter, this is just for cltv
    tx.getInput(0).setScriptSig(pm.getScriptPair().calculateSigScript(tx, 0, w));

    try {
        w.commitTx(tx);
        w.saveToFile(f);
    } catch (IOException e1) {
        e1.printStackTrace();
    }

    TransactionBroadcast broadcast = pg.broadcastTransaction(tx);
    pm.addTransaction(tx, 0, sp);
    pm.writeToFile();
    System.out.println("save broadcast announcement to file");



}
项目:coinblesk-client-gui    文件:WalletService.java   
public ListenableFuture<Transaction> broadcastTransaction(final Transaction tx) {
    TransactionBroadcast broadcast = peerGroup.broadcastTransaction(tx);
    broadcast.setProgressCallback(new TransactionBroadcast.ProgressCallback() {
        final String txHash = tx.getHashAsString();
        @Override
        public void onBroadcastProgress(double progress) {
            Log.d(TAG, "Transaction broadcast - tx: "+txHash+", progress: " + progress);
        }
    });
    return broadcast.future();
}
项目:EternityWallAndroid    文件:EWWalletService.java   
public TransactionBroadcast broadcastTransaction(Transaction tx) {
    Log.i(TAG,"sendTransaction " +tx );
    TransactionBroadcast transactionBroadcast = peerGroup.broadcastTransaction(tx);
    walletObservable.setState(WalletObservable.State.PENDING);
    walletObservable.notifyObservers();
    return transactionBroadcast;
}
项目:coinblesk-server    文件:WalletService.java   
public ListenableFuture<Transaction> broadCastAsync(final Transaction transaction) {
    // Fake transaction for when testing.
    // peerGroup.broadcastTransaction would otherwise fail, as it waits for at least 1 connection which will
    // never happen.
    if (appConfig.getBitcoinNet().equals(BitcoinNet.UNITTEST)) {
        SettableFuture<Transaction> future = SettableFuture.create();
        future.set(transaction);
        return TransactionBroadcast.createMockBroadcast(transaction, future).future();
    } else {
        return peerGroup.broadcastTransaction(transaction).future();
    }
}