本文整理汇总了Java中org.bitcoinj.core.TransactionBroadcast类的典型用法代码示例。如果您正苦于以下问题:Java TransactionBroadcast类的具体用法?Java TransactionBroadcast怎么用?Java TransactionBroadcast使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TransactionBroadcast类属于org.bitcoinj.core包,在下文中一共展示了TransactionBroadcast类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: sendBroadcastAnnouncement
import org.bitcoinj.core.TransactionBroadcast; //导入依赖的package包/类
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");
}
示例2: broadcastTransaction
import org.bitcoinj.core.TransactionBroadcast; //导入依赖的package包/类
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();
}
示例3: broadcastTransaction
import org.bitcoinj.core.TransactionBroadcast; //导入依赖的package包/类
public TransactionBroadcast broadcastTransaction(Transaction tx) {
Log.i(TAG,"sendTransaction " +tx );
TransactionBroadcast transactionBroadcast = peerGroup.broadcastTransaction(tx);
walletObservable.setState(WalletObservable.State.PENDING);
walletObservable.notifyObservers();
return transactionBroadcast;
}
示例4: broadCastAsync
import org.bitcoinj.core.TransactionBroadcast; //导入依赖的package包/类
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();
}
}