Skip to content

Commit

Permalink
tests
Browse files Browse the repository at this point in the history
  • Loading branch information
nau committed Jan 27, 2022
1 parent 70e9b86 commit d3e97dc
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
19 changes: 12 additions & 7 deletions marlowe/src/Language/Marlowe/Client.hs
Expand Up @@ -46,9 +46,9 @@ import Language.Marlowe.Semantics
import qualified Language.Marlowe.Semantics as Marlowe
import Language.Marlowe.SemanticsTypes hiding (Contract, getAction)
import qualified Language.Marlowe.SemanticsTypes as Marlowe
import Language.Marlowe.Util (extractNonMerkleizedContractRoles, merkleizedInput)
import Language.Marlowe.Util (extractNonMerkleizedContractRoles)
import Ledger (CurrencySymbol, Datum (..), PaymentPubKeyHash (..), PubKeyHash, Slot (..), TokenName, TxOut (..),
TxOutRef, inScripts, txOutValue)
TxOutRef, dataHash, inScripts, txOutValue)
import qualified Ledger
import Ledger.Ada (adaSymbol, adaToken, adaValueOf, lovelaceValueOf)
import Ledger.Address (pubKeyHashAddress, scriptHashAddress)
Expand Down Expand Up @@ -701,13 +701,18 @@ mkStep params typedValidator slotInterval@(minSlot, maxSlot) input = do
Just (onChainState, utxo) -> do
let OnChainState{ocsTxOut=TypedScriptTxOut{tyTxOutData=currentState}, ocsTxOutRef} = onChainState
let MarloweData{..} = currentState
let asdf (ClientInput i) = NormalInput i
asdf (ClientMerkleizedInput i c) = merkleizedInput i c

let asdf :: MarloweClientInput -> ([Input], TxConstraints Void Void)
asdf (ClientInput i) = ([NormalInput i], mempty)
asdf (ClientMerkleizedInput input continuation) = let
builtin = PlutusTx.toBuiltinData continuation
hash = dataHash builtin
in ([MerkleizedInput input hash continuation], singleton (MustIncludeDatum (Datum builtin)))

let inputToTxInput (NormalInput i) = Input i
inputToTxInput (MerkleizedInput i h _) = MerkleizedTxInput i h

let inputs = fmap asdf input
let (inputs, datumConstraints) = foldMap asdf input
let redeemerInputs = fmap inputToTxInput inputs
let txInput = TransactionInput {
txInterval = slotInterval,
Expand All @@ -728,12 +733,12 @@ mkStep params typedValidator slotInterval@(minSlot, maxSlot) input = do
outputsConstraints = payoutConstraints payoutsByParty
totalIncome = P.foldMap (collectDeposits . getInputContent) inputs
totalPayouts = P.foldMap snd payoutsByParty
inputBalance = totalBalance (accounts txOutState)
inputBalance = totalBalance (accounts marloweState)
finalBalance = inputBalance P.+ totalIncome P.- totalPayouts
in (outputsConstraints, finalBalance)

let inputsConstraints = validateInputs params inputs
let newConstraints = inputsConstraints <> outputsConstraints <> mustValidateIn times
let newConstraints = datumConstraints <> inputsConstraints <> outputsConstraints <> mustValidateIn times
let isFinal = isClose txOutContract
lookups1 =
Constraints.typedValidatorLookups typedValidator
Expand Down
5 changes: 0 additions & 5 deletions marlowe/src/Language/Marlowe/Util.hs
Expand Up @@ -121,8 +121,3 @@ merkleizedCase :: Action -> Contract -> Case Contract
merkleizedCase action continuation = let
hash = dataHash (PlutusTx.toBuiltinData continuation)
in MerkleizedCase action hash

merkleizedInput :: InputContent -> Contract -> Input
merkleizedInput input continuation = let
hash = dataHash (PlutusTx.toBuiltinData continuation)
in MerkleizedInput input hash continuation
2 changes: 1 addition & 1 deletion marlowe/test/Spec/Marlowe/Marlowe.hs
Expand Up @@ -344,7 +344,7 @@ typedValidatorSize :: IO ()
typedValidatorSize = do
let validator = Scripts.validatorScript $ smallTypedValidator defaultMarloweParams
let vsize = SBS.length. SBS.toShort . LB.toStrict $ Serialise.serialise validator
assertBool ("smallTypedValidator is too large " <> show vsize) (vsize < 16000)
assertBool ("smallTypedValidator is too large " <> show vsize) (vsize < 17200)

untypedValidatorSize :: IO ()
untypedValidatorSize = do
Expand Down

0 comments on commit d3e97dc

Please sign in to comment.