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

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

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

Transaction.unsafeBitcoinSerialize介绍

暂无

代码示例

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

/**
 * Removes all the outputs from this transaction.
 * Note that this also invalidates the length attribute
 */
public void clearOutputs() {
  unCache();
  for (TransactionOutput output : outputs) {
    output.setParent(null);
  }
  outputs.clear();
  // You wanted to reserialize, right?
  this.length = this.unsafeBitcoinSerialize().length;
}

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

/**
 * Removes all the outputs from this transaction.
 * Note that this also invalidates the length attribute
 */
public void clearOutputs() {
  unCache();
  for (TransactionOutput output : outputs) {
    output.setParent(null);
  }
  outputs.clear();
  // You wanted to reserialize, right?
  this.length = this.unsafeBitcoinSerialize().length;
}

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

/**
 * Removes all the inputs from this transaction.
 * Note that this also invalidates the length attribute
 */
public void clearInputs() {
  unCache();
  for (TransactionInput input : inputs) {
    input.setParent(null);
  }
  inputs.clear();
  // You wanted to reserialize, right?
  this.length = this.unsafeBitcoinSerialize().length;
}

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

/**
 * Removes all the inputs from this transaction.
 * Note that this also invalidates the length attribute
 */
public void clearInputs() {
  unCache();
  for (TransactionInput input : inputs) {
    input.setParent(null);
  }
  inputs.clear();
  // You wanted to reserialize, right?
  this.length = this.unsafeBitcoinSerialize().length;
}

代码示例来源:origin: HashEngineering/dashj

/**
 * Removes all the outputs from this transaction.
 * Note that this also invalidates the length attribute
 */
public void clearOutputs() {
  unCache();
  for (TransactionOutput output : outputs) {
    output.setParent(null);
  }
  outputs.clear();
  // You wanted to reserialize, right?
  this.length = this.unsafeBitcoinSerialize().length;
}

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

/**
 * Removes all the inputs from this transaction.
 * Note that this also invalidates the length attribute
 */
public void clearInputs() {
  unCache();
  for (TransactionInput input : inputs) {
    input.setParent(null);
  }
  inputs.clear();
  // You wanted to reserialize, right?
  this.length = this.unsafeBitcoinSerialize().length;
}

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

/**
 * Removes all the outputs from this transaction.
 * Note that this also invalidates the length attribute
 */
public void clearOutputs() {
  unCache();
  for (TransactionOutput output : outputs) {
    output.setParent(null);
  }
  outputs.clear();
  // You wanted to reserialize, right?
  this.length = this.unsafeBitcoinSerialize().length;
}

代码示例来源:origin: HashEngineering/dashj

/**
 * Removes all the inputs from this transaction.
 * Note that this also invalidates the length attribute
 */
public void clearInputs() {
  unCache();
  for (TransactionInput input : inputs) {
    input.setParent(null);
  }
  inputs.clear();
  // You wanted to reserialize, right?
  this.length = this.unsafeBitcoinSerialize().length;
}

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

/**
 * Returns the transaction hash as you see them in the block explorer.
 */
@Override
public Sha256Hash getHash() {
  if (hash == null) {
    hash = Sha256Hash.wrapReversed(Sha256Hash.hashTwice(unsafeBitcoinSerialize()));
  }
  return hash;
}

代码示例来源:origin: HashEngineering/dashj

/**
 * Returns the transaction hash as you see them in the block explorer.
 */
@Override
public Sha256Hash getHash() {
  if (hash == null) {
    hash = Sha256Hash.wrapReversed(Sha256Hash.hashTwice(unsafeBitcoinSerialize()));
  }
  return hash;
}

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

@Override
public void onSuccess(Transaction result) {
  // Send the successfully accepted transaction back to the client.
  final Protos.TwoWayChannelMessage.Builder msg = Protos.TwoWayChannelMessage.newBuilder();
  msg.setType(Protos.TwoWayChannelMessage.MessageType.CLOSE);
  if (result != null) {
    // Result can be null on various error paths, like if we never actually opened
    // properly and so on.
    msg.getSettlementBuilder().setTx(ByteString.copyFrom(result.unsafeBitcoinSerialize()));
    log.info("Sending CLOSE back with broadcast settlement tx.");
  } else {
    log.info("Sending CLOSE back without broadcast settlement tx.");
  }
  conn.sendToClient(msg.build());
  conn.destroyConnection(clientRequestedClose);
}

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

@Override
public void onSuccess(Transaction result) {
  // Send the successfully accepted transaction back to the client.
  final Protos.TwoWayChannelMessage.Builder msg = Protos.TwoWayChannelMessage.newBuilder();
  msg.setType(Protos.TwoWayChannelMessage.MessageType.CLOSE);
  if (result != null) {
    // Result can be null on various error paths, like if we never actually opened
    // properly and so on.
    msg.getSettlementBuilder().setTx(ByteString.copyFrom(result.unsafeBitcoinSerialize()));
    log.info("Sending CLOSE back with broadcast settlement tx.");
  } else {
    log.info("Sending CLOSE back without broadcast settlement tx.");
  }
  conn.sendToClient(msg.build());
  conn.destroyConnection(clientRequestedClose);
}

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

