WIP simple sample test for Stake policy

This commit is contained in:
Emily Martins 2022-03-09 22:00:02 +01:00
parent 9aa5f5b1a3
commit a2ea0a46f5
9 changed files with 256 additions and 137 deletions

View file

@ -9,14 +9,21 @@ import Test.Tasty (defaultMain, testGroup)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Spec.Int import Spec.Int
import Spec.Stake qualified as Stake
main :: IO () main :: IO ()
main = main =
defaultMain $ defaultMain $
testGroup testGroup
"apropos-tx" "test suite"
[ testGroup [ testGroup
"Int" "sample-tests"
[ intPlutarchTests Stake.tests
, testGroup
"apropos-tx"
[ testGroup
"Int"
[ intPlutarchTests
]
] ]
] ]

View file

@ -0,0 +1,97 @@
{- |
Module : Spec.Sample.Stake
Maintainer : emi@haskell.fyi
Description: Sample based testing for Stake utxos
This module tests primarily the happy path for Stake creation
-}
module Spec.Sample.Stake (
stake,
policy,
policySymbol,
stakeCreation,
validatorHashTN,
) where
--------------------------------------------------------------------------------
import Plutarch.Api.V1 (
mintingPolicySymbol,
mkMintingPolicy,
mkValidator,
validatorHash,
)
import Plutus.V1.Ledger.Ada (adaValueOf)
import Plutus.V1.Ledger.Api (
Address (Address),
Credential (ScriptCredential),
CurrencySymbol,
Datum (Datum),
DatumHash (DatumHash),
MintingPolicy (..),
PubKeyHash,
ScriptContext (..),
ScriptPurpose (..),
ToData (toBuiltinData),
TxInfo (..),
TxOut (txOutAddress, txOutDatumHash, txOutValue),
ValidatorHash (ValidatorHash),
)
import Plutus.V1.Ledger.Contexts (TxOut (TxOut))
import Plutus.V1.Ledger.Interval qualified as Interval
import Plutus.V1.Ledger.Scripts (Validator)
import Plutus.V1.Ledger.Value (TokenName (TokenName))
import Plutus.V1.Ledger.Value qualified as Value
--------------------------------------------------------------------------------
import Agora.SafeMoney
import Agora.Stake
--------------------------------------------------------------------------------
stake :: Stake LQ
stake = Stake
policy :: MintingPolicy
policy = mkMintingPolicy (stakePolicy stake)
policySymbol :: CurrencySymbol
policySymbol = mintingPolicySymbol policy
signer :: PubKeyHash
signer = "8a30896c4fd5e79843e4ca1bd2cdbaa36f8c0bc3be7401214142019c"
validator :: Validator
validator = mkValidator (stakeValidator stake)
validatorHashTN :: TokenName
validatorHashTN = let ValidatorHash vh = validatorHash validator in TokenName vh
stakeCreation :: ScriptContext
stakeCreation =
let st = Value.singleton policySymbol validatorHashTN 1 -- Stake ST
datum :: Datum
datum = Datum (toBuiltinData $ StakeDatum 424242424242 signer)
in ScriptContext
{ scriptContextTxInfo =
TxInfo
{ txInfoInputs = []
, txInfoOutputs =
[ TxOut
{ txOutAddress = Address (ScriptCredential $ validatorHash validator) Nothing
, txOutValue = st <> Value.singleton "da8c30857834c6ae7203935b89278c532b3995245295456f993e1d24" "LQ" 424242424242
, txOutDatumHash = Just (DatumHash "")
}
]
, txInfoFee = adaValueOf 2
, txInfoMint = st
, txInfoDCert = []
, txInfoWdrl = []
, txInfoValidRange = Interval.always
, txInfoSignatories = [signer]
, txInfoData = [("", datum)]
, txInfoId = "0b2086cbf8b6900f8cb65e012de4516cb66b5cb08a9aaba12a8b88be"
}
, scriptContextPurpose = Minting policySymbol
}

39
agora-test/Spec/Stake.hs Normal file
View file

