WIP simple sample test for Stake policy
This commit is contained in:
parent
5bae354268
commit
8b98324cee
9 changed files with 256 additions and 137 deletions
|
|
@ -9,14 +9,21 @@ import Test.Tasty (defaultMain, testGroup)
|
|||
--------------------------------------------------------------------------------
|
||||
|
||||
import Spec.Int
|
||||
import Spec.Stake qualified as Stake
|
||||
|
||||
main :: IO ()
|
||||
main =
|
||||
defaultMain $
|
||||
testGroup
|
||||
"apropos-tx"
|
||||
"test suite"
|
||||
[ testGroup
|
||||
"Int"
|
||||
[ intPlutarchTests
|
||||
"sample-tests"
|
||||
Stake.tests
|
||||
, testGroup
|
||||
"apropos-tx"
|
||||
[ testGroup
|
||||
"Int"
|
||||
[ intPlutarchTests
|
||||
]
|
||||
]
|
||||
]
|
||||
|
|
|
|||
97
agora-test/Spec/Sample/Stake.hs
Normal file
97
agora-test/Spec/Sample/Stake.hs
Normal 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
39
agora-test/Spec/Stake.hs
Normal 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 ()
|
||||
|
|
@ -111,6 +111,7 @@ common test-deps
|
|||
, quickcheck-instances
|
||||
, tasty
|
||||
, tasty-hedgehog
|
||||
, tasty-hunit
|
||||
, apropos-tx
|
||||
|
||||
library
|
||||
|
|
@ -147,6 +148,11 @@ test-suite agora-test
|
|||
hs-source-dirs: agora-test
|
||||
other-modules:
|
||||
Spec.Int
|
||||
Spec.Sample.Stake
|
||||
Spec.Stake
|
||||
|
||||
build-depends:
|
||||
, agora
|
||||
|
||||
benchmark agora-bench
|
||||
import: lang, deps
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ module Agora.SafeMoney (
|
|||
-- * Types
|
||||
MoneyClass,
|
||||
PDiscrete,
|
||||
Discrete,
|
||||
|
||||
-- * Utility functions
|
||||
paddDiscrete,
|
||||
|
|
@ -60,6 +61,10 @@ newtype PDiscrete (mc :: MoneyClass) (s :: S)
|
|||
= PDiscrete (Term s 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`.
|
||||
paddDiscrete :: Term s (PDiscrete mc :--> PDiscrete mc :--> PDiscrete mc)
|
||||
paddDiscrete = phoistAcyclic $
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
{-# LANGUAGE TemplateHaskell #-}
|
||||
|
||||
{- |
|
||||
Module : Agora.Stake
|
||||
Maintainer : emi@haskell.fyi
|
||||
|
|
@ -8,6 +10,7 @@ Vote-lockable stake UTXOs holding GT.
|
|||
module Agora.Stake (
|
||||
PStakeDatum (..),
|
||||
PStakeAction (..),
|
||||
StakeDatum (..),
|
||||
Stake (..),
|
||||
stakePolicy,
|
||||
stakeValidator,
|
||||
|
|
@ -25,12 +28,18 @@ import Prelude
|
|||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
import Plutus.V1.Ledger.Api (PubKeyHash)
|
||||
import PlutusTx qualified
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
import Plutarch (popaque)
|
||||
import Plutarch.Api.V1 (
|
||||
PCredential (PPubKeyCredential, PScriptCredential),
|
||||
PMintingPolicy,
|
||||
PPubKeyHash,
|
||||
PScriptPurpose (PMinting, PSpending),
|
||||
PTokenName,
|
||||
PValidator,
|
||||
mintingPolicySymbol,
|
||||
mkMintingPolicy,
|
||||
|
|
@ -92,6 +101,15 @@ newtype PStakeDatum (gt :: MoneyClass) (s :: S) = PStakeDatum
|
|||
(PlutusType, PIsData, PDataFields)
|
||||
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
|
||||
|
||||
|
|
@ -162,12 +180,16 @@ stakePolicy _stake =
|
|||
PScriptCredential validatorHash' -> P.do
|
||||
validatorHash <- pletFields @'["_0"] validatorHash'
|
||||
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 =
|
||||
psingletonValue
|
||||
# ownSymbol
|
||||
-- This coerce is safe because the structure
|
||||
-- of PValidatorHash is the same as PTokenName.
|
||||
# punsafeCoerce validatorHash._0
|
||||
# tn
|
||||
# 1
|
||||
let expectedValue =
|
||||
paddValue
|
||||
|
|
@ -180,8 +202,8 @@ stakePolicy _stake =
|
|||
|
||||
-- TODO: Needs to be >=, rather than ==
|
||||
let valueCorrect = pdata value #== pdata expectedValue
|
||||
ownerSignsTransaction #&& valueCorrect
|
||||
|
||||
ptraceIfFalse "ownerSignsTransaction" ownerSignsTransaction
|
||||
#&& ptraceIfFalse "valueCorrect" valueCorrect
|
||||
popaque (pconstant ())
|
||||
|
||||
pif (0 #< mintedST) minting burning
|
||||
|
|
|
|||
198
flake.lock
generated
198
flake.lock
generated
|
|
@ -92,31 +92,14 @@
|
|||
"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": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1603716527,
|
||||
"narHash": "sha256-sDbrmur9Zfp4mPKohCD8IDZfXJ0Tjxpmr2R+kg5PpSY=",
|
||||
"narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=",
|
||||
"owner": "haskell",
|
||||
"repo": "cabal",
|
||||
"rev": "94aaa8e4720081f9c75497e2735b90f6a819b08e",
|
||||
"rev": "48bf10787e27364730dd37a42b603cee8d6af7ee",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -146,11 +129,11 @@
|
|||
"cabal-34": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1622475795,
|
||||
"narHash": "sha256-chwTL304Cav+7p38d9mcb+egABWmxo2Aq+xgVBgEb/U=",
|
||||
"lastModified": 1640353650,
|
||||
"narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=",
|
||||
"owner": "haskell",
|
||||
"repo": "cabal",
|
||||
"rev": "b086c1995cdd616fc8d91f46a21e905cc50a1049",
|
||||
"rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -178,6 +161,23 @@
|
|||
}
|
||||
},
|
||||
"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,
|
||||
"locked": {
|
||||
"lastModified": 1640163203,
|
||||
|
|
@ -422,11 +422,11 @@
|
|||
},
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1623875721,
|
||||
"narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=",
|
||||
"lastModified": 1644229661,
|
||||
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "f7e004a55b120c02ecb6219596820fcd32ca8772",
|
||||
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -553,11 +553,11 @@
|
|||
"hackage": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1639357972,
|
||||
"narHash": "sha256-NvVn00YOYZMqDUSiBbghJk/rm/nJItBEUJulWRGTgvk=",
|
||||
"lastModified": 1646270198,
|
||||
"narHash": "sha256-SakG546Zr9RuNPs5mhtT7CYPpvEDMGrWisWK/VpCvr0=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "hackage.nix",
|
||||
"rev": "54adf6e47e20831d9c49a2b62e12f7f218fd7752",
|
||||
"rev": "4cf90b36955597d0151940eabfb1b61a8ec42256",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -569,11 +569,11 @@
|
|||
"hackage-nix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1637291070,
|
||||
"narHash": "sha256-hTX2Xo36i9MR6PNwA/89C8daKjxmx5ZS5lwR2Cbp8Yo=",
|
||||
"lastModified": 1644369434,
|
||||
"narHash": "sha256-WqU6f1OhSM0UHXFW8Mhhvhz0tcij+NQVtmb6sW4RiFw=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "hackage.nix",
|
||||
"rev": "6ea4ad5f4a5e2303cd64974329ba90ccc410a012",
|
||||
"rev": "644a0d702abf84cdec62f4e620ff1034000e6146",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -617,16 +617,16 @@
|
|||
"haskell-language-server": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1638136578,
|
||||
"narHash": "sha256-Reo9BQ12O+OX7tuRfaDPZPBpJW4jnxZetm63BxYncoM=",
|
||||
"lastModified": 1643835246,
|
||||
"narHash": "sha256-5LQHcQmi3mUGRgJu+X/m3jeM3kdkYjLD+KwgnxBlbeU=",
|
||||
"owner": "haskell",
|
||||
"repo": "haskell-language-server",
|
||||
"rev": "745ef26f406dbdd5e4a538585f8519af9f1ccb09",
|
||||
"rev": "024ddc8b3904f8b8e8fe67ba6b9ebd8a4bd7ce76",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "haskell",
|
||||
"ref": "1.5.1",
|
||||
"ref": "1.6.1.1",
|
||||
"repo": "haskell-language-server",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
@ -669,6 +669,7 @@
|
|||
"HTTP": "HTTP",
|
||||
"cabal-32": "cabal-32",
|
||||
"cabal-34": "cabal-34",
|
||||
"cabal-36": "cabal-36",
|
||||
"cardano-shell": "cardano-shell",
|
||||
"flake-utils": "flake-utils",
|
||||
"ghc-8.6.5-iohk": "ghc-8.6.5-iohk",
|
||||
|
|
@ -688,11 +689,11 @@
|
|||
"stackage": "stackage"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1639371915,
|
||||
"narHash": "sha256-i5kW3hPptzXwzkpI2FAkfdDA/9QEDl/9mrwwoeBxDJg=",
|
||||
"lastModified": 1646278384,
|
||||
"narHash": "sha256-Gv1Ws3vAojjvjATcsvwAOTuOhzpxwt6tBci7EBaXxU4=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "haskell.nix",
|
||||
"rev": "e95a1f0dacbc64603c31d11e36e4ba1af8f0eb43",
|
||||
"rev": "7e06e14ae1b894445254fe41288bfa7dd4ccbc6f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -704,11 +705,11 @@
|
|||
"haskell-nix_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1629380841,
|
||||
"narHash": "sha256-gWOWCfX7IgVSvMMYN6rBGK6EA0pk6pmYguXzMvGte+Q=",
|
||||
"lastModified": 1646278384,
|
||||
"narHash": "sha256-Gv1Ws3vAojjvjATcsvwAOTuOhzpxwt6tBci7EBaXxU4=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "haskell.nix",
|
||||
"rev": "7215f083b37741446aa325b20c8ba9f9f76015eb",
|
||||
"rev": "7e06e14ae1b894445254fe41288bfa7dd4ccbc6f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -722,7 +723,7 @@
|
|||
"HTTP": "HTTP_2",
|
||||
"cabal-32": "cabal-32_2",
|
||||
"cabal-34": "cabal-34_2",
|
||||
"cabal-36": "cabal-36",
|
||||
"cabal-36": "cabal-36_2",
|
||||
"cardano-shell": "cardano-shell_2",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"ghc-8.6.5-iohk": "ghc-8.6.5-iohk_2",
|
||||
|
|
@ -730,8 +731,6 @@
|
|||
"hpc-coveralls": "hpc-coveralls_2",
|
||||
"nix-tools": "nix-tools_2",
|
||||
"nixpkgs": [
|
||||
"plutarch",
|
||||
"haskell-nix",
|
||||
"nixpkgs-2111"
|
||||
],
|
||||
"nixpkgs-2003": "nixpkgs-2003_2",
|
||||
|
|
@ -918,11 +917,11 @@
|
|||
"nix-tools": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1636018067,
|
||||
"narHash": "sha256-ng306fkuwr6V/malWtt3979iAC4yMVDDH2ViwYB6sQE=",
|
||||
"lastModified": 1644395812,
|
||||
"narHash": "sha256-BVFk/BEsTLq5MMZvdy3ZYHKfaS3dHrsKh4+tb5t5b58=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "nix-tools",
|
||||
"rev": "ed5bd7215292deba55d6ab7a4e8c21f8b1564dda",
|
||||
"rev": "d847c63b99bbec78bf83be2a61dc9f09b8a9ccc1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -982,11 +981,11 @@
|
|||
"nixpkgs": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1628785280,
|
||||
"narHash": "sha256-2B5eMrEr6O8ff2aQNeVxTB+9WrGE80OB4+oM6T7fOcc=",
|
||||
"lastModified": 1645493675,
|
||||
"narHash": "sha256-9xundbZQbhFodsQRh6QMN1GeSXfo3y/5NL0CZcJULz0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6525bbc06a39f26750ad8ee0d40000ddfdc24acb",
|
||||
"rev": "74b10859829153d5c5d50f7c77b86763759e8654",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1030,11 +1029,11 @@
|
|||
},
|
||||
"nixpkgs-2105": {
|
||||
"locked": {
|
||||
"lastModified": 1639202042,
|
||||
"narHash": "sha256-xEMgCsIcDUQ0kw9xvqU0wObns580kpdcr1ACz83+gHs=",
|
||||
"lastModified": 1642244250,
|
||||
"narHash": "sha256-vWpUEqQdVP4srj+/YLJRTN9vjpTs4je0cdWKXPbDItc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "499ca2a9f6463ce119e40361f4329afa921a1d13",
|
||||
"rev": "0fd9ee1aa36ce865ad273f4f07fdc093adeb5c00",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1062,11 +1061,11 @@
|
|||
},
|
||||
"nixpkgs-2111": {
|
||||
"locked": {
|
||||
"lastModified": 1639213685,
|
||||
"narHash": "sha256-Evuobw7o9uVjAZuwz06Al0fOWZ5JMKOktgXR0XgWBtg=",
|
||||
"lastModified": 1644510859,
|
||||
"narHash": "sha256-xjpVvL5ecbyi0vxtVl/Fh9bwGlMbw3S06zE5nUzFB8A=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "453bcb8380fd1777348245b3c44ce2a2b93b2e2d",
|
||||
"rev": "0d1d5d7e3679fec9d07f2eb804d9f9fdb98378d3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1078,11 +1077,11 @@
|
|||
},
|
||||
"nixpkgs-2111_2": {
|
||||
"locked": {
|
||||
"lastModified": 1644793108,
|
||||
"narHash": "sha256-MN/ElRTuE7pWuf99Hr1pbAxA3ApDLYuK6hIsA5sagjc=",
|
||||
"lastModified": 1646416052,
|
||||
"narHash": "sha256-bfV62gYQGYjb/Gvw6MdMuEvWCcC838mI1Dzi1efjqTA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b61bf7a96aa6ddd3c425fa1db8c45acfdd82e36b",
|
||||
"rev": "c78fc23f108b9a3bea9bf8693d2943ee0269c804",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1126,11 +1125,11 @@
|
|||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1639239143,
|
||||
"narHash": "sha256-9fFMUs6m3/4ZMflSqRgO4iEkBtFBnDyLWa3AB2tOvfs=",
|
||||
"lastModified": 1644486793,
|
||||
"narHash": "sha256-EeijR4guVHgVv+JpOX3cQO+1XdrkJfGmiJ9XVsVU530=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e6df26a654b7fdd59a068c57001eab5736b1363c",
|
||||
"rev": "1882c6b7368fd284ad01b0a5b5601ef136321292",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1241,7 +1240,6 @@
|
|||
"inputs": {
|
||||
"Shrinker": "Shrinker",
|
||||
"Win32-network": "Win32-network",
|
||||
"autodocodec": "autodocodec",
|
||||
"cardano-base": "cardano-base",
|
||||
"cardano-crypto": "cardano-crypto",
|
||||
"cardano-prelude": "cardano-prelude",
|
||||
|
|
@ -1261,18 +1259,15 @@
|
|||
],
|
||||
"plutus": "plutus_2",
|
||||
"protolude": "protolude",
|
||||
"safe-coloured-text": "safe-coloured-text",
|
||||
"sized-functors": "sized-functors",
|
||||
"sydtest": "sydtest",
|
||||
"th-extras": "th-extras",
|
||||
"validity": "validity"
|
||||
"th-extras": "th-extras"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1645200363,
|
||||
"narHash": "sha256-k/ecf2uasWwBV+zq3daJVGY3xnsYkLe3zmT+k+iZ++A=",
|
||||
"lastModified": 1646730784,
|
||||
"narHash": "sha256-pVvSa4fBoKXCdCu/NGduoKhr1/gGESCmj/Tr9Y5l9B4=",
|
||||
"owner": "Plutonomicon",
|
||||
"repo": "plutarch",
|
||||
"rev": "473424c89b4457e58e009e65d411ace1efc3ea9e",
|
||||
"rev": "aecc2050eb63ff0041576473aa3193070fe91314",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1295,11 +1290,11 @@
|
|||
"stackage-nix": "stackage-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1639153959,
|
||||
"narHash": "sha256-tz8wEV5oO2yu2WFl3+wAPHedJJUP/NMFYgfcsbcyji4=",
|
||||
"lastModified": 1646401716,
|
||||
"narHash": "sha256-Xh4m6NVgxhtJZPW+/TH0KncginXLORO6EAN/ulitlrw=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "plutus",
|
||||
"rev": "da4f85cdd2a3a261ce540e8dc51d2a3c5fa89ed2",
|
||||
"rev": "73e4bbfc32ea233ba679d3f558a95adf8513a9d7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1416,23 +1411,6 @@
|
|||
"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": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
@ -1485,11 +1463,11 @@
|
|||
"stackage": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1639185224,
|
||||
"narHash": "sha256-ZBL0Lvqq8/Iwl8F5sT2N9J8+HTh0OY+09LkkUVtuUtY=",
|
||||
"lastModified": 1646270328,
|
||||
"narHash": "sha256-WFzBTbZW9zKnZtHLBLGui9F1tBDKX7ixBtaQOG5SK/M=",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "stackage.nix",
|
||||
"rev": "14819f5c85a92e5fb6e322cc809c803fa6419bd4",
|
||||
"rev": "b3171527569b52b3924d8e70e0aed753d3f55cc4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1546,23 +1524,6 @@
|
|||
"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": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
@ -1579,23 +1540,6 @@
|
|||
"rev": "787ed752c1e5d41b5903b74e171ed087de38bffa",
|
||||
"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",
|
||||
|
|
|
|||
|
|
@ -80,7 +80,6 @@
|
|||
additional = ps: [
|
||||
ps.plutarch
|
||||
ps.plutarch-benchmark
|
||||
ps.tasty-quickcheck
|
||||
ps.apropos-tx
|
||||
];
|
||||
};
|
||||
|
|
|
|||
6
hie.yaml
6
hie.yaml
|
|
@ -1,8 +1,8 @@
|
|||
cradle:
|
||||
cabal:
|
||||
- path: "./src"
|
||||
- path: "./agora-src"
|
||||
component: "lib:agora"
|
||||
- path: "./bench"
|
||||
- path: "./agora-bench"
|
||||
component: "benchmark:agora-bench"
|
||||
- path: "./test"
|
||||
- path: "./agora-test"
|
||||
component: "test:agora-test"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue