org.bitcoinj.core.Transaction.getOutput()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(9.8k)|赞(0)|评价(0)|浏览(97)

本文整理了Java中org.bitcoinj.core.Transaction.getOutput()方法的一些代码示例,展示了Transaction.getOutput()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Transaction.getOutput()方法的具体详情如下:
包路径:org.bitcoinj.core.Transaction
类名称:Transaction
方法名:getOutput

Transaction.getOutput介绍

[英]Same as getOutputs().get(index)
[中]与getOutputs()相同。获取(索引)

代码示例

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

public Script getContractScript() {
  if (contract == null) {
    return null;
  }
  return contract.getOutput(0).getScriptPubKey();
}

代码示例来源:origin: fr.acinq/bitcoinj-core

public Script getContractScript() {
  if (contract == null) {
    return null;
  }
  return contract.getOutput(0).getScriptPubKey();
}

代码示例来源:origin: fr.acinq/bitcoinj-core

PaymentChannelV2ClientState(StoredClientChannel storedClientChannel, Wallet wallet) throws VerificationException {
  super(storedClientChannel, wallet);
  // The PaymentChannelClientConnection handles storedClientChannel.active and ensures we aren't resuming channels
  this.contract = checkNotNull(storedClientChannel.contract);
  this.expiryTime = storedClientChannel.expiryTime;
  this.totalValue = contract.getOutput(0).getValue();
  this.valueToMe = checkNotNull(storedClientChannel.valueToMe);
  this.refundTx = checkNotNull(storedClientChannel.refund);
  this.refundFees = checkNotNull(storedClientChannel.refundFees);
  stateMachine.transition(State.READY);
  initWalletListeners();
}

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

PaymentChannelV2ClientState(StoredClientChannel storedClientChannel, Wallet wallet) throws VerificationException {
  super(storedClientChannel, wallet);
  // The PaymentChannelClientConnection handles storedClientChannel.active and ensures we aren't resuming channels
  this.contract = checkNotNull(storedClientChannel.contract);
  this.expiryTime = storedClientChannel.expiryTime;
  this.totalValue = contract.getOutput(0).getValue();
  this.valueToMe = checkNotNull(storedClientChannel.valueToMe);
  this.refundTx = checkNotNull(storedClientChannel.refund);
  this.refundFees = checkNotNull(storedClientChannel.refundFees);
  stateMachine.transition(State.READY);
  initWalletListeners();
}

代码示例来源:origin: fr.acinq/bitcoinj-core

PaymentChannelV1ClientState(StoredClientChannel storedClientChannel, Wallet wallet) throws VerificationException {
  super(storedClientChannel, wallet);
  // The PaymentChannelClientConnection handles storedClientChannel.active and ensures we aren't resuming channels
  this.multisigContract = checkNotNull(storedClientChannel.contract);
  this.multisigScript = multisigContract.getOutput(0).getScriptPubKey();
  this.refundTx = checkNotNull(storedClientChannel.refund);
  this.refundFees = checkNotNull(storedClientChannel.refundFees);
  this.expiryTime = refundTx.getLockTime();
  this.totalValue = multisigContract.getOutput(0).getValue();
  stateMachine.transition(State.READY);
  initWalletListeners();
}

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

PaymentChannelV1ClientState(StoredClientChannel storedClientChannel, Wallet wallet) throws VerificationException {
  super(storedClientChannel, wallet);
  // The PaymentChannelClientConnection handles storedClientChannel.active and ensures we aren't resuming channels
  this.multisigContract = checkNotNull(storedClientChannel.contract);
  this.multisigScript = multisigContract.getOutput(0).getScriptPubKey();
  this.refundTx = checkNotNull(storedClientChannel.refund);
  this.refundFees = checkNotNull(storedClientChannel.refundFees);
  this.expiryTime = refundTx.getLockTime();
  this.totalValue = multisigContract.getOutput(0).getValue();
  stateMachine.transition(State.READY);
  initWalletListeners();
}

