Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating warnings and default language extensions #462

Merged
merged 6 commits into from
Mar 12, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@ jobs:
uses: actions/checkout@v4

- name: Install Nix
uses: cachix/install-nix-action@v30
uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
## Access token to avoid triggering GitHub's rate limiting.
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}

- name: Setup Nix caches
uses: cachix/cachix-action@v15
uses: cachix/cachix-action@v16
with:
name: tweag-cooked-validators
## This auth token will give write access to the cache, meaning that
Expand All @@ -52,14 +52,14 @@ jobs:
uses: actions/checkout@v4

- name: Install Nix
uses: cachix/install-nix-action@v30
uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
## Access token to avoid triggering GitHub's rate limiting.
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}

- name: Setup Nix caches
uses: cachix/cachix-action@v15
uses: cachix/cachix-action@v16
with:
name: tweag-cooked-validators
## This auth token will give write access to the cache, meaning that
Expand All @@ -84,14 +84,14 @@ jobs:
uses: actions/checkout@v4

- name: Install Nix
uses: cachix/install-nix-action@v30
uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
## Access token to avoid triggering GitHub's rate limiting.
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}

- name: Setup Nix caches
uses: cachix/cachix-action@v15
uses: cachix/cachix-action@v16
with:
name: tweag-cooked-validators
## No auth token: read only cache.
Expand Down Expand Up @@ -211,14 +211,14 @@ jobs:
uses: actions/checkout@v4

- name: Install Nix
uses: cachix/install-nix-action@v30
uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
## Access token to avoid triggering GitHub's rate limiting.
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}

- name: Setup Nix caches
uses: cachix/cachix-action@v15
uses: cachix/cachix-action@v16
with:
name: tweag-cooked-validators
## No auth token: read only cache.
Expand Down Expand Up @@ -277,14 +277,14 @@ jobs:
uses: actions/checkout@v4

- name: Install Nix
uses: cachix/install-nix-action@v30
uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
## Access token to avoid triggering GitHub's rate limiting.
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}

- name: Setup Nix caches
uses: cachix/cachix-action@v15
uses: cachix/cachix-action@v16
with:
name: tweag-cooked-validators
## This auth token will give write access to the cache, meaning that
Expand Down
21 changes: 13 additions & 8 deletions cooked-validators.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,6 @@ library
hs-source-dirs:
src
default-extensions:
ImportQualifiedPost
AllowAmbiguousTypes
ConstraintKinds
DataKinds
DerivingStrategies
Expand All @@ -100,22 +98,22 @@ library
ImportQualifiedPost
LambdaCase
MultiParamTypeClasses
MultiWayIf
NamedFieldPuns
NumericUnderscores
OverloadedStrings
PolyKinds
RankNTypes
RecordWildCards
ScopedTypeVariables
StandaloneDeriving
StrictData
TemplateHaskell
TupleSections
TypeApplications
TypeFamilies
TypeOperators
TypeSynonymInstances
ViewPatterns
ghc-options: -Wall -Wno-missed-extra-shared-lib -fobject-code -fno-ignore-interface-pragmas -fignore-hpc-changes -fno-omit-interface-pragmas -fplugin-opt PlutusTx.Plugin:defer-errors -fplugin-opt PlutusTx.Plugin:conservative-optimisation
ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -Wno-missed-extra-shared-lib -fobject-code -fno-ignore-interface-pragmas -fignore-hpc-changes -fno-omit-interface-pragmas -fplugin-opt PlutusTx.Plugin:defer-errors -fplugin-opt PlutusTx.Plugin:conservative-optimisation
build-depends:
QuickCheck
, base >=4.9 && <5
Expand Down Expand Up @@ -191,25 +189,33 @@ test-suite spec
hs-source-dirs:
tests/
default-extensions:
ImportQualifiedPost
ConstraintKinds
DataKinds
DerivingStrategies
DerivingVia
FlexibleContexts
FlexibleInstances
GADTs
GeneralizedNewtypeDeriving
ImportQualifiedPost
LambdaCase
MultiParamTypeClasses
MultiWayIf
NamedFieldPuns
NumericUnderscores
OverloadedStrings
PolyKinds
RankNTypes
RecordWildCards
ScopedTypeVariables
StandaloneDeriving
TemplateHaskell
TupleSections
TypeApplications
TypeFamilies
TypeOperators
ViewPatterns
ghc-options: -Wall -Wno-missed-extra-shared-lib -Wno-type-defaults -fobject-code -fno-ignore-interface-pragmas -fignore-hpc-changes -fno-omit-interface-pragmas -fplugin-opt PlutusTx.Plugin:defer-errors -fplugin-opt PlutusTx.Plugin:conservative-optimisation
ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -Wno-missed-extra-shared-lib -fobject-code -fno-ignore-interface-pragmas -fignore-hpc-changes -fno-omit-interface-pragmas -fplugin-opt PlutusTx.Plugin:defer-errors -fplugin-opt PlutusTx.Plugin:conservative-optimisation
build-depends:
QuickCheck
, base >=4.9 && <5
Expand Down Expand Up @@ -238,7 +244,6 @@ test-suite spec
, nonempty-containers
, optics-core
, optics-th
, parsec
, plutus-core
, plutus-ledger
, plutus-ledger-api
Expand Down
48 changes: 11 additions & 37 deletions package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,21 +46,23 @@ dependencies:
- tasty-quickcheck
- text
- transformers

