diff --git a/README.md b/README.md index de40fb6..c5cd3e9 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,12 @@ fida-contracts ### Generate purescript module ``` -nix run -L git+ssh://git@github.com/fida-services/fida-contracts#fida-contracts:exe:fida-contracts-serialise -- -n 'Fida.RawScript' +nix run -L git+ssh://git@github.com/fida-services/fida-contracts#fida-contracts:exe:fida-contracts-serialise -- -n 'Fida.RawScripts' ``` locally ``` -nix run -L .#fida-contracts:exe:fida-contracts-serialise -- -n 'Fida.RawScript' +nix run -L .#fida-contracts:exe:fida-contracts-serialise -- -n 'Fida.RawScripts' ``` ### Generate plutus scripts diff --git a/src/Fida/Contract/Insurance/Lifecycle/Funding.hs b/src/Fida/Contract/Insurance/Lifecycle/Funding.hs index f888c3b..d247c7c 100644 --- a/src/Fida/Contract/Insurance/Lifecycle/Funding.hs +++ b/src/Fida/Contract/Insurance/Lifecycle/Funding.hs @@ -51,7 +51,7 @@ import PlutusTx.Prelude -- -- ERROR-FUNDING-VALIDATOR-5: start date must be before valid range -- --- ERROR-FUNDING-VALIDATOR-6: tx is not signed by the policy holder +-- ERROR-FUNDING-VALIDATOR-6: tx is not signed by the policy holder or policy authority {-# INLINEABLE lifecycleFundingStateValidator #-} lifecycleFundingStateValidator :: InsuranceId -> @@ -68,11 +68,11 @@ lifecycleFundingStateValidator (InsuranceId cs) d@InsuranceInfo {iInfoPolicyAuth outputDatum = untypedOutputDatum cs sc policyInfoTokenName hasCorrectOutput = outputDatum == untypedUpdatePolicyState d Cancelled -lifecycleFundingStateValidator (InsuranceId cs) (iinfo@InsuranceInfo {iInfoState = Funding, iInfoFidaCardNumber, iInfoPolicyHolder}) (PolicyFundingFundingComplete startDate) sc = +lifecycleFundingStateValidator (InsuranceId cs) (iinfo@InsuranceInfo {iInfoState = Funding, iInfoFidaCardNumber, iInfoPolicyHolder, iInfoPolicyAuthority}) (PolicyFundingFundingComplete startDate) sc = traceIfFalse "ERROR-FUNDING-VALIDATOR-3" (fidaCardsSold >= iInfoFidaCardNumber) && traceIfFalse "ERROR-FUNDING-VALIDATOR-4" hasCorrectOutput && traceIfFalse "ERROR-FUNDING-VALIDATOR-5" isStartDateCorrect - && traceIfFalse "ERROR-FUNDING-VALIDATOR-6" isSignedByPolicyHolder + && traceIfFalse "ERROR-FUNDING-VALIDATOR-6" (isSignedByPolicyHolder || isSignedByAuthority') where txInfo = scriptContextTxInfo sc @@ -95,4 +95,6 @@ lifecycleFundingStateValidator (InsuranceId cs) (iinfo@InsuranceInfo {iInfoState isStartDateCorrect = startDate `before` txInfoValidRange txInfo isSignedByPolicyHolder = txSignedBy txInfo iInfoPolicyHolder + + isSignedByAuthority' = isSignedByTheAuthority sc iInfoPolicyAuthority lifecycleFundingStateValidator _ _ _ _ = trace "ERROR-FUNDING-VALIDATOR-0" False