F      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C DEAlexander Krupenkin 2016BSD3 mail@akru.me experimentalportableSafeFLower first char of stringGUpper first char of stringFGFGFGAlexander Krupenkin 2016BSD3 mail@akru.me experimentalportableNoneMethod argument Argument name Argument type Event argument  Argument name  Argument type 4Argument is indexed (e.g. placed on topics of event)#Elementrary contract interface itemContract constructorMethodEventFallback function&5Contract ABI is a list of method / event declarations)5Take a signature by given decl, e.g. foo(uint,string)H,Localy compute Keccak-256 hash of given text*)Generate method selector by given method  Delcaration+Generate event topic0 hash by givent event  Delcaration'  !&'(IJK)H*+,-./  &'()*+&'(  )*+    !&'(IJK)H*+,-./Alexander Krupenkin 2016BSD3 mail@akru.me experimentalunknownNone53Ethereum account address4Parse 3 from text string5Render 3 to text string6 Null address 3LM456789:345634563LM456789:Alexander Krupenkin 2016BSD3 mail@akru.me experimentalportableNoneN)Make 256bit alignment; lazy (left, right)O Left/Right specialized alignmentP Left/Right specialized alignmentQRSNOPTUVWXYZ[\]^ QRSNOPTUVWQRSNOPTUVWXYZ[\]^Alexander Krupenkin 2016BSD3 mail@akru.me experimentalportableNone>Contract ABI data codecA,Encode value into abi-encoding represenationBParse encoded value >?@ABCDEFGHI>?@AB>?@AB>?@ABCDEFGHIAlexander Krupenkin 2016BSD3 mail@akru.me experimental noportableNone+,DTJDynamic length byte arrayMFixed length byte arrayJKLMNO_`aPQRSTUVJKLMNOMNOJKL JKLMNO_`aPQRSTUVAlexander Krupenkin 2016BSD3 mail@akru.me experimentalportableNoneb'ABI data multiparam internal serializercrSerialize with accumulator: pair of argument count and list of pair header and data part (for dynamic arguments)dArgument offset calculatoreStatic argument parserfDynamic argument parserg*Generator for tupleP{N} function signatureh Generator for tupleP{N} functioni?Make a ABIEncoding tuple instance with given count of arguments bcdCount of argumentsPrevious dynamic argumentsOffsetefghjklimnbcefi bcdefghjklimnAlexander Krupenkin 2016BSD3 mail@akru.me experimentalportableNone[Singleton parameter instance_#Tuple instances from 2 to 15 params [\]^o_p`qarbsctduevfwgxhyizj{k|l[\][\][\]^o_p`qarbsctduevfwgxhyizj{k|lAlexander Krupenkin 2016BSD3 mail@akru.me experimentalportableNone05I,mJSON-RPC error messagerSome peace of error responsesJSON-RPC communication errortError in parser stateuCommon head for user errorsv2Any communication with Ethereum node wrapped with v monad%Low-level event filter data structure!Changes pulled by low-level call eth_getFilterChanges,  eth_getLogs, and eth_getFilterLogsEvent filter identifierThe contract call paramsTransaction information)DATA, 32 Bytes - hash of the transaction.KQUANTITY - the number of transactions made by the sender prior to this one.XDATA, 32 Bytes - hash of the block where this transaction was in. null when its pending.MQUANTITY - block number where this transaction was in. null when its pending.ZQUANTITY - integer of the transactions index position in the block. null when its pending.'DATA, 20 Bytes - address of the sender.XDATA, 20 Bytes - address of the receiver. null when its a contract creation transaction.$QUANTITY - value transferred in Wei.3QUANTITY - gas price provided by the sender in Wei.&QUANTITY - gas provided by the sender.0DATA - the data send along with the transaction.Transaction hash text string=The contract call mode describe used state: latest or pendingBlock information9QUANTITY - the block number. null when its pending block.@DATA, 32 Bytes - hash of the block. null when its pending block.*DATA, 32 Bytes - hash of the parent block.QDATA, 8 Bytes - hash of the generated proof-of-work. null when its pending block.6DATA, 32 Bytes - SHA3 of the uncles data in the block.ZDATA, 256 Bytes - the bloom filter for the logs of the block. null when its pending block.?DATA, 32 Bytes - the root of the transaction trie of the block.?DATA, 32 Bytes - the root of the final state trie of the block.<DATA, 32 Bytes - the root of the receipts trie of the block.VDATA, 20 Bytes - the address of the beneficiary to whom the mining rewards were given.4QUANTITY - integer of the difficulty for this block.IQUANTITY - integer of the total difficulty of the chain until this block.,DATA - the "extra data" field of this block.3QUANTITY - integer the size of this block in bytes.1QUANTITY - the maximum gas allowed in this block.@QUANTITY - the total used gas by all transactions in this block.>QUANTITY - the unix timestamp for when the block was collated.Array of transaction objects.Array - Array of uncle hashes.XmnopqrstuvwxyNmnopqrstuvwx^vwxrstuymnopqmnopqrstuvwxy  Alexander Krupenkin 2016BSD3 mail@akru.me experimentalportableNoneDefault v service providerEthereum node service provider.JSON-RPC provider URI, default: localhost:8545v monad runnerv runner for default providerFork v with the same Alexander Krupenkin 2016BSD3 mail@akru.me experimentalportableNone9;}JSON-RPC response.~JSON-RPC request.JSON-RPC server URIName of called method.GRemote call of JSON-RPC method. Arguments of function are stored into params request array.}~ }~ Alexander Krupenkin 2016BSD3 mail@akru.me experimentalunknownNone%.Returns the current ethereum protocol version.aReturns an object with data about the sync status or false. syncing :: Proviver a => Web3 a Text$Returns the client coinbase address.5Returns true if client is actively mining new blocks.EReturns the number of hashes per second that the node is mining with.=Returns the value from a storage position at a given address.8Returns the number of transactions sent from an address.YReturns the number of transactions in a block from a block matching the given block hash.OReturns the number of transactions in a block matching the given block number.TReturns the number of uncles in a block from a block matching the given block hash.VReturns the number of uncles in a block from a block matching the given block number. Returns code at a given address.xReturns an Ethereum specific signature with: sign(keccak256("x19Ethereum Signed Message:n" + len(message) + message))).^Creates new message call transaction or a contract creation, if the data field contains code.UCreates new message call transaction or a contract creation for signed transactions.4Returns the balance of the account of given address.Creates a filter object, based on filter options, to notify when the state changes (logs). To check if the state has changed, call .\Polling method for a filter, which returns an array of logs which occurred since last poll.[Uninstalls a filter with given id. Should always be called when watch is no longer needed.<Returns an array of all logs matching a given filter object.[Executes a new message call immediately without creating a transaction on the block chain.Makes a call or transaction, which won't be added to the blockchain and returns the used gas, which can be used for estimating the used gas.*Returns information about a block by hash.2Returns information about a block by block number.JReturns the information about a transaction requested by transaction hash.UReturns information about a transaction by block hash and transaction index position.XReturns information about a transaction by block number and transaction index position.Returns the receipt of a transaction by transaction hash. TODO must create new type, TxReceipt getTransactionReceipt :: Provider a => Text -> Web3 a TxReceipt getTransactionReceipt = remote "getTransactionReceipt",Returns a list of addresses owned by client.dPolling method for a block filter, which returns an array of block hashes occurred since last poll. (Returns the number of most recent block. )Returns the current price per gas in wei. OReturns information about a uncle of a block by hash and uncle index position. QReturns information about a uncle of a block by number and uncle index position. Creates a filter in the node, to notify when new pending transactions arrive. To check if the state has changed, call getFilterChanges. Returns a FilterId.;Returns an array of all logs matching filter with given id.fReturns the hash of the current block, the seedHash, and the boundary condition to be met ("target").Used for submitting a proof-of-work solution. Parameters: 1. DATA, 8 Bytes - The nonce found (64 bits) 2. DATA, 32 Bytes - The header's pow-hash (256 bits) 3. DATA, 32 Bytes - The mix digest (256 bits)Used for submitting mining hashrate. Parameters: 1. Hashrate, a hexadecimal string representation (32 bytes) of the hash rate 2. ID, String - A random hexadecimal(32 bytes) ID identifying the client&     &     &     &      Alexander Krupenkin 2016BSD3 mail@akru.me experimentalunknownNoneReturns the current network id.EReturns true if client is actively listening for network connections.:Returns number of peers currently connected to the client. Alexander Krupenkin 2016BSD3 mail@akru.me experimentalunknownNone$Returns current node version string.EReturns Keccak-256 (not the standardized SHA3-256) of the given data. Alexander Krupenkin 2016BSD3 mail@akru.me experimental unportableSafe59;KEther unit typeEther unit typeFinney unit typeSzabo unit typeShannon unit typeLovelace unit typeBabbage unit type Wei unit typeValue abstractionUnit specificationEthereum value unit Make a value from integer wei!Convert a value to integer wei"Conversion beween two values) !"#$%&'()*+,-./0 " !  !"" !"#$%&'()*+,-./0 Alexander Krupenkin 2016BSD3 mail@akru.me experimentalportableNone 48Dummy method for sending transaction without method call6Contract method caller7&Send a transaction for given contract 3, value and input data8Constant call given contract 3 in mode and given input data9Contract event listener:=Event filter structure used by low-level subscription methods;+Start an event listener for given contract 3 and callback<Event callback control response=Continue to listen events>Terminate event listener?4Zero value is used to send transaction without money456789:;<=>?@A 456879;:<=>? <=>6789:;45? 456789:;<=>?@AAlexander Krupenkin 2016BSD3 mail@akru.me experimentalunknownNone*3JKLMNOrstuv" !456879;:<=>?vrstu<=>9:;67845?MNOJKL3Alexander Krupenkin 2016BSD3 mail@akru.me experimental unportableNone5:DRead contract ABI from fileEQQ reader for contract ABI'Instance declaration with empty context1Simple data type declaration with one constructorSimple function declaration!ABI and Haskell types associationEvent argument to TH typeFunction argument to TH typeSolidity dynamic type predicateEvent declarations makerMethod delcarations makerDeclaration parserABI to declarations converterABI information stringDE Is constant? Function nameFunction data name ParametersResults >?@AB[\]DE ED[\]>?@ABDE !"#$%&'()*+,-./0123456789:;;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_``abcdefghijklmmnopqrstuvwxyz{|}~~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < < = >  ? @ A B C D E F G H IJKLMNOPGQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                  #web3-0.6.0.0-45FzcRUPCX9CwPtRdKwGnSNetwork.Ethereum.Web3.THNetwork.Ethereum.Web3.JsonAbiNetwork.Ethereum.Web3.AddressNetwork.Ethereum.Web3.Encoding$Network.Ethereum.Web3.Encoding.Bytes$Network.Ethereum.Web3.Encoding.TupleNetwork.Ethereum.Web3.TypesNetwork.Ethereum.Web3.ProviderNetwork.Ethereum.Web3.EthNetwork.Ethereum.Web3.NetNetwork.Ethereum.Web3.Web3Network.Ethereum.UnitNetwork.Ethereum.Web3.ContractNetwork.Ethereum.Web3.Internal'Network.Ethereum.Web3.Encoding.Internal&Network.Ethereum.Web3.Encoding.TupleTHNetwork.Ethereum.Web3.JsonRpcNetwork.Ethereum.Web3#text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqhData.Text.InternalText$memory-0.14.8-1CvUDnIlEXY1dxHsLrdVTvData.ByteArray.BytesBytes FunctionArg funArgName funArgType$fShowFunctionArg$fEqFunctionArg$fOrdFunctionArgEventArg eveArgName eveArgType eveArgIndexed$fFromJSONFunctionArg$fToJSONFunctionArg$fShowEventArg $fEqEventArg $fOrdEventArg Declaration DConstructor DFunctionDEvent DFallback conInputsfunName funConstant funInputs funOutputseveName eveInputs eveAnonymous falPayable$fFromJSONEventArg$fToJSONEventArg$fShowDeclaration$fEqDeclaration$fOrdDeclaration ContractABIunABI signaturemethodIdeventId$fToJSONContractABI$fFromJSONContractABI$fShowContractABI$fFromJSONDeclaration$fToJSONDeclaration$fEqContractABI$fOrdContractABIAddressfromTexttoTextzero$fToJSONAddress$fFromJSONAddress$fIsStringAddress $fShowAddress $fEqAddress $fOrdAddress$fGenericAddress ABIEncoding toDataBuilderfromDataParsertoDatafromData$fABIEncoding[]$fABIEncodingAddress$fABIEncodingText$fABIEncodingWord$fABIEncodingInt$fABIEncodingInteger$fABIEncodingBoolBytesDunBytesDBytesNunBytesN $fShowBytesD$fABIEncodingBytesD$fEncodingTypeBytesD$fMonoidBytesD $fShowBytesN$fABIEncodingBytesN$fEncodingTypeBytesN $fEqBytesN $fOrdBytesN $fEqBytesD $fOrdBytesD Singleton unSingleton$fABIEncodingSingleton$fABIEncoding(,)$fABIEncoding(,,)$fABIEncoding(,,,)$fABIEncoding(,,,,)$fABIEncoding(,,,,,)$fABIEncoding(,,,,,,)$fABIEncoding(,,,,,,,)$fABIEncoding(,,,,,,,,)$fABIEncoding(,,,,,,,,,)$fABIEncoding(,,,,,,,,,,)$fABIEncoding(,,,,,,,,,,,)$fABIEncoding(,,,,,,,,,,,,)$fABIEncoding(,,,,,,,,,,,,,)$fABIEncoding(,,,,,,,,,,,,,,)RpcErrorerrCode errMessageerrData Web3Error JsonRpcFail ParserFailUserFailWeb3unWeb3$fExceptionWeb3Error $fFunctorWeb3$fApplicativeWeb3 $fMonadWeb3 $fMonadIOWeb3$fShowRpcError $fEqRpcError$fGenericRpcError$fShowWeb3Error $fEqWeb3Error$fGenericWeb3ErrorFilter filterAddress filterTopicsfilterFromBlock filterToBlock$fFromJSONRpcError$fToJSONRpcError $fShowFilter$fGenericFilterChangechangeLogIndexchangeTransactionIndexchangeTransactionHashchangeBlockHashchangeBlockNumber changeAddress changeData changeTopicsFilterId$fToJSONFilterId$fFromJSONFilterId$fFromJSONFilter$fToJSONFilter$fShowFilterId $fEqFilterId $fOrdFilterId$fGenericFilterId $fShowChange$fGenericChangeCallcallFromcallTocallGas callGasPrice callValuecallData$fFromJSONChange$fToJSONChange $fShowCall $fGenericCall TransactiontxHashtxNonce txBlockHash txBlockNumbertxTransactionIndextxFromtxTotxValue txGasPricetxGastxInputTxHash DefaultBlockBlockNumberHexEarliestLatestPending$fToJSONDefaultBlock$fFromJSONCall $fToJSONCall$fShowDefaultBlock$fEqDefaultBlock$fShowTransaction$fGenericTransactionBlock blockNumber blockHashblockParentHash blockNonceblockSha3UnclesblockLogsBloomblockTransactionsRootblockStateRootblockReceiptRoot blockMinerblockDifficultyblockTotalDifficultyblockExtraData blockSize blockGasLimit blockGasUsedblockTimestampblockTransactions blockUncles$fFromJSONTransaction$fToJSONTransaction $fShowBlock$fGenericBlock$fFromJSONBlock $fToJSONBlockDefaultProviderProviderrpcUrirunWeb3'runWeb3forkWeb3$fProviderDefaultProviderprotocolVersioncoinbasemininghashrate getStorageAtgetTransactionCountgetBlockTransactionCountByHash getBlockTransactionCountByNumbergetUncleCountByBlockHashgetUncleCountByBlockNumbergetCodesignsendTransactionsendRawTransaction getBalance newFiltergetFilterChangesuninstallFiltergetLogscall estimateGasgetBlockByHashgetBlockByNumbergetTransactionByHash!getTransactionByBlockHashAndIndex#getTransactionByBlockNumberAndIndexaccountsnewBlockFiltergetBlockFilterChangesgasPricegetUncleByBlockHashAndIndexgetUncleByBlockNumberAndIndexnewPendingTransactionFilter getFilterLogsgetWork submitWorksubmitHashrateversion listening peerCount clientVersionsha3KEtherEtherFinneySzaboShannonLovelaceBabbageWeiUnitfromWeitoWeiconvert $fUnitSpecU7 $fUnitSpecU6 $fUnitSpecU5 $fUnitSpecU4 $fUnitSpecU3 $fUnitSpecU2 $fUnitSpecU1 $fUnitSpecU0 $fReadValue $fShowValue$fFractionalValue $fNumValue$fUnitSpecValue $fUnitValue $fEqValue $fOrdValue$fGenericValueNoMethodMethodsendTxEvent eventFilterevent EventAction ContinueEventTerminateEventnopay$fMethodNoMethod$fABIEncodingNoMethod$fShowEventAction$fEqEventActionabiFromabi toLowerFirst toUpperFirstshowConstructor showEvent showMethod unAddressalignalignLalignR EncodingTypetypeName isDynamicint256HexBuilderint256HexParser textBuilder textParser$fEncodingType[]$fEncodingTypeAddress$fEncodingTypeText$fEncodingTypeWord$fEncodingTypeInt$fEncodingTypeInteger$fEncodingTypeBoolupdate bytesBuilder bytesDecodeABIData _serializeoffsetsParserdParser mkTuplePTypemkTupleP mkTupleInstmkAppSeqeTupleEmkEncodingInst$fABIDataBuilder $fABIData(->)tupleP2tupleP3tupleP4tupleP5tupleP6tupleP7tupleP8tupleP9tupleP10tupleP11tupleP12tupleP13tupleP14tupleP15ResponseRequest ServerUri MethodNameremotersResultrqMethodrqIdrqParamsRemoteremote_decodeResponse$fFromJSONResponse$fToJSONRequest $fRemoteWeb3 $fRemote(->)ValueUnitSpecU7U6U5U4U3U2U1U0MkValueunValuedividernamemkValue_event_sendTransaction_call instanceD'dataD'funD'typeQ eventBangType funBangType isDynTypemkEventmkFunmkDecl quoteAbiDec quoteAbiExp eventEncodigD funEncodigD eventFilterD funWrapperescape escapeNames