Addressed PR comments.
This commit is contained in:
parent
aa6626c913
commit
c98b3b9c89
1 changed files with 9 additions and 12 deletions
|
|
@ -41,8 +41,8 @@ data MultiSig = MultiSig
|
||||||
|
|
||||||
newtype PMultiSig (s :: S) = PMultiSig
|
newtype PMultiSig (s :: S) = PMultiSig
|
||||||
{ getMultiSig ::
|
{ getMultiSig ::
|
||||||
Term s (PDataRecord '[ "pkeys" ':= PBuiltinList (PAsData PPubKeyHash)
|
Term s (PDataRecord '[ "keys" ':= PBuiltinList (PAsData PPubKeyHash)
|
||||||
, "pminSigs" ':= PInteger])
|
, "minSigs" ':= PInteger])
|
||||||
}
|
}
|
||||||
deriving stock (GHC.Generic)
|
deriving stock (GHC.Generic)
|
||||||
deriving anyclass (Generic)
|
deriving anyclass (Generic)
|
||||||
|
|
@ -65,9 +65,9 @@ pubKeysToPPubKeys xs = case xs of
|
||||||
|
|
||||||
multisigToPMultisig :: forall s. MultiSig -> Term s PMultiSig
|
multisigToPMultisig :: forall s. MultiSig -> Term s PMultiSig
|
||||||
multisigToPMultisig m =
|
multisigToPMultisig m =
|
||||||
pcon $ PMultiSig (pdcons @"pkeys" @(PBuiltinList (PAsData PPubKeyHash))
|
pcon $ PMultiSig (pdcons @"keys" @(PBuiltinList (PAsData PPubKeyHash))
|
||||||
# (pdata $ pcon (pubKeysToPPubKeys m.keys))
|
# (pdata $ pcon (pubKeysToPPubKeys m.keys))
|
||||||
#$ pdcons @"pminSigs" @PInteger # (pdata $ fromInteger m.minSigs) # pdnil)
|
#$ pdcons @"minSigs" @PInteger # (pdata $ fromInteger m.minSigs) # pdnil)
|
||||||
|
|
||||||
validatedByMultisig :: MultiSig -> Term s (PScriptContext :--> PBool)
|
validatedByMultisig :: MultiSig -> Term s (PScriptContext :--> PBool)
|
||||||
validatedByMultisig params =
|
validatedByMultisig params =
|
||||||
|
|
@ -78,12 +78,9 @@ pvalidatedByMultisig :: Term s (PMultiSig :--> PScriptContext :--> PBool)
|
||||||
pvalidatedByMultisig =
|
pvalidatedByMultisig =
|
||||||
plam $ \multi' ctx' -> P.do
|
plam $ \multi' ctx' -> P.do
|
||||||
ctx <- pletFields @'["txInfo", "purpose"] ctx'
|
ctx <- pletFields @'["txInfo", "purpose"] ctx'
|
||||||
multi <- pletFields @'["pkeys", "pminSigs"] multi'
|
multi <- pletFields @'["keys", "minSigs"] multi'
|
||||||
let signatories = pfield @"signatories" # ctx.txInfo
|
let signatories = pfield @"signatories" # ctx.txInfo
|
||||||
pif
|
((pfromData multi.minSigs) #<= (plength #$ pfilter
|
||||||
((pfromData multi.pminSigs) #<= (plength #$ pfilter
|
# (plam $ \a ->
|
||||||
# (plam $ \a ->
|
(pelem # a # pfromData signatories))
|
||||||
(pelem # a # pfromData signatories))
|
# multi.keys))
|
||||||
# multi.pkeys))
|
|
||||||
(pcon PTrue)
|
|
||||||
perror
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue