module Morley.Client.TezosClient.Class
( HasTezosClient (..)
, AliasBehavior (..)
) where
import Data.ByteArray (ScrubbedBytes)
import Morley.Client.Types
import Morley.Tezos.Address
import Morley.Tezos.Address.Alias
import Morley.Tezos.Crypto
data AliasBehavior
= DontSaveAlias
| KeepDuplicateAlias
| OverwriteDuplicateAlias
| ForbidDuplicateAlias
deriving stock (AliasBehavior -> AliasBehavior -> Bool
(AliasBehavior -> AliasBehavior -> Bool)
-> (AliasBehavior -> AliasBehavior -> Bool) -> Eq AliasBehavior
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AliasBehavior -> AliasBehavior -> Bool
$c/= :: AliasBehavior -> AliasBehavior -> Bool
== :: AliasBehavior -> AliasBehavior -> Bool
$c== :: AliasBehavior -> AliasBehavior -> Bool
Eq, Eq AliasBehavior
Eq AliasBehavior
-> (AliasBehavior -> AliasBehavior -> Ordering)
-> (AliasBehavior -> AliasBehavior -> Bool)
-> (AliasBehavior -> AliasBehavior -> Bool)
-> (AliasBehavior -> AliasBehavior -> Bool)
-> (AliasBehavior -> AliasBehavior -> Bool)
-> (AliasBehavior -> AliasBehavior -> AliasBehavior)
-> (AliasBehavior -> AliasBehavior -> AliasBehavior)
-> Ord AliasBehavior
AliasBehavior -> AliasBehavior -> Bool
AliasBehavior -> AliasBehavior -> Ordering
AliasBehavior -> AliasBehavior -> AliasBehavior
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
min :: AliasBehavior -> AliasBehavior -> AliasBehavior
$cmin :: AliasBehavior -> AliasBehavior -> AliasBehavior
max :: AliasBehavior -> AliasBehavior -> AliasBehavior
$cmax :: AliasBehavior -> AliasBehavior -> AliasBehavior
>= :: AliasBehavior -> AliasBehavior -> Bool
$c>= :: AliasBehavior -> AliasBehavior -> Bool
> :: AliasBehavior -> AliasBehavior -> Bool
$c> :: AliasBehavior -> AliasBehavior -> Bool
<= :: AliasBehavior -> AliasBehavior -> Bool
$c<= :: AliasBehavior -> AliasBehavior -> Bool
< :: AliasBehavior -> AliasBehavior -> Bool
$c< :: AliasBehavior -> AliasBehavior -> Bool
compare :: AliasBehavior -> AliasBehavior -> Ordering
$ccompare :: AliasBehavior -> AliasBehavior -> Ordering
Ord, Int -> AliasBehavior
AliasBehavior -> Int
AliasBehavior -> [AliasBehavior]
AliasBehavior -> AliasBehavior
AliasBehavior -> AliasBehavior -> [AliasBehavior]
AliasBehavior -> AliasBehavior -> AliasBehavior -> [AliasBehavior]
(AliasBehavior -> AliasBehavior)
-> (AliasBehavior -> AliasBehavior)
-> (Int -> AliasBehavior)
-> (AliasBehavior -> Int)
-> (AliasBehavior -> [AliasBehavior])
-> (AliasBehavior -> AliasBehavior -> [AliasBehavior])
-> (AliasBehavior -> AliasBehavior -> [AliasBehavior])
-> (AliasBehavior
-> AliasBehavior -> AliasBehavior -> [AliasBehavior])
-> Enum AliasBehavior
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: AliasBehavior -> AliasBehavior -> AliasBehavior -> [AliasBehavior]
$cenumFromThenTo :: AliasBehavior -> AliasBehavior -> AliasBehavior -> [AliasBehavior]
enumFromTo :: AliasBehavior -> AliasBehavior -> [AliasBehavior]
$cenumFromTo :: AliasBehavior -> AliasBehavior -> [AliasBehavior]
enumFromThen :: AliasBehavior -> AliasBehavior -> [AliasBehavior]
$cenumFromThen :: AliasBehavior -> AliasBehavior -> [AliasBehavior]
enumFrom :: AliasBehavior -> [AliasBehavior]
$cenumFrom :: AliasBehavior -> [AliasBehavior]
fromEnum :: AliasBehavior -> Int
$cfromEnum :: AliasBehavior -> Int
toEnum :: Int -> AliasBehavior
$ctoEnum :: Int -> AliasBehavior
pred :: AliasBehavior -> AliasBehavior
$cpred :: AliasBehavior -> AliasBehavior
succ :: AliasBehavior -> AliasBehavior
$csucc :: AliasBehavior -> AliasBehavior
Enum)
class (Monad m) => HasTezosClient m where
signBytes
:: ImplicitAddressWithAlias
-> Maybe ScrubbedBytes
-> ByteString
-> m Signature
genKey :: ImplicitAlias -> m ImplicitAddressWithAlias
genFreshKey :: ImplicitAlias -> m ImplicitAddressWithAlias
rememberContract :: AliasBehavior -> ContractAddress -> ContractAlias -> m ()
getAliasesAndAddresses :: m [(Text, Text)]
getKeyPassword :: ImplicitAddressWithAlias -> m (Maybe ScrubbedBytes)
getPublicKey :: ImplicitAddressWithAlias -> m PublicKey