@Override
public void onSuccess(Transaction result) {
  // Send the successfully accepted transaction back to the client.
  final Protos.TwoWayChannelMessage.Builder msg = Protos.TwoWayChannelMessage.newBuilder();
  msg.setType(Protos.TwoWayChannelMessage.MessageType.CLOSE);
  if (result != null) {
    // Result can be null on various error paths, like if we never actually opened
    // properly and so on.
    msg.getSettlementBuilder().setTx(ByteString.copyFrom(result.unsafeBitcoinSerialize()));
    log.info("Sending CLOSE back with broadcast settlement tx.");
  } else {
    log.info("Sending CLOSE back without broadcast settlement tx.");
  }
  conn.sendToClient(msg.build());
  conn.destroyConnection(clientRequestedClose);
}

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

/**
 * Create a payment message. This wraps up transaction data along with anything else useful for making a payment.
 * 
 * @param transactions transactions to include with the payment message
 * @param refundOutputs list of outputs to refund coins to, or null
 * @param memo arbitrary, user readable memo, or null if none
 * @param merchantData arbitrary merchant data, or null if none
 * @return created payment message
 */
public static Protos.Payment createPaymentMessage(List<Transaction> transactions,
    @Nullable List<Protos.Output> refundOutputs, @Nullable String memo, @Nullable byte[] merchantData) {
  Protos.Payment.Builder builder = Protos.Payment.newBuilder();
  for (Transaction transaction : transactions) {
    transaction.verify();
    builder.addTransactions(ByteString.copyFrom(transaction.unsafeBitcoinSerialize()));
  }
  if (refundOutputs != null) {
    for (Protos.Output output : refundOutputs)
      builder.addRefundTo(output);
  }
  if (memo != null)
    builder.setMemo(memo);
  if (merchantData != null)
    builder.setMerchantData(ByteString.copyFrom(merchantData));
  return builder.build();
}

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

/**
 * Create a payment message. This wraps up transaction data along with anything else useful for making a payment.
 * 
 * @param transactions transactions to include with the payment message
 * @param refundOutputs list of outputs to refund coins to, or null
 * @param memo arbitrary, user readable memo, or null if none
 * @param merchantData arbitrary merchant data, or null if none
 * @return created payment message
 */
public static Protos.Payment createPaymentMessage(List<Transaction> transactions,
    @Nullable List<Protos.Output> refundOutputs, @Nullable String memo, @Nullable byte[] merchantData) {
  Protos.Payment.Builder builder = Protos.Payment.newBuilder();
  for (Transaction transaction : transactions) {
    transaction.verify();
    builder.addTransactions(ByteString.copyFrom(transaction.unsafeBitcoinSerialize()));
  }
  if (refundOutputs != null) {
    for (Protos.Output output : refundOutputs)
      builder.addRefundTo(output);
  }
  if (memo != null)
    builder.setMemo(memo);
  if (merchantData != null)
    builder.setMerchantData(ByteString.copyFrom(merchantData));
  return builder.build();
}

代码示例来源:origin: HashEngineering/dashj

@Override
public void onSuccess(Transaction result) {
  // Send the successfully accepted transaction back to the client.
  final Protos.TwoWayChannelMessage.Builder msg = Protos.TwoWayChannelMessage.newBuilder();
  msg.setType(Protos.TwoWayChannelMessage.MessageType.CLOSE);
  if (result != null) {
    // Result can be null on various error paths, like if we never actually opened
    // properly and so on.
    msg.getSettlementBuilder().setTx(ByteString.copyFrom(result.unsafeBitcoinSerialize()));
    log.info("Sending CLOSE back with broadcast settlement tx.");
  } else {
    log.info("Sending CLOSE back without broadcast settlement tx.");
  }
  conn.sendToClient(msg.build());
  conn.destroyConnection(clientRequestedClose);
}

代码示例来源: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: greenaddress/GreenBits

/** 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: HashEngineering/dashj

/** 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, boolean useInstantSend) {
  final int size = tx.unsafeBitcoinSerialize().length + estimateBytesForSigning(coinSelection);
  Coin fee = feePerKb.multiply(size).divide(1000);
  if (ensureMinRequiredFee && fee.compareTo(params.isDIP0001ActiveAtTip() ? Transaction.REFERENCE_DEFAULT_MIN_TX_FEE.div(10) : Transaction.REFERENCE_DEFAULT_MIN_TX_FEE) < 0)
    fee = params.isDIP0001ActiveAtTip() ? Transaction.REFERENCE_DEFAULT_MIN_TX_FEE.div(10) : Transaction.REFERENCE_DEFAULT_MIN_TX_FEE;
  if(useInstantSend)
    fee = TransactionLockRequest.MIN_FEE.multiply(tx.getInputs().size());
  TransactionOutput output = tx.getOutput(0);
  output.setValue(output.getValue().subtract(fee));
  return !output.isDust();
}

相关文章

微信公众号

最新文章

更多

Transaction类方法