@ -0,0 +1,39 @@
module Spec.Stake (tests) where
--------------------------------------------------------------------------------
import Prelude
--------------------------------------------------------------------------------
import Test.Tasty (TestTree, testGroup)
import Test.Tasty.HUnit (assertFailure, testCase)
--------------------------------------------------------------------------------
import Plutarch (compile)
import Plutarch.Evaluate (evaluateScript)
import Plutus.V1.Ledger.Scripts (Script)
--------------------------------------------------------------------------------
import Agora.Stake (stakePolicy)
--------------------------------------------------------------------------------
import Plutarch.Builtin (pforgetData)
import Spec.Sample.Stake qualified as Stake
--------------------------------------------------------------------------------
tests :: [TestTree]
tests =
[ testGroup "policy" $
[ scriptTest "minting" (compile $ stakePolicy Stake.stake # pforgetData (pconstantData ()) # pconstant Stake.stakeCreation)
]
]
scriptTest :: String -> Script -> TestTree
scriptTest name script = testCase name $ do
case evaluateScript script of
Left e -> assertFailure (show e)
Right _v -> pure ()

View file

@ -111,6 +111,7 @@ common test-deps
, quickcheck-instances , quickcheck-instances
, tasty , tasty
, tasty-hedgehog , tasty-hedgehog
, tasty-hunit
, apropos-tx , apropos-tx
library library
@ -147,6 +148,11 @@ test-suite agora-test
hs-source-dirs: agora-test hs-source-dirs: agora-test
other-modules: other-modules:
Spec.Int Spec.Int
Spec.Sample.Stake
Spec.Stake
build-depends:
, agora
benchmark agora-bench benchmark agora-bench
import: lang, deps import: lang, deps

View file

@ -9,6 +9,7 @@ module Agora.SafeMoney (
-- * Types -- * Types
MoneyClass, MoneyClass,
PDiscrete, PDiscrete,
Discrete,
-- * Utility functions -- * Utility functions
paddDiscrete, paddDiscrete,
@ -60,6 +61,10 @@ newtype PDiscrete (mc :: MoneyClass) (s :: S)
= PDiscrete (Term s PInteger) = PDiscrete (Term s PInteger)
deriving (PlutusType, PIsData, PEq, POrd) via (DerivePNewtype (PDiscrete mc) PInteger) deriving (PlutusType, PIsData, PEq, POrd) via (DerivePNewtype (PDiscrete mc) PInteger)
newtype Discrete (mc :: MoneyClass)
= Discrete Integer
deriving stock (Show)
-- | Add two `PDiscrete` values of the same `MoneyClass`. -- | Add two `PDiscrete` values of the same `MoneyClass`.
paddDiscrete :: Term s (PDiscrete mc :--> PDiscrete mc :--> PDiscrete mc) paddDiscrete :: Term s (PDiscrete mc :--> PDiscrete mc :--> PDiscrete mc)
paddDiscrete = phoistAcyclic $ paddDiscrete = phoistAcyclic $

View file

@ -1,3 +1,5 @@
{-# LANGUAGE TemplateHaskell #-}
{- | {- |
Module : Agora.Stake Module : Agora.Stake
Maintainer : emi@haskell.fyi Maintainer : emi@haskell.fyi
@ -8,6 +10,7 @@ Vote-lockable stake UTXOs holding GT.
module Agora.Stake ( module Agora.Stake (
PStakeDatum (..), PStakeDatum (..),
PStakeAction (..), PStakeAction (..),
StakeDatum (..),
Stake (..), Stake (..),
stakePolicy, stakePolicy,
stakeValidator, stakeValidator,
@ -25,12 +28,18 @@ import Prelude
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Plutus.V1.Ledger.Api (PubKeyHash)
import PlutusTx qualified
--------------------------------------------------------------------------------
import Plutarch (popaque) import Plutarch (popaque)
import Plutarch.Api.V1 ( import Plutarch.Api.V1 (
PCredential (PPubKeyCredential, PScriptCredential), PCredential (PPubKeyCredential, PScriptCredential),
PMintingPolicy, PMintingPolicy,
PPubKeyHash, PPubKeyHash,
PScriptPurpose (PMinting, PSpending), PScriptPurpose (PMinting, PSpending),
PTokenName,
PValidator, PValidator,
mintingPolicySymbol, mintingPolicySymbol,
mkMintingPolicy, mkMintingPolicy,
@ -92,6 +101,15 @@ newtype PStakeDatum (gt :: MoneyClass) (s :: S) = PStakeDatum
(PlutusType, PIsData, PDataFields) (PlutusType, PIsData, PDataFields)
via (PIsDataReprInstances (PStakeDatum gt)) via (PIsDataReprInstances (PStakeDatum gt))
-- | Haskell-level datum for Stake scripts.
data StakeDatum = StakeDatum
{ stakedAmount :: Integer
, owner :: PubKeyHash
}
deriving stock (Show, GHC.Generic)
PlutusTx.makeIsDataIndexed ''StakeDatum [('StakeDatum, 0)]
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
{- What this Policy does {- What this Policy does
@ -162,12 +180,16 @@ stakePolicy _stake =
PScriptCredential validatorHash' -> P.do PScriptCredential validatorHash' -> P.do
validatorHash <- pletFields @'["_0"] validatorHash' validatorHash <- pletFields @'["_0"] validatorHash'
stakeDatum <- pletFields @'["owner", "stakedAmount"] stakeDatum' stakeDatum <- pletFields @'["owner", "stakedAmount"] stakeDatum'
-- TODO: figure out why this is required :/ (specifically, why `validatorHash._0` is `PData`)
tn <- plet (pfromData (punsafeCoerce validatorHash._0 :: Term _ (PAsData PTokenName)))
let stValue = let stValue =
psingletonValue psingletonValue
# ownSymbol # ownSymbol
-- This coerce is safe because the structure -- This coerce is safe because the structure
-- of PValidatorHash is the same as PTokenName. -- of PValidatorHash is the same as PTokenName.
# punsafeCoerce validatorHash._0 # tn
# 1 # 1
let expectedValue = let expectedValue =
paddValue paddValue
@ -180,8 +202,8 @@ stakePolicy _stake =
-- TODO: Needs to be >=, rather than == -- TODO: Needs to be >=, rather than ==
let valueCorrect = pdata value #== pdata expectedValue let valueCorrect = pdata value #== pdata expectedValue
ownerSignsTransaction #&& valueCorrect ptraceIfFalse "ownerSignsTransaction" ownerSignsTransaction
#&& ptraceIfFalse "valueCorrect" valueCorrect
popaque (pconstant ()) popaque (pconstant ())
pif (0 #< mintedST) minting burning pif (0 #< mintedST) minting burning

198
flake.lock generated
View file

@ -92,31 +92,14 @@
"type": "github" "type": "github"
} }
}, },
"autodocodec": {
"flake": false,
"locked": {
"lastModified": 1644358110,
"narHash": "sha256-X1TNZlmO2qDFk3OL4Z1v/gzvd3ouoACAiMweutsYek4=",
"owner": "srid",
"repo": "autodocodec",
"rev": "42b42a7407f33c6c74fa4e8c84906aebfed28daf",
"type": "github"
},
"original": {
"owner": "srid",
"ref": "ghc921",
"repo": "autodocodec",
"type": "github"
}
},
"cabal-32": { "cabal-32": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1603716527, "lastModified": 1603716527,
"narHash": "sha256-sDbrmur9Zfp4mPKohCD8IDZfXJ0Tjxpmr2R+kg5PpSY=", "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=",
"owner": "haskell", "owner": "haskell",
"repo": "cabal", "repo": "cabal",
"rev": "94aaa8e4720081f9c75497e2735b90f6a819b08e", "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -146,11 +129,11 @@
"cabal-34": { "cabal-34": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1622475795, "lastModified": 1640353650,
"narHash": "sha256-chwTL304Cav+7p38d9mcb+egABWmxo2Aq+xgVBgEb/U=", "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=",
"owner": "haskell", "owner": "haskell",
"repo": "cabal", "repo": "cabal",
"rev": "b086c1995cdd616fc8d91f46a21e905cc50a1049", "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -178,6 +161,23 @@
} }
}, },
"cabal-36": { "cabal-36": {
"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, "flake": false,
"locked": { "locked": {
"lastModified": 1640163203, "lastModified": 1640163203,
@ -422,11 +422,11 @@
}, },
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1623875721, "lastModified": 1644229661,
"narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -553,11 +553,11 @@
"hackage": { "hackage": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1639357972, "lastModified": 1646270198,
"narHash": "sha256-NvVn00YOYZMqDUSiBbghJk/rm/nJItBEUJulWRGTgvk=", "narHash": "sha256-SakG546Zr9RuNPs5mhtT7CYPpvEDMGrWisWK/VpCvr0=",
"owner": "input-output-hk", "owner": "input-output-hk",
"repo": "hackage.nix", "repo": "hackage.nix",
"rev": "54adf6e47e20831d9c49a2b62e12f7f218fd7752", "rev": "4cf90b36955597d0151940eabfb1b61a8ec42256",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -569,11 +569,11 @@
"hackage-nix": { "hackage-nix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1637291070, "lastModified": 1644369434,
"narHash": "sha256-hTX2Xo36i9MR6PNwA/89C8daKjxmx5ZS5lwR2Cbp8Yo=", "narHash": "sha256-WqU6f1OhSM0UHXFW8Mhhvhz0tcij+NQVtmb6sW4RiFw=",
"owner": "input-output-hk", "owner": "input-output-hk",
"repo": "hackage.nix", "repo": "hackage.nix",
"rev": "6ea4ad5f4a5e2303cd64974329ba90ccc410a012", "rev": "644a0d702abf84cdec62f4e620ff1034000e6146",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -617,16 +617,16 @@
"haskell-language-server": { "haskell-language-server": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1638136578, "lastModified": 1643835246,
"narHash": "sha256-Reo9BQ12O+OX7tuRfaDPZPBpJW4jnxZetm63BxYncoM=", "narHash": "sha256-5LQHcQmi3mUGRgJu+X/m3jeM3kdkYjLD+KwgnxBlbeU=",
"owner": "haskell", "owner": "haskell",
"repo": "haskell-language-server", "repo": "haskell-language-server",
"rev": "745ef26f406dbdd5e4a538585f8519af9f1ccb09", "rev": "024ddc8b3904f8b8e8fe67ba6b9ebd8a4bd7ce76",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "haskell", "owner": "haskell",
"ref": "1.5.1", "ref": "1.6.1.1",
"repo": "haskell-language-server", "repo": "haskell-language-server",
"type": "github" "type": "github"
} }
@ -669,6 +669,7 @@
"HTTP": "HTTP", "HTTP": "HTTP",
"cabal-32": "cabal-32", "cabal-32": "cabal-32",
"cabal-34": "cabal-34", "cabal-34": "cabal-34",
"cabal-36": "cabal-36",
"cardano-shell": "cardano-shell", "cardano-shell": "cardano-shell",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"ghc-8.6.5-iohk": "ghc-8.6.5-iohk", "ghc-8.6.5-iohk": "ghc-8.6.5-iohk",
@ -688,11 +689,11 @@
"stackage": "stackage" "stackage": "stackage"
}, },
"locked": { "locked": {
"lastModified": 1639371915, "lastModified": 1646278384,
"narHash": "sha256-i5kW3hPptzXwzkpI2FAkfdDA/9QEDl/9mrwwoeBxDJg=", "narHash": "sha256-Gv1Ws3vAojjvjATcsvwAOTuOhzpxwt6tBci7EBaXxU4=",
"owner": "input-output-hk", "owner": "input-output-hk",
"repo": "haskell.nix", "repo": "haskell.nix",
"rev": "e95a1f0dacbc64603c31d11e36e4ba1af8f0eb43", "rev": "7e06e14ae1b894445254fe41288bfa7dd4ccbc6f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -704,11 +705,11 @@
"haskell-nix_2": { "haskell-nix_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1629380841, "lastModified": 1646278384,
"narHash": "sha256-gWOWCfX7IgVSvMMYN6rBGK6EA0pk6pmYguXzMvGte+Q=", "narHash": "sha256-Gv1Ws3vAojjvjATcsvwAOTuOhzpxwt6tBci7EBaXxU4=",
"owner": "input-output-hk", "owner": "input-output-hk",
"repo": "haskell.nix", "repo": "haskell.nix",
"rev": "7215f083b37741446aa325b20c8ba9f9f76015eb", "rev": "7e06e14ae1b894445254fe41288bfa7dd4ccbc6f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -722,7 +723,7 @@
"HTTP": "HTTP_2", "HTTP": "HTTP_2",
"cabal-32": "cabal-32_2", "cabal-32": "cabal-32_2",
"cabal-34": "cabal-34_2", "cabal-34": "cabal-34_2",
"cabal-36": "cabal-36", "cabal-36": "cabal-36_2",
"cardano-shell": "cardano-shell_2", "cardano-shell": "cardano-shell_2",
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_2",
"ghc-8.6.5-iohk": "ghc-8.6.5-iohk_2", "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_2",
@ -730,8 +731,6 @@
"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",
@ -918,11 +917,11 @@
"nix-tools": { "nix-tools": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1636018067, "lastModified": 1644395812,
"narHash": "sha256-ng306fkuwr6V/malWtt3979iAC4yMVDDH2ViwYB6sQE=", "narHash": "sha256-BVFk/BEsTLq5MMZvdy3ZYHKfaS3dHrsKh4+tb5t5b58=",
"owner": "input-output-hk", "owner": "input-output-hk",
"repo": "nix-tools", "repo": "nix-tools",
"rev": "ed5bd7215292deba55d6ab7a4e8c21f8b1564dda", "rev": "d847c63b99bbec78bf83be2a61dc9f09b8a9ccc1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -982,11 +981,11 @@
"nixpkgs": { "nixpkgs": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1628785280, "lastModified": 1645493675,
"narHash": "sha256-2B5eMrEr6O8ff2aQNeVxTB+9WrGE80OB4+oM6T7fOcc=", "narHash": "sha256-9xundbZQbhFodsQRh6QMN1GeSXfo3y/5NL0CZcJULz0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6525bbc06a39f26750ad8ee0d40000ddfdc24acb", "rev": "74b10859829153d5c5d50f7c77b86763759e8654",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1030,11 +1029,11 @@
}, },
"nixpkgs-2105": { "nixpkgs-2105": {
"locked": { "locked": {
"lastModified": 1639202042, "lastModified": 1642244250,
"narHash": "sha256-xEMgCsIcDUQ0kw9xvqU0wObns580kpdcr1ACz83+gHs=", "narHash": "sha256-vWpUEqQdVP4srj+/YLJRTN9vjpTs4je0cdWKXPbDItc=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "499ca2a9f6463ce119e40361f4329afa921a1d13", "rev": "0fd9ee1aa36ce865ad273f4f07fdc093adeb5c00",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1062,11 +1061,11 @@
}, },
"nixpkgs-2111": { "nixpkgs-2111": {
"locked": { "locked": {
"lastModified": 1639213685, "lastModified": 1644510859,
"narHash": "sha256-Evuobw7o9uVjAZuwz06Al0fOWZ5JMKOktgXR0XgWBtg=", "narHash": "sha256-xjpVvL5ecbyi0vxtVl/Fh9bwGlMbw3S06zE5nUzFB8A=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "453bcb8380fd1777348245b3c44ce2a2b93b2e2d", "rev": "0d1d5d7e3679fec9d07f2eb804d9f9fdb98378d3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1078,11 +1077,11 @@
}, },
"nixpkgs-2111_2": { "nixpkgs-2111_2": {
"locked": { "locked": {
"lastModified": 1644793108, "lastModified": 1646416052,
"narHash": "sha256-MN/ElRTuE7pWuf99Hr1pbAxA3ApDLYuK6hIsA5sagjc=", "narHash": "sha256-bfV62gYQGYjb/Gvw6MdMuEvWCcC838mI1Dzi1efjqTA=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b61bf7a96aa6ddd3c425fa1db8c45acfdd82e36b", "rev": "c78fc23f108b9a3bea9bf8693d2943ee0269c804",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1126,11 +1125,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1639239143, "lastModified": 1644486793,
"narHash": "sha256-9fFMUs6m3/4ZMflSqRgO4iEkBtFBnDyLWa3AB2tOvfs=", "narHash": "sha256-EeijR4guVHgVv+JpOX3cQO+1XdrkJfGmiJ9XVsVU530=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e6df26a654b7fdd59a068c57001eab5736b1363c", "rev": "1882c6b7368fd284ad01b0a5b5601ef136321292",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1241,7 +1240,6 @@
"inputs": { "inputs": {
"Shrinker": "Shrinker", "Shrinker": "Shrinker",
"Win32-network": "Win32-network", "Win32-network": "Win32-network",
"autodocodec": "autodocodec",
"cardano-base": "cardano-base", "cardano-base": "cardano-base",
"cardano-crypto": "cardano-crypto", "cardano-crypto": "cardano-crypto",
"cardano-prelude": "cardano-prelude", "cardano-prelude": "cardano-prelude",
@ -1261,18 +1259,15 @@
], ],
"plutus": "plutus_2", "plutus": "plutus_2",
"protolude": "protolude", "protolude": "protolude",
"safe-coloured-text": "safe-coloured-text",
"sized-functors": "sized-functors", "sized-functors": "sized-functors",
"sydtest": "sydtest", "th-extras": "th-extras"
"th-extras": "th-extras",
"validity": "validity"
}, },
"locked": { "locked": {
"lastModified": 1645200363, "lastModified": 1646730784,
"narHash": "sha256-k/ecf2uasWwBV+zq3daJVGY3xnsYkLe3zmT+k+iZ++A=", "narHash": "sha256-pVvSa4fBoKXCdCu/NGduoKhr1/gGESCmj/Tr9Y5l9B4=",
"owner": "Plutonomicon", "owner": "Plutonomicon",
"repo": "plutarch", "repo": "plutarch",
"rev": "473424c89b4457e58e009e65d411ace1efc3ea9e", "rev": "aecc2050eb63ff0041576473aa3193070fe91314",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1295,11 +1290,11 @@
"stackage-nix": "stackage-nix" "stackage-nix": "stackage-nix"
}, },
"locked": { "locked": {
"lastModified": 1639153959, "lastModified": 1646401716,
"narHash": "sha256-tz8wEV5oO2yu2WFl3+wAPHedJJUP/NMFYgfcsbcyji4=", "narHash": "sha256-Xh4m6NVgxhtJZPW+/TH0KncginXLORO6EAN/ulitlrw=",
"owner": "input-output-hk", "owner": "input-output-hk",
"repo": "plutus", "repo": "plutus",
"rev": "da4f85cdd2a3a261ce540e8dc51d2a3c5fa89ed2", "rev": "73e4bbfc32ea233ba679d3f558a95adf8513a9d7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1416,23 +1411,6 @@
"plutarch": "plutarch" "plutarch": "plutarch"
} }
}, },
"safe-coloured-text": {
"flake": false,
"locked": {
"lastModified": 1644357337,
"narHash": "sha256-sXSKw8m6O9K/H2BBiYqO5e4sJIo+9UP+UvEukRn28d8=",
"owner": "srid",
"repo": "safe-coloured-text",
"rev": "034f3612525568b422e0c62b52417d77b7cf31c2",
"type": "github"
},
"original": {
"owner": "srid",
"ref": "ghc921",
"repo": "safe-coloured-text",
"type": "github"
}
},
"sized-functors": { "sized-functors": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -1485,11 +1463,11 @@
"stackage": { "stackage": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1639185224, "lastModified": 1646270328,
"narHash": "sha256-ZBL0Lvqq8/Iwl8F5sT2N9J8+HTh0OY+09LkkUVtuUtY=", "narHash": "sha256-WFzBTbZW9zKnZtHLBLGui9F1tBDKX7ixBtaQOG5SK/M=",
"owner": "input-output-hk", "owner": "input-output-hk",
"repo": "stackage.nix", "repo": "stackage.nix",
"rev": "14819f5c85a92e5fb6e322cc809c803fa6419bd4", "rev": "b3171527569b52b3924d8e70e0aed753d3f55cc4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1546,23 +1524,6 @@
"type": "github" "type": "github"
} }
}, },
"sydtest": {
"flake": false,
"locked": {
"lastModified": 1644358460,
"narHash": "sha256-1ZxTLL5YVxktyHqfMywwsNGx5nxNMPXnq33QI6BcvUI=",
"owner": "srid",
"repo": "sydtest",
"rev": "5b572105c30f79c5e20637c6af4eedf39e0ac85a",
"type": "github"
},
"original": {
"owner": "srid",
"ref": "ghc921",
"repo": "sydtest",
"type": "github"
}
},
"th-extras": { "th-extras": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -1579,23 +1540,6 @@
"rev": "787ed752c1e5d41b5903b74e171ed087de38bffa", "rev": "787ed752c1e5d41b5903b74e171ed087de38bffa",
"type": "github" "type": "github"
} }
},
"validity": {
"flake": false,
"locked": {
"lastModified": 1644358698,
"narHash": "sha256-dpMIu08qXMzy8Kilk/2VWpuwIsfqFtpg/3mkwt5pdjA=",
"owner": "srid",
"repo": "validity",
"rev": "f7982549b95d0ab727950dc876ca06b1862135ba",
"type": "github"
},
"original": {
"owner": "srid",
"ref": "ghc921",
"repo": "validity",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -80,7 +80,6 @@
additional = ps: [ additional = ps: [
ps.plutarch ps.plutarch
ps.plutarch-benchmark ps.plutarch-benchmark
ps.tasty-quickcheck
ps.apropos-tx ps.apropos-tx
]; ];
}; };

View file

@ -1,8 +1,8 @@
cradle: cradle:
cabal: cabal:
- path: "./src" - path: "./agora-src"
component: "lib:agora" component: "lib:agora"
- path: "./bench" - path: "./agora-bench"
component: "benchmark:agora-bench" component: "benchmark:agora-bench"
- path: "./test" - path: "./agora-test"
component: "test:agora-test" component: "test:agora-test"