Skip to content

Commit 94598ab

Browse files
committed
Add 'IsScriptWitnessInCtx'
Makes it easier to write functions that are polymorphic in the witness context.
1 parent fc10f16 commit 94598ab

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

cardano-api/src/Cardano/Api.hs

+1
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,7 @@ module Cardano.Api (
359359
Witness(..),
360360
KeyWitnessInCtx(..),
361361
ScriptWitnessInCtx(..),
362+
IsScriptWitnessInCtx(..),
362363
ScriptDatum(..),
363364
ScriptRedeemer,
364365
scriptWitnessScript,

cardano-api/src/Cardano/Api/Script.hs

+12
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ module Cardano.Api.Script (
4141
Witness(..),
4242
KeyWitnessInCtx(..),
4343
ScriptWitnessInCtx(..),
44+
IsScriptWitnessInCtx(..),
4445
ScriptDatum(..),
4546
ScriptRedeemer,
4647
scriptWitnessScript,
@@ -770,6 +771,17 @@ deriving instance Show (KeyWitnessInCtx witctx)
770771
deriving instance Eq (ScriptWitnessInCtx witctx)
771772
deriving instance Show (ScriptWitnessInCtx witctx)
772773

774+
class IsScriptWitnessInCtx ctx where
775+
scriptWitnessCtx :: ScriptWitnessInCtx ctx
776+
777+
instance IsScriptWitnessInCtx WitCtxTxIn where
778+
scriptWitnessCtx = ScriptWitnessForSpending
779+
780+
instance IsScriptWitnessInCtx WitCtxMint where
781+
scriptWitnessCtx = ScriptWitnessForMinting
782+
783+
instance IsScriptWitnessInCtx WitCtxStake where
784+
scriptWitnessCtx = ScriptWitnessForStakeAddr
773785

774786
-- ----------------------------------------------------------------------------
775787
-- Script execution units

0 commit comments

Comments
 (0)