Merge pull request #41 from Liqwid-Labs/flake-update

update flake
This commit is contained in:
Emily 2022-03-25 17:15:16 +01:00 committed by GitHub
commit 72de1a9cd9
7 changed files with 62 additions and 119 deletions

View file

@ -95,6 +95,7 @@ common deps
, data-default-class , data-default-class
, generics-sop , generics-sop
, plutarch , plutarch
, plutarch-extra
, plutus-core , plutus-core
, plutus-ledger-api , plutus-ledger-api
, plutus-tx , plutus-tx
@ -128,8 +129,6 @@ library
other-modules: other-modules:
Agora.Utils Agora.Utils
Agora.Utils.Value Agora.Utils.Value
Plutarch.Api.V1.These
Plutarch.These
hs-source-dirs: agora hs-source-dirs: agora

View file

@ -15,14 +15,14 @@ import Plutarch.Api.V1 (
PAddress (..), PAddress (..),
PCredential (..), PCredential (..),
PCurrencySymbol (..), PCurrencySymbol (..),
PMap (..),
PScriptContext (..), PScriptContext (..),
PScriptPurpose (..), PScriptPurpose (..),
PTxInInfo (..), PTxInInfo (..),
PTxInfo (..), PTxInfo (..),
PTxOut (..), PTxOut (..),
PValue (..),
) )
import Plutarch.Api.V1.AssocMap (PMap (PMap))
import Plutarch.Api.V1.Value (PValue (PValue))
import Plutarch.Builtin (pforgetData) import Plutarch.Builtin (pforgetData)
import Plutarch.List (pfoldr') import Plutarch.List (pfoldr')
import Plutarch.Monadic qualified as P import Plutarch.Monadic qualified as P

View file

@ -44,7 +44,6 @@ import Plutarch.Api.V1 (
PCurrencySymbol, PCurrencySymbol,
PDatum, PDatum,
PDatumHash, PDatumHash,
PMap (PMap),
PMaybeData (PDJust), PMaybeData (PDJust),
PPubKeyHash, PPubKeyHash,
PTokenName, PTokenName,
@ -53,8 +52,9 @@ import Plutarch.Api.V1 (
PTxInfo (PTxInfo), PTxInfo (PTxInfo),
PTxOut (PTxOut), PTxOut (PTxOut),
PTxOutRef, PTxOutRef,
PValue (PValue),
) )
import Plutarch.Api.V1.AssocMap (PMap (PMap))
import Plutarch.Api.V1.Value (PValue (PValue))
import Plutarch.Builtin (ppairDataBuiltin) import Plutarch.Builtin (ppairDataBuiltin)
import Plutarch.Internal (punsafeCoerce) import Plutarch.Internal (punsafeCoerce)
import Plutarch.Monadic qualified as P import Plutarch.Monadic qualified as P

View file

