commit ec70bfd539fe2e27fd48f5f76395400287ac72d7
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Tue Oct 18 18:58:59 2022 -0500
use LSE
commit 25fff9b3ad1f2dde4cd7cf36977530b06a87d23c
Merge: 01cd3aa 1821dd6
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Tue Oct 18 18:17:45 2022 -0500
Merge branch 'staging' into seungheonoh/ply
commit 01cd3aa7a235e6fe6658246ca1026fa26dc71a83
Author: Hongrui Fang <chfanghr@gmail.com>
Date: Tue Oct 11 12:02:03 2022 +0800
update benchmark
commit a8513244892ce33cfdc9edf8cd501c4985ae8008
Author: Hongrui Fang <chfanghr@gmail.com>
Date: Tue Oct 11 11:59:22 2022 +0800
fix tests
commit 20ca40823485c2e2f78253643cf4453ac7b7ddd5
Author: Hongrui Fang <chfanghr@gmail.com>
Date: Tue Oct 11 11:57:37 2022 +0800
better import
commit a19fe49424210891bd03db71e4083fc1e0edfd98
Author: Hongrui Fang <chfanghr@gmail.com>
Date: Tue Oct 11 11:08:20 2022 +0800
update flake inputs
commit c93b21f1f9441e5c6f54525bf7c6a54757ec36cc
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Mon Oct 10 12:54:12 2022 -0500
tried to make tests pass
commit 1046ae1237299a33c58b48661bdb6d325a22147e
Merge: 2bf4e36 363bd83
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Mon Oct 10 12:18:48 2022 -0500
Merge branch 'staging' into seungheonoh/ply
commit 2bf4e3627c1b229f58078695082da85c80efd560
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Mon Oct 10 10:48:36 2022 -0500
remove junkpile
commit a1dbc9ad9e531fe0d0a0480c4aef9cf9ffa90f1d
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Mon Oct 10 10:47:25 2022 -0500
versions
commit 4542a06ac733858297d3a48c53368fad19dedc43
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Thu Oct 6 22:57:48 2022 -0500
script exporting interface
commit 6bd8c1a1d57e4bf9dc25c3068a9c8eae6bf6a19d
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Thu Oct 6 22:58:41 2022 -0500
fixed tests
commit d3ce2cf95633d336f3e621833677bd5bf10ee2c8
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Sun Oct 2 00:55:18 2022 -0500
fixed tests
commit 1ae64c9f692652b77b0506013853b2ba44267c65
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Sat Oct 1 13:28:20 2022 -0500
linker
commit db88cb75c7b74843141ad8ab4e6522b66d0dcfbc
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Sat Oct 1 01:03:50 2022 -0500
exporting scripts
commit 6389fce28e885a8a7f8669629c266f59c0edb51f
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Sat Oct 1 00:51:49 2022 -0500
made scripts parameterized on the script level
commit aea1e518a8890550bdebd0e5251da11d915c53a9
Author: Seungheon Oh <seungheon.ooh@gmail.com>
Date: Wed Sep 28 19:53:29 2022 -0500
Use `TypedScriptEnvelope` for `Agora.Bootstrap`
114 lines
3.3 KiB
Haskell
114 lines
3.3 KiB
Haskell
{-# LANGUAGE QuasiQuotes #-}
|
|
|
|
{- |
|
|
Module : Spec.Stake
|
|
Maintainer : emi@haskell.fyi
|
|
Description: Tests for Stake policy and validator
|
|
|
|
Tests for Stake policy and validator
|
|
-}
|
|
module Spec.Stake (specs) where
|
|
|
|
import Agora.Stake (
|
|
StakeDatum (StakeDatum),
|
|
StakeRedeemer (DepositWithdraw),
|
|
)
|
|
import Data.Bool (Bool (..))
|
|
import Data.Maybe (Maybe (..))
|
|
import PlutusLedgerApi.V1 (Credential (PubKeyCredential))
|
|
import Sample.Shared (stakePolicy, stakeValidator)
|
|
import Sample.Stake (
|
|
DepositWithdrawExample (
|
|
DepositWithdrawExample,
|
|
delta,
|
|
startAmount
|
|
),
|
|
signer,
|
|
)
|
|
import Sample.Stake qualified as Stake (
|
|
stakeCreation,
|
|
stakeCreationUnsigned,
|
|
stakeCreationWrongDatum,
|
|
stakeDepositWithdraw,
|
|
)
|
|
import Sample.Stake.SetDelegate qualified as SetDelegate
|
|
import Test.Specification (
|
|
SpecificationTree,
|
|
group,
|
|
policyFailsWith,
|
|
policySucceedsWith,
|
|
validatorFailsWith,
|
|
validatorSucceedsWith,
|
|
)
|
|
import Prelude (Num (negate), ($))
|
|
|
|
-- | The SpecificationTree exported by this module.
|
|
specs :: [SpecificationTree]
|
|
specs =
|
|
[ group
|
|
"policy"
|
|
[ policySucceedsWith
|
|
"stakeCreation"
|
|
stakePolicy
|
|
()
|
|
Stake.stakeCreation
|
|
, policyFailsWith
|
|
"stakeCreationWrongDatum"
|
|
stakePolicy
|
|
()
|
|
Stake.stakeCreationWrongDatum
|
|
, policyFailsWith
|
|
"stakeCreationUnsigned"
|
|
stakePolicy
|
|
()
|
|
Stake.stakeCreationUnsigned
|
|
]
|
|
, group
|
|
"validator"
|
|
[ validatorSucceedsWith
|
|
"stakeDepositWithdraw deposit"
|
|
stakeValidator
|
|
(StakeDatum 100_000 (PubKeyCredential signer) Nothing [])
|
|
(DepositWithdraw 100_000)
|
|
(Stake.stakeDepositWithdraw $ DepositWithdrawExample {startAmount = 100_000, delta = 100_000})
|
|
, validatorSucceedsWith
|
|
"stakeDepositWithdraw withdraw"
|
|
stakeValidator
|
|
(StakeDatum 100_000 (PubKeyCredential signer) Nothing [])
|
|
(DepositWithdraw $ negate 100_000)
|
|
(Stake.stakeDepositWithdraw $ DepositWithdrawExample {startAmount = 100_000, delta = negate 100_000})
|
|
, validatorFailsWith
|
|
"stakeDepositWithdraw negative GT"
|
|
stakeValidator
|
|
(StakeDatum 100_000 (PubKeyCredential signer) Nothing [])
|
|
(DepositWithdraw 1_000_000)
|
|
(Stake.stakeDepositWithdraw $ DepositWithdrawExample {startAmount = 100_000, delta = negate 1_000_000})
|
|
, group
|
|
"set delegate"
|
|
[ SetDelegate.mkTestCase
|
|
"override existing delegate"
|
|
SetDelegate.overrideExistingDelegateParameters
|
|
True
|
|
, SetDelegate.mkTestCase
|
|
"remove existing delegate"
|
|
SetDelegate.clearDelegateParameters
|
|
True
|
|
, SetDelegate.mkTestCase
|
|
"set delegate to something"
|
|
SetDelegate.setDelegateParameters
|
|
True
|
|
, SetDelegate.mkTestCase
|
|
"owner doesn't sign the transaction"
|
|
SetDelegate.ownerDoesntSignParameters
|
|
False
|
|
, SetDelegate.mkTestCase
|
|
"delegate to the owner"
|
|
SetDelegate.delegateToOwnerParameters
|
|
False
|
|
, SetDelegate.mkTestCase
|
|
"invalid output stake"
|
|
SetDelegate.invalidOutputStakeDatumParameters
|
|
False
|
|
]
|
|
]
|
|
]
|