scalus.cardano.plutus.contract.blueprint

Members list

Type members

Classlikes

case class Application(preamble: Preamble, contracts: Seq[CompiledContract])

A description of a Scalus application, containing one or more contracts.

A description of a Scalus application, containing one or more contracts.

Attributes

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

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class Blueprint(preamble: Preamble, validators: Seq[Validator])

A CIP-57 compliant description of a set of validators.

A CIP-57 compliant description of a set of validators.

Each validator description contains schemas PlutusDataSchema of the datum and redeemer formats expected by the contracts.

Attributes

See also
Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object Blueprint

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
Blueprint.type

A smart contract compiled with Scalus.

A smart contract compiled with Scalus.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class PlutusV3
case class CompilerInfo(name: String, version: Option[String])

Attributes

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

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
enum DataType(val value: String)

Attributes

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

Attributes

Companion
enum
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
DataType.type
case class PlutusDataSchema(dataType: Option[DataType], title: Option[String], description: Option[String], anyOf: Option[List[PlutusDataSchema]], index: Option[Int], fields: Option[List[PlutusDataSchema]], items: Option[List[PlutusDataSchema]])

The description of the data shape of a validator parameter, datum or redemeer.

The description of the data shape of a validator parameter, datum or redemeer.

For user types, the schema should generally be PlutusDataSchema.derived as opposed to manually assembled.

If assembled directly, it should be compliant with https://cips.cardano.org/cip/CIP-57.

Namely, composite types should be represented as DataType.Constructors, with properly indexed fields, tuples of arity >3 should be DataType.Lists with respective items, and pairs should be DataType.PairBuiltin. See BlueprintTest for derivation examples and expectations.

Attributes

See also

DataType for type description

Data for more info about onchain data types

Note

the types described by these schemas are used as datums, redeemers and parameters. As such, only onchain data should be described by PlutusDataSchema. Therefore, attempting to derive schemas for types that cannot be on chain will lead to compile time errors. Generally, if one can derive scalus.builtin.Data.FromData for a type, one can also do so for the schema. If one cannot derive scalus.builtin.Data.FromData, it means that the type cannot exist on chain, and therefore should not be described with PlutusDataSchema

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

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class PlutusV3(title: String, description: String, sir: SIR, datumSchema: Option[PlutusDataSchema], redeemerSchema: Option[PlutusDataSchema]) extends CompiledContract

Attributes

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

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
PlutusV3.type
case class Preamble(title: String, description: Option[String], version: Option[String], compiler: Option[CompilerInfo], plutusVersion: Option[Language], license: Option[String])

An object that holds blueprint metadata. Does not include information about contracts and instead contains apps title and description, compiler information, plutus version used, etc.

An object that holds blueprint metadata. Does not include information about contracts and instead contains apps title and description, compiler information, plutus version used, etc.

For applications that only have 1 validator, the preamble data may repeat that of the validator.

Attributes

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

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
Preamble.type
enum Purpose

Attributes

Companion
object
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Known subtypes
class OneOf
object Purpose

Attributes

Companion
enum
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Purpose.type
case class TypeDescription(title: Option[String], description: Option[String], purpose: Option[Purpose], schema: PlutusDataSchema)

Attributes

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

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class Validator(title: String, description: Option[String], redeemer: Option[TypeDescription], datum: Option[TypeDescription], parameters: Option[List[TypeDescription]], compiledCode: Option[String], hash: Option[String])

Attributes

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

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
Validator.type