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
- Alphabetic
- By Inheritance
- SingleContractInfo
- Serializable
- Product
- Equals
- ContractInfo
- TLVSerializable
- NetworkElement
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new SingleContractInfo(totalCollateral: Satoshis, contractOraclePair: ContractOraclePair)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- lazy val adaptorPoints: Vector[ECPublicKey]
- Definition Classes
- ContractInfo
- lazy val adaptorPointsIndexed: Vector[Indexed[ECPublicKey]]
- Definition Classes
- ContractInfo
- lazy val allOutcomes: Vector[OracleOutcome]
Corresponds with this DLC's CET set
Corresponds with this DLC's CET set
- Definition Classes
- ContractInfo
- 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
- SingleContractInfo → ContractInfo
- def announcements: Vector[OracleAnnouncementTLV]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def byteSize: Long
The size of the NetworkElement in bytes.
The size of the NetworkElement in bytes.
- Definition Classes
- NetworkElement
- def bytes: ByteVector
The byte representation of the NetworkElement
The byte representation of the NetworkElement
- Definition Classes
- TLVSerializable → NetworkElement
- def bytesLE: ByteVector
The byte representation of the NetworkElement in little endian
The byte representation of the NetworkElement in little endian
- Definition Classes
- NetworkElement
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def contractDescriptor: ContractDescriptor
- def contractDescriptors: Vector[ContractDescriptor]
- Definition Classes
- SingleContractInfo → ContractInfo
- val contractOraclePair: ContractOraclePair
- def contracts: Vector[SingleContractInfo]
- Definition Classes
- SingleContractInfo → ContractInfo
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- 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
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- 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
- 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
- def hex: String
The hexadecimal representation of the NetworkElement
The hexadecimal representation of the NetworkElement
- Definition Classes
- NetworkElement
- def hexLE: String
The hexadecimal representation of the NetworkElement in little endian
The hexadecimal representation of the NetworkElement in little endian
- Definition Classes
- NetworkElement
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- 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
- SingleContractInfo → ContractInfo
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def oracleInfo: OracleInfo
- def oracleInfos: Vector[OracleInfo]
- Definition Classes
- SingleContractInfo → ContractInfo
- 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
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- 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
- def serializationVersion: DLCSerializationVersion
- Definition Classes
- ContractInfo
- 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
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toTLV: ContractInfoV0TLV
- Definition Classes
- SingleContractInfo → TLVSerializable
- val totalCollateral: Satoshis
- Definition Classes
- SingleContractInfo → ContractInfo
- 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
- SingleContractInfo → ContractInfo
- 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
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()