morley-client-0.1.0: Client to interact with the Tezos blockchain
Safe HaskellNone
LanguageHaskell2010

Morley.Client.TezosClient.Class

Description

Abstraction layer for tezos-client functionality. We use it to mock tezos-client in tests.

Synopsis

Documentation

class Monad m => HasTezosClient m where Source #

Type class that provides interaction with tezos-client binary

Methods

signBytes :: AddressOrAlias -> Maybe ScrubbedBytes -> ByteString -> m Signature Source #

Sign an operation with tezos-client.

genKey :: AliasOrAliasHint -> m Address Source #

Generate a secret key and store it with given alias. If a key with this alias already exists, the corresponding address will be returned and no state will be changed.

genFreshKey :: AliasOrAliasHint -> m Address Source #

Generate a secret key and store it with given alias. Unlike genKey this function overwrites the existing key when given alias is already stored.

revealKey :: Alias -> Maybe ScrubbedBytes -> m () Source #

Reveal public key associated with given implicit account.

waitForOperation :: OperationHash -> m () Source #

Wait until operation known by some hash is included into the chain.

rememberContract :: Bool -> Address -> AliasOrAliasHint -> m () Source #

Associate the given contract with alias. The Bool variable indicates whether or not we should replace already existing contract alias or not.

importKey :: Bool -> AliasOrAliasHint -> SecretKey -> m () Source #

Saves SecretKey via tezos-client with given alias associated. The Bool variable indicates whether or not we should replace already existing alias key or not.

resolveAddressMaybe :: AddressOrAlias -> m (Maybe Address) Source #

Retrieve an address from given address or alias. If address or alias does not exist returns Nothing

getAlias :: AddressOrAlias -> m Alias Source #

Retrieve an alias from given address using tezos-client. The primary (and probably only) reason this function exists is that tezos-client sign command only works with aliases. It was reported upstream: https://gitlab.com/tezos/tezos/-/issues/836.

getPublicKey :: AddressOrAlias -> m PublicKey Source #

Get public key for given address. Public keys are often used when interacting with the multising contracts

registerDelegate :: AliasOrAliasHint -> Maybe ScrubbedBytes -> m () Source #

Register a given address as delegate

getTezosClientConfig :: m TezosClientConfig Source #

Retrieve the current tezos-client config.

calcTransferFee :: AddressOrAlias -> Maybe ScrubbedBytes -> TezosInt64 -> [CalcTransferFeeData] -> m [TezosMutez] Source #

Calculate fee for transfer using `--dry-run` flag.

calcOriginationFee :: UntypedValScope st => CalcOriginationFeeData cp st -> m TezosMutez Source #

Calculate fee for origination using `--dry-run` flag.

getKeyPassword :: Address -> m (Maybe ScrubbedBytes) Source #

Get password for secret key associated with given address in case this key is password-protected. Obtained password is used in two places: * 1) In signBytes call. * 2) in revealKey call.

Instances

Instances details
HasTezosClient MorleyOnlyRpcM Source # 
Instance details

Defined in Morley.Client.OnlyRPC

HasTezosClient MorleyClientM Source # 
Instance details

Defined in Morley.Client.Full