| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
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
- contract :: AsContractError e => Contract () GameSchema e ()
- data GameParam = GameParam {
- gameParamOwner :: Address
- gameParamStartTime :: POSIXTime
- type GameSchema = (Endpoint "init" GameParam .\/ Endpoint "lock" LockArgs) .\/ Endpoint "guess" GuessArgs
- data LockArgs = LockArgs {
- lockArgsGameParam :: GameParam
- lockArgsGameAddress :: CardanoAddress
- lockArgsSecret :: String
- lockArgsValue :: Value
- data GuessArgs = GuessArgs {
- guessArgsGameParam :: GameParam
- guessArgsGameAddress :: CardanoAddress
- guessArgsSecret :: String
- gameInstance :: GameParam -> TypedValidator Game
- mkValidator :: GameParam -> HashedString -> ClearString -> ScriptContext -> Bool
- gameAddress :: GameParam -> CardanoAddress
- covIdx :: GameParam -> CoverageIndex
Documentation
contract :: AsContractError e => Contract () GameSchema e () Source #
Datatype for creating a parameterized validator.
Constructors
| GameParam | |
Fields
| |
Instances
| Show GameParam Source # | |
| Generic GameParam Source # | |
| FromJSON GameParam Source # | |
Defined in Plutus.Contracts.Game.Babbage | |
| ToJSON GameParam Source # | |
Defined in Plutus.Contracts.Game.Babbage Methods toEncoding :: GameParam -> Encoding toJSONList :: [GameParam] -> Value toEncodingList :: [GameParam] -> Encoding | |
| Lift DefaultUni GameParam Source # | |
Defined in Plutus.Contracts.Game.Babbage | |
| Typeable DefaultUni GameParam Source # | |
Defined in Plutus.Contracts.Game.Babbage | |
| type Rep GameParam Source # | |
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 #
Arguments for the "lock" endpoint
Constructors
| LockArgs | |
Fields
| |
Instances
Arguments for the "guess" endpoint
Constructors
| GuessArgs | |
Fields
| |
Instances
| Show GuessArgs Source # | |
| Generic GuessArgs Source # | |
| FromJSON GuessArgs Source # | |
Defined in Plutus.Contracts.Game.Babbage | |
| ToJSON GuessArgs Source # | |
Defined in Plutus.Contracts.Game.Babbage Methods toEncoding :: GuessArgs -> Encoding toJSONList :: [GuessArgs] -> Value toEncodingList :: [GuessArgs] -> Encoding | |
| type Rep GuessArgs Source # | |
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)