OutputDatum

scalus.cardano.onchain.plutus.v2.OutputDatum
See theOutputDatum companion object

Attributes

Companion
object
Graph
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Type members

Enum entries

case NoOutputDatum extends OutputDatum
final case class OutputDatum(datum: Datum)
final case class OutputDatumHash(datumHash: DatumHash)

Value members

Concrete methods

inline def inlineOrFail[A : FromData]: A
Extension method from OutputDatum

Extracts the inline datum and decodes it as A.

Extracts the inline datum and decodes it as A.

Fails the script when the datum is not inline (NoOutputDatum or OutputDatumHash). This replaces the common pattern

output.datum match
   case OutputDatum.OutputDatum(d) => d.to[MyDatum]
   case _                          => fail("Expected inline datum")

with output.datum.inlineOrFail[MyDatum].

Being inline, the match is checked against the receiver's static type: calling this on a receiver the compiler already knows is NoOutputDatum or OutputDatumHash is rejected at compile time instead of failing at run time.

Type parameters

A

the datum type to decode with its FromData instance

Attributes

Example
 val datum = output.datum.inlineOrFail[CampaignDatum]
inline def inlineOrFail[A : FromData](inline message: String): A
Extension method from OutputDatum

Extracts the inline datum and decodes it as A, failing with message when the datum is not inline.

Extracts the inline datum and decodes it as A, failing with message when the datum is not inline.

Type parameters

A

the datum type to decode with its FromData instance

Attributes

Example
 val datum = output.datum.inlineOrFail[CampaignDatum]("Campaign must have inline datum")