web3-ethereum-1.0.0.0: Ethereum support for Haskell Web3 library.
CopyrightAleksandr Krupenkin 2016-2021
LicenseApache-2.0
Maintainermail@akru.me
Stabilityexperimental
Portabilityunportable
Safe HaskellNone
LanguageHaskell2010

Network.Ethereum.Account.Class

Description

Ethereum external owned account abstraction.

Synopsis

Documentation

class MonadTrans t => Account a t | t -> a where Source #

Account is needed for sending transactions to blockchain

Typically account is provided by node. In this case node manage accounts: encrypt and decrypt private keys, manipulate files etc. In other case web3 can derive account from private key and send to node already signed transactions.

Methods

withAccount Source #

Arguments

:: JsonRpc m 
=> a

Account params (like a password or private key)

-> t m b

Computation that use account for sending transactions

-> m b

Json-rpc monad

Run computation with given account credentials

send Source #

Arguments

:: (JsonRpc m, Method args) 
=> args

Contract method arguments

-> t m TxReceipt

Receipt of sended transaction

Send transaction to contract, like a write command

call Source #

Arguments

:: (JsonRpc m, Method args, AbiGet result) 
=> args

Contact method arguments

-> t m result

Decoded result of method call

Call constant method of contract, like a read command

Instances

Instances details
Account () DefaultAccount Source # 
Instance details

Defined in Network.Ethereum.Account.Default

Methods

withAccount :: JsonRpc m => () -> DefaultAccount m b -> m b Source #

send :: forall (m :: Type -> Type) args. (JsonRpc m, Method args) => args -> DefaultAccount m TxReceipt Source #

call :: forall (m :: Type -> Type) args result. (JsonRpc m, Method args, AbiGet result) => args -> DefaultAccount m result Source #

Account Personal PersonalAccount Source # 
Instance details

Defined in Network.Ethereum.Account.Personal

Methods

withAccount :: JsonRpc m => Personal -> PersonalAccount m b -> m b Source #

send :: forall (m :: Type -> Type) args. (JsonRpc m, Method args) => args -> PersonalAccount m TxReceipt Source #

call :: forall (m :: Type -> Type) args result. (JsonRpc m, Method args, AbiGet result) => args -> PersonalAccount m result Source #

Account LocalKey LocalKeyAccount Source # 
Instance details

Defined in Network.Ethereum.Account.LocalKey

Methods

withAccount :: JsonRpc m => LocalKey -> LocalKeyAccount m b -> m b Source #

send :: forall (m :: Type -> Type) args. (JsonRpc m, Method args) => args -> LocalKeyAccount m TxReceipt Source #

call :: forall (m :: Type -> Type) args result. (JsonRpc m, Method args, AbiGet result) => args -> LocalKeyAccount m result Source #