library:
source-dirs: src
ghc-options:
ghc-options: &ghc-options
-Wall
-Wcompat
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wredundant-constraints
-Wno-missed-extra-shared-lib
-fobject-code
-fno-ignore-interface-pragmas
-fignore-hpc-changes
-fno-omit-interface-pragmas
-fplugin-opt PlutusTx.Plugin:defer-errors
-fplugin-opt PlutusTx.Plugin:conservative-optimisation
default-extensions:
- ImportQualifiedPost
- AllowAmbiguousTypes
default-extensions: &default-extensions
- ConstraintKinds
- DataKinds
- DerivingStrategies
Expand All @@ -72,56 +74,28 @@ library:
- ImportQualifiedPost
- LambdaCase
- MultiParamTypeClasses
- MultiWayIf
- NamedFieldPuns
- NumericUnderscores
- OverloadedStrings
- PolyKinds
- RankNTypes
- RecordWildCards
- ScopedTypeVariables
- StandaloneDeriving
- StrictData
- TemplateHaskell
- TupleSections
- TypeApplications
- TypeFamilies
- TypeOperators
- TypeSynonymInstances
- ViewPatterns

tests:
spec:
main: Spec.hs
source-dirs:
- tests/
ghc-options:
-Wall
-Wno-missed-extra-shared-lib
-Wno-type-defaults
-fobject-code
-fno-ignore-interface-pragmas
-fignore-hpc-changes
-fno-omit-interface-pragmas
-fplugin-opt PlutusTx.Plugin:defer-errors
-fplugin-opt PlutusTx.Plugin:conservative-optimisation
ghc-options: *ghc-options
dependencies:
- cooked-validators
- parsec
default-extensions:
- ImportQualifiedPost
- DataKinds
- FlexibleContexts
- FlexibleInstances
- GADTs
- LambdaCase
- MultiParamTypeClasses
- MultiWayIf
- NumericUnderscores
- OverloadedStrings
- RankNTypes
- RecordWildCards
- ScopedTypeVariables
- TemplateHaskell
- TupleSections
- TypeApplications
- TypeFamilies
- ViewPatterns
default-extensions: *default-extensions
16 changes: 2 additions & 14 deletions src/Cooked/Attack/DatumHijacking.hs
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,7 @@ import Type.Reflection
-- @(Script.TypedValidator a)@ might be useful to construct the optics used by
-- this tweak.
redirectScriptOutputTweak ::
( MonadTweak m,
Is k A_Traversal,
Show (Script.DatumType a),
Api.ToData (Script.DatumType a)
) =>
(MonadTweak m, Is k A_Traversal) =>
Optic' k is TxSkel (ConcreteOutput (Script.TypedValidator a) TxSkelOutDatum Api.Value (Script.Versioned Script.Script)) ->
-- | Return @Just@ the new validator, or @Nothing@ if you want to leave this
-- output unchanged.
Expand Down Expand Up @@ -69,15 +65,7 @@ redirectScriptOutputTweak optic change =
-- attack fails.
datumHijackingAttack ::
forall a m.
( MonadTweak m,
Show (Script.DatumType a),
PrettyCooked (Script.DatumType a),
Api.ToData (Script.DatumType a),
Api.UnsafeFromData (Script.DatumType a),
Api.UnsafeFromData (Script.RedeemerType a),
Typeable (Script.DatumType a),
Typeable a
) =>
(MonadTweak m, Typeable a) =>
-- | Predicate to select outputs to steal, depending on the intended
-- recipient, the datum, and the value.
(ConcreteOutput (Script.TypedValidator a) TxSkelOutDatum Api.Value (Script.Versioned Script.Script) -> Bool) ->
Expand Down
2 changes: 1 addition & 1 deletion src/Cooked/InitialDistribution.hs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import Cooked.MockChain.MinAda
import Cooked.Skeleton
import Cooked.Wallet
import Data.Default
import Data.List
import Data.List (foldl')
import Plutus.Script.Utils.Value qualified as Script
import PlutusLedgerApi.V3 qualified as Api

Expand Down
2 changes: 0 additions & 2 deletions src/Cooked/Ltl.hs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
{-# LANGUAGE UndecidableInstances #-}

-- | This modules provides the infrastructure to modify sequences of
-- transactions using LTL formulaes with atomic modifications. This idea is to
-- describe when to apply certain modifications within a trace. This is to be
Expand Down
2 changes: 1 addition & 1 deletion src/Cooked/MockChain/Balancing.hs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import Cooked.Skeleton
import Cooked.Wallet
import Data.Bifunctor
import Data.Function
import Data.List
import Data.List (find, partition, sortBy)
import Data.Map qualified as Map
import Data.Maybe
import Data.Ratio qualified as Rat
Expand Down
2 changes: 0 additions & 2 deletions src/Cooked/MockChain/Direct.hs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ instance (Monad m, Alternative m) => Alternative (MockChainT m) where
(<|>) = combineMockChainT (<|>)

combineMockChainT ::
(Monad m) =>
(forall a. m a -> m a -> m a) ->
MockChainT m x ->
MockChainT m x ->
Expand All @@ -86,7 +85,6 @@ mapMockChainT f = MockChainT . mapStateT (mapExceptT (mapWriterT f)) . unMockCha
-- | Executes a 'MockChainT' from some initial state; does /not/ convert the
-- 'MockChainSt' into a 'UtxoState'.
runMockChainTRaw ::
(Monad m) =>
MockChainSt ->
MockChainT m a ->
m (MockChainReturn a MockChainSt)
Expand Down
4 changes: 2 additions & 2 deletions src/Cooked/MockChain/Testing.hs
Original file line number Diff line number Diff line change
Expand Up @@ -181,11 +181,11 @@ emptyTest trace =
}

-- | Appending an initial distribution to a test
withInitDist :: (IsProp prop) => Test a prop -> InitialDistribution -> Test a prop
withInitDist :: Test a prop -> InitialDistribution -> Test a prop
withInitDist test initDist = test {testInitDist = initDist}

-- | Appending printing options to a test
withPrettyOpts :: (IsProp prop) => Test a prop -> PrettyCookedOpts -> Test a prop
withPrettyOpts :: Test a prop -> PrettyCookedOpts -> Test a prop
withPrettyOpts test opts = test {testPrettyOpts = opts}

-- | Appending a predicate over the log to a test. This will be used both in
Expand Down
4 changes: 0 additions & 4 deletions src/Cooked/Skeleton/Payable.hs
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}

module Cooked.Skeleton.Payable
( Payable (..),
(<&&>),
Expand Down
4 changes: 2 additions & 2 deletions src/Cooked/Tweak/Common.hs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import Control.Monad.State
import Cooked.MockChain.BlockChain
import Cooked.Skeleton
import Data.Either.Combinators (rightToMaybe)
import Data.List
import Data.List (mapAccumL)
import Data.Maybe
import ListT (ListT)
import ListT qualified
Expand Down Expand Up @@ -68,7 +68,7 @@ instance (MonadBlockChainWithoutValidation m) => MonadTweak (Tweak m) where
-- If you're using tweaks in a 'MonadModalBlockChain' together with mechanisms
-- like 'withTweak', 'somewhere', or 'everywhere', you should never have areason
-- to use this function.
runTweakInChain :: (MonadBlockChainWithoutValidation m, MonadPlus m) => Tweak m a -> TxSkel -> m (a, TxSkel)
runTweakInChain :: (MonadPlus m) => Tweak m a -> TxSkel -> m (a, TxSkel)
runTweakInChain tweak skel = ListT.alternate $ runStateT tweak skel

-- | Like 'runTweakInChain', but for when you want to explicitly apply a tweak
Expand Down
2 changes: 1 addition & 1 deletion src/Cooked/Tweak/Mint.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ where

import Cooked.Skeleton
import Cooked.Tweak.Common
import Data.List
import Data.List (partition)
import Optics.Core
import Plutus.Script.Utils.Scripts qualified as Script
import PlutusLedgerApi.V3 qualified as Api
Expand Down
Loading