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

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

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

Transaction.calculateSignature介绍

[英]Calculates a signature that is valid for being inserted into the input at the given position. This is simply a wrapper around calling Transaction#hashForSignature(int,byte[],org.bitcoinj.core.Transaction.SigHash,boolean)followed by ECKey#sign(Sha256Hash) and then returning a new TransactionSignature.
[中]计算可在给定位置插入到输入中的有效签名。这是一个简单的包装器,用于调用Transaction#hashForSignature(int,byte[],org.bitconj.core.Transaction.sigash,boolean),然后调用ECKey#sign(Sha256Hash),然后返回一个新的TransactionSignature。

代码示例

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

private void signMultisigInput(Transaction tx, Transaction.SigHash hashType,
                boolean anyoneCanPay, @Nullable KeyParameter userKey) {
  TransactionSignature signature = tx.calculateSignature(0, serverKey, userKey, getContractScript(), hashType, anyoneCanPay);
  byte[] mySig = signature.encodeToBitcoin();
  Script scriptSig = ScriptBuilder.createMultiSigInputScriptBytes(ImmutableList.of(bestValueSignature, mySig));
  tx.getInput(0).setScriptSig(scriptSig);
}

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

private void signMultisigInput(Transaction tx, Transaction.SigHash hashType,
                boolean anyoneCanPay, @Nullable KeyParameter userKey) {
  TransactionSignature signature = tx.calculateSignature(0, serverKey, userKey, getContractScript(), hashType, anyoneCanPay);
  byte[] mySig = signature.encodeToBitcoin();
  Script scriptSig = ScriptBuilder.createMultiSigInputScriptBytes(ImmutableList.of(bestValueSignature, mySig));
  tx.getInput(0).setScriptSig(scriptSig);
}

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

private void signMultisigInput(Transaction tx, Transaction.SigHash hashType, boolean anyoneCanPay) {
  TransactionSignature signature = tx.calculateSignature(0, serverKey, getContractScript(), hashType, anyoneCanPay);
  byte[] mySig = signature.encodeToBitcoin();
  Script scriptSig = ScriptBuilder.createMultiSigInputScriptBytes(ImmutableList.of(bestValueSignature, mySig));
  tx.getInput(0).setScriptSig(scriptSig);
}

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

private void signP2SHInput(Transaction tx, Transaction.SigHash hashType,
              boolean anyoneCanPay, @Nullable KeyParameter userKey) {
  TransactionSignature signature = tx.calculateSignature(0, serverKey, userKey, createP2SHRedeemScript(), hashType, anyoneCanPay);
  byte[] mySig = signature.encodeToBitcoin();
  Script scriptSig = ScriptBuilder.createCLTVPaymentChannelP2SHInput(bestValueSignature, mySig, createP2SHRedeemScript());
  tx.getInput(0).setScriptSig(scriptSig);
}

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

private void signP2SHInput(Transaction tx, Transaction.SigHash hashType,
              boolean anyoneCanPay, @Nullable KeyParameter userKey) {
  TransactionSignature signature = tx.calculateSignature(0, serverKey, userKey, createP2SHRedeemScript(), hashType, anyoneCanPay);
  byte[] mySig = signature.encodeToBitcoin();
  Script scriptSig = ScriptBuilder.createCLTVPaymentChannelP2SHInput(bestValueSignature, mySig, createP2SHRedeemScript());
  tx.getInput(0).setScriptSig(scriptSig);
}

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

private void signP2SHInput(Transaction tx, Transaction.SigHash hashType, boolean anyoneCanPay) {
  TransactionSignature signature = tx.calculateSignature(0, serverKey, createP2SHRedeemScript(), hashType, anyoneCanPay);
  byte[] mySig = signature.encodeToBitcoin();
  Script scriptSig = ScriptBuilder.createCLTVPaymentChannelP2SHInput(bestValueSignature, mySig, createP2SHRedeemScript());
  tx.getInput(0).setScriptSig(scriptSig);
}

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

refundTx.calculateSignature(0, myKey.maybeDecrypt(userKey),
    multisigScript, Transaction.SigHash.ALL, false);

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

refundTx.calculateSignature(0, myKey.maybeDecrypt(userKey),
    multisigScript, Transaction.SigHash.ALL, false);

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

refundTx.calculateSignature(0, myKey.maybeDecrypt(userKey),
    multisigScript, Transaction.SigHash.ALL, false);

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

private void signMultisigInput(Transaction tx, Transaction.SigHash hashType, boolean anyoneCanPay) {
  //TransactionSignature signature = tx.calculateSignature(0, serverKey, getContractScript(), hashType, anyoneCanPay, true);
  TransactionSignature signature = tx.getVersion() >= Transaction.FORKID_VERSION ?
      tx.calculateWitnessSignature(0, serverKey, getContractScript(), tx.getInput(0).getConnectedOutput().getValue(), Transaction.SigHash.NONE, true):
      tx.calculateSignature(0, serverKey, getContractScript(), hashType, true);
  byte[] mySig = signature.encodeToBitcoin();
  Script scriptSig = ScriptBuilder.createMultiSigInputScriptBytes(ImmutableList.of(bestValueSignature, mySig));
  tx.getInput(0).setScriptSig(scriptSig);
}

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

