sb`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~1 Safe-Inferred Safe-Inferred  Safe-Inferred &Prefix for base58 PubKey hash address &Prefix for base58 script hash address "Prefix for private key WIF format (Prefix for extended public keys (BIP32) )Prefix for extended private keys (BIP32) Network magic bytes !Genesis block header information !Maximum size of a block in bytes Wallet database file name #User agent of this haskoin package     Safe-Inferred6Data type representing a variable length integer. The  type A usually precedes an array or a string that can vary in length.   Safe-InferredCData type for variable length strings. Variable length strings are  serialized as a  followed by a bytestring.   Safe-Inferred EAdd the given data element to the connections current filter without + requiring a completely new one to be set. /Set a new bloom filter on the peer connection. JA bloom filter is a probabilistic data structure that SPV clients send to I other peers to filter the set of transactions received from them. Bloom M filters are probabilistic and have a false positive rate. Some transactions D that pass the filter may not be relevant to the receiving peer. By H controlling the false positive rate, SPV nodes can trade off bandwidth  versus privacy. Bloom filter data 'Flag indicating if the filter is full ( is all 0x00) (Flag indicating if the filter is empty ( is all 0xff) )Number of hash functions for this filter Hash function random nonce Bloom filter auto-update flags DThe bloom flags are used to tell the remote peer how to auto-update  the provided bloom filter. GOnly auto-update on outputs that are pay-to-pubkey or pay-to-multisig.  This is the default setting. Auto-update on all outputs  Never update        Safe-Inferred8A Pong message is sent as a response to a ping message. ;When responding to a Ping request, the nonce from the Ping ! is copied in the Pong response. 9A Ping message is sent to bitcoin peers to check if a TCP/IP connection  is still valid. :A random nonce used to identify the recipient of the ping - request once a Pong response is received.  Safe-InferredHData type describing a bitcoin network address. Addresses are stored in K IPv6. IPv4 addresses are mapped to IPv6 using IPv4 mapped IPv6 addresses:   <http://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses . Sometimes, ' timestamps are sent together with the  such as in the Addr  data type. /Bitmask of services available for this address !&IPv6 address serialized as big endian "%Port number serialized as big endian  !" !" !" Safe-Inferred #DWhen a bitcoin node creates an outgoing connection to another node, % the first message it will send is a # message. The other node  will similarly respond with it's own # message. %)Protocol version being used by the node. &3Bitmask of features to enable for this connection. 'UNIX timestamp (4Network address of the node receiving this message. )2Network address of the node sending this message. *7Randomly generated identifying sent with every version ; message. This nonce is used to detect connection to self. + User agent ,;The height of the last block received by the sending node. -=Wether the remote peer should announce relaying transactions = or not. This feature is enabled since version >= 70001. See  BIP37 for more details. #$%&'()*+,- #$%&'()*+,-# $%&'()*+,- Safe-Inferred.FData type describing signed messages that can be sent between bitcoin K nodes to display important notifications to end users about the health of  the network. 0Alert payload. 1ECDSA signature of the payload ./01./01./01 Safe-Inferred2?Provides information on known nodes in the bitcoin network. An 2  type is sent inside a Message as a response to a GetAddr message. 5!Network address with a timestamp 234523452345None#63JSON-RPC message, can contain request or response. 7response message container. 8Request message container. 9JSON-RPC response or error. ;Result or error. < Result id. ="JSON-RPC request on notification. ?Request method. @/Request parameters. Should be Object or Array. A'Request id. Nothing for notifications. B*JSON-RPC error object in v1 or v2 format. ) Sent inside a JSONRes in case of error. C+Error object in JSON-RPC version 1 format. DUsually String. E+Error object in JSON-RPC version 2 format. FInteger error code. GError message. HOptional error object. I%JSON-RPC id in text or integer form. J!Id in string form (discouraged). LId in integer form. N*JSON-RPC result with default JSON values. O7JSON-RPC request or response with default JSON values. P,JSON-RPC response with default JSON values. Q+JSON-RPC request with default JSON values. R0JSON-RPC error object with default JSON values. SJSON-RPC result. TJSON-RPC method name. U#Parse error in JSON-RPC v2 format.  Provide optional error object. V%Request error in JSON-RPC v2 format.  Provide optional error object. W,Unknown method error in JSON-RPC v2 format.  Provide optional error object. X0Invalid parameters error in JSON-RPC v2 format.  Provide optional error object. Y&Internal error in JSON-RPC v2 format.  Provide optional error object. ZGet string from error object. [#Map Left error objects to strings. \3Force an id into a number or fail if not possible. 16789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\'6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\6879:;<=>?@ABECFGHDILJMKNOPQRSTUVWXYZ[\ Safe-Inferred ]&Prefix for base58 PubKey hash address ^&Prefix for base58 script hash address _"Prefix for private key WIF format `(Prefix for extended public keys (BIP32) a)Prefix for extended private keys (BIP32) bNetwork magic bytes c!Genesis block header information d!Maximum size of a block in bytes eWallet database file name f#User agent of this haskoin package ]^_`abcdef ]^_`abcdef ]^_`abcdef Safe-Inferred gBuildT transformer monad jLThe Build monad represents computations that can be in one of three states:  Complete  Partial  Broken KIt extends the Either monad with an additional Partial value to describe a N valid computation flagged with a Partial context. The Build monad is useful K when you describe computations where parts of the computation are either O complete, partially complete or broken. Combining only Complete computations I will produce a Complete result. However, if one of the computations is F Partial, the whole computation will be Partial as well. And if some G computation is Broken, the whole computation will be broken as well. LThe Build monad is used by Haskoin to describe the state of the transaction L signing computation. To sign a transaction, all input scripts need to be J signed. The whole transaction will be completely signed only if all the Q input scripts are completely signed. If any of the inputs is partially signed, M then the whole transaction will be partially signed as well. And the whole K transaction is broken if one of the inputs failed to parse or is broken. kDescribes a broken computation m/Describes a successful but partial computation n,Describes a successful complete computation p,Returns True if the Build value is Complete q+Returns True if the Build value is Partial r)Return True if the Build value is Broken sITransforms an Either String value into a Build value. Right is mapped to ' Complete and Left is mapped to Broken tKTransforms a Build value into an Either String value. Complete and Partial 3 are mapped to Right and Broken is mapped to Left. uFBinds a Partial value to the computation when the predicate is False. v/Lift a Build computation into the BuildT monad ghijklmnopqrstuvghijklmnopqrstuvghijnmkoolpqrstuv Safe-Inferredw6Transforms a lazy bytestring into a strict bytestring x6Transforms a strict bytestring into a lazy bytestring y-Transforms a string into a strict bytestring z*Transform a strict bytestring to a string {.Decode a big endian Integer from a bytestring |0Encode an Integer to a bytestring as big endian }5Encode a bytestring to a base16 (HEX) representation ~GDecode a base16 (HEX) string from a bytestring. This function can fail / if the string contains invalid HEX characters Strict version of Data.Binary.encode Strict version of Data.Binary.decode Strict version of Data.Binary.runGet Strict version of Data.Binary.runPut Strict version of Data.Binary.decodeOrFail Strict version of Data.Binary.runGetOrFail LTry to decode a Data.Binary value. If decoding succeeds, apply the function 5 to the result. Otherwise, return the default value. KTry to run a Data.Binary.Get monad. If decoding succeeds, apply a function 5 to the result. Otherwise, return the default value. LDecode a Data.Binary value into the Either monad. A Right value is returned M with the result upon success. Otherwise a Left value with the error message  is returned. JDecode a Data.Binary value into the Maybe monad. A Just value is returned ? with the result upon success. Otherwise, Nothing is returned. -Isolate a Data.Binary.Get monad for the next Int bytes. Only the next  IntF bytes of the input bytestring will be available for the Get monad to N consume. This function will fail if the Get monad fails or some of the input  is not consumed. *Returns True if the Either value is Right )Returns True if the Either value is Left IExtract the Right value from an Either value. Fails if the value is Left IExtract the Left value from an Either value. Fails if the value is Right GTransforms an Either value into a Maybe value. Right is mapped to Just ? and Left is mapped to Nothing. The value inside Left is lost. KTransforms a Maybe value into an Either value. Just is mapped to Right and L Nothing is mapped to Left. You also pass in an error value in case Left is  returned. 1Lift a Either computation into the EitherT monad 0Lift a Maybe computation into the EitherT monad >Applies a function to only one element of a list defined by it' s index. N If the index is out of the bounds of the list, the original list is returned Use the list [b]2 as a template and try to match the elements of [a] # against it. For each element of [b]( return the (first) matching element of  [a]-, or Nothing. Output list has same size as [b] and contains results in  same order. Elements of [a] can only appear once. wxyz{|}~The bytestring to decode -Default value to return when decoding fails *Function to apply when decoding succeeds  Final result The Get monad to run The bytestring to decode -Default value to return when decoding fails *Function to apply when decoding succeeds  Final result #The index of the element to change The list of elements The function to apply $The result with one element changed The input list !The list to serve as a template The comparison function !Results of the template matching :]^_`abcdefghijklmnopqrstuvwxyz{|}~;wxyz{|}~jnmkoolpqrstughiv]^_`abcdef wxyz{|}~None Session state. Map of ids to result parsers. <Parse JSON-RPC RequestValue to expectedo Request data type. =Parse JSON-RPC ResponseValue to expected Response data type. Create initial session. CSend a new request. Goes to a channel that is read from reqSource. 2New notification, or request with no id tracking. +Source of requests to send to the network. +Conduit that parses messages from network. +Parse incoming requests and notifications.  Keep connection open. Session state. Request builder. Parser for response. Output ID of sent request. Session state.  Request to send to the network. No meaningful output. Session state. !Source with serialized requests. Session state. 4Returns Conduit with parsed data or parsing errors.  None+Provide dictionary and intial entropy as a  with length > multiple of 32 bits (4 bytes). Output a mnemonic sentence as . Revert 1. Do not use this to generate seeds. Instead use  . JTurn any sequence of characters to a seed. Does not have to be a mnemonic  sentence generated from . Use  to get a seed  from a mnemonic sentence. GGet a seed from a mnemonic sentence. Will calculate checksum. Requires K same dictionary used to generate the mnemonic sentence as first argument. H Passphrase can be used to protect the mnemonic. Use an empty string as ! passphrase if none is required. Obtain  bits from beginning of  . Resulting  M will be smallest required to hold that many bits, padded with zeroes to the  right. 9Standard English dictionary from BIP-0039 specification.   Safe-Inferred9Data type representing an Integer modulo curve order N. CData type representing an Integer modulo coordinate field order P. 3Data type representing a 128 bit unsigned integer. / It is implemented as an Integer modulo 2^128. 3Data type representing a 160 bit unsigned integer. / It is implemented as an Integer modulo 2^160. 3Data type representing a 256 bit unsigned integer. / It is implemented as an Integer modulo 2^256. 3Data type representing a 512 bit unsigned integer. / It is implemented as an Integer modulo 2^512. 3/None)Data type representing a 32 bit checksum Computes SHA-512. 9Computes SHA-512 and returns the result as a bytestring. Computes SHA-256. 9Computes SHA-256 and returns the result as a bytestring. Computes RIPEMD-160. <Computes RIPEMD-160 and returns the result as a bytestring.  Computes two rounds of SHA-256. GComputes two rounds of SHA-256 and returns the result as a bytestring. Computes a 32 bit checksum. Computes HMAC over SHA-512. BComputes HMAC over SHA-512 and return the result as a bytestring. Computes HMAC over SHA-256. BComputes HMAC over SHA-256 and return the result as a bytestring. Split a  into a pair of . Join a pair of  into a . KDecode the compact number used in the difficulty target of a block into an  Integer. 5As described in the Satoshi reference implementation src bignum.h: The compact9 format is a representation of a whole number N using an D unsigned 32bit number similar to a floating point format. The most M significant 8 bits are the unsigned exponent of base 256. This exponent can  be thought of as number of bytes of N&. The lower 23 bits are the mantissa. 5 Bit number 24 (0x800000) represents the sign of N. 0 N = (-1^sign) * mantissa * 256^(exponent-3) GEncode an Integer to the compact number format used in the difficulty  target of a block. ,MurmurHash3 (x86_32). For more details, see  http:code.google.compsmhashersourcebrowsetrunkMurmurHash3.cpp 6 This code is used in the bloom filters of SPV nodes. "!None )Data type representing a Bitcoin address Script Hash Address Public Key Hash Address 1Encode a bytestring to a base 58 representation. KDecode a base 58 encoded bytestring. This can fail if the input bytestring 5 contains invalid base 58 characters such as 0,O,l,I GComputes a checksum for the input bytestring and encodes the input and + the checksum to a base 58 representation. CDecode a base 58 encoded bytestring that contains a checksum. This K function returns Nothing if the input bytestring contains invalid base 58 & characters or if the checksum fails. 3Transforms an Address into a base58 encoded String HDecodes an Address from a base58 encoded String. This function can fail H if the String is not properly encoded as base58 or the checksum fails.  NoneFData type representing a GetBlocks message request. It is used in the C bitcoin protocol to retrieve blocks from a peer by providing it a   object. The " is a sparse list of block hashes G from the caller node with the purpose of informing the receiving node  about the state of the caller',s blockchain. The receiver node will detect  a wrong branch in the caller'.s main chain and send the caller appropriate  Blocks. The response to a  message is an Inv message A containing the list of block hashes pertaining to the request. The protocol version <Block locator object. It is a list of block hashes from the : most recent block back to the genesis block. The list is , dense at first and sparse towards the end. 4Hash of the last desired block. If set to zero, the 3 maximum number of block hashes is returned (500). NoneSimilar to the / message type but for retrieving block headers  only. The response to a  request is a Headers message L containing a list of block headers pertaining to the request. A maximum of % 2000 block headers can be returned.  is used by thin (SPV) F clients to exclude block contents when synchronizing the blockchain. The protocol version 8Block locator object. It is a list of block hashes from ; the most recent block back to the Genesis block. The list / is dense at first and sparse towards the end. 9Hash of the last desired block header. When set to zero, 8 the maximum number of block headers is returned (2000) NoneAInvectory vectors represent hashes identifying objects such as a Block  or a Tx=. They are sent inside messages to notify other peers about ' new data or data they have requested. 7Type of the object referenced by this inventory vector 7Hash of the object referenced by this inventory vector 8Data type identifying the type of an inventory vector. +InvVector has is related to a merkle block %InvVector hash is related to a block ,InvVector hash is related to a transaction 1Error. Data containing this type can be ignored.   NoneThe ; type is used to retrieve information on a specific object  (Block or Tx3) identified by the objects hash. The payload of a   request is a list of , which represent all the hashes for which a 6 node wants to request information. The response to a GetBlock message  wille be either a Block or a Tx& message depending on the type of the ) object referenced by the hash. Usually,  messages are sent after a  node receives an Inv1 message to obtain information on unknown object  hashes. List of object hashes   None@ messages are used by nodes to advertise their knowledge of new ) objects by publishing a list of hashes.  messages can be sent ! unsolicited or in response to a  GetBlocks message. Inventory vectors   NoneA ( message is returned as a response to a GetData message M whe one of the requested objects could not be retrieved. This could happen, K for example, if a tranasaction was requested and was not available in the $ memory pool of the receiving node. *Inventory vectors related to this request    Safe-Inferred 2Elliptic curves of the form y^2 = x^3 + 7 (mod p) C Point on the elliptic curve in transformed Jacobian coordinates  (X,Y,Z) such that (x,y) = (XZ^2, YZ^3) $ InfPoint is the point at infinity    !NoneLElliptic curve private key type. Two constructors are provided for creating L compressed or uncompressed private keys. Compression information is stored N in private key WIF formats and needs to be preserved to generate the correct / addresses from the corresponding public key. Uncompressed private key Compressed private key KElliptic curve public key type. Two constructors are provided for creating M compressed and uncompressed public keys from a Point. The use of compressed N keys is preferred as it produces shorter keys without compromising security. > Uncompressed keys are supported for backwards compatibility. Uncompressed public key Compressed public key 1G parameter of the EC curve expressed as a Point GReturns True if the public key is valid. This will check if the public  key point lies on the curve. JAdd a public key to a private key defined by its Hash256 value. This will K transform the private key into a public key and add the respective public D key points together. This is provided as a helper for BIP32 wallet H implementations. This function fails for uncompressed keys and returns G Nothing if the private key value is >= than the order of the curve N. /Returns True if the public key is uncompressed EDerives a public key from a private key. This function will preserve K information on key compression (PrvKey becomes PubKey and PrvKeyU becomes  PubKeyU) ,Computes an Address value from a public key IReturns True if the private key is valid. This will check if the integer K value representing the private key is greater than 0 and smaller than the  curve order N. JBuilds a compressed private key from an Integer value. Returns Nothing if N the Integer would not produce a valid private key. For security, the Integer E needs to be generated from a random source with sufficient entropy. JBuilds an uncompressed private key from an Integer value. Returns Nothing I if the Integer would not produce a valid private key. For security, the M Integer needs to be generated from a random source with sufficient entropy. +Returns the Integer value of a private key HAdd two private keys together. One of the keys is defined by a Hash256. L The functions fails on uncompressed private keys and return Nothing if the D Hash256 is smaller than the order of the curve N. This is provided - as a helper for implementing BIP32 wallets. 0Returns True of the private key is uncompressed DSerialize a private key into the Data.Binary.Put monad as a 32 byte L big endian ByteString. This is useful when a constant length serialization % format for private keys is required JDeserializes a compressed private key from the Data.Binary.Get monad as a  32 byte big endian ByteString. KDeserializes an uncompressed private key from the Data.Binary.Get monad as ! a 32 byte big endian ByteString HDecodes a private key from a WIF encoded String. This function can fail J if the input string does not decode correctly as a base 58 string or if  the checksum fails.   .http://en.bitcoin.it/wiki/Wallet_import_format &Encodes a private key into WIF format  !" !""None ,Data type representing an ECDSA signature. =StateT monad stack tracking the internal state of HMAC DRBG 3 pseudo random number generator using SHA-256. The  monad is  run with the / function by providing it a source of entropy. #Internal state of the  monad Run a 4 monad by providing it a source of entropy. You can  use , . or provide your own entropy source function. /dev/;urandom entropy source. This is only available on machines @ supporting it. This function is meant to be used together with . /dev/:random entropy source. This is only available on machines @ supporting it. This function is meant to be used together with . $Generate a new random  value from the  monad. This will M invoke the HMAC DRBG routine. Of the internal entropy pool of the HMAC DRBG 7 was stretched too much, this function will reseed it. Produce a new  randomly from the  monad. !Safely sign a message inside the  monad. The  monad will * generate a new nonce for each signature. BSign a message using ECDSA deterministic signatures as defined by  RFC 6979  "http://tools.ietf.org/html/rfc6979 Verify an ECDSA signature  2Returns True if the S component of a Signature is <= order/2. 4 Signatures need to pass this test to be canonical. %&'#$() *%&') %&'#$() *#None$ 5Data type representing an extended BIP32 public key.  &Depth in the tree of key derivations.  Fingerprint of the parent key. Key derivation index.  Chain code. *The public key of this extended key node. FData type representing an extended BIP32 private key. An extended key H is a node in a tree of key derivations. It has a depth in the tree, a C parent node and an index to differentiate it from other siblings. &Depth in the tree of key derivations. Fingerprint of the parent key. Key derivation index.  Chain code. +The private key of this extended key node. KBuild a BIP32 compatible extended private key from a bytestring. This will - produce a root node (depth=0 and parent=0). JDerive an extended public key from an extended private key. This function M will preserve the depth, parent, index and chaincode fields of the extended  private keys. GCompute a private, non-prime child key derivation. A private non-prime H derivation will allow the equivalent extended public key to derive the / public key for this child. Given a parent key m and a derivation index i,  this function will compute m/i/. LNon-prime derivations allow for more flexibility such as read-only wallets. J However, care must be taken not the leak both the parent extended public M key and one of the extended child private keys as this would compromise the  extended parent private key. ECompute a public, non-prime child key derivation. Given a parent key M  and a derivation index i, this function will compute M/i/. DCompute a prime child key derivation. Prime derivations can only be G computed for private keys. Prime derivations do not allow the parent H public key to derive the child public keys. However, they are safer as H a breach of the parent public key and child private keys does not lead ; to a breach of the parent private key. Given a parent key m and a  derivation index i, this function will compute m/i'/. KCyclic list of all private non-prime child key derivations of a parent key  starting from an offset index. JCyclic list of all public non-prime child key derivations of a parent key  starting from an offset index.  HCyclic list of all prime child key derivations of a parent key starting  from an offset index. !KCompute a public, non-prime subkey derivation for all of the parent public E keys in the input. This function will succeed only if the child key 1 derivations for all the parent keys are valid. FThis function is intended to be used in the context of multisignature C accounts. Parties exchanging their master public keys to create a I multisignature account can then individually generate all the receiving 9 multisignature addresses without further communication. "HCyclic list of all public, non-prime multisig key derivations of a list / of parent keys starting from an offset index. #EReturns True if the extended private key was derived through a prime  derivation. $DReturns True if the extended public key was derived through a prime  derivation. %FReturns the derivation index of this extended private key without the  prime bit set. &KReturns the derivation index of this extended public key without the prime  bit set. '8Computes the key identifier of an extended private key. (7Computes the key identifier of an extended public key. )9Computes the key fingerprint of an extended private key. *8Computes the key fingerprint of an extended public key. + Computer the  of an extended public key. ,JExports an extended private key to the BIP32 key export format (base 58). -IExports an extended public key to the BIP32 key export format (base 58). .IDecodes a BIP32 encoded extended private key. This function will fail if C invalid base 58 characters are detected or if the checksum fails. /HDecodes a BIP32 encoded extended public key. This function will fail if C invalid base 58 characters are detected or if the checksum fails. 0>Export an extended private key to WIF (Wallet Import Format). /    Extended parent private key Child derivation index Extended child private key Extended Parent public key Child derivation index Extended child public key Extended Parent private key Child derivation index Extended child private key  !$List of extended parent public keys Child key derivation index #List of extended child public keys "+,-#$%&'()*+,-./0./012)     !"+,#$%&'()*+,-./0#     !"+,-#$%&'()*+,-./0./012$None1&Computes the height of a merkle tree. 2KComputes the width of a merkle tree at a specific height. The transactions  are at height 0. 3DComputes the root of a merkle tree from a list of leaf node hashes. 47Computes the hash of a specific node in a merkle tree. 5Build a partial merkle tree. 6JExtracts the matching hashes from a partial merkle tree. This will return I the list of transaction hashes that have been included (set to True) in  a call to 5. 1%Number of transactions (leaf nodes). Height of the merkle tree. 2%Number of transactions (leaf nodes). .Height at which we want to compute the width. Width of the merkle tree. 3)List of transaction hashes (leaf nodes). Root of the merkle tree. 34'Height of the node in the merkle tree. 0Position of the node (0 for the leftmost node). 4Transaction hashes of the merkle tree (leaf nodes). ,Hash of the node at the specified position. 5BList of transactions hashes forming the leaves of the merkle tree F and a bool indicating if that transaction should be included in the  partial merkle tree. ;Flag bits (used to parse the partial merkle tree) and the  partial merkle tree. 456,Flag bits (produced by buildPartialMerkle). Partial merkle tree. 0Number of transaction at height 0 (leaf nodes). 9Merkle root and the list of matching transaction hashes. 123456 123345456%None7%Data type recording information on a Block. The hash of a block is F defined as the hash of this data structure. The block mining process G involves finding a partial hash collision by varying the nonce in the  7 and/ or additional randomness in the  CoinbaseTx of this  Block. Variations in the  CoinbaseTx" will result in different merkle  roots in the 7. 97Block version information, based on the version of the  software creating this block. :7Hash of the previous block (parent) referenced by this  block. ;7Root of the merkle tree of all transactions pertaining  to this block. <5Unix timestamp recording when this block was created =0The difficulty target being used for this block >7A random nonce used to generate this block. Additional 7 randomness is included in the coinbase transaction of  this block. ?#Compute the hash of a block header 789:;<=>?6 789:;<=>?789:;<=>?6&NoneB*Header information for this merkle block. C/Number of transactions in the block (including  unmatched transactions). D8Hashes in depth-first order. They are used to rebuild a  partial merkle tree. E9Flag bits, packed per 8 in a byte. Least significant bit 7 first. Flag bits are used to rebuild a partial merkle  tree. @ABCDE789:;@ABCDE@ABCDE789:;'NoneFThe F3 type is used to return a list of block headers in  response to a  GetHeaders message. H9List of block headers with respective transaction counts I7" type with a transaction count as  FGHI<FGHIFGHI<(NoneJ'Data type representing the header of a Message. All messages sent between ! nodes contain a message header. L2Network magic bytes. It is used to differentiate 8 messages meant for different bitcoin networks, such as  prodnet and testnet. M1Message command identifying the type of message.  included in the payload. NByte length of the payload. OChecksum of the payload. PA P is included in a J in order to identify F the type of message present in the payload. This allows the message K de-serialization code to know how to decode a particular message payload.  Every valid Message! constructor has a corresponding P  constructor. JKLMNOPQRSTUVWXYZ[\]^_`ab=>?@JKLMNOPQRSTUVWXYZ[\]^_`abJKLMNOPba`_^]\[ZYXWVUTSRQ=>?@)None c=Data type representing all of the operators allowed inside a . :Data type representing the type of an OP_PUSHDATA opcode. CThe next four bytes contains the number of bytes to be pushed onto  the stack BThe next two bytes contains the number of bytes to be pushed onto  the stack =The next byte contains the number of bytes to be pushed onto  the stack :The next opcode bytes is data to be pushed onto the stack JData type representing a transaction script. Scripts are defined as lists  of script operators c. Scripts are used to: ? Define the spending conditions in the output of a transaction ? Provide the spending signatures in the input of a transaction .List of script operators defining this script Deserialize a list of c inside the *+ monad. K This deserialization does not take into account the length of the script. Serialize a list of c inside the *, monad. I This serialization does not take into account the length of the script.  Decode a 8 from a ByteString by omiting the length of the script. / This is used to produce scripthash addresses.  Encode a 8 into a ByteString by omiting the length of the script. / This is used to produce scripthash addresses. GOptimally encode data using one of the 4 types of data pushing opcodes ,cdefghijklmnopqrstuvwxyz{|}~AB*cdefghijklmnopqrstuvwxyz{|}~ c~}|{zyxwvutsrqponmlkjihgfedAB-NoneJThe OutPoint is used inside a transaction input to reference the previous ) transaction output that it is spending. (The hash of the referenced transaction. 8The position of the specific output in the transaction. ! The first output position is 0. -Data type representing a transaction output. Transaction output value. 7Script specifying the conditions to spend this output. ,Data type representing a transaction input. <Reference the previous transaction output (hash + position) >Script providing the requirements of the previous transaction  output to spend those coins. 4Transaction version as defined by the sender of the B transaction. The intended use is for replacing transactions with @ new information before the transaction is included in a block. 5Data type representing the coinbase transaction of a Block . Coinbase L transactions are special types of transactions which are created by miners M when they find a new block. Coinbase transactions have no inputs. They have I outputs sending the newly generated bitcoins together with all the block's N fees to a bitcoin address (usually the miners address). Data can be embedded M in a Coinbase transaction which can be chosen by the miner of a block. This K data also typically contains some randomness which is used, together with 9 the nonce, to find a partial hash collision on the block's hash. !Transaction data format version. 'Previous outpoint. This is ignored for 3 coinbase transactions but preserved for computing  the correct txid. /Data embedded inside the coinbase transaction. 1Transaction sequence number. This is ignored for 3 coinbase transactions but preserved for computing  the correct txid. List of transaction outputs. -The block number of timestamp at which this  transaction is locked. -Data type representing a bitcoin transaction  Transaction data format version List of transaction inputs List of transaction outputs BThe block number of timestamp at which this transaction is locked $Computes the hash of a transaction. -Computes the hash of a coinbase transaction. ;Encodes a transaction hash as little endian in HEX format. K This is mostly used for displaying transaction ids. Internally, these ids E are handled as big endian but are transformed to little endian when  displaying them. 9Decodes a little endian transaction hash in HEX format. $CDEFGCDEFG.NoneIData type describing a block in the bitcoin protocol. Blocks are sent in  response to GetData1 messages that are requesting information from a  block hash. #Header information for this block. $Coinbase transaction of this block. /List of transactions pertaining to this block. HH/NoneThe = type is used to identify all the valid messages that can be 1 sent between bitcoin peers. Only values of type  will be accepted J by other bitcoin peers as bitcoin protocol messages need to be correctly 0 serialized with message headers. Serializing a  value will  include the J0 with the correct checksum value automatically.  No need to add the J separately. IINone  !"#$%&'()*+,-./012345789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~789:;<=>FGHI?c~}|{zyxwvutsrqponmlkjihgfed@ABCDE   !"2345#$%&'()*+,-./01JKLMNOPba`_^]\[ZYXWVUTSRQ0NoneJBuild a bloom filter that will provide the given false positive rate when 3 the given number of elements have been inserted. HInsert arbitrary data into a bloom filter. Returns the new bloom filter  containing the new data. LTests if some arbitrary data matches the filter. This can be either because J the data was inserted into the filter or because it is a false positive. ESets the bloom filter empty flag to True if the filter is empty, and ; the bloom filter full flag to True if the filter is full. (Tests if a given bloom filter is valid. JKLMNNumber of elements False positive rate ;A random nonce (tweak) for the hash function. It should be ? a random number but the secureness of the random value is not  of geat consequence. Bloom filter flags  Bloom filter OOriginal bloom filter New data to insert %Bloom filter containing the new data Bloom filter 9Data that will be checked against the given bloom filter ,Returns True if the data matches the filter Bloom filter to update Filter with updated flags Bloom filter to test "True if the given filter is valid   JKLMNO1NoneData type representing a  together with a . The  9 is serialized as one byte at the end of a regular ECDSA  3. All signatures in transaction inputs are of type . GData type representing the different ways a transaction can be signed. N When producing a signature, a hash of the transaction is used as the message  to be signed. The ' parameter controls which parts of the N transaction are used or ignored to produce the transaction hash. The idea is K that if some part of a transaction is not used to produce the transaction J hash, then you can change that part of the transaction after producing a 0 signature without invalidating that signature. IIf the anyoneCanPay flag is True, then only the current input is signed. M Otherwise, all of the inputs of a transaction are signed. The default value  for anyoneCanPay is False. 6Unrecognized sighash types will decode to SigUnknown. FSign only the output corresponding the the current transaction input. > You care about your own output in the transaction but you don't & care about any of the other outputs. ASign none of the outputs of a transaction. This allows anyone to / change any of the outputs of the transaction. FSign all of the outputs of a transaction (This is the default value). D Changing any of the outputs of the transaction will invalidate the  signature. Returns True if the  has the value SigAll. Returns True if the  has the value SigNone. Returns True if the  has the value SigSingle. Returns True if the  has the value SigUnknown.  Encodes a  to a 32 bit-long bytestring. ?Computes the hash that will be used for signing a transaction.  Serialize a  to a ByteString.  Decode a  from a ByteString.  Decode a 0 from a ByteString. This function will check if 3 the signature is canonical and fail if it is not. Transaction to sign. #Output script that is being spent. )Index of the input that is being signed. 0What parts of the transaction should be signed. Result hash to be signed. PQR PQR2NoneCData type describing an input script spending a pay to script hash E output. To spend a script hash output, an input script must provide F both a redeem script and a regular input script spending the redeem  script. (Input script spending the redeem script Redeem script GData type describing standard transaction input scripts. Input scripts N provide the signing data required to unlock the coins of the output they are  trying to spend. 'Spend the coins of a PayMulSig output. 'Spend the coins of a PayPKHash output. #Spend the coins of a PayPK output. IData type describing standard transaction output scripts. Output scripts H provide the conditions that must be fulfilled for someone to spend the  output coins. Pay to a script hash. Pay to multiple public keys. Pay to a public key hash. Pay to a public key. :Returns True if the script is a pay to public key output. ?Returns True if the script is a pay to public key hash output. DReturns True if the script is a pay to multiple public keys output. ;Returns true if the script is a pay to script hash output. IComputes a script address from a script output. This address can be used ! in a pay to script hash output. GSorts the public keys of a multisignature output in ascending order by L comparing their serialized representations. This feature allows for easier N multisignature account management as participants in a multisignature wallet H will blindly agree on an ordering of the public keys without having to  communicate.  Computes a  from a . The  is a list of  c can can be used to build a Tx. Tries to decode a  from a . This can fail if the ? script is not recognized as any of the standard output types. Transforms integers [1 .. 16] to c [OP_1 .. OP_16] Decode c [OP_1 .. OP_16] to integers [1 .. 16]. This functions  fails for other values of c GComputes the recipient address of a script. This function fails if the J script could not be decoded as a pay to public key hash or pay to script  hash. DComputes the sender address of a script. This function fails if the G script could not be decoded as a spend public key hash or script hash  input. ;Returns True if the input script is spending a public key. @Returns True if the input script is spending a public key hash. FReturns True if the input script is spending a multisignature output.  Computes a  from a . The  is a list of  c can can be used to build a Tx.  Decodes a  from a . This function fails if the 6 script can not be parsed as a standard script input.  Compute a  from a . The  is a list of  c can can be used to build a Tx. Tries to decode a  from a . This function fails 9 if the script can not be parsed as a script hash input. +ST) ST3None$HData type representing a public address key. They are generated through  non-prime derivation from an  . This is a useful feature for - read-only wallets. They are represented as M/i'/0/j in BIP32 notation ) for regular receiving addresses and by M/i'/1/j for internal (change)  addresses.  GData type representing a private address key. Private address keys are 2 generated through a non-prime derivation from an  . Non-prime N derivation is used so that the public account key can generate the receiving A payment addresses without knowledge of the private account key.   is represented as m/i'/0/j/& in BIP32 notation if it is a regular C receiving address. Internal (change) addresses are represented as  m/i'/1/j/>. Non-prime subtree 0 is used for regular receiving addresses : and non-prime subtree 1 for internal (change) addresses.  DData type representing a public account key. It is computed through  derivation from an !. It can not be derived from the  @ directly (property of prime derivation). It is represented as M/i'/ in  BIP32 notation.  * is used for generating receiving payment ( addresses without the knowledge of the . IData type representing a private account key. Account keys are generated  from a 4 through prime derivation. This guarantees that the  = will not be compromised if the account key is compromised.   is represented as m/i'/ in BIP32 notation. BData type representing an extended private key at the root of the D derivation tree. Master keys have depth 0 and no parents. They are  represented as m/ in BIP32 notation.  Create a  from a seed. Load a  from an !. This function will fail if the 8 extended private key does not have the properties of a . #Load a private account key from an . This function will fail if < the extended private key does not have the properties of a . "Load a public account key from an  . This function will fail if ; the extended public key does not have the properties of a  .  Computes an  from a  and a derivation index.  Computes an   from a  and a derivation index. Computes an external   from an  and a derivation  index. Computes an external  from an   and a derivation  index. Computes an internal   from an  and a derivation  index. Computes an internal  from an   and a derivation  index.  Cyclic list of all valid  derived from a  and  starting from an offset index. !Cyclic list of all valid   derived from a  and  starting from an offset index. ""Cyclic list of all valid external   derived from a  $ and starting from an offset index. #"Cyclic list of all valid external  derived from a   $ and starting from an offset index. $Cyclic list of all internal   derived from a  and  starting from an offset index. %Cyclic list of all internal  derived from a   and  starting from an offset index. & Computes an  from an . ',Computes an external base58 address from an   and a  derivation index. (+Computes an internal base58 addres from an   and a  derivation index. )<Cyclic list of all external base58 addresses derived from a   $ and starting from an offset index. *<Cyclic list of all internal base58 addresses derived from a   $ and starting from an offset index. +Same as ) with the list reversed. ,Same as * with the list reversed. -Computes a list of external  from an   , a list I of thirdparty multisig keys and a derivation index. This is useful for B computing the public keys associated with a derivation index for  multisig accounts. .Computes a list of internal  from an   , a list I of thirdparty multisig keys and a derivation index. This is useful for B computing the public keys associated with a derivation index for  multisig accounts. /+Cyclic list of all external multisignature  derivations  starting from an offset index. 0+Cyclic list of all internal multisignature  derivations  starting from an offset index. 15Computes an external base58 multisig address from an  , a : list of thirdparty multisig keys and a derivation index. 25Computes an internal base58 multisig address from an  , a : list of thirdparty multisig keys and a derivation index. 3CCyclic list of all external base58 multisig addresses derived from  an  9 and a list of thirdparty multisig keys. The list starts  at an offset index. 4CCyclic list of all internal base58 multisig addresses derived from  an  9 and a list of thirdparty multisig keys. The list starts  at an offset index. /      !"#$%&'()*+,-./01234/      !"#$%&'()*+,-./01234%      !"#$%&'()*+,-./01234None       !"#$%&'()*+,-./0123456      !"#$%&'()*+,-./01234 #%'),.0    $&(*+-/ !"   !   &"#$%'()*+,-./01234 123456None9Stratum Response Result data. H8Stratum Request data. To be placed inside JSON request. UBalance information. WConfirmed balance. XUnconfirmed balance. YBitcoin outpoint information. [ Coin data. \Transaction information. ] Output vale. ^;Transaction height and ID pair. Used in history responses. `Block height. aTransaction id. b#Session type for JSON-RPC conduit. c&Message from Stratum JSON-RPC server. d%Stratum result in JSON-RPC response. e(JSON-RPC response with Stratum payload. f,JSON-RPC notification with Stratum payload. g'JSON-RPC request with Stratum payload. h2Create a JSON-RPC request from a Stratum request. i=Parse result from JSON-RPC response into a Stratum response. j>Parse notification from JSON-RPC request into Stratum format. k4Helper function for Network.Haskoin.JSONRPC.Conduit G56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgUhStratum request data. JSON-RPC request id. !Returns JSON-RPC request object. i,StratumQuery used in corresponding request. Result from JSON-RPC response Returns Aeson parser. VWjRequest to parse. !Parser to Stratum request format kXYZ[\]^_`abcdd6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkgUVWXYZ[\]^_`a5678HRPONLJISTQQQMKQ9FDB@><:GECA?=;cfgedbhijkTRQPONILJMKSBECFGHD=>?@A9:;<687UVWXYZ[\ 56789FDB@><:GECA?=;HRPONLJISTQQQMKQUVWXYZ[\]^_`abcdefgUhiVWjkXYZ[\]^_`abcdNone=B4NonelIData type used to specify the signing parameters of a transaction input. H To sign an input, the previous output script, outpoint and sighash are J required. When signing a pay to script hash output, an additional redeem  script is required. m4Parameters for signing a pay to script hash output. nRedeem script. o8Parameters for signing a pay to public key hash output. pOutput script to spend. q.Reference to the transaction output to spend. rSignature type. s>A Coin is something that can be spent by a transaction and is C represented by a transaction output, an outpoint and optionally a  redeem script. uTransaction output vPrevious outpoint wRedeem script xFCoin selection algorithm for normal (non-multisig) transactions. This K function returns the selected coins together with the amount of change to 5 send back to yourself, taking the fee into account. yHCoin selection algorithm for multisignature transactions. This function L returns the selected coins together with the amount of change to send back J to yourself, taking the fee into account. This function assumes all the L coins are script hash outputs that send funds to a multisignature address. zIComputes an upper bound on the size of a transaction based on some known  properties of the transaction. {?Build a transaction by providing a list of outpoints as inputs = and a list of recipients addresses and amounts as outputs. |?Build a transaction by providing a list of outpoints as inputs  and a list of  and amounts as outputs. }FReturns True if all the inputs of a transactions are non-empty and if - all multisignature inputs are fully signed. ~$Sign a transaction by providing the l signing parameters and a < list of private keys. The signature is computed within the  monad 5 to generate the random signing nonce and within the g monad to add A information on wether the result was fully or partially signed. $Sign a transaction by providing the l signing paramters and H a list of private keys. The signature is computed deterministically as ; defined in RFC-6979. The signature is computed within the j monad H to add information on wether the result was fully or partially signed. eGDecides if a TxIn is complete. If the TxIn could not be decoded and it ( is not empty, we consider it complete. &flmnopqrstuvwxTarget price to pay. Fee price per 1000 bytes. List of coins to choose from. )Coin selection result and change amount. yTarget price to pay. Fee price per 1000 bytes. "Multisig parameters m of n (m,n). List of coins to choose from. )Coin selection result and change amount. ghiz&Number of regular transaction inputs. 5For every multisig input in the transaction, provide 6 the multisig parameters m of n (m,n) for that input. *Number of pay to public key hash outputs. &Number of pay to script hash outputs. %Upper bound on the transaction size. j{|k}~Transaction to sign SigInput signing parameters (List of private keys to use for signing Signed transaction lTransaction to sign SigInput signing parameters (List of private keys to use for signing Signed transaction menopqrstuvlmnopqrstuvwxyhiz{|}~tfl ompqrpqnrstuvwxyghizj{|k}~lmenopqrstuvNonelmnopqrstuvwxyz{|}~|{lompqrpqnr~}stuvwxyzw 5 5 6 7 7 8 9 9 : ; ; < = = > ? @ A B C D E F G H H I J J KLLMNOPPQRSTUVWXYZZ[\]]^_`abccdeffghijklmnopqrstuvwxyz{|}~! ! ! ! ! ! ! !!!!!!!!!!!!!!!!!"" "!"""#"$"%"&"'"(#)#)#*#+#,#-#.#/#/#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?#@#A#B#C#D#E#F#G#H#I#J#K#L#M$N$O$P$Q$R$S%T%T%U%V%W%X%Y%Z%[&\&\&]&^&_&`'a'a'b'c(d(d(e(f(g(h(i(j(k(l(m(n(o(p(q(r(s(t(u(v(w(x(y(z({)|)})~)))))))))))))))))))))))))))))))))))))))-------------------------------...../`//////////////////0000011111111111111111111222222222222222222222222222222 2 2 2 2 222222233333333333333333 3!3"3#3$3%3&3'3(3)3*3+3,3-3.3/303132333435363738393:3;3<3=3>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^__`abbcdeffghijklmnopqr4s4t4u4s4v4w4x4b4b4y4c4z4{4|4}4~4444                         !!!!!"""" "!"""#"$#%#&#'#(#)#*#+#,$-$.$/%0&1&2&3&4&5'6(7(8(9(:);)<-=->-?-@-A.B/C0D0E0F0G0H0I1J1K1L2M2NOPQRSTUVWXYZ[\]^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4pq haskoin-0.0.2Network.Haskoin.ProtocolNetwork.Haskoin.StratumNetwork.Haskoin.UtilNetwork.Haskoin.CryptoNetwork.Haskoin.ScriptNetwork.Haskoin.TransactionNetwork.Haskoin.Crypto.Curve#Network.Haskoin.Crypto.NumberTheory&Network.Haskoin.Util.Constants.TestnetNetwork.Haskoin.Protocol.VarInt"Network.Haskoin.Protocol.VarString$Network.Haskoin.Protocol.BloomFilterNetwork.Haskoin.Protocol.Ping'Network.Haskoin.Protocol.NetworkAddress Network.Haskoin.Protocol.VersionNetwork.Haskoin.Protocol.AlertNetwork.Haskoin.Protocol.AddrNetwork.Haskoin.Stratum.MessageNetwork.Haskoin.Util.ConstantsNetwork.Haskoin.Util.BuildMonadNetwork.Haskoin.Stratum.ConduitNetwork.Haskoin.Crypto.MnemonicNetwork.Haskoin.Crypto.BigWordNetwork.Haskoin.Crypto.HashNetwork.Haskoin.Crypto.Base58"Network.Haskoin.Protocol.GetBlocks#Network.Haskoin.Protocol.GetHeaders"Network.Haskoin.Protocol.InvVector Network.Haskoin.Protocol.GetDataNetwork.Haskoin.Protocol.Inv!Network.Haskoin.Protocol.NotFoundNetwork.Haskoin.Crypto.PointNetwork.Haskoin.Crypto.KeysNetwork.Haskoin.Crypto.ECDSA#Network.Haskoin.Crypto.ExtendedKeysNetwork.Haskoin.Crypto.Merkle$Network.Haskoin.Protocol.BlockHeader$Network.Haskoin.Protocol.MerkleBlock Network.Haskoin.Protocol.Headers&Network.Haskoin.Protocol.MessageHeaderNetwork.Haskoin.Protocol.Script Data.BinaryGetPutNetwork.Haskoin.Protocol.TxNetwork.Haskoin.Protocol.Block Network.Haskoin.Protocol.MessageNetwork.Haskoin.Crypto.BloomNetwork.Haskoin.Script.SigHashNetwork.Haskoin.Script.Parser%Network.Haskoin.Crypto.NormalizedKeys#Network.Haskoin.Transaction.BuilderVarInt getVarInt VarString getVarString FilterAdd getFilterData FilterLoadgetBloomFilter BloomFilter bloomData bloomFull bloomEmptybloomHashFuncs bloomTweak bloomFlags BloomFlagsBloomUpdateP2PubKeyOnlyBloomUpdateAllBloomUpdateNonePong pongNoncePing pingNonceNetworkAddress naServices naAddressnaPortVersionversionservices timestampaddrRecvaddrSendverNonce userAgent startHeightrelayAlert alertPayloadalertSignatureAddraddrListNetworkAddressTimeMessage MsgResponse MsgRequestResponse resResultresIdRequest reqMethod reqParamsreqIdErrorErrValerrValErrObjerrCodeerrMsgerrDataIdTxtIdtxtIdIntIdintId ResultValue MessageValue ResponseValue RequestValue ErrorValueResultMethoderrParseerrReqerrMeth errParams errInternalerrStrleftStr numericId addrPrefix scriptPrefix secretPrefixextPubKeyPrefixextSecretPrefix networkMagic genesisHeader maxBlockSize walletFilehaskoinUserAgentBuildT runBuildTBuildBroken runBrokenPartialCompleterunBuild isComplete isPartialisBroken eitherToBuild buildToEither guardPartial liftBuild toStrictBStoLazyBS stringToBS bsToString bsToInteger integerToBSbsToHexhexToBSencode'decode'runGet'runPut' decodeOrFail' runGetOrFail' fromDecode fromRunGetdecodeToEither decodeToMaybeisolateisRightisLeft fromRightfromLeft eitherToMaybe maybeToEither liftEither liftMaybe updateIndex matchTemplatefst3snd3lst3Session initSessionnewReqnewNotif reqSource resConduitSeed PassphraseMnemonicEntropyWordList toMnemonic fromMnemonic anyToSeedmnemonicToSeedenglishWord128Hash160Word160Hash256Word256Hash512Word512 CheckSum32hash512 hash512BShash256 hash256BShash160 hash160BS doubleHash256doubleHash256BSchksum32hmac512 hmac512BShmac256 hmac256BSsplit512join512 decodeCompact encodeCompact murmurHash3Address ScriptAddress PubKeyAddress getAddrHash encodeBase58 decodeBase58encodeBase58CheckdecodeBase58Check addrToBase58 base58ToAddr GetBlocksgetBlocksVersiongetBlocksLocatorgetBlocksHashStop BlockLocator GetHeadersgetHeadersVersion getHeadersBLgetHeadersHashStop InvVectorinvTypeinvHashInvTypeInvMerkleBlockInvBlockInvTxInvErrorGetData getDataListInvinvListNotFound notFoundListPrvKeyPrvKeyU prvKeyFieldNPubKeyPubKeyU pubKeyPoint isValidPubKey addPubKeys isPubKeyU derivePubKey pubKeyAddr isValidPrvKey makePrvKey makePrvKeyU fromPrvKey addPrvKeys isPrvKeyU putPrvKey getPrvKey getPrvKeyUfromWIFtoWIF SignatureSecretT withSource devURandom devRandom genPrvKeysignMsg detSignMsg verifySigisCanonicalHalfOrderXPubKey xPubDepth xPubParent xPubIndex xPubChainxPubKeyXPrvKey xPrvDepth xPrvParent xPrvIndex xPrvChainxPrvKey ChainCode makeXPrvKey deriveXPubKey prvSubKey pubSubKey primeSubKey prvSubKeys pubSubKeys primeSubKeys mulSigSubKey mulSigSubKeys xPrvIsPrime xPubIsPrime xPrvChild xPubChildxPrvIDxPubIDxPrvFPxPubFPxPubAddr xPrvExport xPubExport xPrvImport xPubImportxPrvWIFcalcTreeHeight calcTreeWidthbuildMerkleRootcalcHashbuildPartialMerkleextractMatches BlockHeader blockVersion prevBlock merkleRootblockTimestamp blockBitsbhNonceblockid MerkleBlock merkleHeadermerkleTotalTxnsmHashesmFlagsHeaders headersListBlockHeaderCount MessageHeader headMagicheadCmdheadPayloadSize headChecksumMessageCommandMCAlertMCPongMCPing MCFilterClear MCFilterAdd MCFilterLoad MCGetAddr MCHeadersMCBlockMCTx MCGetHeaders MCGetBlocks MCNotFound MCGetDataMCInvMCAddrMCVerAck MCVersionScriptOpOP_INVALIDOPCODE OP_PUBKEYOP_CHECKMULTISIG OP_CHECKSIG OP_HASH160OP_EQUALVERIFYOP_EQUALOP_DUP OP_VERIFYOP_16OP_15OP_14OP_13OP_12OP_11OP_10OP_9OP_8OP_7OP_6OP_5OP_4OP_3OP_2OP_1 OP_1NEGATEOP_0 OP_PUSHDATA PushDataTypeOPDATA4OPDATA2OPDATA1OPCODEScript scriptOps getScriptOps putScriptOpsdecodeScriptOpsencodeScriptOps opPushDataOutPoint outPointHash outPointIndexTxOutoutValue scriptOutputTxIn prevOutput scriptInput txInSequence CoinbaseTx cbVersion cbPrevOutputcbData cbInSequencecbOut cbLockTimeTx txVersiontxIntxOut txLockTimetxidcbid encodeTxid decodeTxidBlock blockHeaderblockCoinbaseTx blockTxnsMAlertMPongMPing MFilterClear MFilterAdd MFilterLoadMGetAddrMHeadersMBlockMTx MGetHeaders MGetBlocks MNotFoundMGetDataMInvMAddrMVerAckMVersion bloomCreate bloomInsert bloomContainsbloomUpdateEmptyFull bloomIsValid TxSignature txSignature sigHashTypeSigHash SigUnknown getSigCode SigSingleSigNoneSigAll anyoneCanPayisSigAll isSigNone isSigSingle isSigUnknownencodeSigHash32 txSigHash encodeSig decodeSigdecodeCanonicalSigScriptHashInput spendSHInput spendSHOutput RedeemScript ScriptInput SpendMulSiggetInputMulSigKeysgetInputMulSigRequired SpendPKHash getInputKeySpendPK getInputSig ScriptOutput PayScriptHash PayMulSiggetOutputMulSigKeysgetOutputMulSigRequired PayPKHashgetOutputAddressPayPKgetOutputPubKeyisPayPK isPayPKHash isPayMulSigisPayScriptHash scriptAddr sortMulSig encodeOutput decodeOutput intToScriptOp scriptOpToIntscriptRecipient scriptSender isSpendPK isSpendPKHash isSpendMulSig encodeInput decodeInputencodeScriptHashdecodeScriptHash AddrPubKey getAddrPubKey AddrPrvKey getAddrPrvKey AccPubKey getAccPubKey AccPrvKey getAccPrvKey MasterKey masterKeyKeyIndex makeMasterKey loadMasterKey loadPrvAcc loadPubAcc accPrvKey accPubKey extPrvKey extPubKey intPrvKey intPubKey accPrvKeys accPubKeys extPrvKeys extPubKeys intPrvKeys intPubKeysaddrextAddrintAddrextAddrsintAddrs extAddrs' intAddrs' extMulSigKey intMulSigKey extMulSigKeys intMulSigKeys extMulSigAddr intMulSigAddrextMulSigAddrsintMulSigAddrs StratumNotif NotifAddress notifAddrnotifAddrStatusStratumResponse AddrStatusstratumAddrStatus BroadcastId stratumTxid Transaction stratumTxAddressUnspent stratumCoinsAddressBalancestratumBalanceAddressHistorystratumAddrHist ServerVersionstratumServerVer StratumQuery SubAddressQueryBroadcastqueryTxQueryTx queryTxid QueryUnspent QueryBalance QueryHistory queryAddr QueryVersionqueryClientVer queryProtoVerBalance balConfirmedbalUnconfirmedCoin coinOutPoint coinTxHeight coinValueTxHeight txHeightBlock txHeightIdStratumSessionMessageStratum ResultStratumResponseStratum NotifStratumRequestStratum toRequest parseResult parseNotif newStratumReqSigInput SigInputSH sigRedeem sigDataOut sigDataOP sigDataSH coinTxOut coinRedeem chooseCoins chooseMSCoins guessTxSize buildAddrTxbuildTx isTxCompletesignTx detSignTxpairGcurvePcurveNintegerBintegerAextendedModGCD mulInverse$fBinaryVarInt$fBinaryVarString$fBinaryFilterAdd$fBinaryFilterLoad$fBinaryBloomFilter$fBinaryBloomFlags $fBinaryPong $fBinaryPing$fBinaryNetworkAddressgetBoolputBool$fBinaryVersion $fBinaryAlert $fBinaryAddr$fToJSONMessage$fFromJSONMessage$fToJSONResponse$fFromJSONResponse$fToJSONRequest$fFromJSONRequest $fToJSONError$fFromJSONError $fToJSONId $fFromJSONId mapBuildT$fMonadIOBuildT$fMonadTransBuildT $fMonadBuildT$fFunctorBuildT $fMonadBuild$fFunctorBuild $fShowBuild ParserMap RequestParserResponseParser decodeConduit stopOnNull decodeMsg decodeResbytestring-0.10.0.2Data.ByteString.Internal ByteString text-0.11.3.1Data.Text.InternalTextgetBitsghc-prim GHC.TypesIntChecksumcalcCSnumCS getIndices indicesToBS bsToIndicesFieldNFieldP BigWordMod rFromIntegerrBitSizeBigWordgetBigWordIntegerModNModPMod128Mod160Mod256Mod512toFieldNtoFieldPtoMod512toMod256toMod160toMod128inversePinverseNquadraticResidueisIntegerValidKey$fBinaryBigWord$fBinaryBigWord0$fBinaryBigWord1$fBinaryBigWord2$fBinaryBigWord3$fBinaryBigWord4$fFractionalBigWord$fFractionalBigWord0$fIntegralBigWord $fEnumBigWord $fRealBigWord$fBoundedBigWord $fBitsBigWord $fNumBigWord$fBigWordModModN$fBigWordModModP$fBigWordModMod128$fBigWordModMod160$fBigWordModMod256$fBigWordModMod512 PersStringNonce EntropyInput ProvidedDataAdditionalInput WorkingStaterun512run256run160 hmacDRBGUpd hmacDRBGNew hmacDRBGRsd hmacDRBGGen$fBinaryCheckSum32 b58Stringb58Datab58Data'b58b58' encodeBase58I$fToJSONAddress$fFromJSONAddress$fBinaryGetBlocks$fBinaryGetHeaders$fBinaryInvVector$fBinaryInvType$fBinaryGetData $fBinaryInv$fBinaryNotFoundPointInfPointcurveAcurveB makePoint makeInfPoint getAffinegetXgetY validatePoint isInfPointaddPoint doublePointmulPoint shamirsTrick $fEqPointcurveGgetUncompressed getCompressed$fBinaryPubKey $fEqPubKey SecretState nextSecretsigRsigS genKeyPair unsafeSignMsg$fBinarySignature cycleIndex cycleIndex' guardIndex getPadPrvKey putPadPrvKey bsPadPrvKey$fBinaryXPubKey$fBinaryXPrvKeyhash2traverseAndBuildtraverseAndExtract$fBinaryBlockHeaderdecodeMerkleFlagsencodeMerkleFlagssplitIn boolsToWord8$fBinaryMerkleBlock$fBinaryHeaders packCommand unpackCommand$fBinaryMessageHeader$fBinaryMessageCommand$fBinaryScriptOp$fBinaryScript$fBinaryOutPoint $fBinaryTxOut $fBinaryTxIn$fBinaryCoinbaseTx $fBinaryTx $fBinaryBlock$fBinaryMessage maxBloomSize maxHashFuncs ln2Squaredln2bitMask bloomHash buildInputs buildOutputs$fBinarySigHashmatchPayMulSigmatchSpendMulSigmethod parseHelperparseNotifHelper txidToJSONtxToJSONtxParse txidParse hashToJSON hashParse $fToJSONCoin$fFromJSONCoin$fToJSONTxHeight$fFromJSONTxHeight$fFromJSONBalance$fToJSONStratumQuery$fToJSONStratumNotif toBuildTxIn BuildFunction greedyAddgetFeegetMSFee guessMSSize liftSecretsignTxIn detSignTxIn orderSigInputdecodeSigInput buildTxInSH buildTxIn sigKeysSHsigKeysverifyTx countMulSigdecodeVerifySigInput