Packages

package script

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package descriptor

Type Members

  1. sealed trait CLTVScriptPubKey extends ScriptPubKey with LockTimeScriptPubKey

    Represents a scriptPubKey that contains OP_CHECKLOCKTIMEVERIFY. Adds an absolute/defined locktime condition to any scriptPubKey.

    Represents a scriptPubKey that contains OP_CHECKLOCKTIMEVERIFY. Adds an absolute/defined locktime condition to any scriptPubKey. BIP65 Format: <locktime> OP_CLTV OP_DROP <scriptPubKey>

  2. sealed trait CLTVScriptSignature extends ScriptSignature with LockTimeScriptSignature
  3. sealed trait CSVScriptPubKey extends ScriptPubKey with LockTimeScriptPubKey

    Represents a scriptPubKey that contains OP_CHECKSEQUENCEVERIFY Adds a relative lockTime condition to any scriptPubKey.

    Represents a scriptPubKey that contains OP_CHECKSEQUENCEVERIFY Adds a relative lockTime condition to any scriptPubKey. BIP112 Format: <locktime> OP_CSV OP_DROP <scriptPubKey>

  4. sealed trait CSVScriptSignature extends ScriptSignature with LockTimeScriptSignature
  5. sealed trait ConditionalScriptPubKey extends ScriptPubKey with RawScriptPubKey

    Currently only supports a single OP_IF ...

    Currently only supports a single OP_IF ... OP_ELSE ... OP_ENDIF ScriptPubKey

  6. sealed trait ConditionalScriptSignature extends ScriptSignature

    ScriptSignature for both OP_IF and OP_NOTIF ScriptPubKeys

  7. sealed abstract class ControlBlock extends NetworkElement

    Control block as defined by BIP341

    Control block as defined by BIP341

    The last stack element is called the control block c, and must have length 33 + 32m, for a value of m that is an integer between 0 and 128[6], inclusive. Fail if it does not have such a length.

    See also

    https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#script-validation-rules

  8. sealed trait IfConditionalScriptPubKey extends ScriptPubKey with ConditionalScriptPubKey
  9. sealed abstract class LeafVersion extends AnyRef
  10. sealed trait LockTimeScriptPubKey extends ScriptPubKey with RawScriptPubKey
  11. sealed trait LockTimeScriptSignature extends ScriptSignature

    Parent type for all lock time script signatures, these spend LockTimeScriptPubKey

  12. sealed trait MultiSignatureScriptPubKey extends ScriptPubKey with RawScriptPubKey

    Represents a multisignature script public key https://bitcoin.org/en/developer-guide#multisig Format: <m> <A pubkey> [B pubkey] [C pubkey...] <n> OP_CHECKMULTISIG

  13. sealed trait MultiSignatureScriptSignature extends ScriptSignature

    Represents a multisignature script signature https://bitcoin.org/en/developer-guide#multisig Multisig script sigs have the following format OP_0 <A sig> [B sig] [C sig...]

  14. sealed trait MultiSignatureWithTimeoutScriptPubKey extends ScriptPubKey with IfConditionalScriptPubKey
  15. sealed trait NonStandardScriptPubKey extends ScriptPubKey with RawScriptPubKey
  16. sealed trait NonStandardScriptSignature extends ScriptSignature
  17. sealed trait NonWitnessScriptPubKey extends ScriptPubKey

    Trait for all Non-SegWit ScriptPubKeys

  18. sealed trait NotIfConditionalScriptPubKey extends ScriptPubKey with ConditionalScriptPubKey
  19. sealed trait P2PKHScriptPubKey extends ScriptPubKey with RawScriptPubKey

    Represents a pay-to-pubkey hash script pubkey

    Represents a pay-to-pubkey hash script pubkey

    Format: OP_DUP OP_HASH160 <PubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

  20. sealed trait P2PKHScriptSignature extends ScriptSignature

    P2PKH script signatures have only one public key https://bitcoin.org/en/developer-guide#pay-to-public-key-hash-p2pkh P2PKH scriptSigs follow this format <sig> <pubkey>

  21. sealed trait P2PKScriptPubKey extends ScriptPubKey with RawScriptPubKey

    Represents a pay to public key script public key Format: <pubkey> OP_CHECKSIG

  22. sealed trait P2PKScriptSignature extends ScriptSignature

    Represents a pay to public key script signature https://bitcoin.org/en/developer-guide#pubkey Signature script: <sig>

  23. sealed trait P2PKWithTimeoutScriptPubKey extends ScriptPubKey with RawScriptPubKey

    The type for ScriptPubKeys of the form: OP_IF <Public Key> OP_ELSE <Timeout> OP_CHECKSEQUENCEVERIFY OP_DROP <Timeout Public Key> OP_ENDIF OP_CHECKSIG

  24. sealed trait P2SHScriptPubKey extends ScriptPubKey with NonWitnessScriptPubKey

    Represents a pay-to-scripthash public key Format: OP_HASH160 <Hash160(redeemScript)> OP_EQUAL

  25. sealed trait P2SHScriptSignature extends ScriptSignature

    Represents a pay-to-script-hash script signature https://bitcoin.org/en/developer-guide#pay-to-script-hash-p2sh P2SH scriptSigs have the following format <sig> [sig] [sig...] <redeemScript>

  26. sealed abstract class P2WPKHWitnessSPKV0 extends WitnessScriptPubKeyV0

    Represents the pay-to-witness-pubkeyhash script pubkey type as defined in BIP141

  27. sealed abstract class P2WPKHWitnessV0 extends ScriptWitnessV0

    Represents a org.bitcoins.core.protocol.script.ScriptWitness that is needed to spend a P2WPKHWitnessV0 scriptPubKey https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#p2wpkh-nested-in-bip16-p2sh Format: <pubKey> <signature>

  28. sealed abstract class P2WSHWitnessSPKV0 extends WitnessScriptPubKeyV0

    Reprents the pay-to-witness-scripthash script pubkey type as defined in BIP141

  29. sealed abstract class P2WSHWitnessV0 extends ScriptWitnessV0

    Represents a ScriptWitness that is needed to spend a P2WSHWitnessV0 scriptPubKey https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#p2wsh Format: <redeem script> <scriptSig data1> <scriptSig data2> ...

    Represents a ScriptWitness that is needed to spend a P2WSHWitnessV0 scriptPubKey https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#p2wsh Format: <redeem script> <scriptSig data1> <scriptSig data2> ... <scriptSig dataN>

  30. sealed trait RawScriptPubKey extends ScriptPubKey with NonWitnessScriptPubKey

    Trait for all raw, non-nested ScriptPubKeys (no P2SH)

    Trait for all raw, non-nested ScriptPubKeys (no P2SH)

    Note that all WitnessScriptPubKeys including P2WPKH are not considered to be non-nested and hence not RawScriptPubKeys.

  31. abstract class Script extends NetworkElement

    This is meant to be a super type for scripts in the bitcoin protocol.

    This is meant to be a super type for scripts in the bitcoin protocol. This gives us access to the asm representation, and how to serialize the script

  32. trait ScriptFactory[T <: Script] extends Factory[T]

    Created by chris on 12/9/16.

  33. sealed abstract class ScriptPubKey extends Script

    Created by chris on 12/26/15.

  34. sealed trait ScriptPubKeyUpdateIndicator extends AnyRef

    Created by chris on 1/19/16.

  35. sealed abstract class ScriptSignature extends Script

    Created by chris on 12/26/15.

    Created by chris on 12/26/15.

    We only give standard types to ScriptSignatures that are Policy compliant. This is because if we wanted to be closer to Consensus compliant then it would be near impossible to type things.

    For example almost anything could be a ConditionalScriptSignature since in consensus logic almost any ScriptToken is interpreted as True, while under Policy only OP_TRUE is True.

  36. sealed abstract class ScriptWitness extends NetworkElement

    Created by chris on 11/10/16.

  37. sealed abstract class ScriptWitnessV0 extends ScriptWitness
  38. sealed trait SigVersionTaproot extends SignatureVersion
  39. sealed trait SignatureVersion extends AnyRef

    Represents the transaction digest algorithm for signature verification in Bitcoin Core With the implementation of segwit, we have added different algorithm, the first alternative being BIP143 https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki https://github.com/bitcoin/bitcoin/blob/53133c1c041d113c2a480a18e6ff38681d135dca/src/script/interpreter.h#L120-L124

  40. case class TapBranch(tree1: TapscriptTree, tree2: TapscriptTree) extends TapscriptTree with Product with Serializable
  41. case class TapLeaf(leafVersion: LeafVersion, spk: ScriptPubKey) extends TapscriptTree with Product with Serializable
  42. case class TaprootKeyPath(signature: SchnorrDigitalSignature, annexOpt: Option[ByteVector]) extends ScriptWitness with TaprootWitness with Product with Serializable

    Spending a taproot output via the key path spend

  43. case class TaprootScriptPath(stack: Vector[ByteVector]) extends ScriptWitness with TaprootWitness with Product with Serializable

    Spending a taproot output via the script path

  44. case class TaprootScriptPubKey(asm: Vector[ScriptToken]) extends ScriptPubKey with WitnessScriptPubKey with Product with Serializable
  45. case class TaprootUnknownPath(stack: Vector[ByteVector]) extends ScriptWitness with TaprootWitness with Product with Serializable
  46. sealed trait TaprootWitness extends ScriptWitness
  47. case class TapscriptControlBlock(bytes: ByteVector) extends ControlBlock with Product with Serializable
  48. sealed abstract class TapscriptTree extends NetworkElement
  49. case class UnassignedWitness(version: ScriptNumberOperation) extends WitnessVersion with Product with Serializable

    The witness version that represents all witnesses that have not been allocated yet

  50. sealed trait UnassignedWitnessScriptPubKey extends ScriptPubKey with WitnessScriptPubKey

    Type to represent all WitnessScriptPubKeys we have not used yet in the bitcoin protocol

  51. case class UnknownControlBlock(bytes: ByteVector) extends ControlBlock with Product with Serializable

    A control block that does not have a leaf version defined as per BIP342 This is needed for future soft fork compatability where we introduce new leaf versions to correspond to new spending rules

  52. case class UpdateScriptPubKeyAsm(asm: Seq[ScriptToken]) extends ScriptPubKeyUpdateIndicator with Product with Serializable
  53. case class UpdateScriptPubKeyBytes(bytes: ByteVector) extends ScriptPubKeyUpdateIndicator with Product with Serializable
  54. sealed trait WitnessCommitment extends ScriptPubKey with RawScriptPubKey

    This trait represents the witness commitment found in the coinbase transaction This is needed to commit to the wtxids of all of the witness transactions, since the merkle tree does not commit to the witnesses for all WitnessTransaction See BIP141 for more info https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#commitment-structure

  55. sealed trait WitnessScriptPubKey extends ScriptPubKey

    This type represents a ScriptPubKey to evaluate a ScriptWitness

  56. sealed abstract class WitnessScriptPubKeyV0 extends ScriptPubKey with WitnessScriptPubKey

    Represents a BIP141 Witness program

  57. sealed trait WitnessVersion extends AnyRef

    Created by chris on 11/10/16.

    Created by chris on 11/10/16. The version of the WitnessScriptPubKey, this indicates how a ScriptWitness is rebuilt. BIP141

