Skip to content

Commit

Permalink
Sketch validation of CollectCom signers #284
Browse files Browse the repository at this point in the history
  • Loading branch information
abailly-iohk committed Mar 24, 2022
1 parent f504b7a commit 60ba245
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion hydra-plutus/src/Hydra/Contract/Head.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import Plutus.Codec.CBOR.Encoding (
unsafeEncodeRaw,
)
import Plutus.V1.Ledger.Ada (adaSymbol, adaToken, lovelaceValueOf)
import Plutus.V1.Ledger.Value (Value (Value), symbols, valueOf)
import Plutus.V1.Ledger.Value (Value (Value), symbols, unTokenName, valueOf)
import PlutusTx (fromBuiltinData, toBuiltinData)
import qualified PlutusTx
import qualified PlutusTx.AssocMap as Map
Expand Down Expand Up @@ -121,7 +121,18 @@ checkCollectCom ::
checkCollectCom commitAddress (_, parties) context@ScriptContext{scriptContextTxInfo = txInfo} =
mustContinueHeadWith context headAddress expectedChangeValue expectedOutputDatum
&& everyoneHasCommitted
&& isAuthenticated
where
isAuthenticated =
traceIfFalse "Missing or invalid transaction signatory" $
case getPubKeyHash <$> txInfoSignatories txInfo of
[signer] -> signatoryIsInPTs (unTokenName <$> allParticipationTokens) signer
[] -> traceError "Missing required signer"
_ -> traceError "Too many signers"

allParticipationTokens :: [TokenName]
allParticipationTokens = traceError "TODO"

everyoneHasCommitted =
nTotalCommits == length parties

Expand Down Expand Up @@ -206,6 +217,9 @@ checkCollectCom commitAddress (_, parties) context@ScriptContext{scriptContextTx
Nothing
Nothing ->
traceError "fromBuiltinData failed"

signatoryIsInPTs :: [BuiltinByteString] -> BuiltinByteString -> Bool
signatoryIsInPTs = traceError "not implemented"
{-# INLINEABLE checkCollectCom #-}

txOutAdaValue :: TxOut -> Integer
Expand Down

0 comments on commit 60ba245

Please sign in to comment.