代码示例来源:origin: blockchain/thunder

public List<TransactionSignature> getPaymentSignatures () {
  List<Transaction> paymentTransactions = getClientPaymentTransactions();
  List<TransactionSignature> signatureList = new ArrayList<>();
  int index = 2;
  for (Transaction t : paymentTransactions) {
    TransactionSignature sig = Tools.getSignature(t, 0, getClientTransaction().getOutput(index).getScriptBytes(), channel.getKeyServer());
    signatureList.add(sig);
    index++;
  }
  return signatureList;
}

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

/**
 * For a connected transaction, runs the script against the connected pubkey and verifies they are correct.
 * @throws ScriptException if the script did not verify.
 * @throws VerificationException If the outpoint doesn't match the given output.
 */
public void verify() throws VerificationException {
  final Transaction fromTx = getOutpoint().fromTx;
  long spendingIndex = getOutpoint().getIndex();
  checkNotNull(fromTx, "Not connected");
  final TransactionOutput output = fromTx.getOutput((int) spendingIndex);
  verify(output);
}

代码示例来源:origin: fr.acinq/bitcoinj-core

/**
 * For a connected transaction, runs the script against the connected pubkey and verifies they are correct.
 * @throws ScriptException if the script did not verify.
 * @throws VerificationException If the outpoint doesn't match the given output.
 */
public void verify() throws VerificationException {
  final Transaction fromTx = getOutpoint().fromTx;
  long spendingIndex = getOutpoint().getIndex();
  checkNotNull(fromTx, "Not connected");
  final TransactionOutput output = fromTx.getOutput((int) spendingIndex);
  verify(output);
}

代码示例来源:origin: blockchain/thunder

private void sendEstablishMessageB () {
  Transaction channelTransaction = paymentLogic.getChannelTransaction(
      establishProgress.channel.anchorTx.getOutput(0).getOutPointFor(),
      establishProgress.channel.channelStatus.getCloneReversed(),
      establishProgress.channel.keyServer,
      establishProgress.channel.keyClient
  );
  establishProgress.channel.channelSignatures = paymentLogic.getSignatureObject(establishProgress.channel, channelTransaction);
  LNEstablish message = messageFactory.getEstablishMessageB(establishProgress.channel.channelSignatures.channelSignatures.get(0));
  establishProgress.messages.add(message);
  messageExecutor.sendMessageUpwards(message);
}

代码示例来源:origin: fr.acinq/bitcoinj-core

/**
 * Returns true if the tx is a valid settlement transaction.
 */
public synchronized boolean isSettlementTransaction(Transaction tx) {
  try {
    tx.verify();
    tx.getInput(0).verify(getContractInternal().getOutput(0));
    return true;
  } catch (VerificationException e) {
    return false;
  }
}

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

/**
 * Returns true if the tx is a valid settlement transaction.
 */
public synchronized boolean isSettlementTransaction(Transaction tx) {
  try {
    tx.verify();
    tx.getInput(0).verify(getContractInternal().getOutput(0));
    return true;
  } catch (VerificationException e) {
    return false;
  }
}

代码示例来源:origin: greenaddress/GreenBits

/**
 * Returns true if the tx is a valid settlement transaction.
 */
public synchronized boolean isSettlementTransaction(Transaction tx) {
  try {
    tx.verify();
    tx.getInput(0).verify(getContractInternal().getOutput(0));
    return true;
  } catch (VerificationException e) {
    return false;
  }
}

代码示例来源:origin: fr.acinq/bitcoinj-core

private synchronized Transaction makeUnsignedChannelContract(Coin valueToMe) throws ValueOutOfRangeException {
  Transaction tx = new Transaction(wallet.getParams());
  tx.addInput(getContractInternal().getOutput(0));
  // Our output always comes first.
  // TODO: We should drop myKey in favor of output key + multisig key separation
  // (as its always obvious who the client is based on T2 output order)
  tx.addOutput(valueToMe, myKey.toAddress(wallet.getParams()));
  return tx;
}

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

private synchronized Transaction makeUnsignedChannelContract(Coin valueToMe) throws ValueOutOfRangeException {
  Transaction tx = new Transaction(wallet.getParams());
  tx.addInput(getContractInternal().getOutput(0));
  // Our output always comes first.
  // TODO: We should drop myKey in favor of output key + multisig key separation
  // (as its always obvious who the client is based on T2 output order)
  tx.addOutput(valueToMe, myKey.toAddress(wallet.getParams()));
  return tx;
}

代码示例来源:origin: greenaddress/GreenBits

private synchronized Transaction makeUnsignedChannelContract(Coin valueToMe) throws ValueOutOfRangeException {
  Transaction tx = new Transaction(wallet.getParams());
  tx.addInput(getContractInternal().getOutput(0));
  // Our output always comes first.
  // TODO: We should drop myKey in favor of output key + multisig key separation
  // (as its always obvious who the client is based on T2 output order)
  tx.addOutput(valueToMe, myKey.toAddress(wallet.getParams()));
  return tx;
}

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

/** Reduce the value of the first output of a transaction to pay the given feePerKb as appropriate for its size. */
private boolean adjustOutputDownwardsForFee(Transaction tx, CoinSelection coinSelection, Coin feePerKb,
    boolean ensureMinRequiredFee) {
  final int size = tx.unsafeBitcoinSerialize().length + estimateBytesForSigning(coinSelection);
  Coin fee = feePerKb.multiply(size).divide(1000);
  if (ensureMinRequiredFee && fee.compareTo(Transaction.REFERENCE_DEFAULT_MIN_TX_FEE) < 0)
    fee = Transaction.REFERENCE_DEFAULT_MIN_TX_FEE;
  TransactionOutput output = tx.getOutput(0);
  output.setValue(output.getValue().subtract(fee));
  return !output.isDust();
}

代码示例来源:origin: fr.acinq/bitcoinj-core

/** Reduce the value of the first output of a transaction to pay the given feePerKb as appropriate for its size. */
private boolean adjustOutputDownwardsForFee(Transaction tx, CoinSelection coinSelection, Coin feePerKb,
    boolean ensureMinRequiredFee) {
  final int size = tx.unsafeBitcoinSerialize().length + estimateBytesForSigning(coinSelection);
  Coin fee = feePerKb.multiply(size).divide(1000);
  if (ensureMinRequiredFee && fee.compareTo(Transaction.REFERENCE_DEFAULT_MIN_TX_FEE) < 0)
    fee = Transaction.REFERENCE_DEFAULT_MIN_TX_FEE;
  TransactionOutput output = tx.getOutput(0);
  output.setValue(output.getValue().subtract(fee));
  return !output.isDust();
}

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

protected synchronized SendRequest makeUnsignedChannelContract(Coin valueToMe) {
  Transaction tx = new Transaction(wallet.getParams());
  if (!getTotalValue().subtract(valueToMe).equals(Coin.ZERO)) {
    tx.addOutput(getTotalValue().subtract(valueToMe), getClientKey().toAddress(wallet.getParams()));
  }
  tx.addInput(contract.getOutput(0));
  return SendRequest.forTx(tx);
}

代码示例来源:origin: fr.acinq/bitcoinj-core

protected synchronized SendRequest makeUnsignedChannelContract(Coin valueToMe) {
  Transaction tx = new Transaction(wallet.getParams());
  if (!getTotalValue().subtract(valueToMe).equals(Coin.ZERO)) {
    tx.addOutput(getTotalValue().subtract(valueToMe), getClientKey().toAddress(wallet.getParams()));
  }
  tx.addInput(contract.getOutput(0));
  return SendRequest.forTx(tx);
}

相关文章

微信公众号

最新文章

更多

Transaction类方法