diff --git a/agora-scripts/Codec/Serialise/Orphans.hs b/agora-scripts/Codec/Serialise/Orphans.hs deleted file mode 100644 index f310abd..0000000 --- a/agora-scripts/Codec/Serialise/Orphans.hs +++ /dev/null @@ -1,34 +0,0 @@ -{-# OPTIONS_GHC -Wno-orphans #-} - -{- | -Module : Codec.Serialise.Orphans -Maintainer : emi@haskell.fyi -Description: Orphan instances for Serialising and Hashing Cardano types. - -Orphan instances for Serialising and Hashing Cardano types. --} -module Codec.Serialise.Orphans () where - -import Codec.Serialise (Serialise) -import Data.Tagged (Tagged (Tagged)) -import PlutusLedgerApi.V1 (TxId, TxOutRef) -import PlutusLedgerApi.V1.Value (AssetClass, CurrencySymbol, TokenName) - -deriving anyclass instance - Serialise TxOutRef - -deriving anyclass instance - Serialise TxId - -deriving anyclass instance - Serialise AssetClass - -deriving anyclass instance - Serialise CurrencySymbol - -deriving anyclass instance - Serialise TokenName - -deriving newtype instance - Serialise a => - Serialise (Tagged s a) diff --git a/agora-scripts/Data/Cache/Cached.hs b/agora-scripts/Data/Cache/Cached.hs deleted file mode 100644 index a0d5d89..0000000 --- a/agora-scripts/Data/Cache/Cached.hs +++ /dev/null @@ -1,49 +0,0 @@ -{- | Module : API - Maintainer : emi@haskell.fyi - Description: API for script exporter. - - API for script exporter. --} -module Data.Cache.Cached ( - cached, - cachedM, - cachedForM, -) where - -import Control.Monad.IO.Class (MonadIO (liftIO)) -import Data.Cache qualified as Cache -import Data.Functor ((<&>)) -import Data.Hashable (Hashable) -import System.Clock (TimeSpec) - -{- | 'cachedFor' but items last forever. - - Uses a HashMap under the hood. --} -cached :: (Monad m, MonadIO m, Hashable k, Ord k) => (k -> v) -> IO (k -> m v) -cached f = cachedForM Nothing (pure . f) - -{- | 'cachedFor' but items last forever. - - Uses a HashMap under the hood. --} -cachedM :: (Monad m, MonadIO m, Hashable k, Ord k) => (k -> m v) -> IO (k -> m v) -cachedM = cachedForM Nothing - -{- | Create a cached version of a function tainting result with MonadIO context. - - Results are cached dependent on the first argument, @'Maybe' 'TimeSpec'@. - - Uses a HashMap under the hood. --} -cachedForM :: (Monad m, MonadIO m, Hashable k, Ord k) => Maybe TimeSpec -> (k -> m v) -> IO (k -> m v) -cachedForM t f = - Cache.newCache t <&> \cache k -> do - res <- liftIO $ Cache.lookup cache k - case res of - Nothing -> do - v <- f k - liftIO $ Cache.insert cache k v - pure v - Just v -> do - pure v diff --git a/agora-scripts/Main.hs b/agora-scripts/Main.hs index 3a9d94d..0fdc5ae 100644 --- a/agora-scripts/Main.hs +++ b/agora-scripts/Main.hs @@ -15,7 +15,6 @@ import Agora.Governor.Scripts (authorityTokenFromGovernor, authorityTokenSymbolF import Agora.Proposal (Proposal) import Agora.Proposal.Scripts (proposalPolicy, proposalValidator) import Agora.SafeMoney (GTTag) -import Agora.ScriptInfo (ScriptInfo, mkPolicyInfo, mkValidatorInfo) import Agora.Stake (Stake) import Agora.Stake.Scripts (stakePolicy, stakeValidator) import Agora.Treasury (treasuryValidator) @@ -32,6 +31,7 @@ import PlutusLedgerApi.V1.Value (AssetClass, CurrencySymbol) import PlutusLedgerApi.V1.Value qualified as Value import ScriptExport.API (runServer) import ScriptExport.Options (parseOptions) +import ScriptExport.ScriptInfo (ScriptInfo, mkPolicyInfo, mkValidatorInfo) import ScriptExport.Types (Builders, insertBuilder) main :: IO () diff --git a/agora-scripts/ScriptExport/API.hs b/agora-scripts/ScriptExport/API.hs deleted file mode 100644 index f09ffd2..0000000 --- a/agora-scripts/ScriptExport/API.hs +++ /dev/null @@ -1,110 +0,0 @@ -{- | Module : ScriptExport.API - Maintainer : emi@haskell.fyi - Description: API for script exporter. - - API for script exporter. --} -module ScriptExport.API ( - API, - runServer, -) where - -import Codec.Serialise.Orphans () -import Data.Aeson qualified as Aeson -import Data.Cache.Cached (cachedForM) -import Data.Function ((&)) -import Data.Proxy (Proxy (Proxy)) -import Data.Text (Text) -import GHC.Generics qualified as GHC -import Network.HTTP.Types qualified as Http -import Network.Wai qualified as Wai -import Network.Wai.Handler.Warp qualified as Warp -import Network.Wai.Middleware.Cors (CorsResourcePolicy (corsRequestHeaders), cors, simpleCorsResourcePolicy) -import Prettyprinter (Pretty (pretty), defaultLayoutOptions, hsep, layoutPretty, viaShow) -import Prettyprinter.Render.String (renderString) -import ScriptExport.Options (Options (..)) -import ScriptExport.Types (Builders, ScriptQuery (ScriptQuery), runQuery) -import ScriptExport.Types qualified as Builders -import Servant.API (Capture, Get, JSON, Post, ReqBody, (:<|>) (..), type (:>)) -import Servant.Server qualified as Servant -import System.Clock (TimeSpec (TimeSpec)) -import Text.Printf (printf) - -{- | Servant API type for script generation. - - @since 0.2.0 --} -type API = - -- POST /query-script/:name - "query-script" - :> Capture "name" Text - :> ReqBody '[JSON] Aeson.Value - :> Post '[JSON] Aeson.Value - -- GET /info - :<|> "info" - :> Get '[JSON] ServerInfo - -{- | Information about the server. - - @since 0.2.0 --} -data ServerInfo = ServerInfo - { revision :: Text - , exposedBuilders :: [Text] - } - deriving anyclass - ( -- | @since 0.2.0 - Aeson.ToJSON - , -- | @since 0.2.0 - Aeson.FromJSON - ) - deriving stock - ( -- | @since 0.2.0 - Show - , -- | @since 0.2.0 - Eq - , -- | @since 0.2.0 - GHC.Generic - ) - --- | Run a Warp server that exposes a script generation endpoint. -runServer :: Text -> Builders -> Options -> IO () -runServer revision builders options = do - let logger req status _maybeFileSize = - putStrLn . renderString . layoutPretty defaultLayoutOptions $ - hsep - [ "[info]" - , viaShow $ Wai.requestMethod req - , viaShow $ Wai.rawPathInfo req - , "(" <> pretty (Http.statusCode status) <> ")" - ] - - settings = - Warp.defaultSettings - & Warp.setPort options.port - & Warp.setLogger logger - - corsPolicy = - simpleCorsResourcePolicy - { -- NOTE: Webpack dev server requires this for CORS workaround. - corsRequestHeaders = "content-type" : corsRequestHeaders simpleCorsResourcePolicy - } - - corsMiddleware = cors . const $ Just corsPolicy - - serverInfo = - ServerInfo - { revision = revision - , exposedBuilders = Builders.toList builders - } - - -- Scripts stay cached for five minutes - query <- cachedForM (Just $ TimeSpec 300 0) (`runQuery` builders) - - let handler = (\name -> query . ScriptQuery name) :<|> pure serverInfo - - printf "[info] Running 'agora-scripts' on :%d\n" (Warp.getPort settings) - - Servant.serve (Proxy @API) handler - & (if options.enableCorsMiddleware then corsMiddleware else id) - & Warp.runSettings settings diff --git a/agora-scripts/ScriptExport/Options.hs b/agora-scripts/ScriptExport/Options.hs deleted file mode 100644 index 2ea6a57..0000000 --- a/agora-scripts/ScriptExport/Options.hs +++ /dev/null @@ -1,51 +0,0 @@ -{- | -Module : ScriptExport.Options -Maintainer : emi@haskell.fyi -Description: Command line options for 'agora-scripts'. - -Command line options for 'agora-scripts'. --} -module ScriptExport.Options (Options (..), parseOptions) where - -import Network.Wai.Handler.Warp qualified as Warp -import Options.Applicative ((<**>)) -import Options.Applicative qualified as Opt - -data Options = Options - { port :: Warp.Port - , enableCorsMiddleware :: Bool - } - deriving stock (Show, Eq) - -opt :: Opt.Parser Options -opt = - Options - <$> Opt.option - Opt.auto - ( Opt.long "port" - <> Opt.short 'p' - <> Opt.metavar "PORT" - <> Opt.value 3939 - <> Opt.help "The port to run the server on." - ) - <*> Opt.switch - ( Opt.long "enable-cors-middleware" - <> Opt.short 'c' - <> Opt.help - ( unwords - [ "Enable cors middleware." - , "This is usually required for some local servers." - , "For security reasons, this should be disabled in production." - ] - ) - ) - -parseOptions :: IO Options -parseOptions = Opt.execParser p - where - p = - Opt.info - (opt <**> Opt.helper) - ( Opt.fullDesc - <> Opt.progDesc "Generate Agora scripts for off-chain use." - ) diff --git a/agora-scripts/ScriptExport/Types.hs b/agora-scripts/ScriptExport/Types.hs deleted file mode 100644 index c91805e..0000000 --- a/agora-scripts/ScriptExport/Types.hs +++ /dev/null @@ -1,112 +0,0 @@ -{- | -Module : ScriptExport.Types -Maintainer : emi@haskell.fyi -Description: Param and script types for generation. - -Param and script types for generation. --} -module ScriptExport.Types ( - ScriptQuery (..), - Builders, - runQuery, - insertBuilder, - toList, -) where - -import Data.Aeson qualified as Aeson -import Data.ByteString.Lazy.Char8 qualified as LBS -import Data.Coerce (coerce) -import Data.Default.Class (Default (def)) -import Data.Hashable (Hashable) -import Data.Map.Strict (Map) -import Data.Map.Strict qualified as Map -import Data.Text (Text) -import GHC.Generics qualified as GHC -import Servant qualified - -{- | Query data for getting script info. - - @since 0.2.0 --} -data ScriptQuery = ScriptQuery - { name :: Text - , paramsPayload :: Aeson.Value - } - deriving anyclass - ( -- | @since 0.2.0 - Aeson.ToJSON - , -- | @since 0.2.0 - Aeson.FromJSON - ) - deriving stock - ( -- | @since 0.2.0 - Show - , -- | @since 0.2.0 - Eq - , -- | @since 0.2.0 - GHC.Generic - , -- | @since 0.2.0 - Ord - ) - deriving anyclass - ( -- | @since 0.2.0 - Hashable - ) - -{- | Run a query on Builders. - - @since 0.2.0 --} -runQuery :: ScriptQuery -> Builders -> Servant.Handler Aeson.Value -runQuery s = - maybe - (Servant.throwError Servant.err404 {Servant.errBody = "Builder not found"}) - ($ s.paramsPayload) - . Map.lookup s.name - . getBuilders - -{- | Represents a list of named pure functions. - - @since 0.2.0 --} -newtype Builders = Builders - { getBuilders :: Map Text (Aeson.Value -> Servant.Handler Aeson.Value) - } - --- | @since 0.2.0 -instance Default Builders where - def = Builders Map.empty - -{- | Insert a pure function into the Builders map. - - @since 0.2.0 --} -insertBuilder :: - forall p s. - (Aeson.FromJSON p, Aeson.ToJSON s) => - Text -> - (p -> s) -> - Builders -> - Builders -insertBuilder k = coerce . Map.insert k . throughJSON - where - throughJSON :: - forall p s. - (Aeson.FromJSON p, Aeson.ToJSON s) => - (p -> s) -> - (Aeson.Value -> Servant.Handler Aeson.Value) - throughJSON f v = - case Aeson.fromJSON v of - Aeson.Error e -> - Servant.throwError $ - Servant.err400 - { Servant.errBody = LBS.pack e - } - Aeson.Success v' -> pure . Aeson.toJSON $ f v' - -{- | Get a list of the available builders. - - @since 0.2.0 --} -toList :: Builders -> [Text] -toList = Map.keys . getBuilders diff --git a/agora.cabal b/agora.cabal index 143f770..73adc2a 100644 --- a/agora.cabal +++ b/agora.cabal @@ -89,7 +89,7 @@ common deps build-depends: , aeson , ansi-terminal - , base >=4.14 && <5 + , base >=4.14 && <5 , base-compat , base16 , bytestring @@ -103,6 +103,7 @@ common deps , plutarch , plutarch-numeric , plutarch-safe-money + , plutarch-script-export , plutus-core , plutus-ledger-api , plutus-tx @@ -154,7 +155,6 @@ library Agora.Proposal.Scripts Agora.Proposal.Time Agora.SafeMoney - Agora.ScriptInfo Agora.Stake Agora.Stake.Scripts Agora.Treasury @@ -237,27 +237,9 @@ executable agora-scripts main-is: Main.hs hs-source-dirs: agora-scripts other-modules: - Codec.Serialise.Orphans - Data.Cache.Cached - ScriptExport.API - ScriptExport.Options - ScriptExport.Types - build-depends: , agora - , cache - , clock - , containers , gitrev - , hashable - , http-types - , optparse-applicative - , prettyprinter - , servant - , servant-server - , wai - , wai-cors - , warp executable agora-purescript-bridge import: lang, deps, exe-opts diff --git a/agora/Agora/ScriptInfo.hs b/agora/Agora/ScriptInfo.hs deleted file mode 100644 index d4beba1..0000000 --- a/agora/Agora/ScriptInfo.hs +++ /dev/null @@ -1,87 +0,0 @@ -{-# LANGUAGE TemplateHaskell #-} - -{- | -Module : Agora.ScriptInfo -Maintainer : emi@haskell.fyi -Description: Exportable script bundles for off-chain consumption. - -Exportable script bundles for off-chain consumption. --} -module Agora.ScriptInfo ( - -- * Types - ScriptInfo (..), - - -- * Introduction functions - mkValidatorInfo, - mkPolicyInfo, -) where - -import Agora.Aeson.Orphans () -import Cardano.Binary qualified as CBOR -import Codec.Serialise qualified as Codec -import Data.Aeson qualified as Aeson -import Data.ByteString.Base16 qualified as Base16 -import Data.ByteString.Lazy qualified as LBS -import Data.ByteString.Short qualified as SBS -import Data.Text (Text) -import GHC.Generics qualified as GHC -import Plutarch.Api.V1 (PMintingPolicy, PValidator, mkMintingPolicy, mkValidator, scriptHash) -import PlutusLedgerApi.V1 ( - MintingPolicy (getMintingPolicy), - Script, - Validator (getValidator), - ) -import PlutusLedgerApi.V1.Scripts (ScriptHash) - -{- | Bundle containing a 'Validator' and its hash. - - @since 0.2.0 --} -data ScriptInfo = ScriptInfo - { cborHex :: Text - -- ^ The validator script encoded as cbor hex. - , rawHex :: Text - -- ^ The validator script encoded as raw hex. - , hash :: ScriptHash - -- ^ Hash of the validator. - } - deriving stock - ( -- | @since 0.2.0 - Show - , -- | @since 0.2.0 - Eq - , -- | @since 0.2.0 - GHC.Generic - ) - deriving anyclass - ( -- | @since 0.2.0 - Aeson.ToJSON - , -- | @since 0.2.0 - Aeson.FromJSON - ) - -mkScriptInfo :: Script -> ScriptInfo -mkScriptInfo script = - let scriptRaw = LBS.toStrict $ Codec.serialise script - scriptCBOR = CBOR.serialize' $ SBS.toShort scriptRaw - in ScriptInfo - { cborHex = Base16.encodeBase16 scriptCBOR - , rawHex = Base16.encodeBase16 scriptRaw - , hash = scriptHash script - } - -{- | Create a 'ScriptInfo' given a Plutarch term of a policy. - - @since 0.2.0 --} -mkPolicyInfo :: ClosedTerm PMintingPolicy -> ScriptInfo -mkPolicyInfo term = - mkScriptInfo (getMintingPolicy $ mkMintingPolicy term) - -{- | Create a 'ScriptInfo' given a Plutarch term of a validator. - - @since 0.2.0 --} -mkValidatorInfo :: ClosedTerm PValidator -> ScriptInfo -mkValidatorInfo term = - mkScriptInfo (getValidator $ mkValidator term) diff --git a/flake.lock b/flake.lock index f987a5d..34e3e2c 100644 --- a/flake.lock +++ b/flake.lock @@ -48,6 +48,22 @@ "type": "github" } }, + "HTTP_12": { + "flake": false, + "locked": { + "lastModified": 1451647621, + "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", + "owner": "phadej", + "repo": "HTTP", + "rev": "9bc0996d412fef1787449d841277ef663ad9a915", + "type": "github" + }, + "original": { + "owner": "phadej", + "repo": "HTTP", + "type": "github" + } + }, "HTTP_2": { "flake": false, "locked": { @@ -243,6 +259,23 @@ "type": "github" } }, + "cabal-32_12": { + "flake": false, + "locked": { + "lastModified": 1603716527, + "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=", + "owner": "haskell", + "repo": "cabal", + "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.2", + "repo": "cabal", + "type": "github" + } + }, "cabal-32_2": { "flake": false, "locked": { @@ -430,6 +463,23 @@ "type": "github" } }, + "cabal-34_12": { + "flake": false, + "locked": { + "lastModified": 1640353650, + "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=", + "owner": "haskell", + "repo": "cabal", + "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.4", + "repo": "cabal", + "type": "github" + } + }, "cabal-34_2": { "flake": false, "locked": { @@ -617,6 +667,23 @@ "type": "github" } }, + "cabal-36_12": { + "flake": false, + "locked": { + "lastModified": 1641652457, + "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", + "owner": "haskell", + "repo": "cabal", + "rev": "f27667f8ec360c475027dcaee0138c937477b070", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, "cabal-36_2": { "flake": false, "locked": { @@ -801,6 +868,22 @@ "type": "github" } }, + "cardano-base_12": { + "flake": false, + "locked": { + "lastModified": 1652788515, + "narHash": "sha256-l0KgomRi6YhEoOlFnBYEXhnZO2+PW68rhfUrbMXjhCQ=", + "owner": "input-output-hk", + "repo": "cardano-base", + "rev": "631cb6cf1fa01ab346233b610a38b3b4cba6e6ab", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-base", + "type": "github" + } + }, "cardano-base_2": { "flake": false, "locked": { @@ -980,6 +1063,23 @@ "type": "github" } }, + "cardano-crypto_12": { + "flake": false, + "locked": { + "lastModified": 1621376239, + "narHash": "sha256-oxIOVlgm07FAEmgGRF1C2me9TXqVxQulEOcJ22zpTRs=", + "owner": "input-output-hk", + "repo": "cardano-crypto", + "rev": "07397f0e50da97eaa0575d93bee7ac4b2b2576ec", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-crypto", + "rev": "07397f0e50da97eaa0575d93bee7ac4b2b2576ec", + "type": "github" + } + }, "cardano-crypto_2": { "flake": false, "locked": { @@ -1167,6 +1267,23 @@ "type": "github" } }, + "cardano-prelude_12": { + "flake": false, + "locked": { + "lastModified": 1653997332, + "narHash": "sha256-E+YSfUsvxdoOr7n7fz4xd7zb4z8XBRGNYOKipc2A1pw=", + "owner": "mlabs-haskell", + "repo": "cardano-prelude", + "rev": "713c7ae79a4d538fcd653c976a652913df1567b9", + "type": "github" + }, + "original": { + "owner": "mlabs-haskell", + "repo": "cardano-prelude", + "rev": "713c7ae79a4d538fcd653c976a652913df1567b9", + "type": "github" + } + }, "cardano-prelude_2": { "flake": false, "locked": { @@ -1351,6 +1468,22 @@ "type": "github" } }, + "cardano-repo-tool_12": { + "flake": false, + "locked": { + "lastModified": 1624584417, + "narHash": "sha256-YSepT97PagR/1jTYV/Yer8a2GjFe9+tTwaTCHxuK50M=", + "owner": "input-output-hk", + "repo": "cardano-repo-tool", + "rev": "30e826ed8f00e3e154453b122a6f3d779b2f73ec", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-repo-tool", + "type": "github" + } + }, "cardano-repo-tool_2": { "flake": false, "locked": { @@ -1527,6 +1660,22 @@ "type": "github" } }, + "cardano-shell_12": { + "flake": false, + "locked": { + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-shell", + "type": "github" + } + }, "cardano-shell_2": { "flake": false, "locked": { @@ -3129,6 +3278,21 @@ "type": "github" } }, + "flake-utils_35": { + "locked": { + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "flake-utils_4": { "locked": { "lastModified": 1652776076, @@ -3272,6 +3436,22 @@ "type": "github" } }, + "flat_12": { + "flake": false, + "locked": { + "lastModified": 1651403785, + "narHash": "sha256-g+jGep1IXdw4q01W67J6f6OODY91QzIlW1+Eu8pR+u0=", + "owner": "Quid2", + "repo": "flat", + "rev": "559617e058098b776b431e2a67346ad3adea2440", + "type": "github" + }, + "original": { + "owner": "Quid2", + "repo": "flat", + "type": "github" + } + }, "flat_2": { "flake": false, "locked": { @@ -3468,6 +3648,23 @@ "type": "github" } }, + "ghc-8.6.5-iohk_12": { + "flake": false, + "locked": { + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", + "type": "github" + } + }, "ghc-8.6.5-iohk_2": { "flake": false, "locked": { @@ -3652,6 +3849,22 @@ "type": "github" } }, + "gitignore-nix_12": { + "flake": false, + "locked": { + "lastModified": 1611672876, + "narHash": "sha256-qHu3uZ/o9jBHiA3MEKHJ06k7w4heOhA+4HCSIvflRxo=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "211907489e9f198594c0eb0ca9256a1949c9d412", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "gitignore-nix_2": { "flake": false, "locked": { @@ -3844,6 +4057,22 @@ "type": "github" } }, + "hackage-nix_12": { + "flake": false, + "locked": { + "lastModified": 1651108473, + "narHash": "sha256-zHGCnBdwKvrcYanjf3GARTWF8V2pyJl1QNONUNZSoc0=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "dbab3b292c3400d028a2257e3acd2ac0249da774", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, "hackage-nix_2": { "flake": false, "locked": { @@ -4004,6 +4233,22 @@ "type": "github" } }, + "hackage_12": { + "flake": false, + "locked": { + "lastModified": 1654046237, + "narHash": "sha256-FpM9zE+Q+WrvCiaZBCg5U1g0bYpiZOCxY8V3R5ydBu8=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "eeae1790b9c6a880d96e4a7214fdf0a73bdd6fc0", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, "hackage_2": { "flake": false, "locked": { @@ -4557,6 +4802,39 @@ "type": "github" } }, + "haskell-language-server_33": { + "flake": false, + "locked": { + "lastModified": 1653778781, + "narHash": "sha256-oEVBaYRLjD4gC3vQuT0DCgmCSIeWSwGPVXXSKJDFUK0=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "8c47d6ce2a8409a285a3f4c3f0e10c25fb4dd848", + "type": "github" + }, + "original": { + "owner": "haskell", + "repo": "haskell-language-server", + "type": "github" + } + }, + "haskell-language-server_34": { + "flake": false, + "locked": { + "lastModified": 1650980856, + "narHash": "sha256-uiwsfh/K3IABZDYj7JUZNIAPRVqH6g/r8X6QKg8DrZE=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b5a37f7fc360596899cb2945f363030f44156415", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.7.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, "haskell-language-server_4": { "flake": false, "locked": { @@ -4749,6 +5027,33 @@ "type": "github" } }, + "haskell-nix-extra-hackage_11": { + "inputs": { + "haskell-nix": [ + "plutarch-script-export", + "plutarch", + "haskell-nix" + ], + "nixpkgs": [ + "plutarch-script-export", + "plutarch", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1653405678, + "narHash": "sha256-fPpPxuCZDF5b/iQgmUg2jspPObsK0mpcchUti/LR8D0=", + "owner": "mlabs-haskell", + "repo": "haskell-nix-extra-hackage", + "rev": "cf4613eb0d883a8c12c86d7cdbdaaf15fdc70128", + "type": "github" + }, + "original": { + "owner": "mlabs-haskell", + "repo": "haskell-nix-extra-hackage", + "type": "github" + } + }, "haskell-nix-extra-hackage_2": { "inputs": { "haskell-nix": [ @@ -5345,6 +5650,62 @@ "type": "github" } }, + "haskell-nix_23": { + "inputs": { + "HTTP": "HTTP_12", + "cabal-32": "cabal-32_12", + "cabal-34": "cabal-34_12", + "cabal-36": "cabal-36_12", + "cardano-shell": "cardano-shell_12", + "flake-utils": "flake-utils_35", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_12", + "hackage": "hackage_12", + "hpc-coveralls": "hpc-coveralls_12", + "hydra": "hydra_11", + "nix-tools": "nix-tools_12", + "nixpkgs": [ + "plutarch-script-export", + "plutarch", + "haskell-nix", + "nixpkgs-unstable" + ], + "nixpkgs-2003": "nixpkgs-2003_12", + "nixpkgs-2105": "nixpkgs-2105_12", + "nixpkgs-2111": "nixpkgs-2111_24", + "nixpkgs-unstable": "nixpkgs-unstable_12", + "old-ghc-nix": "old-ghc-nix_12", + "stackage": "stackage_12" + }, + "locked": { + "lastModified": 1654068838, + "narHash": "sha256-GHSufC21DSg8Lz2AzIg3DA9DPxGvLqxGFa/4ADoXRhU=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "fa2fa131fe15e630c91ab4078d12eb32c41f934b", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "haskell-nix_24": { + "flake": false, + "locked": { + "lastModified": 1651151636, + "narHash": "sha256-WdMP9IMB5kByT0zimDuCYZF/dinRB104H8iDTG/c1Eo=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "f707aa2e75c0d33473166abc61c0b43ac6e107c0", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, "haskell-nix_3": { "inputs": { "HTTP": "HTTP_2", @@ -5778,6 +6139,24 @@ "type": "github" } }, + "hercules-ci-effects_12": { + "inputs": { + "nixpkgs": "nixpkgs_56" + }, + "locked": { + "lastModified": 1653841712, + "narHash": "sha256-XBF4i1MuIRAEbFpj3Z3fVaYxzNEsYapyENtw3vG+q1I=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "e14d2131b7c81acca3904b584ac45fb72da64dd2", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, "hercules-ci-effects_2": { "inputs": { "nixpkgs": "nixpkgs_9" @@ -5970,6 +6349,22 @@ "type": "github" } }, + "hpc-coveralls_12": { + "flake": false, + "locked": { + "lastModified": 1607498076, + "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "type": "github" + }, + "original": { + "owner": "sevanspowell", + "repo": "hpc-coveralls", + "type": "github" + } + }, "hpc-coveralls_2": { "flake": false, "locked": { @@ -6214,6 +6609,31 @@ "type": "indirect" } }, + "hydra_11": { + "inputs": { + "nix": "nix_11", + "nixpkgs": [ + "plutarch-script-export", + "plutarch", + "haskell-nix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1646878427, + "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "owner": "NixOS", + "repo": "hydra", + "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, "hydra_2": { "inputs": { "nix": "nix_2", @@ -6658,6 +7078,38 @@ "type": "github" } }, + "iohk-nix_23": { + "flake": false, + "locked": { + "lastModified": 1653579289, + "narHash": "sha256-wveDdPsgB/3nAGAdFaxrcgLEpdi0aJ5kEVNtI+YqVfo=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "edb2d2df2ebe42bbdf03a0711115cf6213c9d366", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohk-nix_24": { + "flake": false, + "locked": { + "lastModified": 1626953580, + "narHash": "sha256-iEI9aTOaZMGsjWzcrctrC0usmiagwKT2v1LSDe9/tMU=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "cbd497f5844249ef8fe617166337d59f2a6ebe90", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, "iohk-nix_3": { "flake": false, "locked": { @@ -7058,6 +7510,22 @@ "type": "github" } }, + "lowdown-src_11": { + "flake": false, + "locked": { + "lastModified": 1633514407, + "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, "lowdown-src_2": { "flake": false, "locked": { @@ -7255,6 +7723,22 @@ "type": "github" } }, + "nix-tools_12": { + "flake": false, + "locked": { + "lastModified": 1649424170, + "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, "nix-tools_2": { "flake": false, "locked": { @@ -7404,6 +7888,27 @@ "type": "github" } }, + "nix_11": { + "inputs": { + "lowdown-src": "lowdown-src_11", + "nixpkgs": "nixpkgs_55", + "nixpkgs-regression": "nixpkgs-regression_11" + }, + "locked": { + "lastModified": 1643066034, + "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "owner": "NixOS", + "repo": "nix", + "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.6.0", + "repo": "nix", + "type": "github" + } + }, "nix_2": { "inputs": { "lowdown-src": "lowdown-src_2", @@ -7636,6 +8141,22 @@ "type": "github" } }, + "nixpkgs-2003_12": { + "locked": { + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-2003_2": { "locked": { "lastModified": 1620055814, @@ -7812,6 +8333,22 @@ "type": "github" } }, + "nixpkgs-2105_12": { + "locked": { + "lastModified": 1645296114, + "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-2105_2": { "locked": { "lastModified": 1645296114, @@ -8180,6 +8717,38 @@ "type": "github" } }, + "nixpkgs-2111_23": { + "locked": { + "lastModified": 1656492155, + "narHash": "sha256-oKWpYhhgZ2Yt4BZHKSFwJSwOAoFawWxNiW0y7wpde+I=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7a5ca644cc5e96336e7717aca871f01320c2df09", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2111_24": { + "locked": { + "lastModified": 1648744337, + "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-2111_3": { "locked": { "lastModified": 1653319070, @@ -8516,6 +9085,38 @@ "type": "github" } }, + "nixpkgs-latest_22": { + "locked": { + "lastModified": 1653918805, + "narHash": "sha256-6ahwAnBNGgqSNSn/6RnsxrlFi+fkA+RyT6o/5S1915o=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a0a69be4b5ee63f1b5e75887a406e9194012b492", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a0a69be4b5ee63f1b5e75887a406e9194012b492", + "type": "github" + } + }, + "nixpkgs-latest_23": { + "locked": { + "lastModified": 1653918805, + "narHash": "sha256-6ahwAnBNGgqSNSn/6RnsxrlFi+fkA+RyT6o/5S1915o=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a0a69be4b5ee63f1b5e75887a406e9194012b492", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a0a69be4b5ee63f1b5e75887a406e9194012b492", + "type": "github" + } + }, "nixpkgs-latest_3": { "locked": { "lastModified": 1653918805, @@ -8658,6 +9259,21 @@ "type": "indirect" } }, + "nixpkgs-regression_11": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" + } + }, "nixpkgs-regression_2": { "locked": { "lastModified": 1643052045, @@ -8826,6 +9442,22 @@ "type": "github" } }, + "nixpkgs-unstable_12": { + "locked": { + "lastModified": 1648219316, + "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-unstable_2": { "locked": { "lastModified": 1648219316, @@ -9722,6 +10354,54 @@ "type": "github" } }, + "nixpkgs_55": { + "locked": { + "lastModified": 1632864508, + "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-21.05-small", + "type": "indirect" + } + }, + "nixpkgs_56": { + "locked": { + "lastModified": 1647297614, + "narHash": "sha256-ulGq3W5XsrBMU/u5k9d4oPy65pQTkunR4HKKtTq0RwY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "73ad5f9e147c0d2a2061f1d4bd91e05078dc0b58", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_57": { + "flake": false, + "locked": { + "lastModified": 1645493675, + "narHash": "sha256-9xundbZQbhFodsQRh6QMN1GeSXfo3y/5NL0CZcJULz0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "74b10859829153d5c5d50f7c77b86763759e8654", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_6": { "locked": { "lastModified": 1652885393, @@ -9834,6 +10514,23 @@ "type": "github" } }, + "old-ghc-nix_12": { + "flake": false, + "locked": { + "lastModified": 1631092763, + "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", + "owner": "angerman", + "repo": "old-ghc-nix", + "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", + "type": "github" + }, + "original": { + "owner": "angerman", + "ref": "master", + "repo": "old-ghc-nix", + "type": "github" + } + }, "old-ghc-nix_2": { "flake": false, "locked": { @@ -10465,6 +11162,37 @@ "type": "github" } }, + "plutarch-script-export": { + "inputs": { + "haskell-nix": [ + "plutarch-script-export", + "plutarch", + "haskell-nix" + ], + "nixpkgs": [ + "plutarch-script-export", + "plutarch", + "nixpkgs" + ], + "nixpkgs-2111": "nixpkgs-2111_23", + "nixpkgs-latest": "nixpkgs-latest_22", + "plutarch": "plutarch_12" + }, + "locked": { + "lastModified": 1656599673, + "narHash": "sha256-+ZLiFYiMR/Xk2caFzyzhTWk/bruoK1i39LOwGZEOUp4=", + "owner": "Liqwid-Labs", + "repo": "plutarch-script-export", + "rev": "f27ac2b706c4239779be35f2e3b4971b386f7418", + "type": "github" + }, + "original": { + "owner": "Liqwid-Labs", + "ref": "main", + "repo": "plutarch-script-export", + "type": "github" + } + }, "plutarch_10": { "inputs": { "cardano-base": "cardano-base_10", @@ -10548,6 +11276,49 @@ "type": "github" } }, + "plutarch_12": { + "inputs": { + "cardano-base": "cardano-base_12", + "cardano-crypto": "cardano-crypto_12", + "cardano-prelude": "cardano-prelude_12", + "emanote": [ + "plutarch-script-export", + "plutarch", + "haskell-nix", + "nixpkgs-unstable" + ], + "flat": "flat_12", + "haskell-language-server": "haskell-language-server_33", + "haskell-nix": "haskell-nix_23", + "haskell-nix-extra-hackage": "haskell-nix-extra-hackage_11", + "hercules-ci-effects": "hercules-ci-effects_12", + "iohk-nix": "iohk-nix_23", + "nixpkgs": [ + "plutarch-script-export", + "plutarch", + "haskell-nix", + "nixpkgs-unstable" + ], + "nixpkgs-latest": "nixpkgs-latest_23", + "plutus": "plutus_12", + "protolude": "protolude_12", + "secp256k1-haskell": "secp256k1-haskell_11" + }, + "locked": { + "lastModified": 1654108284, + "narHash": "sha256-VD0zX4pFrJJaaUO7uJgioZGg1moe1Fy8nAb5j2mV/Qc=", + "owner": "liqwid-labs", + "repo": "plutarch", + "rev": "e7ef565645146e26e75ec29fe97122a74e52c6b7", + "type": "github" + }, + "original": { + "owner": "liqwid-labs", + "repo": "plutarch", + "rev": "e7ef565645146e26e75ec29fe97122a74e52c6b7", + "type": "github" + } + }, "plutarch_2": { "inputs": { "cardano-base": "cardano-base_2", @@ -10940,6 +11711,32 @@ "type": "github" } }, + "plutus_12": { + "inputs": { + "cardano-repo-tool": "cardano-repo-tool_12", + "gitignore-nix": "gitignore-nix_12", + "hackage-nix": "hackage-nix_12", + "haskell-language-server": "haskell-language-server_34", + "haskell-nix": "haskell-nix_24", + "iohk-nix": "iohk-nix_24", + "nixpkgs": "nixpkgs_57", + "pre-commit-hooks-nix": "pre-commit-hooks-nix_12", + "sphinxcontrib-haddock": "sphinxcontrib-haddock_12" + }, + "locked": { + "lastModified": 1653669501, + "narHash": "sha256-qJrjEeo9Jmar1TwihDFzKQNC1ui4M03iClJM1zMd5Uk=", + "owner": "input-output-hk", + "repo": "plutus", + "rev": "fed48a71550a12290efc84eefb74305d93cde69d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "plutus", + "type": "github" + } + }, "plutus_2": { "inputs": { "cardano-repo-tool": "cardano-repo-tool_2", @@ -11196,6 +11993,22 @@ "type": "github" } }, + "pre-commit-hooks-nix_12": { + "flake": false, + "locked": { + "lastModified": 1624971177, + "narHash": "sha256-Amf/nBj1E77RmbSSmV+hg6YOpR+rddCbbVgo5C7BS0I=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "397f0713d007250a2c7a745e555fa16c5dc8cadb", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "pre-commit-hooks-nix_2": { "flake": false, "locked": { @@ -11373,6 +12186,22 @@ "type": "github" } }, + "protolude_12": { + "flake": false, + "locked": { + "lastModified": 1647139352, + "narHash": "sha256-JyHAQfTTUswP8MeGEZibx/2/v01Q7cU5mNpnmDazh24=", + "owner": "protolude", + "repo": "protolude", + "rev": "3e249724fd0ead27370c8c297b1ecd38f92cbd5b", + "type": "github" + }, + "original": { + "owner": "protolude", + "repo": "protolude", + "type": "github" + } + }, "protolude_2": { "flake": false, "locked": { @@ -11518,7 +12347,8 @@ "plutarch-context-builder": "plutarch-context-builder", "plutarch-numeric": "plutarch-numeric_2", "plutarch-quickcheck": "plutarch-quickcheck_2", - "plutarch-safe-money": "plutarch-safe-money" + "plutarch-safe-money": "plutarch-safe-money", + "plutarch-script-export": "plutarch-script-export" } }, "secp256k1-haskell": { @@ -11553,6 +12383,22 @@ "type": "github" } }, + "secp256k1-haskell_11": { + "flake": false, + "locked": { + "lastModified": 1650290419, + "narHash": "sha256-XrjiqCC7cNTFib78gdMPGNettAkwAxQlbC/n+/mRFt4=", + "owner": "haskoin", + "repo": "secp256k1-haskell", + "rev": "3df963ab6ae14ec122691a97af09a7331511a387", + "type": "github" + }, + "original": { + "owner": "haskoin", + "repo": "secp256k1-haskell", + "type": "github" + } + }, "secp256k1-haskell_2": { "flake": false, "locked": { @@ -11746,6 +12592,22 @@ "type": "github" } }, + "sphinxcontrib-haddock_12": { + "flake": false, + "locked": { + "lastModified": 1594136664, + "narHash": "sha256-O9YT3iCUBHP3CEF88VDLLCO2HSP3HqkNA2q2939RnVY=", + "owner": "michaelpj", + "repo": "sphinxcontrib-haddock", + "rev": "f3956b3256962b2d27d5a4e96edb7951acf5de34", + "type": "github" + }, + "original": { + "owner": "michaelpj", + "repo": "sphinxcontrib-haddock", + "type": "github" + } + }, "sphinxcontrib-haddock_2": { "flake": false, "locked": { @@ -11938,6 +12800,22 @@ "type": "github" } }, + "stackage_12": { + "flake": false, + "locked": { + "lastModified": 1654046327, + "narHash": "sha256-IxX46Dh4OZpF3k7KPMa3tZSScYYGqFxXpCnMc0QRkuQ=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "cc1d778723fcd431f9b2ed632a50c610c3e38b54", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, "stackage_2": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index a6d06bf..c4849e7 100644 --- a/flake.nix +++ b/flake.nix @@ -23,6 +23,9 @@ inputs.plutarch-safe-money.url = "github:Liqwid-Labs/plutarch-safe-money?rev=9f968b80189c7e4b335527cd5b103dc26952f667"; + inputs.plutarch-script-export.url = + "github:Liqwid-Labs/plutarch-script-export?ref=main"; + # Testing inputs.plutarch-quickcheck.url = "github:liqwid-labs/plutarch-quickcheck?ref=staging"; @@ -136,6 +139,7 @@ "${inputs.plutarch-safe-money}" "${inputs.plutarch-quickcheck}" "${inputs.plutarch-context-builder}" + "${inputs.plutarch-script-export}" ] ); @@ -148,7 +152,7 @@ modules = haskellModules ++ [ h.module ] ++ (o'.modules or [ ]); extra-hackages = [ (import h.hackageNix) ] ++ (o'.extra-hackages or [ ]); extra-hackage-tarballs = { _xNJUd_plutarch-hackage = h.hackageTarball; }; - cabalProjectLocal = (o'.cabalProjectLocal or "") + " , cache >= 0.1.3.0"; + cabalProjectLocal = (o'.cabalProjectLocal or "") + " , cache >= 0.1.3.0 "; }; projectForGhc = compiler-nix-name: system: