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

Plutus.Contracts.Game.Babbage

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 "Babbage version" of the game, it uses features up to the Babbage era. It introduces reference script.

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.Babbage

Generic GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

Associated Types

type Rep GameParam :: Type -> Type Source #

FromJSON GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

Methods

parseJSON :: Value -> Parser GameParam

parseJSONList :: Value -> Parser [GameParam]

ToJSON GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

Methods

toJSON :: GameParam -> Value

toEncoding :: GameParam -> Encoding

toJSONList :: [GameParam] -> Value

toEncodingList :: [GameParam] -> Encoding

Lift DefaultUni GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

Methods

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

Typeable DefaultUni GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

Methods

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

type Rep GameParam Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

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

type GameSchema = (Endpoint "init" GameParam .\/ 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.Babbage

Generic LockArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

Associated Types

type Rep LockArgs :: Type -> Type Source #

FromJSON LockArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

Methods

parseJSON :: Value -> Parser LockArgs

parseJSONList :: Value -> Parser [LockArgs]

ToJSON LockArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

Methods

toJSON :: LockArgs -> Value

toEncoding :: LockArgs -> Encoding

toJSONList :: [LockArgs] -> Value

toEncodingList :: [LockArgs] -> Encoding

type Rep LockArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

type Rep LockArgs = D1 ('MetaData "LockArgs" "Plutus.Contracts.Game.Babbage" "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 "lockArgsGameAddress") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CardanoAddress)) :*: (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.Babbage

Generic GuessArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

Associated Types

type Rep GuessArgs :: Type -> Type Source #

FromJSON GuessArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

Methods

parseJSON :: Value -> Parser GuessArgs

parseJSONList :: Value -> Parser [GuessArgs]

ToJSON GuessArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

Methods

toJSON :: GuessArgs -> Value

toEncoding :: GuessArgs -> Encoding

toJSONList :: [GuessArgs] -> Value

toEncodingList :: [GuessArgs] -> Encoding

type Rep GuessArgs Source # 
Instance details

Defined in Plutus.Contracts.Game.Babbage

type Rep GuessArgs = D1 ('MetaData "GuessArgs" "Plutus.Contracts.Game.Babbage" "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 "guessArgsGameAddress") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CardanoAddress) :*: 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 #