Value Members

  1. object CLTVScriptPubKey extends Factory[CLTVScriptPubKey] with ScriptFactory[CLTVScriptPubKey]
  2. object CLTVScriptSignature extends Factory[CLTVScriptSignature] with ScriptFactory[CLTVScriptSignature]

    Note that extend org.bitcoins.core.protocol.script.ScriptFactory here but technically ANYTHING can be a CLTVScriptSignature since the CLTVScriptPubKey does not manipulate the stack

  3. object CSVScriptPubKey extends Factory[CSVScriptPubKey] with ScriptFactory[CSVScriptPubKey]
  4. object CSVScriptSignature extends Factory[CSVScriptSignature] with ScriptFactory[CSVScriptSignature]
  5. object ConditionalScriptPubKey
  6. object ConditionalScriptSignature extends Factory[ConditionalScriptSignature] with ScriptFactory[ConditionalScriptSignature]
  7. object ControlBlock extends Factory[ControlBlock]
  8. case object EmptyScriptPubKey extends ScriptPubKey with RawScriptPubKey with Product with Serializable

    Represents the empty ScriptPubKey

  9. case object EmptyScriptSignature extends ScriptSignature with Product with Serializable

    Represents the empty script signature

  10. case object EmptyScriptWitness extends ScriptWitness with Product with Serializable
  11. object LeafVersion
  12. object LockTimeScriptPubKey extends Factory[LockTimeScriptPubKey] with ScriptFactory[LockTimeScriptPubKey]
  13. object MultiSignatureScriptPubKey extends Factory[MultiSignatureScriptPubKey] with ScriptFactory[MultiSignatureScriptPubKey]
  14. object MultiSignatureScriptSignature extends Factory[MultiSignatureScriptSignature] with ScriptFactory[MultiSignatureScriptSignature]
  15. object MultiSignatureWithTimeoutScriptPubKey extends Factory[MultiSignatureWithTimeoutScriptPubKey] with ScriptFactory[MultiSignatureWithTimeoutScriptPubKey]
  16. object NonStandardIfConditionalScriptPubKey extends Factory[IfConditionalScriptPubKey] with ScriptFactory[IfConditionalScriptPubKey]
  17. object NonStandardNotIfConditionalScriptPubKey extends Factory[NotIfConditionalScriptPubKey] with ScriptFactory[NotIfConditionalScriptPubKey]
  18. object NonStandardScriptPubKey extends Factory[NonStandardScriptPubKey] with ScriptFactory[NonStandardScriptPubKey]
  19. object NonStandardScriptSignature extends Factory[NonStandardScriptSignature] with ScriptFactory[NonStandardScriptSignature]
  20. object NonWitnessScriptPubKey extends Factory[NonWitnessScriptPubKey] with ScriptFactory[NonWitnessScriptPubKey]
  21. object P2PKHScriptPubKey extends Factory[P2PKHScriptPubKey] with ScriptFactory[P2PKHScriptPubKey]
  22. object P2PKHScriptSignature extends Factory[P2PKHScriptSignature] with ScriptFactory[P2PKHScriptSignature]
  23. object P2PKScriptPubKey extends Factory[P2PKScriptPubKey] with ScriptFactory[P2PKScriptPubKey]
  24. object P2PKScriptSignature extends Factory[P2PKScriptSignature] with ScriptFactory[P2PKScriptSignature]
  25. object P2PKWithTimeoutScriptPubKey extends Factory[P2PKWithTimeoutScriptPubKey] with ScriptFactory[P2PKWithTimeoutScriptPubKey]
  26. object P2PKWithTimeoutScriptSignature extends Factory[ConditionalScriptSignature] with ScriptFactory[ConditionalScriptSignature]
  27. object P2SHScriptPubKey extends Factory[P2SHScriptPubKey] with ScriptFactory[P2SHScriptPubKey]
  28. object P2SHScriptSignature extends Factory[P2SHScriptSignature] with ScriptFactory[P2SHScriptSignature]
  29. object P2WPKHWitnessSPKV0 extends Factory[P2WPKHWitnessSPKV0] with ScriptFactory[P2WPKHWitnessSPKV0]
  30. object P2WPKHWitnessV0
  31. object P2WSHWitnessSPKV0 extends Factory[P2WSHWitnessSPKV0] with ScriptFactory[P2WSHWitnessSPKV0]
  32. object P2WSHWitnessV0
  33. object RawScriptPubKey extends Factory[RawScriptPubKey] with ScriptFactory[RawScriptPubKey]
  34. object ScriptPubKey extends Factory[ScriptPubKey] with ScriptFactory[ScriptPubKey]

    Factory companion object used to create ScriptPubKey objects

  35. object ScriptSignature extends Factory[ScriptSignature] with ScriptFactory[ScriptSignature]
  36. object ScriptWitness extends Factory[ScriptWitness]
  37. case object SigVersionBase extends SignatureVersion with Product with Serializable

    The original digest algorithm created by Satoshi

  38. case object SigVersionTaprootKeySpend extends SigVersionTaproot with Product with Serializable

    For keypath spends

    For keypath spends

    See also

    https://github.com/bitcoin/bitcoin/blob/e826b22da252e0599c61d21c98ff89f366b3120f/src/script/interpreter.h#L191

  39. case object SigVersionTapscript extends SigVersionTaproot with Product with Serializable

    For script path spends

    For script path spends

    See also

    https://github.com/bitcoin/bitcoin/blob/e826b22da252e0599c61d21c98ff89f366b3120f/src/script/interpreter.h#L192

  40. case object SigVersionWitnessV0 extends SignatureVersion with Product with Serializable

    The digest algorithm implemented by BIP143 https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki

  41. object TaprootKeyPath extends Factory[TaprootKeyPath] with Serializable
  42. object TaprootScriptPath extends Factory[TaprootScriptPath] with Serializable
  43. object TaprootScriptPubKey extends Factory[TaprootScriptPubKey] with ScriptFactory[TaprootScriptPubKey] with Serializable
  44. object TaprootWitness extends Factory[TaprootWitness]
  45. object TapscriptControlBlock extends Factory[TapscriptControlBlock] with Serializable
  46. object TapscriptTree
  47. case object TrivialTrueScriptSignature extends ScriptSignature with Product with Serializable

    A script signature to be used in tests for signing EmptyScriptPubKey.

    A script signature to be used in tests for signing EmptyScriptPubKey. This script pushes a true onto the stack, causing a successful spend.

  48. object UnassignedWitnessScriptPubKey extends Factory[UnassignedWitnessScriptPubKey] with ScriptFactory[UnassignedWitnessScriptPubKey]
  49. object UnknownControlBlock extends Factory[UnknownControlBlock] with Serializable
  50. object WitnessCommitment extends Factory[WitnessCommitment] with ScriptFactory[WitnessCommitment]
  51. object WitnessScriptPubKey extends Factory[WitnessScriptPubKey] with ScriptFactory[WitnessScriptPubKey]
  52. object WitnessScriptPubKeyV0 extends Factory[WitnessScriptPubKeyV0] with ScriptFactory[WitnessScriptPubKeyV0]
  53. object WitnessVersion
  54. case object WitnessVersion0 extends WitnessVersion with Product with Serializable
  55. case object WitnessVersion1 extends WitnessVersion with Product with Serializable

Ungrouped