c

org.bitcoins.core.crypto

TaprootTxSigComponent

case class TaprootTxSigComponent(transaction: WitnessTransaction, inputIndex: UInt32, outputMap: PreviousOutputMap, flags: Seq[ScriptFlag]) extends TxSigComponent with WitnessTxSigComponent with Product with Serializable

Tx sig component that contains the differences between BIP143 (segwit v0) transaction signature serialization and BIP341.

The unique thing with BIP341 is the message commits to the scriptPubKeys of all outputs spent by the transaction, also

If the SIGHASH_ANYONECANPAY flag is not set, the message commits to the amounts of all transaction inputs.[18]

This means we need to bring ALL the outputs we are spending, even though this data structure is for checking the signature of a _single_ output.

See also

https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#common-signature-message

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TaprootTxSigComponent
  2. Serializable
  3. Product
  4. Equals
  5. WitnessTxSigComponent
  6. TxSigComponent
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new TaprootTxSigComponent(transaction: WitnessTransaction, inputIndex: UInt32, outputMap: PreviousOutputMap, flags: Seq[ScriptFlag])

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def amount: CurrencyUnit

    The amount of CurrencyUnit we are spending in this TxSigComponent

    The amount of CurrencyUnit we are spending in this TxSigComponent

    Definition Classes
    TxSigComponent
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  9. val flags: Seq[ScriptFlag]

    The flags that are needed to verify if the signature is correct

    The flags that are needed to verify if the signature is correct

    Definition Classes
    TaprootTxSigComponentTxSigComponent
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def input: TransactionInput
    Definition Classes
    TxSigComponent
  12. val inputIndex: UInt32

    The index of the input whose script signature is being checked

    The index of the input whose script signature is being checked

    Definition Classes
    TaprootTxSigComponentTxSigComponent
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. lazy val output: TransactionOutput

    This is the output we are spending.

    This is the output we are spending. We need this for script and digital signatures checks

    Definition Classes
    TaprootTxSigComponentTxSigComponent
  18. val outputMap: PreviousOutputMap
  19. val outputs: Vector[TransactionOutput]
  20. def productElementNames: Iterator[String]
    Definition Classes
    Product
  21. def scriptPubKey: TaprootScriptPubKey

    The scriptPubKey for which the input is being checked against

    The scriptPubKey for which the input is being checked against

    Definition Classes
    TaprootTxSigComponentTxSigComponent
  22. def scriptSignature: ScriptSignature

    The script signature being checked

    The script signature being checked

    Definition Classes
    TxSigComponent
  23. def sigVersion: SigVersionTaproot

    Represents the serialization algorithm used to verify/create signatures for Bitcoin

    Represents the serialization algorithm used to verify/create signatures for Bitcoin

    Definition Classes
    TaprootTxSigComponentTxSigComponent
  24. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  25. val transaction: WitnessTransaction

    The transaction being checked for the validity of signatures

    The transaction being checked for the validity of signatures

    Definition Classes
    TaprootTxSigComponentWitnessTxSigComponentTxSigComponent
  26. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  28. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  29. def witness: TaprootWitness
  30. val witnessVersion: WitnessVersion1.type

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from WitnessTxSigComponent

Inherited from TxSigComponent

Inherited from AnyRef

Inherited from Any

Ungrouped