fix docs for Agora.Credential module
This commit is contained in:
parent
f730998326
commit
584539feb9
1 changed files with 23 additions and 3 deletions
|
|
@ -14,30 +14,46 @@ import Plutarch.Extra.ScriptContext (ptxSignedBy)
|
||||||
import Plutarch.Extra.TermCont (pmatchC)
|
import Plutarch.Extra.TermCont (pmatchC)
|
||||||
import PlutusLedgerApi.V2 (Credential)
|
import PlutusLedgerApi.V2 (Credential)
|
||||||
|
|
||||||
|
{- | This type represents a general purpose authority which can be used
|
||||||
|
to check for approval.
|
||||||
|
|
||||||
|
The most basic case is simply a PubKeyCredential.
|
||||||
|
|
||||||
|
@since 1.0.0
|
||||||
|
-}
|
||||||
type AuthorizationCredential =
|
type AuthorizationCredential =
|
||||||
Credential
|
Credential
|
||||||
|
|
||||||
type PAuthorizationCredential =
|
type PAuthorizationCredential =
|
||||||
PCredential
|
PCredential
|
||||||
|
|
||||||
|
{- | Context required in order to check 'AuthorizationCredential'.
|
||||||
|
|
||||||
|
@since 1.0.0
|
||||||
|
-}
|
||||||
data PAuthorizationContext (s :: S) = PAuthorizationContext
|
data PAuthorizationContext (s :: S) = PAuthorizationContext
|
||||||
{ signatories :: Term s (PBuiltinList (PAsData PPubKeyHash))
|
{ signatories :: Term s (PBuiltinList (PAsData PPubKeyHash))
|
||||||
, inputs :: Term s (PBuiltinList PTxInInfo)
|
, inputs :: Term s (PBuiltinList PTxInInfo)
|
||||||
}
|
}
|
||||||
deriving stock
|
deriving stock
|
||||||
( -- | @since 0.2.0
|
( -- | @since 1.0.0
|
||||||
Generic
|
Generic
|
||||||
)
|
)
|
||||||
deriving anyclass
|
deriving anyclass
|
||||||
( -- | @since 0.2.0
|
( -- | @since 1.0.0
|
||||||
PlutusType
|
PlutusType
|
||||||
, -- | @since 0.2.0
|
, -- | @since 1.0.0
|
||||||
PEq
|
PEq
|
||||||
)
|
)
|
||||||
|
|
||||||
|
-- | @since 1.0.0
|
||||||
instance DerivePlutusType PAuthorizationContext where
|
instance DerivePlutusType PAuthorizationContext where
|
||||||
type DPTStrat _ = PlutusTypeScott
|
type DPTStrat _ = PlutusTypeScott
|
||||||
|
|
||||||
|
{- | Build up 'PAuthorizationContext' from fields.
|
||||||
|
|
||||||
|
@since 1.0.0
|
||||||
|
-}
|
||||||
authorizationContext ::
|
authorizationContext ::
|
||||||
forall {r} {s :: S}.
|
forall {r} {s :: S}.
|
||||||
( HasField "inputs" r (Term s (PBuiltinList PTxInInfo))
|
( HasField "inputs" r (Term s (PBuiltinList PTxInInfo))
|
||||||
|
|
@ -48,6 +64,10 @@ authorizationContext ::
|
||||||
authorizationContext f =
|
authorizationContext f =
|
||||||
pcon (PAuthorizationContext f.signatories f.inputs)
|
pcon (PAuthorizationContext f.signatories f.inputs)
|
||||||
|
|
||||||
|
{- | Check for authorization by credential.
|
||||||
|
|
||||||
|
@since 1.0.0
|
||||||
|
-}
|
||||||
pauthorizedBy :: forall (s :: S). Term s (PAuthorizationContext :--> PAuthorizationCredential :--> PBool)
|
pauthorizedBy :: forall (s :: S). Term s (PAuthorizationContext :--> PAuthorizationCredential :--> PBool)
|
||||||
pauthorizedBy = phoistAcyclic $
|
pauthorizedBy = phoistAcyclic $
|
||||||
plam $ \ctx credential -> unTermCont $ do
|
plam $ \ctx credential -> unTermCont $ do
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue