plutus-use-cases-1.2.0.0: Collection of smart contracts to develop the plutus/wallet interface
Safe HaskellNone
LanguageHaskell2010

Plutus.Contracts.Game.Alonzo

Description

A guessing game. A simplified version of GameStateMachine not using StateMachine and using yieldUnbalancedTx for balancing, signing and submitting transactions.

Currently, remote wallets (anything other than WBE) can only handles yieldUnbalancedTx requests, and not balanceTx, signTx and submitTx requests.

This is the "Alonzo version" of the game, it uses features up to the Alonzo era.

Synopsis

Documentation

contract :: AsContractError e => Contract () GameSchema e () Source #

data GameParam Source #

Datatype for creating a parameterized validator.

Constructors

GameParam 

Fields

Instances

Instances details
Show GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Generic GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Associated Types

type Rep GameParam :: Type -> Type Source #

FromJSON GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Methods

parseJSON :: Value -> Parser GameParam

parseJSONList :: Value -> Parser [GameParam]

ToJSON GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Methods

toJSON :: GameParam -> Value

toEncoding :: GameParam -> Encoding

toJSONList :: [GameParam] -> Value

toEncodingList :: [GameParam] -> Encoding

Lift DefaultUni GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Methods

lift :: GameParam -> RTCompile DefaultUni fun (Term TyName Name DefaultUni fun ())

Typeable DefaultUni GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Methods

typeRep :: Proxy GameParam -> RTCompile DefaultUni fun (Type TyName DefaultUni ())

type Rep GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

type Rep GameParam = D1 ('MetaData "GameParam" "Plutus.Contracts.Game.Alonzo" "plutus-use-cases-1.2.0.0-BuYOLXrynPcLosE012cowc" 'False) (C1 ('MetaCons "GameParam" 'PrefixI 'True) (S1 ('MetaSel ('Just "gameParamPayeePkh") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PaymentPubKeyHash) :*: S1 ('MetaSel ('Just "gameParamStartTime") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 POSIXTime)))

type GameSchema = Endpoint "lock" LockArgs .\/ Endpoint "guess" GuessArgs Source #

data LockArgs Source #

Arguments for the "lock" endpoint

Constructors

LockArgs 

Fields

Instances

Instances details
Show LockArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Generic LockArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Associated Types

type Rep LockArgs :: Type -> Type Source #

FromJSON LockArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Methods

parseJSON :: Value -> Parser LockArgs

parseJSONList :: Value -> Parser [LockArgs]

ToJSON LockArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Methods

toJSON :: LockArgs -> Value

toEncoding :: LockArgs -> Encoding

toJSONList :: [LockArgs] -> Value

toEncodingList :: [LockArgs] -> Encoding

type Rep LockArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

type Rep LockArgs = D1 ('MetaData "LockArgs" "Plutus.Contracts.Game.Alonzo" "plutus-use-cases-1.2.0.0-BuYOLXrynPcLosE012cowc" 'False) (C1 ('MetaCons "LockArgs" 'PrefixI 'True) (S1 ('MetaSel ('Just "lockArgsGameParam") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GameParam) :*: (S1 ('MetaSel ('Just "lockArgsSecret") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "lockArgsValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Value))))

data GuessArgs Source #

Arguments for the "guess" endpoint

Constructors

GuessArgs 

Fields

Instances

Instances details
Show GuessArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Generic GuessArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Associated Types

type Rep GuessArgs :: Type -> Type Source #

FromJSON GuessArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Methods

parseJSON :: Value -> Parser GuessArgs

parseJSONList :: Value -> Parser [GuessArgs]

ToJSON GuessArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

Methods

toJSON :: GuessArgs -> Value

toEncoding :: GuessArgs -> Encoding

toJSONList :: [GuessArgs] -> Value

toEncodingList :: [GuessArgs] -> Encoding

type Rep GuessArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Alonzo

type Rep GuessArgs = D1 ('MetaData "GuessArgs" "Plutus.Contracts.Game.Alonzo" "plutus-use-cases-1.2.0.0-BuYOLXrynPcLosE012cowc" 'False) (C1 ('MetaCons "GuessArgs" 'PrefixI 'True) (S1 ('MetaSel ('Just "guessArgsGameParam") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GameParam) :*: S1 ('MetaSel ('Just "guessArgsSecret") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))

Scripts

gameInstance :: GameParam -> TypedValidator Game Source #

mkValidator :: GameParam -> HashedString -> ClearString -> ScriptContext -> Bool Source #

The validation function (Datum -> Redeemer -> ScriptContext -> Bool)

The GameParam parameter is not used in the validation. It is meant to parameterize the script address depending based on the value of GaramParam.

Address

gameAddress :: GameParam -> CardanoAddress Source #

The address of the game (the hash of its validator script)

covIdx :: GameParam -> CoverageIndex Source #