TransactionSignature sig = refundTx.calculateSignature(0, serverKey, multisigPubKey, Transaction.SigHash.NONE, true);
log.info("Signed refund transaction.");
this.clientOutput = refundTx.getOutput(0);

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

TransactionSignature sig = refundTx.calculateSignature(0, serverKey, multisigPubKey, Transaction.SigHash.NONE, true);
log.info("Signed refund transaction.");
this.clientOutput = refundTx.getOutput(0);

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

TransactionSignature sig = refundTx.calculateSignature(0, serverKey, multisigPubKey, Transaction.SigHash.NONE, true);
log.info("Signed refund transaction.");
this.clientOutput = refundTx.getOutput(0);

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

refundTx.calculateSignature(0, serverKey, multisigPubKey, Transaction.SigHash.NONE, true);
log.info("Signed refund transaction.");
this.clientOutput = refundTx.getOutput(0);

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

refundTx.calculateWitnessSignature(0, myKey.maybeDecrypt(userKey),
    multisigScript, refundTx.getInput(0).getConnectedOutput().getValue(), Transaction.SigHash.ALL, false) :
refundTx.calculateSignature(0, myKey.maybeDecrypt(userKey),
    multisigScript, Transaction.SigHash.ALL, false);

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

else
  mode = Transaction.SigHash.SINGLE;
TransactionSignature sig = tx.calculateSignature(0, myKey.maybeDecrypt(userKey), getSignedScript(), mode, true);
valueToMe = newValueToMe;
updateChannelInWallet();

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

private void signP2SHInput(Transaction tx, Transaction.SigHash hashType, boolean anyoneCanPay) {
  TransactionSignature signature = tx.getVersion() >= Transaction.FORKID_VERSION ?
      tx.calculateWitnessSignature(0, serverKey, createP2SHRedeemScript(), tx.getInput(0).getConnectedOutput().getValue(), hashType, anyoneCanPay):
      tx.calculateSignature(0, serverKey, createP2SHRedeemScript(), hashType, anyoneCanPay);
  byte[] mySig = signature.encodeToBitcoin();
  Script scriptSig = ScriptBuilder.createCLTVPaymentChannelP2SHInput(bestValueSignature, mySig, createP2SHRedeemScript());
  tx.getInput(0).setScriptSig(scriptSig);
}

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

@Test
public void testCLTVPaymentChannelTransactionRefund() {
  BigInteger time = BigInteger.valueOf(20);
  ECKey from = new ECKey(), to = new ECKey(), incorrect = new ECKey();
  Script outputScript = ScriptBuilder.createCLTVPaymentChannelOutput(time, from, to);
  Transaction tx = new Transaction(PARAMS);
  tx.addInput(new TransactionInput(PARAMS, tx, new byte[] {}));
  tx.getInput(0).setSequenceNumber(0);
  tx.setLockTime(time.add(BigInteger.ONE).longValue());
  TransactionSignature fromSig =
      tx.calculateSignature(0, from, outputScript, Transaction.SigHash.SINGLE, false);
  TransactionSignature incorrectSig =
      tx.calculateSignature(0, incorrect, outputScript, Transaction.SigHash.SINGLE, false);
  Script scriptSig =
      ScriptBuilder.createCLTVPaymentChannelRefund(fromSig);
  Script invalidScriptSig =
      ScriptBuilder.createCLTVPaymentChannelRefund(incorrectSig);
  try {
    scriptSig.correctlySpends(tx, 0, outputScript, Script.ALL_VERIFY_FLAGS);
  } catch (ScriptException e) {
    e.printStackTrace();
    fail("Refund failed to correctly spend the payment channel");
  }
  try {
    invalidScriptSig.correctlySpends(tx, 0, outputScript, Script.ALL_VERIFY_FLAGS);
    fail("Invalid sig passed");
  } catch (ScriptException e) { }
}

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

tx.setLockTime(time.subtract(BigInteger.ONE).longValue());
TransactionSignature fromSig =
    tx.calculateSignature(0, from, outputScript, Transaction.SigHash.SINGLE, false);
TransactionSignature toSig =
    tx.calculateSignature(0, to, outputScript, Transaction.SigHash.SINGLE, false);
TransactionSignature incorrectSig =
    tx.calculateSignature(0, incorrect, outputScript, Transaction.SigHash.SINGLE, false);
Script scriptSig =
    ScriptBuilder.createCLTVPaymentChannelInput(fromSig, toSig);

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

refundTx.calculateSignature(0, myKey.maybeDecrypt(userKey),
        getSignedScript(), Transaction.SigHash.ALL, false);
refundTx.getInput(0).setScriptSig(ScriptBuilder.createCLTVPaymentChannelP2SHRefund(refundSignature, redeemScript));

相关文章

微信公众号

最新文章

更多

Transaction类方法