| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Morley.Client.TezosClient.Impl
Contents
Description
Interface to the tezos-client executable expressed in Haskell types.
Synopsis
- data TezosClientError
- = UnexpectedClientFailure Int Text Text
- | UnknownAddressAlias Alias
- | UnknownAddress Address
- | AlreadyRevealed Alias
- | InvalidOperationHash OperationHash
- | CounterIsAlreadyUsed Text Text
- | EConnreset
- | ConfigParseError String
- | TezosClientCryptoParseError Text CryptoParseError
- | TezosClientParseAddressError Text ParseAddressError
- | TezosClientParseFeeError Text Text
- | TezosClientUnexpectedOutputFormat Text
- | CantRevealContract Alias
- | ContractSender Address Text
- | EmptyImplicitContract Alias
- | TezosClientUnexpectedSignatureOutput Text
- | TezosClientParseEncryptionTypeError Text Text
- signBytes :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AddressOrAlias -> Maybe ScrubbedBytes -> ByteString -> m Signature
- waitForOperationInclusion :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => OperationHash -> m ()
- rememberContract :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => Bool -> Address -> AliasOrAliasHint -> m ()
- importKey :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => Bool -> AliasOrAliasHint -> SecretKey -> m Alias
- genKey :: (MonadThrow m, MonadCatch m, WithClientLog env m, HasTezosClientEnv env, MonadIO m, HasTezosClient m) => AliasOrAliasHint -> m Address
- genFreshKey :: (MonadThrow m, MonadCatch m, WithClientLog env m, HasTezosClientEnv env, MonadIO m, HasTezosClient m) => AliasOrAliasHint -> m Address
- revealKey :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => Alias -> Maybe ScrubbedBytes -> m ()
- resolveAddressMaybe :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AddressOrAlias -> m (Maybe Address)
- resolveAddress :: (MonadThrow m, HasTezosClient m) => AddressOrAlias -> m Address
- getAlias :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AddressOrAlias -> m Alias
- getPublicKey :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AddressOrAlias -> m PublicKey
- getTezosClientConfig :: FilePath -> Maybe FilePath -> IO TezosClientConfig
- calcTransferFee :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AddressOrAlias -> Maybe ScrubbedBytes -> TezosInt64 -> [CalcTransferFeeData] -> m [TezosMutez]
- calcOriginationFee :: (UntypedValScope st, WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => CalcOriginationFeeData cp st -> m TezosMutez
- calcRevealFee :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => Alias -> Maybe ScrubbedBytes -> TezosInt64 -> m TezosMutez
- getKeyPassword :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadMask m) => Address -> m (Maybe ScrubbedBytes)
- registerDelegate :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AliasOrAliasHint -> Maybe ScrubbedBytes -> m ()
- callTezosClient :: forall env m. (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => (Text -> Text -> IO Bool) -> [String] -> CallMode -> Maybe ScrubbedBytes -> m Text
- callTezosClientStrict :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => [String] -> CallMode -> Maybe ScrubbedBytes -> m Text
- prefixName :: Maybe Text -> AliasOrAliasHint -> Alias
- prefixNameM :: (HasTezosClientEnv env, MonadReader env m) => AliasOrAliasHint -> m Alias
Documentation
data TezosClientError Source #
A data type for all predicatable errors that can happen during
tezos-client usage.
Constructors
| UnexpectedClientFailure |
|
| UnknownAddressAlias | Could not find an address with given name. |
Fields
| |
| UnknownAddress | Could not find an address. |
Fields
| |
| AlreadyRevealed | Public key of the given address is already revealed. |
Fields
| |
| InvalidOperationHash OperationHash | Can't wait for inclusion of operation with given hash because the hash is invalid. |
| CounterIsAlreadyUsed | Error that indicates when given counter is already used for given contract. |
| EConnreset | Network error with which |
| ConfigParseError String | A parse error occurred during config parsing. |
| TezosClientCryptoParseError Text CryptoParseError |
|
| TezosClientParseAddressError Text ParseAddressError |
|
| TezosClientParseFeeError Text Text |
|
| TezosClientUnexpectedOutputFormat Text |
|
| CantRevealContract | Given alias is a contract and cannot be revealed. |
Fields
| |
| ContractSender Address Text | Given contract is a source of a transfer or origination operation. |
| EmptyImplicitContract | Given alias is an empty implicit contract. |
Fields
| |
| TezosClientUnexpectedSignatureOutput Text |
|
| TezosClientParseEncryptionTypeError Text Text |
|
Instances
| Eq TezosClientError Source # | |
Defined in Morley.Client.TezosClient.Impl Methods (==) :: TezosClientError -> TezosClientError -> Bool # (/=) :: TezosClientError -> TezosClientError -> Bool # | |
| Show TezosClientError Source # | |
Defined in Morley.Client.TezosClient.Impl Methods showsPrec :: Int -> TezosClientError -> ShowS # show :: TezosClientError -> String # showList :: [TezosClientError] -> ShowS # | |
| Exception TezosClientError Source # | |
Defined in Morley.Client.TezosClient.Impl Methods toException :: TezosClientError -> SomeException # | |
| Buildable TezosClientError Source # | |
Defined in Morley.Client.TezosClient.Impl Methods build :: TezosClientError -> Builder # | |
tezos-client api
signBytes :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AddressOrAlias -> Maybe ScrubbedBytes -> ByteString -> m Signature Source #
Sign an arbtrary bytestring using tezos-client.
Secret key of the address corresponding to give AddressOrAlias must be known.
waitForOperationInclusion :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => OperationHash -> m () Source #
This function blocks until operation with given hash is included into blockchain.
rememberContract :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => Bool -> Address -> AliasOrAliasHint -> m () Source #
Save a contract with given address and alias.
If replaceExisting is False and a contract with given alias
already exists, this function does nothing.
importKey :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => Bool -> AliasOrAliasHint -> SecretKey -> m Alias Source #
genKey :: (MonadThrow m, MonadCatch m, WithClientLog env m, HasTezosClientEnv env, MonadIO m, HasTezosClient m) => AliasOrAliasHint -> m Address Source #
Generate a new secret key and save it with given alias. If an address with given alias already exists, it will be returned and no state will be changed.
genFreshKey :: (MonadThrow m, MonadCatch m, WithClientLog env m, HasTezosClientEnv env, MonadIO m, HasTezosClient m) => AliasOrAliasHint -> m Address Source #
Generate a new secret key and save it with given alias. If an address with given alias already exists, it will be removed and replaced with a fresh one.
revealKey :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => Alias -> Maybe ScrubbedBytes -> m () Source #
Reveal public key corresponding to the given alias. Fails if it's already revealed.
resolveAddressMaybe :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AddressOrAlias -> m (Maybe Address) Source #
Return Address corresponding to given AddressOrAlias, covered in Maybe.
Return Nothing if address alias is unknown
resolveAddress :: (MonadThrow m, HasTezosClient m) => AddressOrAlias -> m Address Source #
Return Address corresponding to given AddressOrAlias.
getAlias :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AddressOrAlias -> m Alias Source #
Return Alias corresponding to given AddressOrAlias.
getPublicKey :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AddressOrAlias -> m PublicKey Source #
Return PublicKey corresponding to given AddressOrAlias.
getTezosClientConfig :: FilePath -> Maybe FilePath -> IO TezosClientConfig Source #
Read tezos-client configuration.
calcTransferFee :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AddressOrAlias -> Maybe ScrubbedBytes -> TezosInt64 -> [CalcTransferFeeData] -> m [TezosMutez] Source #
Calc baker fee for transfer using tezos-client.
calcOriginationFee :: (UntypedValScope st, WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => CalcOriginationFeeData cp st -> m TezosMutez Source #
Calc baker fee for origination using tezos-client.
calcRevealFee :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => Alias -> Maybe ScrubbedBytes -> TezosInt64 -> m TezosMutez Source #
Calc baker fee for revealing using tezos-client.
Note that tezos-client does not support passing an address here,
at least at the moment of writing.
getKeyPassword :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadMask m) => Address -> m (Maybe ScrubbedBytes) Source #
Get password for secret key associated with given address in case this key is password-protected
registerDelegate :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => AliasOrAliasHint -> Maybe ScrubbedBytes -> m () Source #
Register alias as delegate
Internals
callTezosClient :: forall env m. (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => (Text -> Text -> IO Bool) -> [String] -> CallMode -> Maybe ScrubbedBytes -> m Text Source #
Call tezos-client with given arguments. Arguments defined by
config are added automatically. The second argument specifies what
should be done in failure case. It takes stdout and stderr
output. Possible handling:
- Parse a specific error and throw it.
- Parse an expected error that shouldn't cause a failure.
Return
Truein this case. - Detect an unexpected error, return
False. In this caseUnexpectedClientFailurewill be throw.
callTezosClientStrict :: (WithClientLog env m, HasTezosClientEnv env, MonadIO m, MonadCatch m) => [String] -> CallMode -> Maybe ScrubbedBytes -> m Text Source #
Call tezos-client and expect success.
prefixName :: Maybe Text -> AliasOrAliasHint -> Alias Source #
prefixNameM :: (HasTezosClientEnv env, MonadReader env m) => AliasOrAliasHint -> m Alias Source #
Prefix an alias with the value available in any HasTezosClientEnv.