Restructured Testings
Separated the samples and test sets
This commit is contained in:
parent
fe5c18969e
commit
82dd53efcf
5 changed files with 165 additions and 258 deletions
132
agora-test/Spec/Sample/Effect/TreasuryWithdrawal.hs
Normal file
132
agora-test/Spec/Sample/Effect/TreasuryWithdrawal.hs
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
{- |
|
||||
Module : Spec.Sample.Effect.TreasuryWithdrawalEffect
|
||||
Maintainer : seungheon.ooh@gmail.com
|
||||
Description: Sample based testing for Treasury Withdrawal Effect
|
||||
|
||||
This module provides smaples for Treasury Withdrawal Effect tests.
|
||||
-}
|
||||
module Spec.Sample.Effect.TreasuryWithdrawal (datum, currSymbol, signer, validator, validatorHashTN, scriptContext1) where
|
||||
|
||||
import Plutarch.Api.V1
|
||||
import Plutus.V1.Ledger.Api
|
||||
import Plutus.V1.Ledger.Interval qualified as Interval
|
||||
import Plutus.V1.Ledger.Value qualified as Value
|
||||
|
||||
import Data.ByteString.Hash
|
||||
|
||||
import Agora.Effect.TreasuryWithdrawal
|
||||
|
||||
-- | A sample Currency Symbol.
|
||||
currSymbol :: CurrencySymbol
|
||||
currSymbol = CurrencySymbol "12312099"
|
||||
|
||||
-- | A sample 'PubKeyHash'.
|
||||
signer :: PubKeyHash
|
||||
signer = "8a30896c4fd5e79843e4ca1bd2cdbaa36f8c0bc3be7401214142019c"
|
||||
|
||||
-- | List of users who the effect will pay to.
|
||||
users :: [Credential]
|
||||
users =
|
||||
PubKeyCredential . PubKeyHash . toBuiltin . sha2
|
||||
<$> [ "Orange"
|
||||
, "Bottle"
|
||||
, "Hello"
|
||||
]
|
||||
|
||||
-- | List of users who the effect will pay to.
|
||||
treasuries :: [Credential]
|
||||
treasuries =
|
||||
ScriptCredential . ValidatorHash . toBuiltin . sha2
|
||||
<$> [ "1234"
|
||||
, "qwer"
|
||||
, "asdf"
|
||||
]
|
||||
|
||||
_aa :: [Credential]
|
||||
_aa = treasuries
|
||||
|
||||
-- | Datum for Treasury Withdrawal Effect Validator.
|
||||
datum :: TreasuryWithdrawalDatum
|
||||
datum =
|
||||
TreasuryWithdrawalDatum
|
||||
[ (users !! 0, Value.singleton "1234ab" "LQ" 1)
|
||||
, (users !! 1, Value.singleton "1234ab" "LQ" 1)
|
||||
, (users !! 2, Value.singleton "1234ab" "LQ" 1)
|
||||
]
|
||||
|
||||
-- | Effect validator instance.
|
||||
validator :: Validator
|
||||
validator = mkValidator $ treasuryWithdrawalValidator currSymbol
|
||||
|
||||
-- | 'TokenName' that represents the hash of the 'Stake' validator.
|
||||
validatorHashTN :: TokenName
|
||||
validatorHashTN = let ValidatorHash vh = validatorHash validator in TokenName vh
|
||||
|
||||
scriptContext1 :: ScriptContext
|
||||
scriptContext1 =
|
||||
ScriptContext
|
||||
{ scriptContextTxInfo =
|
||||
TxInfo
|
||||
{ txInfoInputs =
|
||||
[ TxInInfo -- Initiator
|
||||
(TxOutRef "0b2086cbf8b6900f8cb65e012de4516cb66b5cb08a9aaba12a8b88be" 1)
|
||||
TxOut
|
||||
{ txOutAddress = Address (ScriptCredential $ validatorHash validator) Nothing
|
||||
, txOutValue = Value.singleton currSymbol validatorHashTN 1 -- Stake ST
|
||||
, txOutDatumHash = Just (DatumHash "")
|
||||
}
|
||||
, TxInInfo -- Treasury 1
|
||||
(TxOutRef "0b121212121212121212121212121212121212121212121212121221" 2)
|
||||
TxOut
|
||||
{ txOutAddress = Address (treasuries !! 0) Nothing
|
||||
, txOutValue = Value.singleton "1234ab" "LQ" 10
|
||||
, txOutDatumHash = Just (DatumHash "")
|
||||
}
|
||||
, TxInInfo -- Treasury 2
|
||||
(TxOutRef "0b121212121212121212a41212121212121212121212121212121221" 3)
|
||||
TxOut
|
||||
{ txOutAddress = Address (treasuries !! 1) Nothing
|
||||
, txOutValue = Value.singleton "1234ab" "LQ" 10
|
||||
, txOutDatumHash = Just (DatumHash "")
|
||||
}
|
||||
]
|
||||
, txInfoOutputs =
|
||||
[ TxOut
|
||||
{ txOutAddress = Address (users !! 0) Nothing
|
||||
, txOutValue = Value.singleton "1234ab" "LQ" 1
|
||||
, txOutDatumHash = Nothing
|
||||
}
|
||||
, TxOut
|
||||
{ txOutAddress = Address (users !! 1) Nothing
|
||||
, txOutValue = Value.singleton "1234ab" "LQ" 1
|
||||
, txOutDatumHash = Nothing
|
||||
}
|
||||
, TxOut
|
||||
{ txOutAddress = Address (users !! 2) Nothing
|
||||
, txOutValue = Value.singleton "1234ab" "LQ" 1
|
||||
, txOutDatumHash = Nothing
|
||||
}
|
||||
, -- Send left overs to treasuries
|
||||
TxOut
|
||||
{ txOutAddress = Address (treasuries !! 0) Nothing
|
||||
, txOutValue = Value.singleton "1234ab" "LQ" 7
|
||||
, txOutDatumHash = Nothing
|
||||
}
|
||||
, TxOut
|
||||
{ txOutAddress = Address (treasuries !! 1) Nothing
|
||||
, txOutValue = Value.singleton "1234ab" "LQ" 10
|
||||
, txOutDatumHash = Nothing
|
||||
}
|
||||
]
|
||||
, txInfoFee = Value.singleton "" "" 2
|
||||
, txInfoMint = Value.singleton currSymbol validatorHashTN (-1)
|
||||
, txInfoDCert = []
|
||||
, txInfoWdrl = []
|
||||
, txInfoValidRange = Interval.always
|
||||
, txInfoSignatories = [signer]
|
||||
, txInfoData = []
|
||||
, txInfoId = "0b2086cbf8b6900f8cb65e012de4516cb66b5cb08a9aaba12a8b88be"
|
||||
}
|
||||
, scriptContextPurpose =
|
||||
Spending (TxOutRef "0b2086cbf8b6900f8cb65e012de4516cb66b5cb08a9aaba12a8b88be" 1)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue