{-# LANGUAGE DataKinds #-}
module Singular.Registry.Ledger
(
ConwayEra
, Addr
, TxId
, TxIn
, TxOut
, Coin (..)
, MaryValue
, PolicyID (..)
, AssetName (..)
, SlotNo (..)
, ScriptHash (..)
, KeyHash
, KeyRole (..)
, ExUnits (..)
, PParams
, ConwayTxBody
, TokenId (..)
, Root (..)
, TokenState (..)
) where
import Data.ByteString (ByteString)
import Cardano.Ledger.Address (Addr)
import Cardano.Ledger.Alonzo.Core (TopTx, TxBody)
import Cardano.Ledger.Api.Tx.Out (TxOut)
import Cardano.Ledger.Coin (Coin (..))
import Cardano.Ledger.Conway (ConwayEra)
import Cardano.Ledger.Core (PParams)
import Cardano.Ledger.Hashes (ScriptHash (..))
import Cardano.Ledger.Keys (KeyHash, KeyRole (..))
import Cardano.Ledger.Mary.Value
( AssetName (..)
, MaryValue
, PolicyID (..)
)
import Cardano.Ledger.Plutus.ExUnits (ExUnits (..))
import Cardano.Ledger.Slot (SlotNo (..))
import Cardano.Ledger.TxIn (TxId, TxIn)
type ConwayTxBody = TxBody TopTx ConwayEra
newtype TokenId = TokenId
{ TokenId -> AssetName
unTokenId :: AssetName
}
deriving (TokenId -> TokenId -> Bool
(TokenId -> TokenId -> Bool)
-> (TokenId -> TokenId -> Bool) -> Eq TokenId
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TokenId -> TokenId -> Bool
== :: TokenId -> TokenId -> Bool
$c/= :: TokenId -> TokenId -> Bool
/= :: TokenId -> TokenId -> Bool
Eq, Eq TokenId
Eq TokenId =>
(TokenId -> TokenId -> Ordering)
-> (TokenId -> TokenId -> Bool)
-> (TokenId -> TokenId -> Bool)
-> (TokenId -> TokenId -> Bool)
-> (TokenId -> TokenId -> Bool)
-> (TokenId -> TokenId -> TokenId)
-> (TokenId -> TokenId -> TokenId)
-> Ord TokenId
TokenId -> TokenId -> Bool
TokenId -> TokenId -> Ordering
TokenId -> TokenId -> TokenId
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: TokenId -> TokenId -> Ordering
compare :: TokenId -> TokenId -> Ordering
$c< :: TokenId -> TokenId -> Bool
< :: TokenId -> TokenId -> Bool
$c<= :: TokenId -> TokenId -> Bool
<= :: TokenId -> TokenId -> Bool
$c> :: TokenId -> TokenId -> Bool
> :: TokenId -> TokenId -> Bool
$c>= :: TokenId -> TokenId -> Bool
>= :: TokenId -> TokenId -> Bool
$cmax :: TokenId -> TokenId -> TokenId
max :: TokenId -> TokenId -> TokenId
$cmin :: TokenId -> TokenId -> TokenId
min :: TokenId -> TokenId -> TokenId
Ord, Int -> TokenId -> ShowS
[TokenId] -> ShowS
TokenId -> String
(Int -> TokenId -> ShowS)
-> (TokenId -> String) -> ([TokenId] -> ShowS) -> Show TokenId
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TokenId -> ShowS
showsPrec :: Int -> TokenId -> ShowS
$cshow :: TokenId -> String
show :: TokenId -> String
$cshowList :: [TokenId] -> ShowS
showList :: [TokenId] -> ShowS
Show)
newtype Root = Root
{ Root -> ByteString
unRoot :: ByteString
}
deriving (Root -> Root -> Bool
(Root -> Root -> Bool) -> (Root -> Root -> Bool) -> Eq Root
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Root -> Root -> Bool
== :: Root -> Root -> Bool
$c/= :: Root -> Root -> Bool
/= :: Root -> Root -> Bool
Eq, Int -> Root -> ShowS
[Root] -> ShowS
Root -> String
(Int -> Root -> ShowS)
-> (Root -> String) -> ([Root] -> ShowS) -> Show Root
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Root -> ShowS
showsPrec :: Int -> Root -> ShowS
$cshow :: Root -> String
show :: Root -> String
$cshowList :: [Root] -> ShowS
showList :: [Root] -> ShowS
Show)
data TokenState = TokenState
{ TokenState -> KeyHash Payment
owner :: !(KeyHash Payment)
, TokenState -> Root
root :: !Root
, TokenState -> Coin
tip :: !Coin
, TokenState -> Integer
processTime :: !Integer
, TokenState -> Integer
retractTime :: !Integer
}
deriving (TokenState -> TokenState -> Bool
(TokenState -> TokenState -> Bool)
-> (TokenState -> TokenState -> Bool) -> Eq TokenState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TokenState -> TokenState -> Bool
== :: TokenState -> TokenState -> Bool
$c/= :: TokenState -> TokenState -> Bool
/= :: TokenState -> TokenState -> Bool
Eq, Int -> TokenState -> ShowS
[TokenState] -> ShowS
TokenState -> String
(Int -> TokenState -> ShowS)
-> (TokenState -> String)
-> ([TokenState] -> ShowS)
-> Show TokenState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TokenState -> ShowS
showsPrec :: Int -> TokenState -> ShowS
$cshow :: TokenState -> String
show :: TokenState -> String
$cshowList :: [TokenState] -> ShowS
showList :: [TokenState] -> ShowS
Show)