@ -1,62 +0,0 @@
{-# OPTIONS_GHC -Wno-orphans #-}
module Plutarch.Api.V1.These (PTheseData (..)) where
import GHC.Generics qualified as GHC
import Generics.SOP
import Plutarch.DataRepr (PIsDataReprInstances (PIsDataReprInstances))
import Plutarch.Lift (
PConstantRepr,
PConstanted,
PLifted,
PUnsafeLiftDecl,
pconstantFromRepr,
pconstantToRepr,
)
import Plutus.V1.Ledger.Api qualified as Plutus
import PlutusTx.These qualified as PlutusThese
data PTheseData (a :: PType) (b :: PType) (s :: S)
= PDThis (Term s (PDataRecord '["_0" ':= a]))
| PDThat (Term s (PDataRecord '["_0" ':= b]))
| PDThese (Term s (PDataRecord '["_0" ':= a, "_1" ':= b]))
deriving stock (GHC.Generic)
deriving anyclass (Generic, PIsDataRepr)
deriving
(PlutusType, PIsData)
via PIsDataReprInstances (PTheseData a b)
instance
( Plutus.ToData (PLifted a)
, Plutus.ToData (PLifted b)
, Plutus.FromData (PLifted a)
, Plutus.FromData (PLifted b)
, PLift a
, PLift b
) =>
PUnsafeLiftDecl (PTheseData a b)
where
type PLifted (PTheseData a b) = PlutusThese.These (PLifted a) (PLifted b)
{- TODO: Make PTheseData an instance of PConstant:
https://github.com/Plutonomicon/plutarch/pull/355
-}
instance
( PLifted (PConstanted a) ~ a
, Plutus.ToData b
, Plutus.FromData b
, Plutus.ToData a
, Plutus.FromData a
, PConstant a
, PLifted (PConstanted b) ~ b
, Plutus.FromData b
, Plutus.ToData b
, PConstant b
) =>
PConstant (PlutusThese.These a b)
where
type PConstantRepr (PlutusThese.These a b) = [(Plutus.Data, Plutus.Data)]
type PConstanted (PlutusThese.These a b) = PTheseData (PConstanted a) (PConstanted b)
pconstantToRepr _t = undefined
pconstantFromRepr _t = undefined

View file

@ -1,12 +0,0 @@
module Plutarch.These (PThese (..)) where
import GHC.Generics qualified as GHC
import Generics.SOP
-- | Plutus These type with Scott-encoded representation.
data PThese (a :: PType) (b :: PType) (s :: S)
= PThis (Term s a)
| PThat (Term s b)
| PThese (Term s a) (Term s b)
deriving stock (GHC.Generic)
deriving anyclass (Generic, PlutusType)

45
flake.lock generated
View file

@ -679,7 +679,7 @@
"nixpkgs": [ "nixpkgs": [
"apropos-tx", "apropos-tx",
"haskell-nix", "haskell-nix",
"nixpkgs-2105" "nixpkgs-unstable"
], ],
"nixpkgs-2003": "nixpkgs-2003", "nixpkgs-2003": "nixpkgs-2003",
"nixpkgs-2105": "nixpkgs-2105", "nixpkgs-2105": "nixpkgs-2105",
@ -731,6 +731,8 @@
"hpc-coveralls": "hpc-coveralls_2", "hpc-coveralls": "hpc-coveralls_2",
"nix-tools": "nix-tools_2", "nix-tools": "nix-tools_2",
"nixpkgs": [ "nixpkgs": [
"plutarch",
"haskell-nix",
"nixpkgs-2111" "nixpkgs-2111"
], ],
"nixpkgs-2003": "nixpkgs-2003_2", "nixpkgs-2003": "nixpkgs-2003_2",
@ -883,11 +885,11 @@
"iohk-nix_2": { "iohk-nix_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1646330344, "lastModified": 1648032999,
"narHash": "sha256-EbhMDeneH26wDi+x5kz8nfru/dE9JZ241hJed4a8lz8=", "narHash": "sha256-3uCz+gJppvM7z6CUCkBbFSu60WgIE+e3oXwXiAiGWSY=",
"owner": "input-output-hk", "owner": "input-output-hk",
"repo": "iohk-nix", "repo": "iohk-nix",
"rev": "0a0126d8fb1bdc61ce1fd2ef61cf396de800fdad", "rev": "5e667b374153327c7bdfdbfab8ef19b1f27d4aac",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1093,11 +1095,11 @@
}, },
"nixpkgs-2111_2": { "nixpkgs-2111_2": {
"locked": { "locked": {
"lastModified": 1646844010, "lastModified": 1647902355,
"narHash": "sha256-NRDLmpjmBMNBRr/BiztSsGht5wJYl8WZFzj+b+6LhLk=", "narHash": "sha256-SySJ8IRaogpc/BPOkysA+kzq9URvXthoeKIemaTKCiM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d59edd3833597be12763f1f017c7ad666cf1b810", "rev": "31aa631dbc496500efd2507baaed39626f6650f2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1123,6 +1125,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-2111_4": {
"locked": {
"lastModified": 1644510859,
"narHash": "sha256-xjpVvL5ecbyi0vxtVl/Fh9bwGlMbw3S06zE5nUzFB8A=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0d1d5d7e3679fec9d07f2eb804d9f9fdb98378d3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-21.11-darwin",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-nixops": { "nixpkgs-nixops": {
"locked": { "locked": {
"lastModified": 1630248577, "lastModified": 1630248577,
@ -1274,6 +1292,7 @@
"haskell-nix", "haskell-nix",
"nixpkgs-unstable" "nixpkgs-unstable"
], ],
"nixpkgs-2111": "nixpkgs-2111_4",
"plutus": "plutus_2", "plutus": "plutus_2",
"protolude": "protolude", "protolude": "protolude",
"safe-coloured-text": "safe-coloured-text", "safe-coloured-text": "safe-coloured-text",
@ -1283,17 +1302,17 @@
"validity": "validity" "validity": "validity"
}, },
"locked": { "locked": {
"lastModified": 1646941827, "lastModified": 1648163186,
"narHash": "sha256-/TmkSDVOYD0Nsf6/tsyCSWhFUIeefwPn0Lz1oeZ7lyQ=", "narHash": "sha256-UfaSb4nk9HWzsj1Kb8RJuPV+iw1Nl4E2+97KOwIwcao=",
"owner": "Plutonomicon", "owner": "peter-mlabs",
"repo": "plutarch", "repo": "plutarch",
"rev": "cb29ca64df4ed193d94a062e3fe26aa37e59b7bc", "rev": "0638dbd706bc2c5f48f9f40be7bbe1986a778698",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "Plutonomicon", "owner": "peter-mlabs",
"ref": "liqwid/extra",
"repo": "plutarch", "repo": "plutarch",
"rev": "cb29ca64df4ed193d94a062e3fe26aa37e59b7bc",
"type": "github" "type": "github"
} }
}, },

View file

@ -3,6 +3,13 @@
inputs.nixpkgs.follows = "plutarch/nixpkgs"; inputs.nixpkgs.follows = "plutarch/nixpkgs";
inputs.haskell-nix.follows = "plutarch/haskell-nix"; inputs.haskell-nix.follows = "plutarch/haskell-nix";
# temporary fix for nix versions that have the transitive follows bug
# see https://github.com/NixOS/nix/issues/6013
inputs.nixpkgs-2111 = { url = "github:NixOS/nixpkgs/nixpkgs-21.11-darwin"; };
inputs.plutarch.url = "github:peter-mlabs/plutarch/liqwid/extra";
inputs.plutarch.inputs.nixpkgs.follows =
"plutarch/haskell-nix/nixpkgs-unstable";
# https://github.com/mlabs-haskell/apropos-tx/pull/28 # https://github.com/mlabs-haskell/apropos-tx/pull/28
inputs.apropos-tx.url = inputs.apropos-tx.url =
@ -10,15 +17,6 @@
inputs.apropos-tx.inputs.nixpkgs.follows = inputs.apropos-tx.inputs.nixpkgs.follows =
"plutarch/haskell-nix/nixpkgs-unstable"; "plutarch/haskell-nix/nixpkgs-unstable";
# temporary fix for nix versions that have the transitive follows bug
# see https://github.com/NixOS/nix/issues/6013
inputs.nixpkgs-2111 = { url = "github:NixOS/nixpkgs/nixpkgs-21.11-darwin"; };
inputs.plutarch.url =
"github:Plutonomicon/plutarch?rev=cb29ca64df4ed193d94a062e3fe26aa37e59b7bc";
inputs.plutarch.inputs.nixpkgs.follows =
"plutarch/haskell-nix/nixpkgs-unstable";
outputs = inputs@{ self, nixpkgs, haskell-nix, plutarch, ... }: outputs = inputs@{ self, nixpkgs, haskell-nix, plutarch, ... }:
let let
supportedSystems = with nixpkgs.lib.systems.supported; supportedSystems = with nixpkgs.lib.systems.supported;
@ -32,7 +30,6 @@
overlays = [ haskell-nix.overlay ]; overlays = [ haskell-nix.overlay ];
inherit (haskell-nix) config; inherit (haskell-nix) config;
}; };
nixpkgsFor' = system: nixpkgsFor' = system:
import nixpkgs { import nixpkgs {
inherit system; inherit system;
@ -51,7 +48,8 @@
extraSources = plutarch.extraSources ++ [ extraSources = plutarch.extraSources ++ [
{ {
src = inputs.plutarch; src = inputs.plutarch;
subdirs = [ "." "plutarch-test" "plutarch-extra" ]; subdirs =
[ "." "plutarch-test" "plutarch-extra" "plutarch-numeric" ];
} }
{ {
src = inputs.apropos-tx; src = inputs.apropos-tx;
@ -66,24 +64,27 @@
# We use the ones from Nixpkgs, since they are cached reliably. # We use the ones from Nixpkgs, since they are cached reliably.
# Eventually we will probably want to build these with haskell.nix. # Eventually we will probably want to build these with haskell.nix.
nativeBuildInputs = [ nativeBuildInputs = with pkgs'; [
pkgs'.git entr
pkgs'.haskellPackages.apply-refact haskellPackages.apply-refact
pkgs'.fd git
pkgs'.cabal-install fd
pkgs'.haskell.packages."${ghcVersion}".hlint cabal-install
pkgs'.haskellPackages.cabal-fmt haskell.packages."${ghcVersion}".hlint
pkgs'.nixpkgs-fmt haskellPackages.cabal-fmt
pkgs'.graphviz nixpkgs-fmt
graphviz
]; ];
inherit (plutarch) tools; inherit (plutarch) tools;
additional = ps: [ additional = ps: [
ps.plutarch ps.plutarch
ps.plutarch-test ps.tasty-quickcheck
ps.apropos-tx ps.apropos-tx
ps.plutarch-extra ps.plutarch-extra
ps.plutarch-numeric
ps.plutarch-test
]; ];
}; };
}; };
@ -92,17 +93,15 @@
let let
pkgs = nixpkgsFor system; pkgs = nixpkgsFor system;
pkgs' = nixpkgsFor' system; pkgs' = nixpkgsFor' system;
inherit (pkgs.haskell-nix.tools ghcVersion {
inherit (plutarch.tools) fourmolu;
})
fourmolu;
in pkgs.runCommand "format-check" { in pkgs.runCommand "format-check" {
nativeBuildInputs = [ nativeBuildInputs = [
pkgs'.git pkgs'.git
pkgs'.fd pkgs'.fd
pkgs'.haskellPackages.cabal-fmt pkgs'.haskellPackages.cabal-fmt
pkgs'.nixpkgs-fmt pkgs'.nixpkgs-fmt
fourmolu (pkgs.haskell-nix.tools ghcVersion {
inherit (plutarch.tools) fourmolu;
}).fourmolu
]; ];
} '' } ''
export LC_CTYPE=C.UTF-8 export LC_CTYPE=C.UTF-8