input-output-hk / marlowe-cardano

Marlowe smart contract language Cardano implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sub-second rounding errors can cause `L1+` failures in Marlowe's Plutus validator

bwbush opened this issue · comments

Report from a user:

There is something strange with the --invalid-before / --invalid-hereafter arguments to marlowe-cli.
If I give a milli-second number like this 1661791959315, it fails. If I then edit it, to zero-out the millis part (ie replace last 3 digits with a zero), like this: 1661791959000 then the transaction succeeds.

See included snap: left one fails, right one succeeds.
image

The error that is reported is:
TxBodyScriptExecutionError [(ScriptWitnessIndexTxIn 2,ScriptErrorEvaluationFailed (CekError An error has occurred: User error:
The provided Plutus code called 'error'.) ["L1","L1+","PT5"])]

Note: marlowe-cli 0.0.4.4 used on testnet (MAGIC=1567) with the escrow contract.