Packages

case class SingleContractInfo(totalCollateral: Satoshis, contractOraclePair: ContractOraclePair) extends ContractInfo with TLVSerializable[ContractInfoV0TLV] with Product with Serializable

Fully determines a DLC up to public keys and funding UTXOs to be used.

Contains all contract and oracle information and provides an external facing interface which should be used in place of directly accessing ContractDescriptors or OracleInfos whenever possible to make future refactoring simpler and to make the code more modular.

This class also contains lazy vals for all expensive computations done regarding CETs during DLC setup and execution.

See also

https://github.com/discreetlogcontracts/dlcspecs/blob/a8876ed28ed33d5f7d5104f01aa2a8d80d128460/Messaging.md#the-contract_info-type

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SingleContractInfo
  2. Serializable
  3. Product
  4. Equals
  5. ContractInfo
  6. TLVSerializable
  7. NetworkElement
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new SingleContractInfo(totalCollateral: Satoshis, contractOraclePair: ContractOraclePair)

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. lazy val adaptorPoints: Vector[ECPublicKey]
    Definition Classes
    ContractInfo
  5. lazy val adaptorPointsIndexed: Vector[Indexed[ECPublicKey]]
    Definition Classes
    ContractInfo
  6. lazy val allOutcomes: Vector[OracleOutcome]

    Corresponds with this DLC's CET set

    Corresponds with this DLC's CET set

    Definition Classes
    ContractInfo
  7. lazy val allOutcomesAndPayouts: Vector[(OracleOutcome, Satoshis)]

    Computes the CET set and their corresponding payouts using CETCalculator.

    Computes the CET set and their corresponding payouts using CETCalculator.

    Definition Classes
    SingleContractInfoContractInfo
  8. def announcements: Vector[OracleAnnouncementTLV]
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def byteSize: Long

    The size of the NetworkElement in bytes.

    The size of the NetworkElement in bytes.

    Definition Classes
    NetworkElement
  11. def bytes: ByteVector

    The byte representation of the NetworkElement

    The byte representation of the NetworkElement

    Definition Classes
    TLVSerializableNetworkElement
  12. def bytesLE: ByteVector

    The byte representation of the NetworkElement in little endian

    The byte representation of the NetworkElement in little endian

    Definition Classes
    NetworkElement
  13. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  14. def contractDescriptor: ContractDescriptor
  15. def contractDescriptors: Vector[ContractDescriptor]
    Definition Classes
    SingleContractInfoContractInfo
  16. val contractOraclePair: ContractOraclePair
  17. def contracts: Vector[SingleContractInfo]
    Definition Classes
    SingleContractInfoContractInfo
  18. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  20. def findOutcome(sigs: Vector[OracleSignatures]): Option[OracleOutcome]

    Searches all possible outcomes for one which corresponds to the given signatures.

    Searches all possible outcomes for one which corresponds to the given signatures.

    Warning: This will return false if too many OracleSignatures are given.

    Definition Classes
    ContractInfo
  21. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  22. def getPayouts(outcome: OracleOutcome): (Satoshis, Satoshis)

    Returns the payouts for the outcome as (toOffer, toAccept)

    Returns the payouts for the outcome as (toOffer, toAccept)

    Definition Classes
    ContractInfo
  23. def getPayouts(sigs: Vector[OracleSignatures]): (Satoshis, Satoshis)

    Returns the payouts for the signature as (toOffer, toAccept)

    Returns the payouts for the signature as (toOffer, toAccept)

    Definition Classes
    ContractInfo
  24. def hex: String

    The hexadecimal representation of the NetworkElement

    The hexadecimal representation of the NetworkElement

    Definition Classes
    NetworkElement
  25. def hexLE: String

    The hexadecimal representation of the NetworkElement in little endian

    The hexadecimal representation of the NetworkElement in little endian

    Definition Classes
    NetworkElement
  26. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  27. val maxOffererPayout: Satoshis

    Returns the maximum payout the offerer could win from this contract

    Returns the maximum payout the offerer could win from this contract

    Definition Classes
    SingleContractInfoContractInfo
  28. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  29. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  30. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  31. def oracleInfo: OracleInfo
  32. def oracleInfos: Vector[OracleInfo]
    Definition Classes
    SingleContractInfoContractInfo
  33. lazy val outcomeMap: Map[OracleOutcome, (ECPublicKey, Satoshis, Satoshis)]

    Map OracleOutcomes (which correspond to CETs) to their adpator point and payouts

    Map OracleOutcomes (which correspond to CETs) to their adpator point and payouts

    Definition Classes
    ContractInfo
  34. def productElementNames: Iterator[String]
    Definition Classes
    Product
  35. def resultOfOutcome(outcome: OracleOutcome): (ECPublicKey, Satoshis, Satoshis)

    Returns the adaptor point and payouts for a given OracleOutcome

    Returns the adaptor point and payouts for a given OracleOutcome

    Definition Classes
    ContractInfo
  36. def serializationVersion: DLCSerializationVersion
    Definition Classes
    ContractInfo
  37. lazy val sigPointMap: Map[ECPublicKey, OracleOutcome]

    Maps adpator points to their corresponding OracleOutcomes (which correspond to CETs)

    Maps adpator points to their corresponding OracleOutcomes (which correspond to CETs)

    Definition Classes
    ContractInfo
  38. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  39. def toTLV: ContractInfoV0TLV
    Definition Classes
    SingleContractInfoTLVSerializable
  40. val totalCollateral: Satoshis
    Definition Classes
    SingleContractInfoContractInfo
  41. def updateOnAccept(newTotalCollateral: Satoshis, negotiationFields: NegotiationFields): SingleContractInfo

    A ContractInfo can be constructed by the offerer, but it will not contain new information which alters the DLC's contract which is received in the accept message.

    A ContractInfo can be constructed by the offerer, but it will not contain new information which alters the DLC's contract which is received in the accept message.

    Specifically if the total collateral changes or negotiation fields are relevant.

    In these cases, this function should be called to update the ContractInfo.

    Definition Classes
    SingleContractInfoContractInfo
  42. def verifySigs(outcome: OracleOutcome, sigs: Vector[OracleSignatures]): Boolean

    Checks if the given OracleSignatures exactly match the given OracleOutcome.

    Checks if the given OracleSignatures exactly match the given OracleOutcome.

    Warning: This will return false if too many OracleSignatures are given.

    TODO: Needs a lot of optimization

    Definition Classes
    ContractInfo
  43. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  44. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  45. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from ContractInfo

Inherited from NetworkElement

Inherited from AnyRef

Inherited from Any

Ungrouped