-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Web3 API for Haskell. -- -- Client library for Third Generation of Web. @package web3 @version 0.9.1.0 module Codec.Scale.Class -- | A class for encoding datatypes to SCALE format. -- -- If your compiler has support for the DeriveGeneric and -- DefaultSignatures language extensions (ghc >= -- 7.2.1), the put method will have default generic -- implementations. -- -- To use this option, simply add a deriving Generic -- clause to your datatype and declare a Encode instance for it -- without giving a definition for put. class Encode a put :: Encode a => Putter a put :: (Encode a, Generic a, Rep a ~ rep, GEncode rep) => Putter a -- | A class for encoding generically composed datatypes to SCALE format. class GEncode a gPut :: GEncode a => Putter a -- | A class for decoding datatypes from SCALE format. -- -- If your compiler has support for the DeriveGeneric and -- DefaultSignatures language extensions (ghc >= -- 7.2.1), the get method will have default generic -- implementations. -- -- To use this option, simply add a deriving Generic -- clause to your datatype and declare a Decode instance for it -- without giving a definition for get. class Decode a get :: Decode a => Get a get :: (Decode a, Generic a, Rep a ~ rep, GDecode rep) => Get a -- | A class for decoding generically composed datatypes from SCALE format. class GDecode a gGet :: GDecode a => Get a -- | Efficient general integer codec. module Codec.Scale.Compact -- | A "compact" or general integer encoding is sufficient for encoding -- large integers (up to 2**536) and is more efficient at encoding most -- values than the fixed-width version. newtype Compact a Compact :: a -> Compact a [unCompact] :: Compact a -> a instance GHC.Classes.Ord a => GHC.Classes.Ord (Codec.Scale.Compact.Compact a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Codec.Scale.Compact.Compact a) instance GHC.Show.Show a => GHC.Show.Show (Codec.Scale.Compact.Compact a) instance GHC.Real.Integral a => Codec.Scale.Class.Encode (Codec.Scale.Compact.Compact a) instance GHC.Real.Integral a => Codec.Scale.Class.Decode (Codec.Scale.Compact.Compact a) -- | This module defines generic codec instances for data structures -- (including tuples) and enums (tagged-unions in Rust). module Codec.Scale.Generic instance forall k (as :: [[k]]) (a :: [k]). Codec.Scale.Generic.EnumParser as => Codec.Scale.Generic.EnumParser (a : as) instance Codec.Scale.Generic.EnumParser '[] instance forall k (f :: k -> *) (xs :: [k]) (ys :: [k]) (xss :: [[k]]). (Codec.Scale.Class.GDecode (Data.SOP.NP.NP f xs), Codec.Scale.Class.GDecode (Data.SOP.NP.NP f ys), Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Codec.Scale.Class.GDecode (Data.SOP.NP.NP f)) xss, Codec.Scale.Generic.EnumParser xss) => Codec.Scale.Class.GDecode (Data.SOP.NS.SOP f (xs : ys : xss)) instance forall k (f :: k -> *) (xs :: [k]) (ys :: [k]) (xss :: [[k]]). (Codec.Scale.Class.GEncode (Data.SOP.NP.NP f xs), Codec.Scale.Class.GEncode (Data.SOP.NP.NP f ys), Data.SOP.Constraint.All (Data.SOP.Constraint.Compose Codec.Scale.Class.GEncode (Data.SOP.NP.NP f)) xss) => Codec.Scale.Class.GEncode (Data.SOP.NS.SOP f (xs : ys : xss)) instance forall k (f :: k -> *) (xs :: [k]). Codec.Scale.Class.GEncode (Data.SOP.NP.NP f xs) => Codec.Scale.Class.GEncode (Data.SOP.NS.SOP f '[xs]) instance (Codec.Scale.Class.Encode a, Codec.Scale.Class.GEncode (Data.SOP.NP.NP Data.SOP.BasicFunctors.I as)) => Codec.Scale.Class.GEncode (Data.SOP.NP.NP Data.SOP.BasicFunctors.I (a : as)) instance Codec.Scale.Class.GEncode (Data.SOP.NP.NP Data.SOP.BasicFunctors.I '[]) instance forall k (f :: k -> *) (as :: [k]). Codec.Scale.Class.GDecode (Data.SOP.NP.NP f as) => Codec.Scale.Class.GDecode (Data.SOP.NS.SOP f '[as]) instance (Codec.Scale.Class.Decode a, Codec.Scale.Class.GDecode (Data.SOP.NP.NP Data.SOP.BasicFunctors.I as)) => Codec.Scale.Class.GDecode (Data.SOP.NP.NP Data.SOP.BasicFunctors.I (a : as)) instance Codec.Scale.Class.GDecode (Data.SOP.NP.NP Data.SOP.BasicFunctors.I '[]) -- | This type helps to encode/decode singleton Rust enums like: `enum Enum -- { Data { some_data: u32 } }` module Codec.Scale.SingletonEnum -- | Haskell don't permit to make Rust-like enum type with only one -- element. For this reason it is impossible to make generic parser for -- singleton enum type. This type helps to parse Rust encoded singleton -- enums. newtype SingletonEnum a SingletonEnum :: a -> SingletonEnum a [unSingletonEnum] :: SingletonEnum a -> a instance Codec.Scale.Class.Encode a => Codec.Scale.Class.Encode (Codec.Scale.SingletonEnum.SingletonEnum a) instance Codec.Scale.Class.Decode a => Codec.Scale.Class.Decode (Codec.Scale.SingletonEnum.SingletonEnum a) -- | This type helps to skip fields in encoded data type. module Codec.Scale.Skip -- | This type hide filed from encoding context. It's useful in cases when -- serialization impossible or not needed. For decoding wrapped type -- should have Default instance. newtype Skip a Skip :: a -> Skip a [unSkip] :: Skip a -> a instance GHC.Show.Show a => GHC.Show.Show (Codec.Scale.Skip.Skip a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Codec.Scale.Skip.Skip a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Codec.Scale.Skip.Skip a) instance Codec.Scale.Class.Encode (Codec.Scale.Skip.Skip a) instance Data.Default.Class.Default a => Codec.Scale.Class.Decode (Codec.Scale.Skip.Skip a) instance Data.Default.Class.Default a => Data.Default.Class.Default (Codec.Scale.Skip.Skip a) -- | It contains template haskell SCALE helper functions. module Codec.Scale.TH tupleInstances :: Int -> DecsQ -- | Particular core type instances. module Codec.Scale.Core -- | A "compact" or general integer encoding is sufficient for encoding -- large integers (up to 2**536) and is more efficient at encoding most -- values than the fixed-width version. newtype Compact a Compact :: a -> Compact a [unCompact] :: Compact a -> a instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2) => Codec.Scale.Class.Decode (a1, a2) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2) => Codec.Scale.Class.Encode (a1, a2) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3) => Codec.Scale.Class.Decode (a1, a2, a3) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3) => Codec.Scale.Class.Encode (a1, a2, a3) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4) => Codec.Scale.Class.Decode (a1, a2, a3, a4) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4) => Codec.Scale.Class.Encode (a1, a2, a3, a4) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9, Codec.Scale.Class.Decode a10) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9, Codec.Scale.Class.Encode a10) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9, Codec.Scale.Class.Decode a10, Codec.Scale.Class.Decode a11) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9, Codec.Scale.Class.Encode a10, Codec.Scale.Class.Encode a11) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9, Codec.Scale.Class.Decode a10, Codec.Scale.Class.Decode a11, Codec.Scale.Class.Decode a12) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9, Codec.Scale.Class.Encode a10, Codec.Scale.Class.Encode a11, Codec.Scale.Class.Encode a12) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9, Codec.Scale.Class.Decode a10, Codec.Scale.Class.Decode a11, Codec.Scale.Class.Decode a12, Codec.Scale.Class.Decode a13) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9, Codec.Scale.Class.Encode a10, Codec.Scale.Class.Encode a11, Codec.Scale.Class.Encode a12, Codec.Scale.Class.Encode a13) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9, Codec.Scale.Class.Decode a10, Codec.Scale.Class.Decode a11, Codec.Scale.Class.Decode a12, Codec.Scale.Class.Decode a13, Codec.Scale.Class.Decode a14) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9, Codec.Scale.Class.Encode a10, Codec.Scale.Class.Encode a11, Codec.Scale.Class.Encode a12, Codec.Scale.Class.Encode a13, Codec.Scale.Class.Encode a14) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9, Codec.Scale.Class.Decode a10, Codec.Scale.Class.Decode a11, Codec.Scale.Class.Decode a12, Codec.Scale.Class.Decode a13, Codec.Scale.Class.Decode a14, Codec.Scale.Class.Decode a15) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9, Codec.Scale.Class.Encode a10, Codec.Scale.Class.Encode a11, Codec.Scale.Class.Encode a12, Codec.Scale.Class.Encode a13, Codec.Scale.Class.Encode a14, Codec.Scale.Class.Encode a15) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9, Codec.Scale.Class.Decode a10, Codec.Scale.Class.Decode a11, Codec.Scale.Class.Decode a12, Codec.Scale.Class.Decode a13, Codec.Scale.Class.Decode a14, Codec.Scale.Class.Decode a15, Codec.Scale.Class.Decode a16) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9, Codec.Scale.Class.Encode a10, Codec.Scale.Class.Encode a11, Codec.Scale.Class.Encode a12, Codec.Scale.Class.Encode a13, Codec.Scale.Class.Encode a14, Codec.Scale.Class.Encode a15, Codec.Scale.Class.Encode a16) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9, Codec.Scale.Class.Decode a10, Codec.Scale.Class.Decode a11, Codec.Scale.Class.Decode a12, Codec.Scale.Class.Decode a13, Codec.Scale.Class.Decode a14, Codec.Scale.Class.Decode a15, Codec.Scale.Class.Decode a16, Codec.Scale.Class.Decode a17) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9, Codec.Scale.Class.Encode a10, Codec.Scale.Class.Encode a11, Codec.Scale.Class.Encode a12, Codec.Scale.Class.Encode a13, Codec.Scale.Class.Encode a14, Codec.Scale.Class.Encode a15, Codec.Scale.Class.Encode a16, Codec.Scale.Class.Encode a17) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9, Codec.Scale.Class.Decode a10, Codec.Scale.Class.Decode a11, Codec.Scale.Class.Decode a12, Codec.Scale.Class.Decode a13, Codec.Scale.Class.Decode a14, Codec.Scale.Class.Decode a15, Codec.Scale.Class.Decode a16, Codec.Scale.Class.Decode a17, Codec.Scale.Class.Decode a18) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9, Codec.Scale.Class.Encode a10, Codec.Scale.Class.Encode a11, Codec.Scale.Class.Encode a12, Codec.Scale.Class.Encode a13, Codec.Scale.Class.Encode a14, Codec.Scale.Class.Encode a15, Codec.Scale.Class.Encode a16, Codec.Scale.Class.Encode a17, Codec.Scale.Class.Encode a18) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9, Codec.Scale.Class.Decode a10, Codec.Scale.Class.Decode a11, Codec.Scale.Class.Decode a12, Codec.Scale.Class.Decode a13, Codec.Scale.Class.Decode a14, Codec.Scale.Class.Decode a15, Codec.Scale.Class.Decode a16, Codec.Scale.Class.Decode a17, Codec.Scale.Class.Decode a18, Codec.Scale.Class.Decode a19) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9, Codec.Scale.Class.Encode a10, Codec.Scale.Class.Encode a11, Codec.Scale.Class.Encode a12, Codec.Scale.Class.Encode a13, Codec.Scale.Class.Encode a14, Codec.Scale.Class.Encode a15, Codec.Scale.Class.Encode a16, Codec.Scale.Class.Encode a17, Codec.Scale.Class.Encode a18, Codec.Scale.Class.Encode a19) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) instance (Codec.Scale.Class.Decode a1, Codec.Scale.Class.Decode a2, Codec.Scale.Class.Decode a3, Codec.Scale.Class.Decode a4, Codec.Scale.Class.Decode a5, Codec.Scale.Class.Decode a6, Codec.Scale.Class.Decode a7, Codec.Scale.Class.Decode a8, Codec.Scale.Class.Decode a9, Codec.Scale.Class.Decode a10, Codec.Scale.Class.Decode a11, Codec.Scale.Class.Decode a12, Codec.Scale.Class.Decode a13, Codec.Scale.Class.Decode a14, Codec.Scale.Class.Decode a15, Codec.Scale.Class.Decode a16, Codec.Scale.Class.Decode a17, Codec.Scale.Class.Decode a18, Codec.Scale.Class.Decode a19, Codec.Scale.Class.Decode a20) => Codec.Scale.Class.Decode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) instance (Codec.Scale.Class.Encode a1, Codec.Scale.Class.Encode a2, Codec.Scale.Class.Encode a3, Codec.Scale.Class.Encode a4, Codec.Scale.Class.Encode a5, Codec.Scale.Class.Encode a6, Codec.Scale.Class.Encode a7, Codec.Scale.Class.Encode a8, Codec.Scale.Class.Encode a9, Codec.Scale.Class.Encode a10, Codec.Scale.Class.Encode a11, Codec.Scale.Class.Encode a12, Codec.Scale.Class.Encode a13, Codec.Scale.Class.Encode a14, Codec.Scale.Class.Encode a15, Codec.Scale.Class.Encode a16, Codec.Scale.Class.Encode a17, Codec.Scale.Class.Encode a18, Codec.Scale.Class.Encode a19, Codec.Scale.Class.Encode a20) => Codec.Scale.Class.Encode (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) instance Codec.Scale.Class.Encode a => Codec.Scale.Class.Encode [a] instance Codec.Scale.Class.Decode a => Codec.Scale.Class.Decode [a] instance (Codec.Scale.Class.Encode a, Data.Vector.Unboxed.Base.Unbox a) => Codec.Scale.Class.Encode (Data.Vector.Unboxed.Base.Vector a) instance (Codec.Scale.Class.Decode a, Data.Vector.Unboxed.Base.Unbox a) => Codec.Scale.Class.Decode (Data.Vector.Unboxed.Base.Vector a) instance Codec.Scale.Class.Encode (Data.Vector.Unboxed.Base.Vector Data.Bit.Internal.Bit) instance Codec.Scale.Class.Decode (Data.Vector.Unboxed.Base.Vector Data.Bit.Internal.Bit) instance Codec.Scale.Class.Encode GHC.Types.Bool instance Codec.Scale.Class.Decode GHC.Types.Bool instance Codec.Scale.Class.Encode GHC.Word.Word8 instance Codec.Scale.Class.Decode GHC.Word.Word8 instance Codec.Scale.Class.Encode GHC.Word.Word16 instance Codec.Scale.Class.Decode GHC.Word.Word16 instance Codec.Scale.Class.Encode GHC.Word.Word32 instance Codec.Scale.Class.Decode GHC.Word.Word32 instance Codec.Scale.Class.Encode GHC.Word.Word64 instance Codec.Scale.Class.Decode GHC.Word.Word64 instance Codec.Scale.Class.Encode GHC.Int.Int8 instance Codec.Scale.Class.Decode GHC.Int.Int8 instance Codec.Scale.Class.Encode GHC.Int.Int16 instance Codec.Scale.Class.Decode GHC.Int.Int16 instance Codec.Scale.Class.Encode GHC.Int.Int32 instance Codec.Scale.Class.Decode GHC.Int.Int32 instance Codec.Scale.Class.Encode GHC.Int.Int64 instance Codec.Scale.Class.Decode GHC.Int.Int64 instance Codec.Scale.Class.Encode a => Codec.Scale.Class.Encode (GHC.Maybe.Maybe a) instance Codec.Scale.Class.Decode a => Codec.Scale.Class.Decode (GHC.Maybe.Maybe a) instance Codec.Scale.Class.Encode (GHC.Maybe.Maybe GHC.Types.Bool) instance Codec.Scale.Class.Decode (GHC.Maybe.Maybe GHC.Types.Bool) instance (Codec.Scale.Class.Encode a, Codec.Scale.Class.Encode b) => Codec.Scale.Class.Encode (Data.Either.Either a b) instance (Codec.Scale.Class.Decode a, Codec.Scale.Class.Decode b) => Codec.Scale.Class.Decode (Data.Either.Either a b) -- | The SCALE (Simple Concatenated Aggregate Little-Endian) Codec is a -- lightweight, efficient, binary serialization and deserialization -- codec. -- -- It is designed for high-performance, copy-free encoding and decoding -- of data in resource-constrained execution contexts, like the Substrate -- runtime. It is not self-describing in any way and assumes the decoding -- context has all type knowledge about the encoded data. module Codec.Scale -- | Encode datatype to SCALE format. encode :: (Encode a, ByteArray ba) => a -> ba -- | Decode datatype from SCALE format. decode :: (ByteArrayAccess ba, Decode a) => ba -> Either String a -- | Generic driven version of encode encode' :: (Generic a, Rep a ~ rep, GEncode rep, ByteArray ba) => a -> ba -- | Generic driven version of decode decode' :: (Generic a, Rep a ~ rep, GDecode rep, ByteArrayAccess ba) => ba -> Either String a -- | A class for encoding datatypes to SCALE format. -- -- If your compiler has support for the DeriveGeneric and -- DefaultSignatures language extensions (ghc >= -- 7.2.1), the put method will have default generic -- implementations. -- -- To use this option, simply add a deriving Generic -- clause to your datatype and declare a Encode instance for it -- without giving a definition for put. class Encode a -- | A class for decoding datatypes from SCALE format. -- -- If your compiler has support for the DeriveGeneric and -- DefaultSignatures language extensions (ghc >= -- 7.2.1), the get method will have default generic -- implementations. -- -- To use this option, simply add a deriving Generic -- clause to your datatype and declare a Decode instance for it -- without giving a definition for get. class Decode a -- | ECDSA module helper functions. module Crypto.Ecdsa.Utils -- | Import ECDSA private key from byte array. -- -- Input array should have 32 byte length. importKey :: ByteArrayAccess privateKey => privateKey -> PrivateKey -- | Export private key to byte array (32 byte length). exportKey :: ByteArray privateKey => PrivateKey -> privateKey -- | Get public key appropriate to private key. -- -- WARNING: Vulnerable to timing attacks. derivePubKey :: PrivateKey -> PublicKey -- | Export public key to byte array (64 byte length). exportPubKey :: ByteArray publicKey => PublicKey -> publicKey -- | Ethereum crypto module helper functions. module Crypto.Ethereum.Utils -- | Keccak 256 hash function. keccak256 :: (ByteArrayAccess bin, ByteArray bout) => bin -> bout -- | NIST standardized number-theoretically secure random number generator. -- https://csrc.nist.gov/csrc/media/events/random-number-generation-workshop-2004/documents/hashblockcipherdrbg.pdf -- -- XXX: This algorithm requires reseed after 2^48 iterations. -- --
-- Inspired by https://github.com/TomMD/DRBG and https://github.com/indutny/hmac-drbg. --module Crypto.Random.HmacDrbg -- | HMAC Deterministic Random Bytes Generator. data HmacDrbg a -- | Initialize HMAC-DRBG by seed. initialize :: (ByteArray seed, HashAlgorithm a) => seed -> HmacDrbg a instance GHC.Classes.Eq (Crypto.Random.HmacDrbg.HmacDrbg a) instance Crypto.Hash.Types.HashAlgorithm a => Crypto.Random.Types.DRG (Crypto.Random.HmacDrbg.HmacDrbg a) -- | Recoverable ECC signature support. module Crypto.Ecdsa.Signature -- | Sign arbitrary data by given private key. -- -- WARNING: Vulnerable to timing attacks. sign :: ByteArrayAccess bin => PrivateKey -> bin -> (Integer, Integer, Word8) -- | Pack recoverable signature as byte array (65 byte length). pack :: ByteArray rsv => (Integer, Integer, Word8) -> rsv -- | Unpack recoverable signature from byte array. -- -- Input array should have 65 byte length. unpack :: ByteArrayAccess rsv => rsv -> (Integer, Integer, Word8) -- | Recoverable Ethereum signature support. module Crypto.Ethereum.Signature -- | Ethereum standard hashed message. -- -- The data will be UTF-8 HEX decoded and enveloped as follows: -- "x19Ethereum Signed Message:n" + message.length + message and hashed -- using keccak256. hashMessage :: ByteArrayAccess message => message -> Digest Keccak_256 -- | Make Ethereum standard signature. -- -- The message is before enveloped as follows: "x19Ethereum Signed -- Message:n" + message.length + message -- -- WARNING: Vulnerable to timing attacks. signMessage :: (ByteArrayAccess message, ByteArray rsv) => PrivateKey -> message -> rsv -- | Sign Ethereum transaction. -- -- WARNING: Vulnerable to timing attacks. signTransaction :: ByteArray ba => (Maybe (Integer, Integer, Word8) -> ba) -> PrivateKey -> ba -- | Ethereum cryptography primitives. module Crypto.Ethereum -- | ECDSA Private Key. data PrivateKey -- | ECDSA Public Key. data PublicKey -- | Import ECDSA private key from byte array. -- -- Input array should have 32 byte length. importKey :: ByteArrayAccess privateKey => privateKey -> PrivateKey -- | Get public key appropriate to private key. -- -- WARNING: Vulnerable to timing attacks. derivePubKey :: PrivateKey -> PublicKey -- | Make Ethereum standard signature. -- -- The message is before enveloped as follows: "x19Ethereum Signed -- Message:n" + message.length + message -- -- WARNING: Vulnerable to timing attacks. signMessage :: (ByteArrayAccess message, ByteArray rsv) => PrivateKey -> message -> rsv -- | Keccak 256 hash function. keccak256 :: (ByteArrayAccess bin, ByteArray bout) => bin -> bout -- | Hex string data type and useful functions. module Data.ByteArray.HexString -- | Represents a Hex string. Guarantees that all characters it contains -- are valid hex characters. newtype HexString HexString :: ByteString -> HexString [unHexString] :: HexString -> ByteString -- | Smart constructor which trims '0x' and validates length is even. hexString :: ByteArray ba => ba -> Either String HexString -- | Reads a raw bytes and converts to hex representation. fromBytes :: ByteArrayAccess ba => ba -> HexString -- | Access to the raw bytes of HexString. toBytes :: ByteArray ba => HexString -> ba -- | Access to a Text representation of the HexString toText :: HexString -> Text instance Data.ByteArray.Types.ByteArray Data.ByteArray.HexString.HexString instance Data.ByteArray.Types.ByteArrayAccess Data.ByteArray.HexString.HexString instance GHC.Base.Monoid Data.ByteArray.HexString.HexString instance GHC.Base.Semigroup Data.ByteArray.HexString.HexString instance GHC.Classes.Ord Data.ByteArray.HexString.HexString instance GHC.Classes.Eq Data.ByteArray.HexString.HexString instance GHC.Show.Show Data.ByteArray.HexString.HexString instance Data.String.IsString Data.ByteArray.HexString.HexString instance Data.Aeson.Types.FromJSON.FromJSON Data.ByteArray.HexString.HexString instance Data.Aeson.Types.ToJSON.ToJSON Data.ByteArray.HexString.HexString -- | Ethereum Secret Storage implementation. Spec -- https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition. module Crypto.Ethereum.Keyfile -- | Secret Storage representation on memory. data EncryptedKey EncryptedKey :: !UUID -> !Int -> !Cipher -> !Kdf -> !HexString -> EncryptedKey -- | Random key ID [encryptedKeyId] :: EncryptedKey -> !UUID -- | Version (suppoted version 3 only) [encryptedKeyVersion] :: EncryptedKey -> !Int -- | Cipher (supported AES-128-CTR only) [encryptedKeyCipher] :: EncryptedKey -> !Cipher -- | Key derivation function [encryptedKeyKdf] :: EncryptedKey -> !Kdf -- | MAC [encryptedKeyMac] :: EncryptedKey -> !HexString -- | Cipher parameters. data Cipher Aes128Ctr :: !IV AES128 -> !HexString -> Cipher [cipherIv] :: Cipher -> !IV AES128 [cipherText] :: Cipher -> !HexString -- | Key derivation function parameters and salt. data Kdf Pbkdf2 :: !Parameters -> !HexString -> Kdf Scrypt :: !Parameters -> !HexString -> Kdf -- | Decrypt Ethereum private key. -- -- Typically Web3 Secret Storage is JSON-encoded. EncryptedKey -- data type has FromJSON instance to helps decode it from -- JSON-encoded string or file. -- --
-- let decryptJSON pass = flip decrypt pass <=< decode --decrypt :: (ByteArrayAccess password, ByteArray privateKey) => EncryptedKey -> password -> Maybe privateKey -- | Encrypt Ethereum private key. -- --
-- let encryptJSON pass key = encode $ encrypt key pass --encrypt :: (ByteArray privateKey, ByteArrayAccess password, MonadRandom m) => privateKey -> password -> m EncryptedKey instance GHC.Classes.Eq Crypto.Ethereum.Keyfile.EncryptedKey instance GHC.Show.Show Crypto.Ethereum.Keyfile.EncryptedKey instance Data.Aeson.Types.FromJSON.FromJSON Crypto.Ethereum.Keyfile.EncryptedKey instance Data.Aeson.Types.ToJSON.ToJSON Crypto.Ethereum.Keyfile.EncryptedKey -- | The Application Binary Interface is the standard way to interact with -- contracts in the Ethereum ecosystem, both from outside the blockchain -- and for contract-to-contract interaction. Data is encoded according to -- its type, as described in this specification. The encoding is not self -- describing and thus requires a schema in order to decode. module Data.Solidity.Abi -- | A class for abi encoding datatype descriptions class AbiType a isDynamic :: AbiType a => Proxy a -> Bool -- | A class for encoding datatypes to their abi encoding -- -- If your compiler has support for the DeriveGeneric and -- DefaultSignatures language extensions (ghc >= -- 7.2.1), the abiPut method will have default generic -- implementations. -- -- To use this option, simply add a deriving Generic -- clause to your datatype and declare a AbiPut instance for it -- without giving a definition for abiPut. class AbiType a => AbiPut a abiPut :: AbiPut a => Putter a abiPut :: (AbiPut a, Generic a, Rep a ~ rep, GenericAbiPut rep) => Putter a -- | A class for encoding generically composed datatypes to their abi -- encoding class GenericAbiPut a gAbiPut :: GenericAbiPut a => Putter a -- | A class for decoding datatypes from their abi encoding -- -- If your compiler has support for the DeriveGeneric and -- DefaultSignatures language extensions (ghc >= -- 7.2.1), the abiGet method will have default generic -- implementations. -- -- To use this option, simply add a deriving Generic -- clause to your datatype and declare a AbiGet instance for it -- without giving a definition for abiGet. class AbiType a => AbiGet a abiGet :: AbiGet a => Get a abiGet :: (AbiGet a, Generic a, Rep a ~ rep, GenericAbiGet rep) => Get a -- | A class for decoding generically composed datatypes from their abi -- encoding class GenericAbiGet a gAbiGet :: GenericAbiGet a => Get a -- | This module is internal, the purpose is to define helper classes and -- types to assist in event decoding. The user of this library should -- have no need to use this directly in application code. module Data.Solidity.Event.Internal data HList :: [Type] -> Type [HNil] :: HList '[] [:<] :: a -> HList as -> HList (a : as) infixr 0 :< -- | Generic representation to HList representation class HListRep a xs | a -> xs, a -> xs toHList :: HListRep a xs => a -> HList xs fromHList :: HListRep a xs => HList xs -> a -- | Sort a Tagged HList class Sort (xs :: [Type]) where { type family Sort' xs :: [Type]; } sort :: Sort xs => HList xs -> HList (Sort' xs) class Insert (x :: Type) (xs :: [Type]) where { type family Insert' x xs :: [Type]; } insert :: Insert x xs => x -> HList xs -> HList (Insert' x xs) class InsertCmp (b :: Ordering) (x :: Type) (y :: Type) (ys :: [Type]) where { type family InsertCmp' b x y ys :: [Type]; } insertCmp :: InsertCmp b x y ys => Proxy (b :: Ordering) -> x -> y -> HList ys -> HList (InsertCmp' b x y ys) -- | Unwrap all the Tagged items in an HList class UnTag t where { type family UnTag' t :: [Type]; } unTag :: UnTag t => HList t -> HList (UnTag' t) class HListMerge (as :: [Type]) (bs :: [Type]) where { type family Concat as bs :: [Type]; } mergeHList :: HListMerge as bs => HList as -> HList bs -> HList (Concat as bs) class HListMergeSort as bs where { type family MergeSort' as bs :: [Type]; } mergeSortHList :: HListMergeSort as bs => HList as -> HList bs -> HList (MergeSort' as bs) class MergeIndexedArguments as bs where { type family MergeIndexedArguments' as bs :: [Type]; } mergeIndexedArguments :: MergeIndexedArguments as bs => HList as -> HList bs -> HList (MergeIndexedArguments' as bs) instance (Data.Solidity.Event.Internal.HListMergeSort as bs, Data.Solidity.Event.Internal.MergeSort' as bs Data.Type.Equality.~ cs, Data.Solidity.Event.Internal.UnTag cs, Data.Solidity.Event.Internal.UnTag cs' Data.Type.Equality.~ ds) => Data.Solidity.Event.Internal.MergeIndexedArguments as bs instance (Data.Solidity.Event.Internal.HListMerge as bs, Data.Solidity.Event.Internal.Concat as bs Data.Type.Equality.~ cs, Data.Solidity.Event.Internal.Sort cs, Data.Solidity.Event.Internal.Sort' cs Data.Type.Equality.~ cs') => Data.Solidity.Event.Internal.HListMergeSort as bs instance Data.Solidity.Event.Internal.HListMerge '[] bs instance Data.Solidity.Event.Internal.HListMerge as bs => Data.Solidity.Event.Internal.HListMerge (a : as) bs instance Data.Solidity.Event.Internal.UnTag '[] instance forall k (ts :: [*]) (n :: k) a. Data.Solidity.Event.Internal.UnTag ts => Data.Solidity.Event.Internal.UnTag (Data.Tagged.Tagged n a : ts) instance Data.Solidity.Event.Internal.InsertCmp (GHC.TypeNats.CmpNat n m) (Data.Tagged.Tagged n x) (Data.Tagged.Tagged m y) ys => Data.Solidity.Event.Internal.Insert (Data.Tagged.Tagged n x) (Data.Tagged.Tagged m y : ys) instance Data.Solidity.Event.Internal.InsertCmp 'GHC.Types.LT x y ys instance Data.Solidity.Event.Internal.Insert x ys => Data.Solidity.Event.Internal.InsertCmp 'GHC.Types.GT x y ys instance (Data.Solidity.Event.Internal.Sort xs, Data.Solidity.Event.Internal.Insert x (Data.Solidity.Event.Internal.Sort' xs)) => Data.Solidity.Event.Internal.Sort (x : xs) instance Data.Solidity.Event.Internal.Insert x '[] instance Data.Solidity.Event.Internal.Sort '[] instance Data.Solidity.Event.Internal.HListRep (Data.SOP.NP.NP Data.SOP.BasicFunctors.I '[]) '[] instance Data.Solidity.Event.Internal.HListRep (Data.SOP.NP.NP Data.SOP.BasicFunctors.I as) as => Data.Solidity.Event.Internal.HListRep (Data.SOP.NP.NP Data.SOP.BasicFunctors.I (a : as)) (a : as) instance forall k (f :: k -> *) (as' :: [k]) (as :: [*]). Data.Solidity.Event.Internal.HListRep (Data.SOP.NP.NP f as') as => Data.Solidity.Event.Internal.HListRep (Data.SOP.NS.SOP f '[as']) as -- | Ethereum Abi intN and uintN types. module Data.Solidity.Prim.Int -- | Signed integer with fixed length in bits. data IntN (n :: Nat) -- | Unsigned integer with fixed length in bits. data UIntN (n :: Nat) -- | Deserialize 256 bit unsigned integer. getWord256 :: Get Word256 -- | Serialize 256 bit unsigned integer. putWord256 :: Putter Word256 instance GHC.Generics.Generic (Data.Solidity.Prim.Int.IntN n) instance Data.Bits.Bits (Data.Solidity.Prim.Int.IntN n) instance GHC.Enum.Enum (Data.Solidity.Prim.Int.IntN n) instance GHC.Classes.Ord (Data.Solidity.Prim.Int.IntN n) instance GHC.Classes.Eq (Data.Solidity.Prim.Int.IntN n) instance GHC.Generics.Generic (Data.Solidity.Prim.Int.UIntN n) instance Data.Bits.Bits (Data.Solidity.Prim.Int.UIntN n) instance GHC.Enum.Enum (Data.Solidity.Prim.Int.UIntN n) instance GHC.Classes.Ord (Data.Solidity.Prim.Int.UIntN n) instance GHC.Classes.Eq (Data.Solidity.Prim.Int.UIntN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 256) => GHC.Show.Show (Data.Solidity.Prim.Int.IntN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 256) => GHC.Enum.Bounded (Data.Solidity.Prim.Int.IntN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 256) => GHC.Num.Num (Data.Solidity.Prim.Int.IntN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 256) => GHC.Real.Real (Data.Solidity.Prim.Int.IntN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 256) => GHC.Real.Integral (Data.Solidity.Prim.Int.IntN n) instance (n GHC.TypeNats.<= 256) => Data.Solidity.Abi.AbiType (Data.Solidity.Prim.Int.IntN n) instance (n GHC.TypeNats.<= 256) => Data.Solidity.Abi.AbiGet (Data.Solidity.Prim.Int.IntN n) instance (n GHC.TypeNats.<= 256) => Data.Solidity.Abi.AbiPut (Data.Solidity.Prim.Int.IntN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 256) => GHC.Num.Num (Data.Solidity.Prim.Int.UIntN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 256) => GHC.Show.Show (Data.Solidity.Prim.Int.UIntN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 256) => GHC.Enum.Bounded (Data.Solidity.Prim.Int.UIntN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 256) => GHC.Real.Real (Data.Solidity.Prim.Int.UIntN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 256) => GHC.Real.Integral (Data.Solidity.Prim.Int.UIntN n) instance (n GHC.TypeNats.<= 256) => Data.Solidity.Abi.AbiType (Data.Solidity.Prim.Int.UIntN n) instance (n GHC.TypeNats.<= 256) => Data.Solidity.Abi.AbiGet (Data.Solidity.Prim.Int.UIntN n) instance (n GHC.TypeNats.<= 256) => Data.Solidity.Abi.AbiPut (Data.Solidity.Prim.Int.UIntN n) instance GHC.Real.Real Basement.Types.Word256.Word256 instance GHC.Real.Integral Basement.Types.Word256.Word256 -- | Bytes and BytesN primitive types. module Data.Solidity.Prim.Bytes -- | Simplest Byte Array data Bytes -- | Sized byte array with fixed length in bytes type BytesN n = SizedByteArray n Bytes instance (n GHC.TypeNats.<= 32) => Data.Solidity.Abi.AbiType (Data.Solidity.Prim.Bytes.BytesN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 32) => Data.Solidity.Abi.AbiGet (Data.Solidity.Prim.Bytes.BytesN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 32) => Data.Solidity.Abi.AbiPut (Data.Solidity.Prim.Bytes.BytesN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 32) => Data.String.IsString (Data.Solidity.Prim.Bytes.BytesN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 32) => Data.Aeson.Types.FromJSON.FromJSON (Data.Solidity.Prim.Bytes.BytesN n) instance (GHC.TypeNats.KnownNat n, n GHC.TypeNats.<= 32) => Data.Aeson.Types.ToJSON.ToJSON (Data.Solidity.Prim.Bytes.BytesN n) instance Data.Solidity.Abi.AbiType Data.ByteString.Internal.ByteString instance Data.Solidity.Abi.AbiGet Data.ByteString.Internal.ByteString instance Data.Solidity.Abi.AbiPut Data.ByteString.Internal.ByteString instance Data.Solidity.Abi.AbiType Data.ByteArray.Bytes.Bytes instance Data.Solidity.Abi.AbiGet Data.ByteArray.Bytes.Bytes instance Data.Solidity.Abi.AbiPut Data.ByteArray.Bytes.Bytes instance Data.String.IsString Data.ByteArray.Bytes.Bytes instance Data.Aeson.Types.FromJSON.FromJSON Data.ByteArray.Bytes.Bytes instance Data.Aeson.Types.ToJSON.ToJSON Data.ByteArray.Bytes.Bytes -- | Ethereum Abi boolean type. module Data.Solidity.Prim.Bool instance Data.Solidity.Abi.AbiType GHC.Types.Bool instance Data.Solidity.Abi.AbiGet GHC.Types.Bool instance Data.Solidity.Abi.AbiPut GHC.Types.Bool -- | This module is internal, the purpose is to define helper classes and -- functions to assist in encoding and decoding Solidity types for -- function calls and events. The user of this library should have no -- need to use this directly in application code. module Data.Solidity.Abi.Generic instance forall k (f :: k -> *). Data.Solidity.Abi.Generic.AbiData (Data.SOP.NP.NP f '[]) instance (Data.Solidity.Abi.AbiType b, Data.Solidity.Abi.AbiPut b, Data.Solidity.Abi.Generic.AbiData (Data.SOP.NP.NP Data.SOP.BasicFunctors.I as)) => Data.Solidity.Abi.Generic.AbiData (Data.SOP.NP.NP Data.SOP.BasicFunctors.I (b : as)) instance forall k (f :: k -> *) (as :: [k]). Data.Solidity.Abi.Generic.AbiData (Data.SOP.NP.NP f as) => Data.Solidity.Abi.GenericAbiPut (Data.SOP.NS.SOP f '[as]) instance GHC.Classes.Eq Data.Solidity.Abi.Generic.EncodedValue instance GHC.Classes.Ord Data.Solidity.Abi.Generic.EncodedValue instance forall k (f :: k -> *). Data.Solidity.Abi.GenericAbiGet (Data.SOP.NP.NP f '[]) instance (Data.Solidity.Abi.AbiGet a, Data.Solidity.Abi.GenericAbiGet (Data.SOP.NP.NP Data.SOP.BasicFunctors.I as)) => Data.Solidity.Abi.GenericAbiGet (Data.SOP.NP.NP Data.SOP.BasicFunctors.I (a : as)) instance forall k (f :: k -> *) (as :: [k]). Data.Solidity.Abi.GenericAbiGet (Data.SOP.NP.NP f as) => Data.Solidity.Abi.GenericAbiGet (Data.SOP.NS.SOP f '[as]) -- | Solidity contract ABI encoding functions. module Data.Solidity.Abi.Codec -- | Encode datatype to Ethereum Abi-encoding encode :: (AbiPut a, ByteArray ba) => a -> ba -- | Decode datatype from Ethereum Abi-encoding decode :: (ByteArrayAccess ba, AbiGet a) => ba -> Either String a -- | Generic driven version of encode encode' :: (Generic a, Rep a ~ rep, GenericAbiPut rep, ByteArray ba) => a -> ba -- | Generic driven version of decode decode' :: (Generic a, Rep a ~ rep, GenericAbiGet rep, ByteArrayAccess ba) => ba -> Either String a -- | Ethreum account address. module Data.Solidity.Prim.Address -- | Ethereum account address data Address -- | Encode address to hex string toHexString :: Address -> HexString -- | Decode address from hex string fromHexString :: HexString -> Either String Address -- | Derive address from secp256k1 public key fromPubKey :: PublicKey -> Address -- | Encode address with mixed-case checksum -- https://github.com/ethereum/EIPs/blob/master/EIPS/eip-55.md toChecksum :: ByteString -> ByteString -- | Verify mixed-case address checksum -- https://github.com/ethereum/EIPs/blob/master/EIPS/eip-55.md verifyChecksum :: ByteString -> Bool instance GHC.Generics.Generic Data.Solidity.Prim.Address.Address instance GHC.Classes.Ord Data.Solidity.Prim.Address.Address instance GHC.Classes.Eq Data.Solidity.Prim.Address.Address instance Generics.SOP.Universe.Generic Data.Solidity.Prim.Address.Address instance Data.Default.Class.Default Data.Solidity.Prim.Address.Address instance GHC.Show.Show Data.Solidity.Prim.Address.Address instance Data.String.IsString Data.Solidity.Prim.Address.Address instance Data.Solidity.Abi.AbiType Data.Solidity.Prim.Address.Address instance Data.Solidity.Abi.AbiGet Data.Solidity.Prim.Address.Address instance Data.Solidity.Abi.AbiPut Data.Solidity.Prim.Address.Address instance Data.Aeson.Types.FromJSON.FromJSON Data.Solidity.Prim.Address.Address instance Data.Aeson.Types.ToJSON.ToJSON Data.Solidity.Prim.Address.Address -- | Ethereum Abi dynamic and static size vectors based on linked lists. module Data.Solidity.Prim.List -- | A Typed-level sized List equivalent to [a] data ListN (n :: Nat) a instance Data.Solidity.Abi.AbiType [a] instance Data.Solidity.Abi.AbiPut a => Data.Solidity.Abi.AbiPut [a] instance Data.Solidity.Abi.AbiGet a => Data.Solidity.Abi.AbiGet [a] instance Data.Solidity.Abi.AbiType (Basement.Sized.List.ListN n a) instance Data.Solidity.Abi.AbiPut a => Data.Solidity.Abi.AbiPut (Basement.Sized.List.ListN n a) instance (Basement.Nat.NatWithinBound GHC.Types.Int n, GHC.TypeNats.KnownNat n, Data.Solidity.Abi.AbiGet a) => Data.Solidity.Abi.AbiGet (Basement.Sized.List.ListN n a) instance (Basement.Nat.NatWithinBound GHC.Types.Int n, GHC.TypeNats.KnownNat n) => GHC.Exts.IsList (Basement.Sized.List.ListN n a) -- | Ethereum Abi UTF8-encoded string type. module Data.Solidity.Prim.String instance Data.Solidity.Abi.AbiType Data.Text.Internal.Text instance Data.Solidity.Abi.AbiPut Data.Text.Internal.Text instance Data.Solidity.Abi.AbiGet Data.Text.Internal.Text -- | Ethereum Abi tagged types. module Data.Solidity.Prim.Tagged -- | A Tagged s b value is a value b with an -- attached phantom type s. This can be used in place of the -- more traditional but less safe idiom of passing in an undefined value -- with the type, because unlike an (s -> b), a -- Tagged s b can't try to use the argument s as -- a real value. -- -- Moreover, you don't have to rely on the compiler to inline away the -- extra argument, because the newtype is "free" -- -- Tagged has kind k -> * -> * if the compiler -- supports PolyKinds, therefore there is an extra k -- showing in the instance haddocks that may cause confusion. data Tagged (s :: k) b :: forall k. () => k -> Type -> Type instance forall k a (t :: k). Data.Solidity.Abi.AbiType a => Data.Solidity.Abi.AbiType (Data.Tagged.Tagged t a) instance forall k a (t :: k). Data.Solidity.Abi.AbiPut a => Data.Solidity.Abi.AbiPut (Data.Tagged.Tagged t a) instance forall k a (t :: k). Data.Solidity.Abi.AbiGet a => Data.Solidity.Abi.AbiGet (Data.Tagged.Tagged t a) instance forall k a (t :: k). Generics.SOP.Universe.Generic a => Generics.SOP.Universe.Generic (Data.Tagged.Tagged t a) -- | This module is for internal usage only. It contains tuple abi encoding -- template haskell generator. module Data.Solidity.Prim.Tuple.TH tupleDecs :: Int -> DecsQ -- | Tuple type abi encoding instances. module Data.Solidity.Prim.Tuple instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2) => Data.Solidity.Abi.AbiType (a1, a2) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2) => Data.Solidity.Abi.AbiGet (a1, a2) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2) => Data.Solidity.Abi.AbiPut (a1, a2) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3) => Data.Solidity.Abi.AbiType (a1, a2, a3) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3) => Data.Solidity.Abi.AbiGet (a1, a2, a3) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3) => Data.Solidity.Abi.AbiPut (a1, a2, a3) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9, Data.Solidity.Abi.AbiType a10) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9, Data.Solidity.Abi.AbiGet a10) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9, Data.Solidity.Abi.AbiPut a10) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9, Data.Solidity.Abi.AbiType a10, Data.Solidity.Abi.AbiType a11) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9, Data.Solidity.Abi.AbiGet a10, Data.Solidity.Abi.AbiGet a11) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9, Data.Solidity.Abi.AbiPut a10, Data.Solidity.Abi.AbiPut a11) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9, Data.Solidity.Abi.AbiType a10, Data.Solidity.Abi.AbiType a11, Data.Solidity.Abi.AbiType a12) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9, Data.Solidity.Abi.AbiGet a10, Data.Solidity.Abi.AbiGet a11, Data.Solidity.Abi.AbiGet a12) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9, Data.Solidity.Abi.AbiPut a10, Data.Solidity.Abi.AbiPut a11, Data.Solidity.Abi.AbiPut a12) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9, Data.Solidity.Abi.AbiType a10, Data.Solidity.Abi.AbiType a11, Data.Solidity.Abi.AbiType a12, Data.Solidity.Abi.AbiType a13) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9, Data.Solidity.Abi.AbiGet a10, Data.Solidity.Abi.AbiGet a11, Data.Solidity.Abi.AbiGet a12, Data.Solidity.Abi.AbiGet a13) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9, Data.Solidity.Abi.AbiPut a10, Data.Solidity.Abi.AbiPut a11, Data.Solidity.Abi.AbiPut a12, Data.Solidity.Abi.AbiPut a13) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9, Data.Solidity.Abi.AbiType a10, Data.Solidity.Abi.AbiType a11, Data.Solidity.Abi.AbiType a12, Data.Solidity.Abi.AbiType a13, Data.Solidity.Abi.AbiType a14) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9, Data.Solidity.Abi.AbiGet a10, Data.Solidity.Abi.AbiGet a11, Data.Solidity.Abi.AbiGet a12, Data.Solidity.Abi.AbiGet a13, Data.Solidity.Abi.AbiGet a14) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9, Data.Solidity.Abi.AbiPut a10, Data.Solidity.Abi.AbiPut a11, Data.Solidity.Abi.AbiPut a12, Data.Solidity.Abi.AbiPut a13, Data.Solidity.Abi.AbiPut a14) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9, Data.Solidity.Abi.AbiType a10, Data.Solidity.Abi.AbiType a11, Data.Solidity.Abi.AbiType a12, Data.Solidity.Abi.AbiType a13, Data.Solidity.Abi.AbiType a14, Data.Solidity.Abi.AbiType a15) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9, Data.Solidity.Abi.AbiGet a10, Data.Solidity.Abi.AbiGet a11, Data.Solidity.Abi.AbiGet a12, Data.Solidity.Abi.AbiGet a13, Data.Solidity.Abi.AbiGet a14, Data.Solidity.Abi.AbiGet a15) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9, Data.Solidity.Abi.AbiPut a10, Data.Solidity.Abi.AbiPut a11, Data.Solidity.Abi.AbiPut a12, Data.Solidity.Abi.AbiPut a13, Data.Solidity.Abi.AbiPut a14, Data.Solidity.Abi.AbiPut a15) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9, Data.Solidity.Abi.AbiType a10, Data.Solidity.Abi.AbiType a11, Data.Solidity.Abi.AbiType a12, Data.Solidity.Abi.AbiType a13, Data.Solidity.Abi.AbiType a14, Data.Solidity.Abi.AbiType a15, Data.Solidity.Abi.AbiType a16) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9, Data.Solidity.Abi.AbiGet a10, Data.Solidity.Abi.AbiGet a11, Data.Solidity.Abi.AbiGet a12, Data.Solidity.Abi.AbiGet a13, Data.Solidity.Abi.AbiGet a14, Data.Solidity.Abi.AbiGet a15, Data.Solidity.Abi.AbiGet a16) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9, Data.Solidity.Abi.AbiPut a10, Data.Solidity.Abi.AbiPut a11, Data.Solidity.Abi.AbiPut a12, Data.Solidity.Abi.AbiPut a13, Data.Solidity.Abi.AbiPut a14, Data.Solidity.Abi.AbiPut a15, Data.Solidity.Abi.AbiPut a16) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9, Data.Solidity.Abi.AbiType a10, Data.Solidity.Abi.AbiType a11, Data.Solidity.Abi.AbiType a12, Data.Solidity.Abi.AbiType a13, Data.Solidity.Abi.AbiType a14, Data.Solidity.Abi.AbiType a15, Data.Solidity.Abi.AbiType a16, Data.Solidity.Abi.AbiType a17) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9, Data.Solidity.Abi.AbiGet a10, Data.Solidity.Abi.AbiGet a11, Data.Solidity.Abi.AbiGet a12, Data.Solidity.Abi.AbiGet a13, Data.Solidity.Abi.AbiGet a14, Data.Solidity.Abi.AbiGet a15, Data.Solidity.Abi.AbiGet a16, Data.Solidity.Abi.AbiGet a17) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9, Data.Solidity.Abi.AbiPut a10, Data.Solidity.Abi.AbiPut a11, Data.Solidity.Abi.AbiPut a12, Data.Solidity.Abi.AbiPut a13, Data.Solidity.Abi.AbiPut a14, Data.Solidity.Abi.AbiPut a15, Data.Solidity.Abi.AbiPut a16, Data.Solidity.Abi.AbiPut a17) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9, Data.Solidity.Abi.AbiType a10, Data.Solidity.Abi.AbiType a11, Data.Solidity.Abi.AbiType a12, Data.Solidity.Abi.AbiType a13, Data.Solidity.Abi.AbiType a14, Data.Solidity.Abi.AbiType a15, Data.Solidity.Abi.AbiType a16, Data.Solidity.Abi.AbiType a17, Data.Solidity.Abi.AbiType a18) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9, Data.Solidity.Abi.AbiGet a10, Data.Solidity.Abi.AbiGet a11, Data.Solidity.Abi.AbiGet a12, Data.Solidity.Abi.AbiGet a13, Data.Solidity.Abi.AbiGet a14, Data.Solidity.Abi.AbiGet a15, Data.Solidity.Abi.AbiGet a16, Data.Solidity.Abi.AbiGet a17, Data.Solidity.Abi.AbiGet a18) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9, Data.Solidity.Abi.AbiPut a10, Data.Solidity.Abi.AbiPut a11, Data.Solidity.Abi.AbiPut a12, Data.Solidity.Abi.AbiPut a13, Data.Solidity.Abi.AbiPut a14, Data.Solidity.Abi.AbiPut a15, Data.Solidity.Abi.AbiPut a16, Data.Solidity.Abi.AbiPut a17, Data.Solidity.Abi.AbiPut a18) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9, Data.Solidity.Abi.AbiType a10, Data.Solidity.Abi.AbiType a11, Data.Solidity.Abi.AbiType a12, Data.Solidity.Abi.AbiType a13, Data.Solidity.Abi.AbiType a14, Data.Solidity.Abi.AbiType a15, Data.Solidity.Abi.AbiType a16, Data.Solidity.Abi.AbiType a17, Data.Solidity.Abi.AbiType a18, Data.Solidity.Abi.AbiType a19) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9, Data.Solidity.Abi.AbiGet a10, Data.Solidity.Abi.AbiGet a11, Data.Solidity.Abi.AbiGet a12, Data.Solidity.Abi.AbiGet a13, Data.Solidity.Abi.AbiGet a14, Data.Solidity.Abi.AbiGet a15, Data.Solidity.Abi.AbiGet a16, Data.Solidity.Abi.AbiGet a17, Data.Solidity.Abi.AbiGet a18, Data.Solidity.Abi.AbiGet a19) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9, Data.Solidity.Abi.AbiPut a10, Data.Solidity.Abi.AbiPut a11, Data.Solidity.Abi.AbiPut a12, Data.Solidity.Abi.AbiPut a13, Data.Solidity.Abi.AbiPut a14, Data.Solidity.Abi.AbiPut a15, Data.Solidity.Abi.AbiPut a16, Data.Solidity.Abi.AbiPut a17, Data.Solidity.Abi.AbiPut a18, Data.Solidity.Abi.AbiPut a19) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) instance (Data.Solidity.Abi.AbiType a1, Data.Solidity.Abi.AbiType a2, Data.Solidity.Abi.AbiType a3, Data.Solidity.Abi.AbiType a4, Data.Solidity.Abi.AbiType a5, Data.Solidity.Abi.AbiType a6, Data.Solidity.Abi.AbiType a7, Data.Solidity.Abi.AbiType a8, Data.Solidity.Abi.AbiType a9, Data.Solidity.Abi.AbiType a10, Data.Solidity.Abi.AbiType a11, Data.Solidity.Abi.AbiType a12, Data.Solidity.Abi.AbiType a13, Data.Solidity.Abi.AbiType a14, Data.Solidity.Abi.AbiType a15, Data.Solidity.Abi.AbiType a16, Data.Solidity.Abi.AbiType a17, Data.Solidity.Abi.AbiType a18, Data.Solidity.Abi.AbiType a19, Data.Solidity.Abi.AbiType a20) => Data.Solidity.Abi.AbiType (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) instance (Data.Solidity.Abi.AbiGet a1, Data.Solidity.Abi.AbiGet a2, Data.Solidity.Abi.AbiGet a3, Data.Solidity.Abi.AbiGet a4, Data.Solidity.Abi.AbiGet a5, Data.Solidity.Abi.AbiGet a6, Data.Solidity.Abi.AbiGet a7, Data.Solidity.Abi.AbiGet a8, Data.Solidity.Abi.AbiGet a9, Data.Solidity.Abi.AbiGet a10, Data.Solidity.Abi.AbiGet a11, Data.Solidity.Abi.AbiGet a12, Data.Solidity.Abi.AbiGet a13, Data.Solidity.Abi.AbiGet a14, Data.Solidity.Abi.AbiGet a15, Data.Solidity.Abi.AbiGet a16, Data.Solidity.Abi.AbiGet a17, Data.Solidity.Abi.AbiGet a18, Data.Solidity.Abi.AbiGet a19, Data.Solidity.Abi.AbiGet a20) => Data.Solidity.Abi.AbiGet (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) instance (Data.Solidity.Abi.AbiPut a1, Data.Solidity.Abi.AbiPut a2, Data.Solidity.Abi.AbiPut a3, Data.Solidity.Abi.AbiPut a4, Data.Solidity.Abi.AbiPut a5, Data.Solidity.Abi.AbiPut a6, Data.Solidity.Abi.AbiPut a7, Data.Solidity.Abi.AbiPut a8, Data.Solidity.Abi.AbiPut a9, Data.Solidity.Abi.AbiPut a10, Data.Solidity.Abi.AbiPut a11, Data.Solidity.Abi.AbiPut a12, Data.Solidity.Abi.AbiPut a13, Data.Solidity.Abi.AbiPut a14, Data.Solidity.Abi.AbiPut a15, Data.Solidity.Abi.AbiPut a16, Data.Solidity.Abi.AbiPut a17, Data.Solidity.Abi.AbiPut a18, Data.Solidity.Abi.AbiPut a19, Data.Solidity.Abi.AbiPut a20) => Data.Solidity.Abi.AbiPut (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) instance GHC.Generics.Generic (Data.Tuple.OneTuple.OneTuple a) instance Generics.SOP.Universe.Generic (Data.Tuple.OneTuple.OneTuple a) instance Data.Solidity.Abi.AbiType a => Data.Solidity.Abi.AbiType (Data.Tuple.OneTuple.OneTuple a) instance Data.Solidity.Abi.AbiGet a => Data.Solidity.Abi.AbiGet (Data.Tuple.OneTuple.OneTuple a) instance Data.Solidity.Abi.AbiPut a => Data.Solidity.Abi.AbiPut (Data.Tuple.OneTuple.OneTuple a) -- | Solidity primitive data types. module Data.Solidity.Prim -- | Ethereum account address data Address -- | Simplest Byte Array data Bytes -- | Sized byte array with fixed length in bytes type BytesN n = SizedByteArray n Bytes -- | Signed integer with fixed length in bits. data IntN (n :: Nat) -- | Unsigned integer with fixed length in bits. data UIntN (n :: Nat) -- | A Typed-level sized List equivalent to [a] data ListN (n :: Nat) a -- | Extra string manipulation functions. module Data.String.Extra -- | Lower first char of string toLowerFirst :: String -> String -- | Upper first char of string toUpperFirst :: String -> String -- | JSON encoded contract ABI parsers. module Language.Solidity.Abi -- | Contract Abi is a list of method / event declarations newtype ContractAbi ContractAbi :: [Declaration] -> ContractAbi [unAbi] :: ContractAbi -> [Declaration] -- | Elementrary contract interface item data Declaration DConstructor :: [FunctionArg] -> Declaration -- | Contract constructor [conInputs] :: Declaration -> [FunctionArg] DFunction :: Text -> Bool -> [FunctionArg] -> Maybe [FunctionArg] -> Declaration [funName] :: Declaration -> Text [funConstant] :: Declaration -> Bool [funInputs] :: Declaration -> [FunctionArg] -- | Method [funOutputs] :: Declaration -> Maybe [FunctionArg] DEvent :: Text -> [EventArg] -> Bool -> Declaration [eveName] :: Declaration -> Text [eveInputs] :: Declaration -> [EventArg] -- | Event [eveAnonymous] :: Declaration -> Bool DFallback :: Bool -> Declaration -- | Fallback function [falPayable] :: Declaration -> Bool -- | Method argument data FunctionArg FunctionArg :: Text -> Text -> Maybe [FunctionArg] -> FunctionArg -- | Argument name [funArgName] :: FunctionArg -> Text -- | Argument type [funArgType] :: FunctionArg -> Text -- | Argument components for tuples [funArgComponents] :: FunctionArg -> Maybe [FunctionArg] -- | Event argument data EventArg EventArg :: Text -> Text -> Bool -> EventArg -- | Argument name [eveArgName] :: EventArg -> Text -- | Argument type [eveArgType] :: EventArg -> Text -- | Argument is indexed (e.g. placed on topics of event) [eveArgIndexed] :: EventArg -> Bool -- | Take a signature by given decl, e.g. foo(uint,string) signature :: Declaration -> Text -- | Generate method selector by given method Delcaration methodId :: Declaration -> Text -- | Generate event topic0 hash by givent event -- Delcaration eventId :: Declaration -> Text -- | Solidity types and parsers data SolidityType SolidityBool :: SolidityType SolidityAddress :: SolidityType SolidityUint :: Int -> SolidityType SolidityInt :: Int -> SolidityType SolidityString :: SolidityType SolidityBytesN :: Int -> SolidityType SolidityBytes :: SolidityType SolidityTuple :: Int -> [SolidityType] -> SolidityType SolidityVector :: [Int] -> SolidityType -> SolidityType SolidityArray :: SolidityType -> SolidityType parseSolidityFunctionArgType :: FunctionArg -> Either ParseError SolidityType parseSolidityEventArgType :: EventArg -> Either ParseError SolidityType instance GHC.Show.Show Language.Solidity.Abi.SolidityType instance GHC.Classes.Eq Language.Solidity.Abi.SolidityType instance GHC.Classes.Ord Language.Solidity.Abi.ContractAbi instance GHC.Classes.Eq Language.Solidity.Abi.ContractAbi instance Data.Aeson.Types.FromJSON.FromJSON Language.Solidity.Abi.ContractAbi instance Data.Aeson.Types.ToJSON.ToJSON Language.Solidity.Abi.ContractAbi instance GHC.Show.Show Language.Solidity.Abi.ContractAbi instance Data.Aeson.Types.ToJSON.ToJSON Language.Solidity.Abi.Declaration instance Data.Aeson.Types.FromJSON.FromJSON Language.Solidity.Abi.Declaration instance GHC.Show.Show Language.Solidity.Abi.Declaration instance GHC.Classes.Eq Language.Solidity.Abi.Declaration instance GHC.Classes.Ord Language.Solidity.Abi.Declaration instance Data.Aeson.Types.ToJSON.ToJSON Language.Solidity.Abi.EventArg instance Data.Aeson.Types.FromJSON.FromJSON Language.Solidity.Abi.EventArg instance GHC.Classes.Ord Language.Solidity.Abi.EventArg instance GHC.Classes.Eq Language.Solidity.Abi.EventArg instance GHC.Show.Show Language.Solidity.Abi.EventArg instance Data.Aeson.Types.ToJSON.ToJSON Language.Solidity.Abi.FunctionArg instance Data.Aeson.Types.FromJSON.FromJSON Language.Solidity.Abi.FunctionArg instance GHC.Classes.Ord Language.Solidity.Abi.FunctionArg instance GHC.Classes.Eq Language.Solidity.Abi.FunctionArg instance GHC.Show.Show Language.Solidity.Abi.FunctionArg -- | Ethereum generic JSON-RPC types. module Network.Ethereum.Api.Types -- | Should be viewed as type to representing QUANTITY in Web3 JSON RPC -- docs -- -- When encoding QUANTITIES (integers, numbers): encode as hex, prefix -- with "0x", the most compact representation (slight exception: zero -- should be represented as "0x0"). Examples: -- -- 0x41 (65 in decimal) 0x400 (1024 in decimal) WRONG: 0x (should always -- have at least one digit - zero is "0x0") WRONG: 0x0400 (no leading -- zeroes allowed) WRONG: ff (must be prefixed 0x) newtype Quantity Quantity :: Integer -> Quantity [unQuantity] :: Quantity -> Integer -- | An object with sync status data. data SyncActive SyncActive :: !Quantity -> !Quantity -> !Quantity -> SyncActive -- | QUANTITY - The block at which the import started (will only be reset, -- after the sync reached his head). [syncStartingBlock] :: SyncActive -> !Quantity -- | QUANTITY - The current block, same as eth_blockNumber. [syncCurrentBlock] :: SyncActive -> !Quantity -- | QUANTITY - The estimated highest block. [syncHighestBlock] :: SyncActive -> !Quantity -- | Sync state pulled by low-level call eth_syncing. data SyncingState Syncing :: SyncActive -> SyncingState NotSyncing :: SyncingState -- | Changes pulled by low-level call eth_getFilterChanges, -- eth_getLogs, and eth_getFilterLogs data Change Change :: !Maybe Quantity -> !Maybe Quantity -> !Maybe HexString -> !Maybe HexString -> !Maybe Quantity -> !Address -> !HexString -> ![HexString] -> Change -- | QUANTITY - integer of the log index position in the block. null when -- its pending log. [changeLogIndex] :: Change -> !Maybe Quantity -- | QUANTITY - integer of the transactions index position log was created -- from. null when its pending log. [changeTransactionIndex] :: Change -> !Maybe Quantity -- | DATA, 32 Bytes - hash of the transactions this log was created from. -- null when its pending log. [changeTransactionHash] :: Change -> !Maybe HexString -- | DATA, 32 Bytes - hash of the block where this log was in. null when -- its pending. null when its pending log. [changeBlockHash] :: Change -> !Maybe HexString -- | QUANTITY - the block number where this log was in. null when its -- pending. null when its pending log. [changeBlockNumber] :: Change -> !Maybe Quantity -- | DATA, 20 Bytes - address from which this log originated. [changeAddress] :: Change -> !Address -- | DATA - contains one or more 32 Bytes non-indexed arguments of the log. [changeData] :: Change -> !HexString -- | Array of DATA - Array of 0 to 4 32 Bytes DATA of indexed log -- arguments. [changeTopics] :: Change -> ![HexString] -- | The contract call params. data Call Call :: !Maybe Address -> !Maybe Address -> !Maybe Quantity -> !Maybe Quantity -> !Maybe Quantity -> !Maybe HexString -> !Maybe Quantity -> Call -- | DATA, 20 Bytes - The address the transaction is send from. [callFrom] :: Call -> !Maybe Address -- | DATA, 20 Bytes - (optional when creating new contract) The address the -- transaction is directed to. [callTo] :: Call -> !Maybe Address -- | QUANTITY - (optional, default: 3000000) Integer of the gas provided -- for the transaction execution. It will return unused gas. [callGas] :: Call -> !Maybe Quantity -- | QUANTITY - (optional, default: To-Be-Determined) Integer of the -- gasPrice used for each paid gas. [callGasPrice] :: Call -> !Maybe Quantity -- | QUANTITY - (optional) Integer of the value sent with this transaction. [callValue] :: Call -> !Maybe Quantity -- | DATA - The compiled code of a contract OR the hash of the invoked -- method signature and encoded parameters. [callData] :: Call -> !Maybe HexString -- | QUANTITY - (optional) Integer of a nonce. This allows to overwrite -- your own pending transactions that use the same nonce. [callNonce] :: Call -> !Maybe Quantity -- | The state of blockchain for contract call. data DefaultBlock BlockWithNumber :: Quantity -> DefaultBlock Earliest :: DefaultBlock Latest :: DefaultBlock Pending :: DefaultBlock -- | Low-level event filter data structure. data Filter e Filter :: !Maybe [Address] -> !DefaultBlock -> !DefaultBlock -> !Maybe [Maybe HexString] -> Filter e -- | DATA|Array, 20 Bytes - (optional) Contract address or a list of -- addresses from which logs should originate. [filterAddress] :: Filter e -> !Maybe [Address] -- | QUANTITY|TAG - (optional, default: "latest") Integer block number, or -- "latest" for the last mined block or "pending", "earliest" for not yet -- mined transactions. [filterFromBlock] :: Filter e -> !DefaultBlock -- | QUANTITY|TAG - (optional, default: "latest") Integer block number, or -- "latest" for the last mined block or "pending", "earliest" for not yet -- mined transactions. [filterToBlock] :: Filter e -> !DefaultBlock -- | Array of DATA, - (optional) Array of 32 Bytes DATA topics. Topics are -- order-dependent. Each topic can also be an array of DATA with "or" -- options. [filterTopics] :: Filter e -> !Maybe [Maybe HexString] -- | The Receipt of a Transaction data TxReceipt TxReceipt :: !HexString -> !Quantity -> !Maybe HexString -> !Maybe Quantity -> !Quantity -> !Quantity -> !Maybe Address -> ![Change] -> !HexString -> !Maybe Quantity -> TxReceipt -- | DATA, 32 Bytes - hash of the transaction. [receiptTransactionHash] :: TxReceipt -> !HexString -- | QUANTITY - index of the transaction. [receiptTransactionIndex] :: TxReceipt -> !Quantity -- | DATA, 32 Bytes - hash of the block where this transaction was in. null -- when its pending. [receiptBlockHash] :: TxReceipt -> !Maybe HexString -- | QUANTITY - block number where this transaction was in. null when its -- pending. [receiptBlockNumber] :: TxReceipt -> !Maybe Quantity -- | QUANTITY - The total amount of gas used when this transaction was -- executed in the block. [receiptCumulativeGasUsed] :: TxReceipt -> !Quantity -- | QUANTITY - The amount of gas used by this specific transaction alone. [receiptGasUsed] :: TxReceipt -> !Quantity -- | DATA, 20 Bytes - The contract address created, if the transaction was -- a contract creation, otherwise null. [receiptContractAddress] :: TxReceipt -> !Maybe Address -- | Array - Array of log objects, which this transaction generated. [receiptLogs] :: TxReceipt -> ![Change] -- | DATA, 256 Bytes - Bloom filter for light clients to quickly retrieve -- related logs. [receiptLogsBloom] :: TxReceipt -> !HexString -- | QUANTITY either 1 (success) or 0 (failure) [receiptStatus] :: TxReceipt -> !Maybe Quantity -- | Transaction information. data Transaction Transaction :: !HexString -> !Quantity -> !Maybe HexString -> !Maybe Quantity -> !Maybe Quantity -> !Address -> !Maybe Address -> !Quantity -> !Quantity -> !Quantity -> !HexString -> Transaction -- | DATA, 32 Bytes - hash of the transaction. [txHash] :: Transaction -> !HexString -- | QUANTITY - the number of transactions made by the sender prior to this -- one. [txNonce] :: Transaction -> !Quantity -- | DATA, 32 Bytes - hash of the block where this transaction was in. null -- when its pending. [txBlockHash] :: Transaction -> !Maybe HexString -- | QUANTITY - block number where this transaction was in. null when its -- pending. [txBlockNumber] :: Transaction -> !Maybe Quantity -- | QUANTITY - integer of the transactions index position in the block. -- null when its pending. [txTransactionIndex] :: Transaction -> !Maybe Quantity -- | DATA, 20 Bytes - address of the sender. [txFrom] :: Transaction -> !Address -- | DATA, 20 Bytes - address of the receiver. null when its a contract -- creation transaction. [txTo] :: Transaction -> !Maybe Address -- | QUANTITY - value transferred in Wei. [txValue] :: Transaction -> !Quantity -- | QUANTITY - gas price provided by the sender in Wei. [txGasPrice] :: Transaction -> !Quantity -- | QUANTITY - gas provided by the sender. [txGas] :: Transaction -> !Quantity -- | DATA - the data send along with the transaction. [txInput] :: Transaction -> !HexString -- | Block information. data Block Block :: !Maybe Quantity -> !Maybe HexString -> !HexString -> !Maybe HexString -> !HexString -> !Maybe HexString -> !HexString -> !HexString -> !Maybe HexString -> !Address -> !Quantity -> !Quantity -> !HexString -> !Quantity -> !Quantity -> !Quantity -> !Quantity -> ![Transaction] -> ![HexString] -> Block -- | QUANTITY - the block number. null when its pending block. [blockNumber] :: Block -> !Maybe Quantity -- | DATA, 32 Bytes - hash of the block. null when its pending block. [blockHash] :: Block -> !Maybe HexString -- | DATA, 32 Bytes - hash of the parent block. [blockParentHash] :: Block -> !HexString -- | DATA, 8 Bytes - hash of the generated proof-of-work. null when its -- pending block. [blockNonce] :: Block -> !Maybe HexString -- | DATA, 32 Bytes - SHA3 of the uncles data in the block. [blockSha3Uncles] :: Block -> !HexString -- | DATA, 256 Bytes - the bloom filter for the logs of the block. null -- when its pending block. [blockLogsBloom] :: Block -> !Maybe HexString -- | DATA, 32 Bytes - the root of the transaction trie of the block. [blockTransactionsRoot] :: Block -> !HexString -- | DATA, 32 Bytes - the root of the final state trie of the block. [blockStateRoot] :: Block -> !HexString -- | DATA, 32 Bytes - the root of the receipts trie of the block. [blockReceiptRoot] :: Block -> !Maybe HexString -- | DATA, 20 Bytes - the address of the beneficiary to whom the mining -- rewards were given. [blockMiner] :: Block -> !Address -- | QUANTITY - integer of the difficulty for this block. [blockDifficulty] :: Block -> !Quantity -- | QUANTITY - integer of the total difficulty of the chain until this -- block. [blockTotalDifficulty] :: Block -> !Quantity -- | DATA - the "extra data" field of this block. [blockExtraData] :: Block -> !HexString -- | QUANTITY - integer the size of this block in bytes. [blockSize] :: Block -> !Quantity -- | QUANTITY - the maximum gas allowed in this block. [blockGasLimit] :: Block -> !Quantity -- | QUANTITY - the total used gas by all transactions in this block. [blockGasUsed] :: Block -> !Quantity -- | QUANTITY - the unix timestamp for when the block was collated. [blockTimestamp] :: Block -> !Quantity -- | Array of transaction objects. [blockTransactions] :: Block -> ![Transaction] -- | Array - Array of uncle hashes. [blockUncles] :: Block -> ![HexString] instance Data.Aeson.Types.ToJSON.ToJSON Network.Ethereum.Api.Types.Block instance Data.Aeson.Types.FromJSON.FromJSON Network.Ethereum.Api.Types.Block instance GHC.Generics.Generic Network.Ethereum.Api.Types.Block instance GHC.Show.Show Network.Ethereum.Api.Types.Block instance Data.Aeson.Types.ToJSON.ToJSON Network.Ethereum.Api.Types.Transaction instance Data.Aeson.Types.FromJSON.FromJSON Network.Ethereum.Api.Types.Transaction instance GHC.Generics.Generic Network.Ethereum.Api.Types.Transaction instance GHC.Show.Show Network.Ethereum.Api.Types.Transaction instance GHC.Classes.Eq Network.Ethereum.Api.Types.Transaction instance Data.Aeson.Types.ToJSON.ToJSON Network.Ethereum.Api.Types.TxReceipt instance Data.Aeson.Types.FromJSON.FromJSON Network.Ethereum.Api.Types.TxReceipt instance GHC.Generics.Generic Network.Ethereum.Api.Types.TxReceipt instance GHC.Show.Show Network.Ethereum.Api.Types.TxReceipt instance GHC.Generics.Generic (Network.Ethereum.Api.Types.Filter e) instance GHC.Show.Show (Network.Ethereum.Api.Types.Filter e) instance GHC.Classes.Eq (Network.Ethereum.Api.Types.Filter e) instance GHC.Generics.Generic Network.Ethereum.Api.Types.DefaultBlock instance GHC.Show.Show Network.Ethereum.Api.Types.DefaultBlock instance GHC.Classes.Eq Network.Ethereum.Api.Types.DefaultBlock instance Data.Aeson.Types.ToJSON.ToJSON (Network.Ethereum.Api.Types.Filter e) instance Data.Aeson.Types.ToJSON.ToJSON Network.Ethereum.Api.Types.DefaultBlock instance GHC.Classes.Ord Network.Ethereum.Api.Types.DefaultBlock instance Data.Aeson.Types.ToJSON.ToJSON Network.Ethereum.Api.Types.Call instance Data.Aeson.Types.FromJSON.FromJSON Network.Ethereum.Api.Types.Call instance Data.Default.Class.Default Network.Ethereum.Api.Types.Call instance GHC.Generics.Generic Network.Ethereum.Api.Types.Call instance GHC.Show.Show Network.Ethereum.Api.Types.Call instance GHC.Classes.Eq Network.Ethereum.Api.Types.Call instance Data.Aeson.Types.ToJSON.ToJSON Network.Ethereum.Api.Types.Change instance Data.Aeson.Types.FromJSON.FromJSON Network.Ethereum.Api.Types.Change instance GHC.Generics.Generic Network.Ethereum.Api.Types.Change instance GHC.Show.Show Network.Ethereum.Api.Types.Change instance GHC.Classes.Eq Network.Ethereum.Api.Types.Change instance GHC.Show.Show Network.Ethereum.Api.Types.SyncingState instance GHC.Generics.Generic Network.Ethereum.Api.Types.SyncingState instance GHC.Classes.Eq Network.Ethereum.Api.Types.SyncingState instance Data.Aeson.Types.FromJSON.FromJSON Network.Ethereum.Api.Types.SyncingState instance Data.Aeson.Types.ToJSON.ToJSON Network.Ethereum.Api.Types.SyncActive instance Data.Aeson.Types.FromJSON.FromJSON Network.Ethereum.Api.Types.SyncActive instance GHC.Show.Show Network.Ethereum.Api.Types.SyncActive instance GHC.Generics.Generic Network.Ethereum.Api.Types.SyncActive instance GHC.Classes.Eq Network.Ethereum.Api.Types.SyncActive instance GHC.Generics.Generic Network.Ethereum.Api.Types.Quantity instance GHC.Classes.Ord Network.Ethereum.Api.Types.Quantity instance GHC.Classes.Eq Network.Ethereum.Api.Types.Quantity instance GHC.Enum.Enum Network.Ethereum.Api.Types.Quantity instance GHC.Real.Integral Network.Ethereum.Api.Types.Quantity instance GHC.Real.Real Network.Ethereum.Api.Types.Quantity instance GHC.Num.Num Network.Ethereum.Api.Types.Quantity instance GHC.Show.Show Network.Ethereum.Api.Types.Quantity instance Data.String.IsString Network.Ethereum.Api.Types.Quantity instance Data.Aeson.Types.ToJSON.ToJSON Network.Ethereum.Api.Types.Quantity instance Data.Aeson.Types.FromJSON.FromJSON Network.Ethereum.Api.Types.Quantity -- | This module is internal, the purpose is to define helper classes and -- functions to assist in event decoding. The user of this library should -- have no need to use this directly in application code. module Data.Solidity.Event class DecodeEvent i ni e | e -> i ni decodeEvent :: DecodeEvent i ni e => Change -> Either String e class IndexedEvent i ni e | e -> i ni isAnonymous :: IndexedEvent i ni e => Proxy e -> Bool instance (Data.Solidity.Event.IndexedEvent i ni e, Generics.SOP.Universe.Generic i, Generics.SOP.Universe.Rep i Data.Type.Equality.~ Data.SOP.NS.SOP Data.SOP.BasicFunctors.I '[hli], Data.Solidity.Abi.AbiGet ni, Generics.SOP.Universe.Generic ni, Generics.SOP.Universe.Rep ni Data.Type.Equality.~ Data.SOP.NS.SOP Data.SOP.BasicFunctors.I '[hlni], Generics.SOP.Universe.Generic e, Generics.SOP.Universe.Rep e Data.Type.Equality.~ Data.SOP.NS.SOP Data.SOP.BasicFunctors.I '[hle], Data.Solidity.Event.CombineChange i ni e, Data.Solidity.Event.ArrayParser (Data.SOP.NS.SOP Data.SOP.BasicFunctors.I '[hli])) => Data.Solidity.Event.DecodeEvent i ni e instance (Generics.SOP.Universe.Generic i, Generics.SOP.Universe.Rep i Data.Type.Equality.~ irep, Generics.SOP.Universe.Generic ni, Generics.SOP.Universe.Rep ni Data.Type.Equality.~ nirep, Generics.SOP.Universe.Generic e, Generics.SOP.Universe.Rep e Data.Type.Equality.~ erep, Data.Solidity.Event.Internal.HListRep irep hli, Data.Solidity.Event.Internal.HListRep nirep hlni, Data.Solidity.Event.Internal.MergeIndexedArguments hli hlni, Data.Solidity.Event.Internal.MergeIndexedArguments' hli hlni Data.Type.Equality.~ hle, Data.Solidity.Event.Internal.HListRep erep hle, Data.Solidity.Event.IndexedEvent i ni e) => Data.Solidity.Event.CombineChange i ni e instance forall k (f :: k -> *). Data.Solidity.Event.ArrayParser (Data.SOP.NP.NP f '[]) instance (Data.Solidity.Event.ArrayParser (Data.SOP.NP.NP Data.SOP.BasicFunctors.I as), Data.Solidity.Abi.AbiGet a) => Data.Solidity.Event.ArrayParser (Data.SOP.NP.NP Data.SOP.BasicFunctors.I (a : as)) instance forall k (f :: k -> *) (as :: [k]). Data.Solidity.Event.ArrayParser (Data.SOP.NP.NP f as) => Data.Solidity.Event.ArrayParser (Data.SOP.NS.SOP f '[as]) -- | Ethereum chain IDs. module Network.Ethereum.Chain -- | Ethereum mainnet CHAIN_ID from EIP155 foundation :: Integer -- | Ethereum testnet CHAIN_ID from EIP155 ropsten :: Integer -- | Rokenby CHAIN_ID from EIP155 rikenby :: Integer -- | Kovan CHAIN_ID from EIP155 kovan :: Integer -- | Ethereum Classic mainnet CHAIN_ID from EIP155 classic :: Integer -- | Ethereum Classic testnet CHAIN_ID from EIP155 classicTestnet :: Integer -- | Ethereum contract method support. module Network.Ethereum.Contract.Method -- | Smart contract method encoding class AbiPut a => Method a -- | Solidity function selector -- https://solidity.readthedocs.io/en/latest/abi-spec.html#function-selector-and-argument-encoding selector :: Method a => Proxy a -> Bytes instance Network.Ethereum.Contract.Method.Method () instance Data.Solidity.Abi.AbiType () instance Data.Solidity.Abi.AbiPut () -- | Ethereum has a metric system of denominations used as units of ether. -- Each denomination has its own unique name (some bear the family name -- of seminal figures playing a role in evolution of computer science and -- cryptoeconomics). The smallest denomination aka base unit of ether is -- called Wei. Below is a list of the named denominations and -- their value in Wei. Following a common (although somewhat -- ambiguous) pattern, ether also designates a unit (of 1e18 or one -- quintillion Wei) of the currency. Note that the currency is not -- called Ethereum as many mistakenly think, nor is Ethereum a unit. -- -- In Haskell the Ethereum unit system presented as set of types: -- Wei, Szabo, Finney, etc. They are members of -- Unit typeclass. Also available standart Show, -- Read, Num operations over Ethereum units. -- --
-- > let x = 1.2 :: Ether -- > toWei x -- 1200000000000000000 -- -- > let y = x + 2 -- > y -- 3.20 ether -- -- > let z = 15 :: Szabo -- > y + z -- -- interactive:6:5: error: -- • Couldn't match type ‘Network.Ethereum.Unit.U4’ -- with ‘Network.Ethereum.Unit.U6’ -- Expected type: Ether -- Actual type: Szabo --module Network.Ethereum.Unit -- | Ethereum value unit class (Read a, Show a, UnitSpec a, Fractional a) => Unit a -- | Make a value from integer wei fromWei :: (Unit a, Integral b) => b -> a -- | Convert a value to integer wei toWei :: (Unit a, Integral b) => a -> b -- | Wei unit type type Wei = Value U0 -- | Babbage unit type type Babbage = Value U1 -- | Lovelace unit type type Lovelace = Value U2 -- | Shannon unit type type Shannon = Value U3 -- | Szabo unit type type Szabo = Value U4 -- | Finney unit type type Finney = Value U5 -- | Ether unit type type Ether = Value U6 -- | KEther unit type type KEther = Value U7 instance GHC.Generics.Generic (Network.Ethereum.Unit.Value a) instance GHC.Classes.Ord (Network.Ethereum.Unit.Value a) instance GHC.Classes.Eq (Network.Ethereum.Unit.Value a) instance Network.Ethereum.Unit.UnitSpec Network.Ethereum.Unit.U7 instance Network.Ethereum.Unit.UnitSpec Network.Ethereum.Unit.U6 instance Network.Ethereum.Unit.UnitSpec Network.Ethereum.Unit.U5 instance Network.Ethereum.Unit.UnitSpec Network.Ethereum.Unit.U4 instance Network.Ethereum.Unit.UnitSpec Network.Ethereum.Unit.U3 instance Network.Ethereum.Unit.UnitSpec Network.Ethereum.Unit.U2 instance Network.Ethereum.Unit.UnitSpec Network.Ethereum.Unit.U1 instance Network.Ethereum.Unit.UnitSpec Network.Ethereum.Unit.U0 instance Network.Ethereum.Unit.UnitSpec a => Network.Ethereum.Unit.Unit (Network.Ethereum.Unit.Value a) instance Network.Ethereum.Unit.UnitSpec a => Network.Ethereum.Unit.UnitSpec (Network.Ethereum.Unit.Value a) instance Network.Ethereum.Unit.UnitSpec a => GHC.Num.Num (Network.Ethereum.Unit.Value a) instance Network.Ethereum.Unit.UnitSpec a => GHC.Real.Fractional (Network.Ethereum.Unit.Value a) instance Network.Ethereum.Unit.UnitSpec a => GHC.Show.Show (Network.Ethereum.Unit.Value a) instance Network.Ethereum.Unit.UnitSpec a => GHC.Read.Read (Network.Ethereum.Unit.Value a) -- | Transaction managing utils. module Network.Ethereum.Transaction -- | Ethereum transaction packer. -- -- Two way RLP encoding of Ethereum transaction: for unsigned and signed. -- Packing scheme described in -- https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md encodeTransaction :: ByteArray ba => Call -> Integer -> Maybe (Integer, Integer, Word8) -> ba -- | IPFS API types. module Network.Ipfs.Api.Types type CatReturnType = Text type ReprovideReturnType = Text type GetReturnType = Text type BlockReturnType = Text type DagReturnType = Text type ObjectReturnType = Text type FilesReadType = Text data DirLink DirLink :: Text -> Text -> Int64 -> Int -> Text -> DirLink [dlName] :: DirLink -> Text [dlHash] :: DirLink -> Text [dlSize] :: DirLink -> Int64 [dlContentType] :: DirLink -> Int [dlTarget] :: DirLink -> Text data DirObj DirObj :: Text -> [DirLink] -> DirObj [dirHash] :: DirObj -> Text [links] :: DirObj -> [DirLink] data AddObj AddObj :: Text -> Text -> Text -> AddObj [name] :: AddObj -> Text [hash] :: AddObj -> Text [size] :: AddObj -> Text data LsObj LsObj :: [DirObj] -> LsObj [objs] :: LsObj -> [DirObj] data SwarmStreamObj SwarmStreamObj :: Text -> SwarmStreamObj [protocol] :: SwarmStreamObj -> Text data SwarmPeerObj SwarmPeerObj :: Text -> Int -> Text -> Text -> Text -> Maybe [SwarmStreamObj] -> SwarmPeerObj [address] :: SwarmPeerObj -> Text [direction] :: SwarmPeerObj -> Int [latency] :: SwarmPeerObj -> Text [muxer] :: SwarmPeerObj -> Text [peer] :: SwarmPeerObj -> Text [streams] :: SwarmPeerObj -> Maybe [SwarmStreamObj] data SwarmPeersObj SwarmPeersObj :: [SwarmPeerObj] -> SwarmPeersObj [peers] :: SwarmPeersObj -> [SwarmPeerObj] data SwarmObj SwarmObj :: [Text] -> SwarmObj [strings] :: SwarmObj -> [Text] data WantlistObj WantlistObj :: Text -> WantlistObj [forSlash] :: WantlistObj -> Text data BitswapStatObj BitswapStatObj :: Int64 -> Int64 -> Int64 -> Int64 -> Int64 -> Int64 -> Int64 -> [Text] -> Int -> [WantlistObj] -> BitswapStatObj [blocksReceived] :: BitswapStatObj -> Int64 [blocksSent] :: BitswapStatObj -> Int64 [dataReceived] :: BitswapStatObj -> Int64 [dataSent] :: BitswapStatObj -> Int64 [dupBlksReceived] :: BitswapStatObj -> Int64 [dupDataReceived] :: BitswapStatObj -> Int64 [messagesReceived] :: BitswapStatObj -> Int64 [bitswapPeers] :: BitswapStatObj -> [Text] [provideBufLen] :: BitswapStatObj -> Int [wantlist] :: BitswapStatObj -> [WantlistObj] data BitswapWLObj BitswapWLObj :: [WantlistObj] -> BitswapWLObj [bitswapKeys] :: BitswapWLObj -> [WantlistObj] data BitswapLedgerObj BitswapLedgerObj :: Int64 -> Text -> Int64 -> Int64 -> Double -> BitswapLedgerObj [exchanged] :: BitswapLedgerObj -> Int64 [ledgerPeer] :: BitswapLedgerObj -> Text [recv] :: BitswapLedgerObj -> Int64 [sent] :: BitswapLedgerObj -> Int64 [value] :: BitswapLedgerObj -> Double data CidBasesObj CidBasesObj :: Int -> Text -> CidBasesObj [baseCode] :: CidBasesObj -> Int [baseName] :: CidBasesObj -> Text data CidCodecsObj CidCodecsObj :: Int -> Text -> CidCodecsObj [codecCode] :: CidCodecsObj -> Int [codecName] :: CidCodecsObj -> Text data CidHashesObj CidHashesObj :: Int -> Text -> CidHashesObj [multihashCode] :: CidHashesObj -> Int [multihashName] :: CidHashesObj -> Text data CidObj CidObj :: Text -> Text -> Text -> CidObj [cidStr] :: CidObj -> Text [errorMsg] :: CidObj -> Text [formatted] :: CidObj -> Text data BlockObj BlockObj :: Text -> Int -> BlockObj [key] :: BlockObj -> Text [blockSize] :: BlockObj -> Int data DagCidObj DagCidObj :: Text -> DagCidObj [cidSlash] :: DagCidObj -> Text data DagResolveObj DagResolveObj :: DagCidObj -> Text -> DagResolveObj [cid] :: DagResolveObj -> DagCidObj [remPath] :: DagResolveObj -> Text data DagPutObj DagPutObj :: DagCidObj -> DagPutObj [putCid] :: DagPutObj -> DagCidObj data ConfigObj ConfigObj :: Text -> Text -> ConfigObj [configKey] :: ConfigObj -> Text [configValue] :: ConfigObj -> Text data ObjectLinkObj ObjectLinkObj :: Text -> Text -> Int64 -> ObjectLinkObj [linkHash] :: ObjectLinkObj -> Text [linkName] :: ObjectLinkObj -> Text [linkSize] :: ObjectLinkObj -> Int64 data ObjectObj ObjectObj :: Text -> ObjectObj [newObjectHash] :: ObjectObj -> Text data ObjectLinksObj WithLinks :: Text -> [ObjectLinkObj] -> ObjectLinksObj [objectHash] :: ObjectLinksObj -> Text [objectLinks] :: ObjectLinksObj -> [ObjectLinkObj] WithoutLinks :: Text -> ObjectLinksObj [objectHash] :: ObjectLinksObj -> Text data ObjectGetObj ObjectGetObj :: Text -> [ObjectLinkObj] -> ObjectGetObj [objectName] :: ObjectGetObj -> Text [objectGetLinks] :: ObjectGetObj -> [ObjectLinkObj] data ObjectStatObj ObjectStatObj :: Int -> Int -> Int -> Text -> Int -> Int -> ObjectStatObj [objBlockSize] :: ObjectStatObj -> Int [cumulativeSize] :: ObjectStatObj -> Int [dataSize] :: ObjectStatObj -> Int [objHash] :: ObjectStatObj -> Text [linksSize] :: ObjectStatObj -> Int [numLinks] :: ObjectStatObj -> Int data DiffObj DiffObj :: Text -> DiffObj [diffSlash] :: DiffObj -> Text data ObjectChangeObj ObjectChangeObj :: Maybe DiffObj -> DiffObj -> Text -> Int -> ObjectChangeObj [after] :: ObjectChangeObj -> Maybe DiffObj [before] :: ObjectChangeObj -> DiffObj [path] :: ObjectChangeObj -> Text [diffType] :: ObjectChangeObj -> Int data ObjectDiffObj ObjectDiffObj :: [ObjectChangeObj] -> ObjectDiffObj [changes] :: ObjectDiffObj -> [ObjectChangeObj] data PinObj WithoutProgress :: [Text] -> PinObj [pins] :: PinObj -> [Text] WithProgress :: [Text] -> Int -> PinObj [pins] :: PinObj -> [Text] [progress] :: PinObj -> Int data BootstrapObj BootstrapObj :: [Text] -> BootstrapObj [bootstrapPeers] :: BootstrapObj -> [Text] data StatsBwObj StatsBwObj :: Double -> Double -> Int64 -> Int64 -> StatsBwObj [rateIn] :: StatsBwObj -> Double [rateOut] :: StatsBwObj -> Double [totalIn] :: StatsBwObj -> Int64 [totalOut] :: StatsBwObj -> Int64 data StatsRepoObj StatsRepoObj :: Int64 -> Text -> Int64 -> Int64 -> Text -> StatsRepoObj [numObjects] :: StatsRepoObj -> Int64 [repoPath] :: StatsRepoObj -> Text [repoSize] :: StatsRepoObj -> Int64 [storageMax] :: StatsRepoObj -> Int64 [repoVersion] :: StatsRepoObj -> Text data VersionObj VersionObj :: Text -> Text -> Text -> Text -> Text -> VersionObj [commit] :: VersionObj -> Text [golang] :: VersionObj -> Text [repo] :: VersionObj -> Text [system] :: VersionObj -> Text [version] :: VersionObj -> Text data IdObj IdObj :: [Text] -> Text -> Text -> Text -> Text -> IdObj [addresses] :: IdObj -> [Text] [agentVersion] :: IdObj -> Text [id] :: IdObj -> Text [protocolVersion] :: IdObj -> Text [publicKey] :: IdObj -> Text data DnsObj DnsObj :: Text -> DnsObj [dnsPath] :: DnsObj -> Text data PubsubObj PubsubObj :: [Text] -> PubsubObj [pubsubStrings] :: PubsubObj -> [Text] data LogLsObj LogLsObj :: [Text] -> LogLsObj [logLsStrings] :: LogLsObj -> [Text] data LogLevelObj LogLevelObj :: Text -> LogLevelObj [message] :: LogLevelObj -> Text data RepoVersionObj RepoVersionObj :: Text -> RepoVersionObj [repoVer] :: RepoVersionObj -> Text data RepoFsckObj RepoFsckObj :: Text -> RepoFsckObj [repoMessage] :: RepoFsckObj -> Text data KeyDetailsObj KeyDetailsObj :: Text -> Text -> KeyDetailsObj [keyId] :: KeyDetailsObj -> Text [keyName] :: KeyDetailsObj -> Text data KeyObj KeyObj :: [KeyDetailsObj] -> KeyObj [keys] :: KeyObj -> [KeyDetailsObj] data KeyRenameObj KeyRenameObj :: Text -> Text -> Bool -> Text -> KeyRenameObj [peerId] :: KeyRenameObj -> Text [now] :: KeyRenameObj -> Text [overwrite] :: KeyRenameObj -> Bool [was] :: KeyRenameObj -> Text data FilesStatObj FilesStatObj :: Text -> Int -> Int -> Int -> Text -> FilesStatObj [fileObjectHash] :: FilesStatObj -> Text [objectSize] :: FilesStatObj -> Int [cumulativeObjectSize] :: FilesStatObj -> Int [blocks] :: FilesStatObj -> Int [objectType] :: FilesStatObj -> Text data FilesEntryObj FilesEntryObj :: Text -> Int -> Int -> Text -> FilesEntryObj [entryName] :: FilesEntryObj -> Text [entryType] :: FilesEntryObj -> Int [entrySize] :: FilesEntryObj -> Int [entryHash] :: FilesEntryObj -> Text data FilesLsObj FilesLsObj :: [FilesEntryObj] -> FilesLsObj [enteries] :: FilesLsObj -> [FilesEntryObj] data FilesFlushObj FilesFlushObj :: Text -> FilesFlushObj [fileCid] :: FilesFlushObj -> Text -- | Defining a content type same as PlainText without charset data IpfsText -- | Defining a content type same as IpfsJSON data IpfsJSON type IpfsApi = "cat" :> Capture "arg" Text :> Get '[IpfsText] CatReturnType :<|> "ls" :> Capture "arg" Text :> Get '[JSON] LsObj :<|> "get" :> Capture "arg" Text :> Get '[IpfsText] GetReturnType :<|> "swarm" :> "peers" :> Get '[JSON] SwarmPeersObj :<|> "swarm" :> "connect" :> QueryParam "arg" Text :> Get '[JSON] SwarmObj :<|> "swarm" :> "disconnect" :> QueryParam "arg" Text :> Get '[JSON] SwarmObj :<|> "swarm" :> "filters" :> Get '[JSON] SwarmObj :<|> "swarm" :> "filters" :> "add" :> QueryParam "arg" Text :> Get '[JSON] SwarmObj :<|> "swarm" :> "filters" :> "rm" :> QueryParam "arg" Text :> Get '[JSON] SwarmObj :<|> "bitswap" :> "stat" :> Get '[JSON] BitswapStatObj :<|> "bitswap" :> "wantlist" :> Get '[JSON] BitswapWLObj :<|> "bitswap" :> "ledger" :> Capture "peerId" Text :> Get '[JSON] BitswapLedgerObj :<|> "bitswap" :> "reprovide" :> Get '[IpfsText] ReprovideReturnType :<|> "cid" :> "bases" :> Get '[JSON] [CidBasesObj] :<|> "cid" :> "codecs" :> Get '[JSON] [CidCodecsObj] :<|> "cid" :> "hashes" :> Get '[JSON] [CidHashesObj] :<|> "cid" :> "base32" :> Capture "cid" Text :> Get '[JSON] CidObj :<|> "cid" :> "format" :> Capture "cid" Text :> Get '[JSON] CidObj :<|> "block" :> "get" :> Capture "key" Text :> Get '[IpfsText] BlockReturnType :<|> "block" :> "stat" :> Capture "key" Text :> Get '[JSON] BlockObj :<|> "dag" :> "get" :> Capture "ref" Text :> Get '[IpfsJSON] DagReturnType :<|> "dag" :> "resolve" :> Capture "ref" Text :> Get '[JSON] DagResolveObj :<|> "config" :> Capture "ref" Text :> Get '[JSON] ConfigObj :<|> "config" :> Capture "arg" Text :> QueryParam "arg" Text :> Get '[JSON] ConfigObj :<|> "object" :> "data" :> Capture "ref" Text :> Get '[IpfsText] ObjectReturnType :<|> "object" :> "new" :> Get '[JSON] ObjectObj :<|> "object" :> "links" :> Capture "ref" Text :> Get '[JSON] ObjectLinksObj :<|> "object" :> "patch" :> "add-link" :> Capture "arg" Text :> QueryParam "arg" Text :> QueryParam "arg" Text :> Get '[JSON] ObjectLinksObj :<|> "object" :> "patch" :> "rm-link" :> Capture "arg" Text :> QueryParam "arg" Text :> Get '[JSON] ObjectLinksObj :<|> "object" :> "get" :> Capture "arg" Text :> Get '[JSON] ObjectGetObj :<|> "object" :> "diff" :> Capture "arg" Text :> QueryParam "arg" Text :> Get '[JSON] ObjectDiffObj :<|> "object" :> "stat" :> Capture "arg" Text :> Get '[JSON] ObjectStatObj :<|> "pin" :> "add" :> Capture "arg" Text :> Get '[JSON] PinObj :<|> "pin" :> "rm" :> Capture "arg" Text :> Get '[JSON] PinObj :<|> "bootstrap" :> "add" :> QueryParam "arg" Text :> Get '[JSON] BootstrapObj :<|> "bootstrap" :> "list" :> Get '[JSON] BootstrapObj :<|> "bootstrap" :> "rm" :> QueryParam "arg" Text :> Get '[JSON] BootstrapObj :<|> "stats" :> "bw" :> Get '[JSON] StatsBwObj :<|> "stats" :> "repo" :> Get '[JSON] StatsRepoObj :<|> "version" :> Get '[JSON] VersionObj :<|> "id" :> Get '[JSON] IdObj :<|> "id" :> Capture "arg" Text :> Get '[JSON] IdObj :<|> "dns" :> Capture "arg" Text :> Get '[JSON] DnsObj :<|> "pubsub" :> "ls" :> Get '[JSON] PubsubObj :<|> "pubsub" :> "peers" :> Get '[JSON] PubsubObj :<|> "pubsub" :> "pub" :> Capture "arg" Text :> QueryParam "arg" Text :> Get '[JSON] NoContent :<|> "log" :> "ls" :> Get '[JSON] LogLsObj :<|> "log" :> "level" :> Capture "arg" Text :> QueryParam "arg" Text :> Get '[JSON] LogLevelObj :<|> "repo" :> "version" :> Get '[JSON] RepoVersionObj :<|> "repo" :> "fsck" :> Get '[JSON] RepoFsckObj :<|> "key" :> "gen" :> Capture "arg" Text :> QueryParam "type" Text :> Get '[JSON] KeyDetailsObj :<|> "key" :> "list" :> Get '[JSON] KeyObj :<|> "key" :> "rename" :> Capture "arg" Text :> QueryParam "arg" Text :> Get '[JSON] KeyRenameObj :<|> "key" :> "rm" :> Capture "arg" Text :> Get '[JSON] KeyObj :<|> "files" :> "chcid" :> QueryParam "arg" Text :> QueryParam "cid-version" Int :> Get '[JSON] NoContent :<|> "files" :> "cp" :> QueryParam "arg" Text :> QueryParam "arg" Text :> Get '[JSON] NoContent :<|> "files" :> "flush" :> QueryParam "arg" Text :> Get '[JSON] FilesFlushObj :<|> "files" :> "ls" :> QueryParam "arg" Text :> Get '[JSON] FilesLsObj :<|> "files" :> "mkdir" :> QueryParam "arg" Text :> Get '[JSON] NoContent :<|> "files" :> "mv" :> QueryParam "arg" Text :> QueryParam "arg" Text :> Get '[JSON] NoContent :<|> "files" :> "read" :> QueryParam "arg" Text :> Get '[IpfsText] FilesReadType :<|> "files" :> "rm" :> QueryParam "arg" Text :> QueryParam "recursive" Bool :> Get '[JSON] NoContent :<|> "files" :> "stat" :> QueryParam "arg" Text :> Get '[JSON] FilesStatObj :<|> "shutdown" :> Get '[JSON] NoContent instance GHC.Classes.Eq Network.Ipfs.Api.Types.FilesFlushObj instance GHC.Show.Show Network.Ipfs.Api.Types.FilesFlushObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.FilesLsObj instance GHC.Show.Show Network.Ipfs.Api.Types.FilesLsObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.FilesEntryObj instance GHC.Show.Show Network.Ipfs.Api.Types.FilesEntryObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.FilesStatObj instance GHC.Show.Show Network.Ipfs.Api.Types.FilesStatObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.KeyRenameObj instance GHC.Show.Show Network.Ipfs.Api.Types.KeyRenameObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.KeyObj instance GHC.Show.Show Network.Ipfs.Api.Types.KeyObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.KeyDetailsObj instance GHC.Show.Show Network.Ipfs.Api.Types.KeyDetailsObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.RepoFsckObj instance GHC.Show.Show Network.Ipfs.Api.Types.RepoFsckObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.RepoVersionObj instance GHC.Show.Show Network.Ipfs.Api.Types.RepoVersionObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.LogLevelObj instance GHC.Show.Show Network.Ipfs.Api.Types.LogLevelObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.LogLsObj instance GHC.Show.Show Network.Ipfs.Api.Types.LogLsObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.PubsubObj instance GHC.Show.Show Network.Ipfs.Api.Types.PubsubObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.DnsObj instance GHC.Show.Show Network.Ipfs.Api.Types.DnsObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.IdObj instance GHC.Show.Show Network.Ipfs.Api.Types.IdObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.VersionObj instance GHC.Show.Show Network.Ipfs.Api.Types.VersionObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.StatsRepoObj instance GHC.Show.Show Network.Ipfs.Api.Types.StatsRepoObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.StatsBwObj instance GHC.Show.Show Network.Ipfs.Api.Types.StatsBwObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.BootstrapObj instance GHC.Show.Show Network.Ipfs.Api.Types.BootstrapObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.PinObj instance GHC.Show.Show Network.Ipfs.Api.Types.PinObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.ObjectDiffObj instance GHC.Show.Show Network.Ipfs.Api.Types.ObjectDiffObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.ObjectChangeObj instance GHC.Show.Show Network.Ipfs.Api.Types.ObjectChangeObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.DiffObj instance GHC.Show.Show Network.Ipfs.Api.Types.DiffObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.ObjectStatObj instance GHC.Show.Show Network.Ipfs.Api.Types.ObjectStatObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.ObjectGetObj instance GHC.Show.Show Network.Ipfs.Api.Types.ObjectGetObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.ObjectLinksObj instance GHC.Show.Show Network.Ipfs.Api.Types.ObjectLinksObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.ObjectObj instance GHC.Show.Show Network.Ipfs.Api.Types.ObjectObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.ObjectLinkObj instance GHC.Show.Show Network.Ipfs.Api.Types.ObjectLinkObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.ConfigObj instance GHC.Show.Show Network.Ipfs.Api.Types.ConfigObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.DagPutObj instance GHC.Show.Show Network.Ipfs.Api.Types.DagPutObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.DagResolveObj instance GHC.Show.Show Network.Ipfs.Api.Types.DagResolveObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.DagCidObj instance GHC.Show.Show Network.Ipfs.Api.Types.DagCidObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.BlockObj instance GHC.Show.Show Network.Ipfs.Api.Types.BlockObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.CidObj instance GHC.Show.Show Network.Ipfs.Api.Types.CidObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.CidHashesObj instance GHC.Show.Show Network.Ipfs.Api.Types.CidHashesObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.CidCodecsObj instance GHC.Show.Show Network.Ipfs.Api.Types.CidCodecsObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.CidBasesObj instance GHC.Show.Show Network.Ipfs.Api.Types.CidBasesObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.BitswapLedgerObj instance GHC.Show.Show Network.Ipfs.Api.Types.BitswapLedgerObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.BitswapWLObj instance GHC.Show.Show Network.Ipfs.Api.Types.BitswapWLObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.BitswapStatObj instance GHC.Show.Show Network.Ipfs.Api.Types.BitswapStatObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.WantlistObj instance GHC.Show.Show Network.Ipfs.Api.Types.WantlistObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.SwarmObj instance GHC.Show.Show Network.Ipfs.Api.Types.SwarmObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.SwarmPeersObj instance GHC.Show.Show Network.Ipfs.Api.Types.SwarmPeersObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.SwarmPeerObj instance GHC.Show.Show Network.Ipfs.Api.Types.SwarmPeerObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.SwarmStreamObj instance GHC.Show.Show Network.Ipfs.Api.Types.SwarmStreamObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.LsObj instance GHC.Show.Show Network.Ipfs.Api.Types.LsObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.AddObj instance GHC.Show.Show Network.Ipfs.Api.Types.AddObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.DirObj instance GHC.Show.Show Network.Ipfs.Api.Types.DirObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.DirLink instance GHC.Show.Show Network.Ipfs.Api.Types.DirLink instance Servant.API.ContentTypes.Accept Network.Ipfs.Api.Types.IpfsJSON instance Servant.API.ContentTypes.MimeUnrender Network.Ipfs.Api.Types.IpfsJSON Data.Text.Internal.Text instance Servant.API.ContentTypes.Accept Network.Ipfs.Api.Types.IpfsText instance Servant.API.ContentTypes.MimeUnrender Network.Ipfs.Api.Types.IpfsText Data.Text.Internal.Text instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.FilesFlushObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.FilesLsObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.FilesEntryObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.FilesStatObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.KeyRenameObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.KeyObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.KeyDetailsObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.RepoFsckObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.RepoVersionObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.LogLevelObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.LogLsObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.PubsubObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.DnsObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.IdObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.VersionObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.StatsRepoObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.StatsBwObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.BootstrapObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.PinObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.ObjectDiffObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.ObjectChangeObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.DiffObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.ObjectStatObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.ObjectGetObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.ObjectLinksObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.ObjectObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.ObjectLinkObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.ConfigObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.DagPutObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.DagResolveObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.DagCidObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.BlockObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.CidObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.CidHashesObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.CidCodecsObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.CidBasesObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.BitswapLedgerObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.BitswapWLObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.BitswapStatObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.WantlistObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.SwarmObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.SwarmPeersObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.SwarmPeerObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.SwarmStreamObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.LsObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.AddObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.DirObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.DirLink -- | IPFS API internals. module Network.Ipfs.Api.Internal _ipfsApi :: Proxy IpfsApi _cat :: Text -> ClientM CatReturnType _ls :: Text -> ClientM LsObj _get :: Text -> ClientM GetReturnType _swarmPeers :: ClientM SwarmPeersObj _swarmConnect :: Maybe Text -> ClientM SwarmObj _swarmDisconnect :: Maybe Text -> ClientM SwarmObj _swarmFilters :: ClientM SwarmObj _swarmFilterAdd :: Maybe Text -> ClientM SwarmObj _swarmFilterRm :: Maybe Text -> ClientM SwarmObj _bitswapStat :: ClientM BitswapStatObj _bitswapWL :: ClientM BitswapWLObj _bitswapLedger :: Text -> ClientM BitswapLedgerObj _bitswapReprovide :: ClientM ReprovideReturnType _cidBases :: ClientM [CidBasesObj] _cidCodecs :: ClientM [CidCodecsObj] _cidHashes :: ClientM [CidHashesObj] _cidBase32 :: Text -> ClientM CidObj _cidFormat :: Text -> ClientM CidObj _blockGet :: Text -> ClientM BlockReturnType _blockStat :: Text -> ClientM BlockObj _dagGet :: Text -> ClientM DagReturnType _dagResolve :: Text -> ClientM DagResolveObj _configGet :: Text -> ClientM ConfigObj _configSet :: Text -> Maybe Text -> ClientM ConfigObj _objectData :: Text -> ClientM ObjectReturnType _objectNew :: ClientM ObjectObj _objectGetLinks :: Text -> ClientM ObjectLinksObj _objectAddLink :: Text -> Maybe Text -> Maybe Text -> ClientM ObjectLinksObj _objectRmLink :: Text -> Maybe Text -> ClientM ObjectLinksObj _objectGet :: Text -> ClientM ObjectGetObj _objectDiff :: Text -> Maybe Text -> ClientM ObjectDiffObj _objectStat :: Text -> ClientM ObjectStatObj _pinAdd :: Text -> ClientM PinObj _pinRemove :: Text -> ClientM PinObj _bootstrapAdd :: Maybe Text -> ClientM BootstrapObj _bootstrapList :: ClientM BootstrapObj _bootstrapRM :: Maybe Text -> ClientM BootstrapObj _statsBw :: ClientM StatsBwObj _statsRepo :: ClientM StatsRepoObj _version :: ClientM VersionObj _id :: ClientM IdObj _idPeer :: Text -> ClientM IdObj _dns :: Text -> ClientM DnsObj _pubsubLs :: ClientM PubsubObj _pubsubPeers :: ClientM PubsubObj _pubsubPublish :: Text -> Maybe Text -> ClientM NoContent _logLs :: ClientM LogLsObj _logLevel :: Text -> Maybe Text -> ClientM LogLevelObj _repoVersion :: ClientM RepoVersionObj _repoFsck :: ClientM RepoFsckObj _keyGen :: Text -> Maybe Text -> ClientM KeyDetailsObj _keyList :: ClientM KeyObj _keyRename :: Text -> Maybe Text -> ClientM KeyRenameObj _keyRm :: Text -> ClientM KeyObj _filesChcid :: Maybe Text -> Maybe Int -> ClientM NoContent _filesCp :: Maybe Text -> Maybe Text -> ClientM NoContent _filesFlush :: Maybe Text -> ClientM FilesFlushObj _filesLs :: Maybe Text -> ClientM FilesLsObj _filesMkdir :: Maybe Text -> ClientM NoContent _filesMv :: Maybe Text -> Maybe Text -> ClientM NoContent _filesRead :: Maybe Text -> ClientM FilesReadType _filesRm :: Maybe Text -> Maybe Bool -> ClientM NoContent _filesStat :: Maybe Text -> ClientM FilesStatObj _shutdown :: ClientM NoContent -- | Ipfs Stream API types. module Network.Ipfs.Api.Types.Stream type LogReturnType = Text data PingObj PingObj :: Bool -> Text -> Int64 -> PingObj [success] :: PingObj -> Bool [text] :: PingObj -> Text [time] :: PingObj -> Int64 data ResponseObj ResponseObj :: Maybe [Text] -> Text -> ResponseObj [addrs] :: ResponseObj -> Maybe [Text] [id] :: ResponseObj -> Text data DhtObj DhtObj :: Text -> Text -> Maybe [ResponseObj] -> Int -> DhtObj [extra] :: DhtObj -> Text [addrid] :: DhtObj -> Text [responses] :: DhtObj -> Maybe [ResponseObj] [addrType] :: DhtObj -> Int data RepoKeyObj RepoKeyObj :: Text -> RepoKeyObj [repoSlash] :: RepoKeyObj -> Text data RepoGcObj RepoGcObj :: RepoKeyObj -> RepoGcObj [repoKey] :: RepoGcObj -> RepoKeyObj data RepoVerifyObj RepoVerifyObj :: Text -> Int -> RepoVerifyObj [msg] :: RepoVerifyObj -> Text [progress] :: RepoVerifyObj -> Int data RefsObj RefsObj :: Text -> Text -> RefsObj [error] :: RefsObj -> Text [ref] :: RefsObj -> Text data PubsubSubObj PubsubSubObj :: Text -> Text -> Text -> [Text] -> PubsubSubObj [mssgdata] :: PubsubSubObj -> Text [from] :: PubsubSubObj -> Text [seqno] :: PubsubSubObj -> Text [topicIDs] :: PubsubSubObj -> [Text] type IpfsStreamApi = "ping" :> Capture "arg" Text :> StreamGet NewlineFraming JSON (SourceIO PingObj) :<|> "dht" :> "findpeer" :> Capture "arg" Text :> StreamGet NewlineFraming JSON (SourceIO DhtObj) :<|> "dht" :> "findprovs" :> Capture "arg" Text :> StreamGet NewlineFraming JSON (SourceIO DhtObj) :<|> "dht" :> "get" :> Capture "arg" Text :> StreamGet NewlineFraming JSON (SourceIO DhtObj) :<|> "dht" :> "provide" :> Capture "arg" Text :> StreamGet NewlineFraming JSON (SourceIO DhtObj) :<|> "dht" :> "query" :> Capture "arg" Text :> StreamGet NewlineFraming JSON (SourceIO DhtObj) :<|> "log" :> "tail" :> StreamGet NewlineFraming IpfsText (SourceIO LogReturnType) :<|> "repo" :> "gc" :> StreamGet NewlineFraming JSON (SourceIO RepoGcObj) :<|> "repo" :> "verify" :> StreamGet NewlineFraming JSON (SourceIO RepoVerifyObj) :<|> "refs" :> Capture "arg" Text :> StreamGet NewlineFraming JSON (SourceIO RefsObj) :<|> "refs" :> "local" :> StreamGet NewlineFraming JSON (SourceIO RefsObj) :<|> "pubsub" :> "sub" :> Capture "arg" Text :> StreamGet NewlineFraming JSON (SourceIO PubsubSubObj) instance GHC.Classes.Eq Network.Ipfs.Api.Types.Stream.PubsubSubObj instance GHC.Show.Show Network.Ipfs.Api.Types.Stream.PubsubSubObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.Stream.RefsObj instance GHC.Show.Show Network.Ipfs.Api.Types.Stream.RefsObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.Stream.RepoVerifyObj instance GHC.Show.Show Network.Ipfs.Api.Types.Stream.RepoVerifyObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.Stream.RepoGcObj instance GHC.Show.Show Network.Ipfs.Api.Types.Stream.RepoGcObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.Stream.RepoKeyObj instance GHC.Show.Show Network.Ipfs.Api.Types.Stream.RepoKeyObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.Stream.DhtObj instance GHC.Show.Show Network.Ipfs.Api.Types.Stream.DhtObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.Stream.ResponseObj instance GHC.Show.Show Network.Ipfs.Api.Types.Stream.ResponseObj instance GHC.Classes.Eq Network.Ipfs.Api.Types.Stream.PingObj instance GHC.Show.Show Network.Ipfs.Api.Types.Stream.PingObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.Stream.PubsubSubObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.Stream.RefsObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.Stream.RepoVerifyObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.Stream.RepoGcObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.Stream.RepoKeyObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.Stream.DhtObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.Stream.ResponseObj instance Data.Aeson.Types.FromJSON.FromJSON Network.Ipfs.Api.Types.Stream.PingObj -- | Ipfs Stream API provider. module Network.Ipfs.Api.Internal.Stream _ipfsStreamApi :: Proxy IpfsStreamApi _ping :: Text -> ClientM (SourceIO PingObj) _dhtFindPeer :: Text -> ClientM (SourceIO DhtObj) _dhtFindProvs :: Text -> ClientM (SourceIO DhtObj) _dhtGet :: Text -> ClientM (SourceIO DhtObj) _dhtProvide :: Text -> ClientM (SourceIO DhtObj) _dhtQuery :: Text -> ClientM (SourceIO DhtObj) _logTail :: ClientM (SourceIO LogReturnType) _repoGc :: ClientM (SourceIO RepoGcObj) _repoVerify :: ClientM (SourceIO RepoVerifyObj) _refs :: Text -> ClientM (SourceIO RefsObj) _refsLocal :: ClientM (SourceIO RefsObj) _pubsubSubscribe :: Text -> ClientM (SourceIO PubsubSubObj) -- | IPFS daemon HTTP client. module Network.Ipfs.Client newtype IpfsT m a IpfsT :: ReaderT (Manager, BaseUrl, String) (ExceptT ClientError m) a -> IpfsT m a [unIpfs] :: IpfsT m a -> ReaderT (Manager, BaseUrl, String) (ExceptT ClientError m) a type Ipfs a = IpfsT IO a -- | IpfsT monad runner. runIpfs' :: BaseUrl -> Ipfs a -> IO () -- | IpfsT monad runner with default arguments. runIpfs :: Ipfs a -> IO () instance GHC.Base.Monad m => Control.Monad.Error.Class.MonadError Servant.Client.Core.ClientError.ClientError (Network.Ipfs.Client.IpfsT m) instance GHC.Base.Monad m => Control.Monad.Reader.Class.MonadReader (Network.HTTP.Client.Types.Manager, Servant.Client.Core.BaseUrl.BaseUrl, GHC.Base.String) (Network.Ipfs.Client.IpfsT m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Network.Ipfs.Client.IpfsT m) instance GHC.Base.Monad m => GHC.Base.Monad (Network.Ipfs.Client.IpfsT m) instance GHC.Base.Monad m => GHC.Base.Applicative (Network.Ipfs.Client.IpfsT m) instance GHC.Base.Functor m => GHC.Base.Functor (Network.Ipfs.Client.IpfsT m) instance Control.Monad.Trans.Class.MonadTrans Network.Ipfs.Client.IpfsT -- | Module containing IPFS API call functions. module Network.Ipfs.Api.Internal.Call -- | Regular Call function. call :: MonadIO m => ClientM a -> IpfsT m a -- | Call function for ‘multipart/form-data’. multipartCall :: MonadIO m => Text -> Text -> IpfsT m (Response ByteString) -- | Call function for Streams. streamCall :: (MonadIO m, Show a) => ClientM (SourceT IO a) -> m () -- | Api calls with swarm prefix. module Network.Ipfs.Api.Swarm -- | List peers with open connections. swarmPeers :: MonadIO m => IpfsT m SwarmPeersObj -- | Open connection to a given address. peerId has to be of the -- format - ipfsid connect :: MonadIO m => Text -> IpfsT m SwarmObj -- | Close connection to a given address. peerId has to be of the -- format - ipfsid disconnect :: MonadIO m => Text -> IpfsT m SwarmObj -- | Manipulate address filters. filters :: MonadIO m => IpfsT m SwarmObj -- | Add an address filter. peerId has to be of the format - -- ip4{IP addr of peer}ipcidr{ip network prefix} filterAdd :: MonadIO m => Text -> IpfsT m SwarmObj -- | Remove an address filter. filterRm :: MonadIO m => Text -> IpfsT m SwarmObj -- | Api calls with stats prefix. module Network.Ipfs.Api.Stats -- | IPFS bandwidth information. bw :: MonadIO m => IpfsT m StatsBwObj -- | Get stats for the currently used repo. repo :: MonadIO m => IpfsT m StatsRepoObj -- | Api calls with repo prefix. module Network.Ipfs.Api.Repo -- | Show the repo version. version :: MonadIO m => IpfsT m RepoVersionObj -- | Remove repo lockfiles. fsck :: MonadIO m => IpfsT m RepoFsckObj -- | Perform a garbage collection sweep on the repo. gc :: MonadIO m => m () -- | Verify all blocks in repo are not corrupted. repoVerify :: MonadIO m => m () -- | Api calls with pubsub prefix. module Network.Ipfs.Api.Pubsub -- | List subscribed topics by name. ls :: MonadIO m => IpfsT m PubsubObj -- | List peers we are currently pubsubbing with. peers :: MonadIO m => IpfsT m PubsubObj -- | Publish a message to a given pubsub topic. publish :: MonadIO m => Text -> Text -> IpfsT m NoContent -- | Api calls with pin prefix. module Network.Ipfs.Api.Pin -- | Pin objects to local storage. add :: MonadIO m => Text -> IpfsT m PinObj -- | Remove pinned objects from local storage. remove :: MonadIO m => Text -> IpfsT m PinObj -- | Api calls with object prefix. module Network.Ipfs.Api.Object -- | Output the raw bytes of an IPFS object. object :: MonadIO m => Text -> IpfsT m ObjectReturnType -- | Create a new object from an ipfs template. new :: MonadIO m => IpfsT m ObjectObj -- | Output the links pointed to by the specified object. getLinks :: MonadIO m => Text -> IpfsT m ObjectLinksObj -- | Add a Merkle-link to the given object and return the hash of the -- result. addLink :: MonadIO m => Text -> Text -> Text -> IpfsT m ObjectLinksObj -- | Remove a Merkle-link from the given object and return the hash of the -- result. rmLink :: MonadIO m => Text -> Text -> IpfsT m ObjectLinksObj -- | Append data to what already exists in the data segment in the given -- object. appendData :: MonadIO m => Text -> Text -> IpfsT m (Maybe ObjectLinksObj) -- | Set the data field of an IPFS object. setData :: MonadIO m => Text -> Text -> IpfsT m (Maybe ObjectLinksObj) -- | Get and serialize the DAG node named by key. get :: MonadIO m => Text -> IpfsT m ObjectGetObj -- | 'Display the diff between two ipfs objects. diff :: MonadIO m => Text -> Text -> IpfsT m ObjectDiffObj -- | Store input as a DAG object, print its key. put :: MonadIO m => Text -> IpfsT m (Maybe ObjectObj) -- | Get stats for the DAG node named by key. objectStat :: MonadIO m => Text -> IpfsT m ObjectStatObj -- | Api calls with log prefix. module Network.Ipfs.Api.Log -- | Change the logging level. level :: MonadIO m => Text -> Text -> IpfsT m LogLevelObj -- | Read the event log. tail :: MonadIO m => m () -- | List the logging subsystems. ls :: MonadIO m => IpfsT m LogLsObj -- | Api calls with key prefix. module Network.Ipfs.Api.Key -- | 'List all local keypairs. list :: MonadIO m => IpfsT m KeyObj -- | Create a new keypair. gen :: MonadIO m => Text -> Text -> IpfsT m KeyDetailsObj -- | Rename a keypair. rename :: MonadIO m => Text -> Text -> IpfsT m KeyRenameObj -- | Remove a keypair. rm :: MonadIO m => Text -> IpfsT m KeyObj -- | Api calls with dht prefix. module Network.Ipfs.Api.Dht -- | Find the multiaddresses associated with the given peerId. findPeer :: MonadIO m => Text -> m () -- | Find peers that can provide a specific value, given a key. findProvs :: MonadIO m => Text -> m () -- | Given a key, query the routing system for its best value. get :: MonadIO m => Text -> m () -- | Announce to the network that you are providing given values. provide :: MonadIO m => Text -> m () -- | Find the closest Peer IDs to a given peerID by querying the DHT. query :: MonadIO m => Text -> m () -- | Api calls with files prefix. module Network.Ipfs.Api.Files -- | Change the cid version or hash function of the root node of a given -- mfsPath. chcidVer :: MonadIO m => Text -> Int -> IpfsT m NoContent -- | Copy files into mfs. cp :: MonadIO m => Text -> Text -> IpfsT m NoContent -- | Flush a given path's data to disk. flush :: MonadIO m => Text -> IpfsT m FilesFlushObj -- | List directories in the local mutable namespace. ls :: MonadIO m => Text -> IpfsT m FilesLsObj -- | Make directories. mkdir :: MonadIO m => Text -> IpfsT m NoContent -- | Move files. mv :: MonadIO m => Text -> Text -> IpfsT m NoContent -- | Read a file in a given mfs. read :: MonadIO m => Text -> IpfsT m FilesReadType -- | Display file status. stat :: MonadIO m => Text -> IpfsT m FilesStatObj -- | Remove a file. filesRm :: MonadIO m => Text -> IpfsT m NoContent -- | Write to a mutable file in a given filesystem. write :: MonadIO m => Text -> Text -> Bool -> IpfsT m Bool -- | Api calls with dag prefix. module Network.Ipfs.Api.Dag -- | Get a dag node from ipfs. get :: MonadIO m => Text -> IpfsT m DagReturnType -- | Resolve ipld block. resolve :: MonadIO m => Text -> IpfsT m DagResolveObj -- | Add a dag node to ipfs. put :: MonadIO m => Text -> IpfsT m (Maybe DagPutObj) -- | Core IPFS API calls. module Network.Ipfs.Api.Core -- | Show IPFS object data. cat :: MonadIO m => Text -> IpfsT m CatReturnType -- | Add a file or directory to ipfs. add :: MonadIO m => Text -> IpfsT m (Maybe AddObj) -- | List directory contents for Unix filesystem objects. ls :: MonadIO m => Text -> IpfsT m LsObj -- | Download IPFS objects. get :: MonadIO m => Text -> IpfsT m Text -- | Show ipfs version information. version :: MonadIO m => IpfsT m VersionObj -- | Show ipfs node id info. id :: MonadIO m => IpfsT m IdObj -- | Show ipfs node id info of the given peerId. idPeer :: MonadIO m => Text -> IpfsT m IdObj -- | Resolve DNS links. dns :: MonadIO m => Text -> IpfsT m DnsObj -- | List links (references) from an object. refs :: MonadIO m => Text -> m () -- | List all local references. refsLocal :: MonadIO m => m () -- | Send echo request packets to IPFS hosts. ping :: MonadIO m => Text -> m () -- | Shut down the ipfs daemon. shutdown :: MonadIO m => IpfsT m NoContent -- | Api calls with config prefix. module Network.Ipfs.Api.Config -- | Get ipfs config values. get :: MonadIO m => Text -> IpfsT m ConfigObj -- | Set ipfs config values. set :: MonadIO m => Text -> Maybe Text -> IpfsT m ConfigObj -- | Replace the config with the file at filePath. replace :: MonadIO m => Text -> IpfsT m Bool -- | Api calls with cid prefix. module Network.Ipfs.Api.Cid -- | List available multibase encodings. bases :: MonadIO m => IpfsT m [CidBasesObj] -- | List available CID codecs. codecs :: MonadIO m => IpfsT m [CidCodecsObj] -- | List available multihashes. hashes :: MonadIO m => IpfsT m [CidHashesObj] -- | Convert CIDs to Base32 CID version 1. base32 :: MonadIO m => Text -> IpfsT m CidObj -- | Format and convert a CID in various useful ways. format :: MonadIO m => Text -> IpfsT m CidObj -- | Api calls with bootstrap prefix. module Network.Ipfs.Api.Bootstrap -- | Add peers to the bootstrap list. add :: MonadIO m => Text -> IpfsT m BootstrapObj -- | Show peers in the bootstrap list. list :: MonadIO m => IpfsT m BootstrapObj -- | Remove peers from the bootstrap list. rm :: MonadIO m => Text -> IpfsT m BootstrapObj -- | Api calls with block prefix. module Network.Ipfs.Api.Block -- | Get a raw IPFS block. get :: MonadIO m => Text -> IpfsT m BlockReturnType -- | Store input as an IPFS block. put :: MonadIO m => Text -> IpfsT m (Maybe BlockObj) -- | Print information of a raw IPFS block. stat :: MonadIO m => Text -> IpfsT m BlockObj -- | Api calls with bitswap prefix. module Network.Ipfs.Api.Bitswap -- | 'Show some diagnostic information on the bitswap agent. stat :: MonadIO m => IpfsT m BitswapStatObj -- | Show blocks currently on the wantlist. wl :: MonadIO m => IpfsT m BitswapWLObj -- | Show the current ledger for a peer. ledger :: MonadIO m => Text -> IpfsT m BitswapLedgerObj -- | Trigger reprovider. reprovide :: MonadIO m => IpfsT m ReprovideReturnType -- | Tiny JSON-RPC 2.0 client. Functions for implementing the client side -- of JSON-RPC 2.0. See http://www.jsonrpc.org/specification. -- -- If you have monad with MonadIO, MonadThrow and -- MonadReader instances, it can be used as base for JSON-RPC -- calls. -- -- Example: -- --
-- newtype MyMonad a = ... -- -- instance JsonRpc MyMonad -- -- foo :: Mymonad Text -- foo = remote "foo" ---- -- Arguments of function are stored into params request array. -- -- Example: -- --
-- myMethod :: JsonRpc m => Int -> Bool -> m String -- myMethod = remote "myMethod" --module Network.JsonRpc.TinyClient -- | JSON-RPC call monad. class JsonRpcM m => JsonRpc m -- | Remote call of JSON-RPC method. remote :: (JsonRpc m, Remote m a) => MethodName -> a -- | Name of called method. type MethodName = Text -- | JSON-RPC client state vars. data JsonRpcClient JsonRpcHttpClient :: Manager -> String -> JsonRpcClient -- | HTTP connection manager. [jsonRpcManager] :: JsonRpcClient -> Manager -- | Remote server URI. [jsonRpcServer] :: JsonRpcClient -> String JsonRpcWsClient :: Connection -> JsonRpcClient -- | WebSocket connection. [jsonRpcWsConnection] :: JsonRpcClient -> Connection -- | Create default JsonRpcClient settings. defaultSettings :: MonadIO m => String -> m JsonRpcClient data JsonRpcException ParsingException :: String -> JsonRpcException CallException :: RpcError -> JsonRpcException -- | JSON-RPC error message data RpcError RpcError :: !Int -> !Text -> !Maybe Value -> RpcError [errCode] :: RpcError -> !Int [errMessage] :: RpcError -> !Text [errData] :: RpcError -> !Maybe Value instance GHC.Classes.Eq Network.JsonRpc.TinyClient.JsonRpcException instance GHC.Show.Show Network.JsonRpc.TinyClient.JsonRpcException instance GHC.Show.Show Network.JsonRpc.TinyClient.Response instance GHC.Classes.Eq Network.JsonRpc.TinyClient.Response instance GHC.Classes.Eq Network.JsonRpc.TinyClient.RpcError instance GHC.Show.Show Network.JsonRpc.TinyClient.Request instance GHC.Classes.Eq Network.JsonRpc.TinyClient.Request instance (Data.Aeson.Types.ToJSON.ToJSON a, Network.JsonRpc.TinyClient.Remote m b) => Network.JsonRpc.TinyClient.Remote m (a -> b) instance (Network.JsonRpc.TinyClient.JsonRpcM m, Data.Aeson.Types.FromJSON.FromJSON b) => Network.JsonRpc.TinyClient.Remote m (m b) instance GHC.Exception.Type.Exception Network.JsonRpc.TinyClient.JsonRpcException instance Data.Aeson.Types.FromJSON.FromJSON Network.JsonRpc.TinyClient.Response instance GHC.Show.Show Network.JsonRpc.TinyClient.RpcError instance Data.Aeson.Types.FromJSON.FromJSON Network.JsonRpc.TinyClient.RpcError instance Data.Aeson.Types.ToJSON.ToJSON Network.JsonRpc.TinyClient.Request instance GHC.Show.Show Network.JsonRpc.TinyClient.JsonRpcClient -- | Ethereum node JSON-RPC API methods with web3_ prefix. module Network.Ethereum.Api.Web3 -- | Returns current node version string. clientVersion :: JsonRpc m => m Text -- | Returns Keccak-256 (not the standardized SHA3-256) of the given data. sha3 :: JsonRpc m => HexString -> m HexString -- | Ethereum node JSON-RPC API methods with personal_ prefix. module Network.Ethereum.Api.Personal type Passphrase = Text -- | Imports the given unencrypted private key (hex string) into the key -- store, encrypting it with the passphrase. -- -- Parameters: -- --
-- withAccount () $ -- withParam (to .~ tokenAddress) $ -- transfer alice 42 -- --withParam :: Account p (AccountT p) => (CallParam p -> CallParam p) -> AccountT p m a -> AccountT p m a defaultCallParam :: a -> CallParam a getCall :: MonadState (CallParam p) m => m Call getReceipt :: JsonRpc m => HexString -> m TxReceipt updateReceipt :: JsonRpc m => TxReceipt -> m TxReceipt instance Control.Monad.Trans.Class.MonadTrans (Network.Ethereum.Account.Internal.AccountT p) instance GHC.Base.Monad m => GHC.Base.Monad (Network.Ethereum.Account.Internal.AccountT p m) instance GHC.Base.Monad m => GHC.Base.Applicative (Network.Ethereum.Account.Internal.AccountT p m) instance GHC.Base.Functor m => GHC.Base.Functor (Network.Ethereum.Account.Internal.AccountT p m) instance GHC.Classes.Eq p => GHC.Classes.Eq (Network.Ethereum.Account.Internal.CallParam p) instance GHC.Base.Monad m => Control.Monad.State.Class.MonadState (Network.Ethereum.Account.Internal.CallParam p) (Network.Ethereum.Account.Internal.AccountT p m) -- | Safe sending of Ethereum transaction. module Network.Ethereum.Account.Safe -- | Safe version of send function of Account typeclass -- Waiting for some blocks of transaction confirmation before return safeSend :: (Account p t, JsonRpc m, Method args, Monad (t m)) => Integer -> args -> t m TxReceipt -- | Count block confirmation to keep secure According to Vitalik post -- https://blog.ethereum.org/2015/09/14/on-slow-and-fast-block-times/ safeConfirmations :: Integer -- | Smart contract type class and utils. A contract in the sense of -- Solidity is a collection of code (its functions) and data (its state) -- that resides at a specific address on the Ethereum blockchain. module Network.Ethereum.Contract -- | Contract description type clase class Contract a -- | Contract Solidity ABI -- https://solidity.readthedocs.io/en/latest/abi-spec.html abi :: Contract a => Proxy a -> Text -- | Contract bytecode as hex string bytecode :: Contract a => Proxy a -> HexString -- | Create new smart contract on blockchain new :: (Account p t, JsonRpc m, Method a, Monad (t m)) => a -> t m (Maybe Address) -- | Contract abstraction is a high level interface of web3 library. -- -- The Application Binary Interface is the standard way to interact with -- contracts in the Ethereum ecosystem. It can be described by specially -- JSON file, like ERC20.json. This module use TemplateHaskell -- for generation described in Abi contract methods and events. Helper -- functions and instances inserted in haskell module and can be used in -- another modules or in place. -- --
-- import Network.Ethereum.Contract.TH -- -- [abiFrom|examples/ERC20.json|] -- -- main = do -- runWeb3 $ event' def $ -- (Transfer _ to val) -> liftIO $ do print to -- print val ---- -- Full code example available in examples folder. module Network.Ethereum.Contract.TH -- | QQ reader for contract Abi abi :: QuasiQuoter -- | Read contract Abi from file abiFrom :: QuasiQuoter -- | Ethereum Name System registry smart contract. module Network.Ethereum.Ens.Registry data OwnerData OwnerData :: {-# NOUNPACK #-} !BytesN 32 -> OwnerData data ResolverData ResolverData :: {-# NOUNPACK #-} !BytesN 32 -> ResolverData data SetOwnerData SetOwnerData :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !Address -> SetOwnerData data SetResolverData SetResolverData :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !Address -> SetResolverData data SetSubnodeOwnerData SetSubnodeOwnerData :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !Address -> SetSubnodeOwnerData data SetTTLData SetTTLData :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !UIntN 64 -> SetTTLData data TtlData TtlData :: {-# NOUNPACK #-} !BytesN 32 -> TtlData data NewOwnerIndexed NewOwnerIndexed :: {-# NOUNPACK #-} !Tagged 1 (BytesN 32) -> {-# NOUNPACK #-} !Tagged 2 (BytesN 32) -> NewOwnerIndexed data NewOwnerNonIndexed NewOwnerNonIndexed :: {-# NOUNPACK #-} !Tagged 3 Address -> NewOwnerNonIndexed data NewOwner NewOwner :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !Address -> NewOwner [newOwnerNode_] :: NewOwner -> {-# NOUNPACK #-} !BytesN 32 [newOwnerLabel_] :: NewOwner -> {-# NOUNPACK #-} !BytesN 32 [newOwnerOwner_] :: NewOwner -> {-# NOUNPACK #-} !Address data NewResolverIndexed NewResolverIndexed :: {-# NOUNPACK #-} !Tagged 1 (BytesN 32) -> NewResolverIndexed data NewResolverNonIndexed NewResolverNonIndexed :: {-# NOUNPACK #-} !Tagged 2 Address -> NewResolverNonIndexed data NewResolver NewResolver :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !Address -> NewResolver [newResolverNode_] :: NewResolver -> {-# NOUNPACK #-} !BytesN 32 [newResolverResolver_] :: NewResolver -> {-# NOUNPACK #-} !Address data NewTTLIndexed NewTTLIndexed :: {-# NOUNPACK #-} !Tagged 1 (BytesN 32) -> NewTTLIndexed data NewTTLNonIndexed NewTTLNonIndexed :: {-# NOUNPACK #-} !Tagged 2 (UIntN 64) -> NewTTLNonIndexed data NewTTL NewTTL :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !UIntN 64 -> NewTTL [newTTLNode_] :: NewTTL -> {-# NOUNPACK #-} !BytesN 32 [newTTLTtl_] :: NewTTL -> {-# NOUNPACK #-} !UIntN 64 data TransferIndexed TransferIndexed :: {-# NOUNPACK #-} !Tagged 1 (BytesN 32) -> TransferIndexed data TransferNonIndexed TransferNonIndexed :: {-# NOUNPACK #-} !Tagged 2 Address -> TransferNonIndexed data Transfer Transfer :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !Address -> Transfer [transferNode_] :: Transfer -> {-# NOUNPACK #-} !BytesN 32 [transferOwner_] :: Transfer -> {-# NOUNPACK #-} !Address ttl :: (JsonRpc m_a1TNA, Account a_a1TNy t_a1TNz, Functor (t_a1TNz m_a1TNA)) => BytesN 32 -> t_a1TNz m_a1TNA (UIntN 64) setTTL :: (JsonRpc m_a1TNw, Account a_a1TNu t_a1TNv, Functor (t_a1TNv m_a1TNw)) => BytesN 32 -> UIntN 64 -> t_a1TNv m_a1TNw TxReceipt setSubnodeOwner :: (JsonRpc m_a1TNr, Account a_a1TNp t_a1TNq, Functor (t_a1TNq m_a1TNr)) => BytesN 32 -> BytesN 32 -> Address -> t_a1TNq m_a1TNr TxReceipt setResolver :: (JsonRpc m_a1TNl, Account a_a1TNj t_a1TNk, Functor (t_a1TNk m_a1TNl)) => BytesN 32 -> Address -> t_a1TNk m_a1TNl TxReceipt setOwner :: (JsonRpc m_a1TNg, Account a_a1TNe t_a1TNf, Functor (t_a1TNf m_a1TNg)) => BytesN 32 -> Address -> t_a1TNf m_a1TNg TxReceipt resolver :: (JsonRpc m_a1TNb, Account a_a1TN9 t_a1TNa, Functor (t_a1TNa m_a1TNb)) => BytesN 32 -> t_a1TNa m_a1TNb Address owner :: (JsonRpc m_a1TN7, Account a_a1TN5 t_a1TN6, Functor (t_a1TN6 m_a1TN7)) => BytesN 32 -> t_a1TN6 m_a1TN7 Address instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.Transfer instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.Transfer instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.Transfer instance GHC.Show.Show Network.Ethereum.Ens.Registry.Transfer instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.TransferNonIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.TransferNonIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.TransferNonIndexed instance GHC.Show.Show Network.Ethereum.Ens.Registry.TransferNonIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.TransferIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.TransferIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.TransferIndexed instance GHC.Show.Show Network.Ethereum.Ens.Registry.TransferIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.NewTTL instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.NewTTL instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.NewTTL instance GHC.Show.Show Network.Ethereum.Ens.Registry.NewTTL instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.NewTTLNonIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.NewTTLNonIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.NewTTLNonIndexed instance GHC.Show.Show Network.Ethereum.Ens.Registry.NewTTLNonIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.NewTTLIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.NewTTLIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.NewTTLIndexed instance GHC.Show.Show Network.Ethereum.Ens.Registry.NewTTLIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.NewResolver instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.NewResolver instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.NewResolver instance GHC.Show.Show Network.Ethereum.Ens.Registry.NewResolver instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.NewResolverNonIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.NewResolverNonIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.NewResolverNonIndexed instance GHC.Show.Show Network.Ethereum.Ens.Registry.NewResolverNonIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.NewResolverIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.NewResolverIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.NewResolverIndexed instance GHC.Show.Show Network.Ethereum.Ens.Registry.NewResolverIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.NewOwner instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.NewOwner instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.NewOwner instance GHC.Show.Show Network.Ethereum.Ens.Registry.NewOwner instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.NewOwnerNonIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.NewOwnerNonIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.NewOwnerNonIndexed instance GHC.Show.Show Network.Ethereum.Ens.Registry.NewOwnerNonIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.NewOwnerIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.NewOwnerIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.NewOwnerIndexed instance GHC.Show.Show Network.Ethereum.Ens.Registry.NewOwnerIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.TtlData instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.TtlData instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.TtlData instance GHC.Show.Show Network.Ethereum.Ens.Registry.TtlData instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.SetTTLData instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.SetTTLData instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.SetTTLData instance GHC.Show.Show Network.Ethereum.Ens.Registry.SetTTLData instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.SetSubnodeOwnerData instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.SetSubnodeOwnerData instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.SetSubnodeOwnerData instance GHC.Show.Show Network.Ethereum.Ens.Registry.SetSubnodeOwnerData instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.SetResolverData instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.SetResolverData instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.SetResolverData instance GHC.Show.Show Network.Ethereum.Ens.Registry.SetResolverData instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.SetOwnerData instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.SetOwnerData instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.SetOwnerData instance GHC.Show.Show Network.Ethereum.Ens.Registry.SetOwnerData instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.ResolverData instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.ResolverData instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.ResolverData instance GHC.Show.Show Network.Ethereum.Ens.Registry.ResolverData instance GHC.Generics.Generic Network.Ethereum.Ens.Registry.OwnerData instance GHC.Classes.Ord Network.Ethereum.Ens.Registry.OwnerData instance GHC.Classes.Eq Network.Ethereum.Ens.Registry.OwnerData instance GHC.Show.Show Network.Ethereum.Ens.Registry.OwnerData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.Transfer instance Data.Solidity.Event.IndexedEvent Network.Ethereum.Ens.Registry.TransferIndexed Network.Ethereum.Ens.Registry.TransferNonIndexed Network.Ethereum.Ens.Registry.Transfer instance Data.Default.Class.Default (Network.Ethereum.Api.Types.Filter Network.Ethereum.Ens.Registry.Transfer) instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.TransferNonIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.TransferNonIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.TransferNonIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.TransferIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.TransferIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.TransferIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.NewTTL instance Data.Solidity.Event.IndexedEvent Network.Ethereum.Ens.Registry.NewTTLIndexed Network.Ethereum.Ens.Registry.NewTTLNonIndexed Network.Ethereum.Ens.Registry.NewTTL instance Data.Default.Class.Default (Network.Ethereum.Api.Types.Filter Network.Ethereum.Ens.Registry.NewTTL) instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.NewTTLNonIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.NewTTLNonIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.NewTTLNonIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.NewTTLIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.NewTTLIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.NewTTLIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.NewResolver instance Data.Solidity.Event.IndexedEvent Network.Ethereum.Ens.Registry.NewResolverIndexed Network.Ethereum.Ens.Registry.NewResolverNonIndexed Network.Ethereum.Ens.Registry.NewResolver instance Data.Default.Class.Default (Network.Ethereum.Api.Types.Filter Network.Ethereum.Ens.Registry.NewResolver) instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.NewResolverNonIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.NewResolverNonIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.NewResolverNonIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.NewResolverIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.NewResolverIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.NewResolverIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.NewOwner instance Data.Solidity.Event.IndexedEvent Network.Ethereum.Ens.Registry.NewOwnerIndexed Network.Ethereum.Ens.Registry.NewOwnerNonIndexed Network.Ethereum.Ens.Registry.NewOwner instance Data.Default.Class.Default (Network.Ethereum.Api.Types.Filter Network.Ethereum.Ens.Registry.NewOwner) instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.NewOwnerNonIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.NewOwnerNonIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.NewOwnerNonIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.NewOwnerIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.NewOwnerIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.NewOwnerIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.TtlData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.TtlData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.Registry.TtlData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.TtlData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.Registry.TtlData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.SetTTLData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.SetTTLData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.Registry.SetTTLData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.SetTTLData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.Registry.SetTTLData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.SetSubnodeOwnerData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.SetSubnodeOwnerData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.Registry.SetSubnodeOwnerData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.SetSubnodeOwnerData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.Registry.SetSubnodeOwnerData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.SetResolverData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.SetResolverData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.Registry.SetResolverData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.SetResolverData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.Registry.SetResolverData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.SetOwnerData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.SetOwnerData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.Registry.SetOwnerData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.SetOwnerData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.Registry.SetOwnerData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.ResolverData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.ResolverData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.Registry.ResolverData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.ResolverData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.Registry.ResolverData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.Registry.OwnerData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.Registry.OwnerData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.Registry.OwnerData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.Registry.OwnerData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.Registry.OwnerData -- | Ethereum Name System public resolver smart contract. module Network.Ethereum.Ens.PublicResolver data ABIData ABIData :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !UIntN 256 -> ABIData data AddrData AddrData :: {-# NOUNPACK #-} !BytesN 32 -> AddrData data ContentData ContentData :: {-# NOUNPACK #-} !BytesN 32 -> ContentData data NameData NameData :: {-# NOUNPACK #-} !BytesN 32 -> NameData data PubkeyData PubkeyData :: {-# NOUNPACK #-} !BytesN 32 -> PubkeyData data SetABIData SetABIData :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !UIntN 256 -> {-# NOUNPACK #-} !Bytes -> SetABIData data SetAddrData SetAddrData :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !Address -> SetAddrData data SetContentData SetContentData :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !BytesN 32 -> SetContentData data SetNameData SetNameData :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !Text -> SetNameData data SetPubkeyData SetPubkeyData :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !BytesN 32 -> SetPubkeyData data SupportsInterfaceData SupportsInterfaceData :: {-# NOUNPACK #-} !BytesN 4 -> SupportsInterfaceData data ABIChangedIndexed ABIChangedIndexed :: {-# NOUNPACK #-} !Tagged 1 (BytesN 32) -> {-# NOUNPACK #-} !Tagged 2 (UIntN 256) -> ABIChangedIndexed data ABIChangedNonIndexed ABIChangedNonIndexed :: ABIChangedNonIndexed data ABIChanged ABIChanged :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !UIntN 256 -> ABIChanged [aBIChangedNode_] :: ABIChanged -> {-# NOUNPACK #-} !BytesN 32 [aBIChangedContentType_] :: ABIChanged -> {-# NOUNPACK #-} !UIntN 256 data AddrChangedIndexed AddrChangedIndexed :: {-# NOUNPACK #-} !Tagged 1 (BytesN 32) -> AddrChangedIndexed data AddrChangedNonIndexed AddrChangedNonIndexed :: {-# NOUNPACK #-} !Tagged 2 Address -> AddrChangedNonIndexed data AddrChanged AddrChanged :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !Address -> AddrChanged [addrChangedNode_] :: AddrChanged -> {-# NOUNPACK #-} !BytesN 32 [addrChangedA_] :: AddrChanged -> {-# NOUNPACK #-} !Address data ContentChangedIndexed ContentChangedIndexed :: {-# NOUNPACK #-} !Tagged 1 (BytesN 32) -> ContentChangedIndexed data ContentChangedNonIndexed ContentChangedNonIndexed :: {-# NOUNPACK #-} !Tagged 2 (BytesN 32) -> ContentChangedNonIndexed data ContentChanged ContentChanged :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !BytesN 32 -> ContentChanged [contentChangedNode_] :: ContentChanged -> {-# NOUNPACK #-} !BytesN 32 [contentChangedHash_] :: ContentChanged -> {-# NOUNPACK #-} !BytesN 32 data NameChangedIndexed NameChangedIndexed :: {-# NOUNPACK #-} !Tagged 1 (BytesN 32) -> NameChangedIndexed data NameChangedNonIndexed NameChangedNonIndexed :: {-# NOUNPACK #-} !Tagged 2 Text -> NameChangedNonIndexed data NameChanged NameChanged :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !Text -> NameChanged [nameChangedNode_] :: NameChanged -> {-# NOUNPACK #-} !BytesN 32 [nameChangedName_] :: NameChanged -> {-# NOUNPACK #-} !Text data PubkeyChangedIndexed PubkeyChangedIndexed :: {-# NOUNPACK #-} !Tagged 1 (BytesN 32) -> PubkeyChangedIndexed data PubkeyChangedNonIndexed PubkeyChangedNonIndexed :: {-# NOUNPACK #-} !Tagged 2 (BytesN 32) -> {-# NOUNPACK #-} !Tagged 3 (BytesN 32) -> PubkeyChangedNonIndexed data PubkeyChanged PubkeyChanged :: {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !BytesN 32 -> {-# NOUNPACK #-} !BytesN 32 -> PubkeyChanged [pubkeyChangedNode_] :: PubkeyChanged -> {-# NOUNPACK #-} !BytesN 32 [pubkeyChangedX_] :: PubkeyChanged -> {-# NOUNPACK #-} !BytesN 32 [pubkeyChangedY_] :: PubkeyChanged -> {-# NOUNPACK #-} !BytesN 32 supportsInterface :: (JsonRpc m_a27il, Account a_a27ij t_a27ik, Functor (t_a27ik m_a27il)) => BytesN 4 -> t_a27ik m_a27il Bool setPubkey :: (JsonRpc m_a27ih, Account a_a27if t_a27ig, Functor (t_a27ig m_a27ih)) => BytesN 32 -> BytesN 32 -> BytesN 32 -> t_a27ig m_a27ih TxReceipt setName :: (JsonRpc m_a27ib, Account a_a27i9 t_a27ia, Functor (t_a27ia m_a27ib)) => BytesN 32 -> Text -> t_a27ia m_a27ib TxReceipt setContent :: (JsonRpc m_a27i6, Account a_a27i4 t_a27i5, Functor (t_a27i5 m_a27i6)) => BytesN 32 -> BytesN 32 -> t_a27i5 m_a27i6 TxReceipt setAddr :: (JsonRpc m_a27i1, Account a_a27hZ t_a27i0, Functor (t_a27i0 m_a27i1)) => BytesN 32 -> Address -> t_a27i0 m_a27i1 TxReceipt setABI :: (JsonRpc m_a27hW, Account a_a27hU t_a27hV, Functor (t_a27hV m_a27hW)) => BytesN 32 -> UIntN 256 -> Bytes -> t_a27hV m_a27hW TxReceipt pubkey :: (JsonRpc m_a27hQ, Account a_a27hO t_a27hP, Functor (t_a27hP m_a27hQ)) => BytesN 32 -> t_a27hP m_a27hQ (BytesN 32, BytesN 32) name :: (JsonRpc m_a27hM, Account a_a27hK t_a27hL, Functor (t_a27hL m_a27hM)) => BytesN 32 -> t_a27hL m_a27hM Text content :: (JsonRpc m_a27hI, Account a_a27hG t_a27hH, Functor (t_a27hH m_a27hI)) => BytesN 32 -> t_a27hH m_a27hI (BytesN 32) addr :: (JsonRpc m_a27hE, Account a_a27hC t_a27hD, Functor (t_a27hD m_a27hE)) => BytesN 32 -> t_a27hD m_a27hE Address aBI :: (JsonRpc m_a27hA, Account a_a27hy t_a27hz, Functor (t_a27hz m_a27hA)) => BytesN 32 -> UIntN 256 -> t_a27hz m_a27hA (UIntN 256, Bytes) instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.PubkeyChanged instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.PubkeyChanged instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.PubkeyChanged instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.PubkeyChanged instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.PubkeyChangedNonIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.PubkeyChangedNonIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.PubkeyChangedNonIndexed instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.PubkeyChangedNonIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.PubkeyChangedIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.PubkeyChangedIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.PubkeyChangedIndexed instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.PubkeyChangedIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.NameChanged instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.NameChanged instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.NameChanged instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.NameChanged instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.NameChangedNonIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.NameChangedNonIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.NameChangedNonIndexed instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.NameChangedNonIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.NameChangedIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.NameChangedIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.NameChangedIndexed instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.NameChangedIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.ContentChanged instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.ContentChanged instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.ContentChanged instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.ContentChanged instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.ContentChangedNonIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.ContentChangedNonIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.ContentChangedNonIndexed instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.ContentChangedNonIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.ContentChangedIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.ContentChangedIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.ContentChangedIndexed instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.ContentChangedIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.AddrChanged instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.AddrChanged instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.AddrChanged instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.AddrChanged instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.AddrChangedNonIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.AddrChangedNonIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.AddrChangedNonIndexed instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.AddrChangedNonIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.AddrChangedIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.AddrChangedIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.AddrChangedIndexed instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.AddrChangedIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.ABIChanged instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.ABIChanged instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.ABIChanged instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.ABIChanged instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.ABIChangedNonIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.ABIChangedNonIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.ABIChangedNonIndexed instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.ABIChangedNonIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.ABIChangedIndexed instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.ABIChangedIndexed instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.ABIChangedIndexed instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.ABIChangedIndexed instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.SupportsInterfaceData instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.SupportsInterfaceData instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.SupportsInterfaceData instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.SupportsInterfaceData instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.SetPubkeyData instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.SetPubkeyData instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.SetPubkeyData instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.SetPubkeyData instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.SetNameData instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.SetNameData instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.SetNameData instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.SetNameData instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.SetContentData instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.SetContentData instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.SetContentData instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.SetContentData instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.SetAddrData instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.SetAddrData instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.SetAddrData instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.SetAddrData instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.SetABIData instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.SetABIData instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.SetABIData instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.SetABIData instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.PubkeyData instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.PubkeyData instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.PubkeyData instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.PubkeyData instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.NameData instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.NameData instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.NameData instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.NameData instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.ContentData instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.ContentData instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.ContentData instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.ContentData instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.AddrData instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.AddrData instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.AddrData instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.AddrData instance GHC.Generics.Generic Network.Ethereum.Ens.PublicResolver.ABIData instance GHC.Classes.Ord Network.Ethereum.Ens.PublicResolver.ABIData instance GHC.Classes.Eq Network.Ethereum.Ens.PublicResolver.ABIData instance GHC.Show.Show Network.Ethereum.Ens.PublicResolver.ABIData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.PubkeyChanged instance Data.Solidity.Event.IndexedEvent Network.Ethereum.Ens.PublicResolver.PubkeyChangedIndexed Network.Ethereum.Ens.PublicResolver.PubkeyChangedNonIndexed Network.Ethereum.Ens.PublicResolver.PubkeyChanged instance Data.Default.Class.Default (Network.Ethereum.Api.Types.Filter Network.Ethereum.Ens.PublicResolver.PubkeyChanged) instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.PubkeyChangedNonIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.PubkeyChangedNonIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.PubkeyChangedNonIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.PubkeyChangedIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.PubkeyChangedIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.PubkeyChangedIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.NameChanged instance Data.Solidity.Event.IndexedEvent Network.Ethereum.Ens.PublicResolver.NameChangedIndexed Network.Ethereum.Ens.PublicResolver.NameChangedNonIndexed Network.Ethereum.Ens.PublicResolver.NameChanged instance Data.Default.Class.Default (Network.Ethereum.Api.Types.Filter Network.Ethereum.Ens.PublicResolver.NameChanged) instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.NameChangedNonIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.NameChangedNonIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.NameChangedNonIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.NameChangedIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.NameChangedIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.NameChangedIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.ContentChanged instance Data.Solidity.Event.IndexedEvent Network.Ethereum.Ens.PublicResolver.ContentChangedIndexed Network.Ethereum.Ens.PublicResolver.ContentChangedNonIndexed Network.Ethereum.Ens.PublicResolver.ContentChanged instance Data.Default.Class.Default (Network.Ethereum.Api.Types.Filter Network.Ethereum.Ens.PublicResolver.ContentChanged) instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.ContentChangedNonIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.ContentChangedNonIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.ContentChangedNonIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.ContentChangedIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.ContentChangedIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.ContentChangedIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.AddrChanged instance Data.Solidity.Event.IndexedEvent Network.Ethereum.Ens.PublicResolver.AddrChangedIndexed Network.Ethereum.Ens.PublicResolver.AddrChangedNonIndexed Network.Ethereum.Ens.PublicResolver.AddrChanged instance Data.Default.Class.Default (Network.Ethereum.Api.Types.Filter Network.Ethereum.Ens.PublicResolver.AddrChanged) instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.AddrChangedNonIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.AddrChangedNonIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.AddrChangedNonIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.AddrChangedIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.AddrChangedIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.AddrChangedIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.ABIChanged instance Data.Solidity.Event.IndexedEvent Network.Ethereum.Ens.PublicResolver.ABIChangedIndexed Network.Ethereum.Ens.PublicResolver.ABIChangedNonIndexed Network.Ethereum.Ens.PublicResolver.ABIChanged instance Data.Default.Class.Default (Network.Ethereum.Api.Types.Filter Network.Ethereum.Ens.PublicResolver.ABIChanged) instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.ABIChangedNonIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.ABIChangedNonIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.ABIChangedNonIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.ABIChangedIndexed instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.ABIChangedIndexed instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.ABIChangedIndexed instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.SupportsInterfaceData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.SupportsInterfaceData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.PublicResolver.SupportsInterfaceData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.SupportsInterfaceData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.PublicResolver.SupportsInterfaceData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.SetPubkeyData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.SetPubkeyData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.PublicResolver.SetPubkeyData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.SetPubkeyData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.PublicResolver.SetPubkeyData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.SetNameData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.SetNameData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.PublicResolver.SetNameData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.SetNameData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.PublicResolver.SetNameData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.SetContentData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.SetContentData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.PublicResolver.SetContentData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.SetContentData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.PublicResolver.SetContentData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.SetAddrData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.SetAddrData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.PublicResolver.SetAddrData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.SetAddrData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.PublicResolver.SetAddrData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.SetABIData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.SetABIData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.PublicResolver.SetABIData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.SetABIData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.PublicResolver.SetABIData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.PubkeyData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.PubkeyData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.PublicResolver.PubkeyData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.PubkeyData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.PublicResolver.PubkeyData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.NameData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.NameData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.PublicResolver.NameData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.NameData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.PublicResolver.NameData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.ContentData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.ContentData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.PublicResolver.ContentData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.ContentData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.PublicResolver.ContentData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.AddrData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.AddrData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.PublicResolver.AddrData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.AddrData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.PublicResolver.AddrData instance Generics.SOP.Universe.Generic Network.Ethereum.Ens.PublicResolver.ABIData instance Data.Solidity.Abi.AbiType Network.Ethereum.Ens.PublicResolver.ABIData instance Data.Solidity.Abi.AbiPut Network.Ethereum.Ens.PublicResolver.ABIData instance Data.Solidity.Abi.AbiGet Network.Ethereum.Ens.PublicResolver.ABIData instance Network.Ethereum.Contract.Method.Method Network.Ethereum.Ens.PublicResolver.ABIData -- | ENS offers a secure & decentralised way to address resources both -- on and off the blockchain using simple, human-readable names. -- -- This module provide basic ENS resolvers. module Network.Ethereum.Ens -- | Namehash algorithm -- http://docs.ens.domains/en/latest/implementers.html#algorithm namehash :: ByteString -> BytesN 32 -- | Get address of ENS domain resolve :: (JsonRpc m, Account p (AccountT p)) => ByteString -> AccountT p m Address -- | Node managed unlockable account. Typically to send transaction from -- this account password is required. module Network.Ethereum.Account.Personal -- | Unlockable node managed account params data Personal Personal :: !Address -> !Passphrase -> Personal [personalAddress] :: Personal -> !Address [personalPassphrase] :: Personal -> !Passphrase type PersonalAccount = AccountT Personal instance GHC.Show.Show Network.Ethereum.Account.Personal.Personal instance GHC.Classes.Eq Network.Ethereum.Account.Personal.Personal instance Network.Ethereum.Account.Class.Account Network.Ethereum.Account.Personal.Personal Network.Ethereum.Account.Personal.PersonalAccount instance Data.Default.Class.Default Network.Ethereum.Account.Personal.Personal -- | Using ECC for singing transactions locally, e.g. out of Ethereum node. -- Transaction will send using eth_sendRawTransacion JSON-RPC -- method. module Network.Ethereum.Account.LocalKey -- | Local EOA params data LocalKey LocalKey :: !PrivateKey -> !Integer -> LocalKey [localKeyPrivate] :: LocalKey -> !PrivateKey [localKeyChainId] :: LocalKey -> !Integer type LocalKeyAccount = AccountT LocalKey instance GHC.Show.Show Network.Ethereum.Account.LocalKey.LocalKey instance GHC.Classes.Eq Network.Ethereum.Account.LocalKey.LocalKey instance Network.Ethereum.Account.Class.Account Network.Ethereum.Account.LocalKey.LocalKey Network.Ethereum.Account.LocalKey.LocalKeyAccount instance Data.Default.Class.Default Network.Ethereum.Account.LocalKey.LocalKey -- | Default node managed account (typically the first of accounts list). module Network.Ethereum.Account.Default type DefaultAccount = AccountT () instance Network.Ethereum.Account.Class.Account () Network.Ethereum.Account.Default.DefaultAccount -- | In Etereun there are two types of accounts: * Externally owned account -- (EOAs): an account controlled by a private key, and if you own the -- private key associated with the EOA you have the ability to send ether -- and messages from it. * Contract: an account that has its own code, -- and is controlled by code. -- -- This module exports different kinds of EOAs: default, node managed and -- local. Node managed accounts use Personal JSON-RPC API for -- signing transactions. Local account sign transaction locally and use -- sendRawTransaction method to export transaction to Ethereum -- network. module Network.Ethereum.Account -- | 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. class MonadTrans t => Account a t | t -> a -- | Run computation with given account credentials withAccount :: (Account a t, JsonRpc m) => a -> t m b -> m b -- | Send transaction to contract, like a write command send :: (Account a t, JsonRpc m, Method args) => args -> t m TxReceipt -- | Call constant method of contract, like a read command call :: (Account a t, JsonRpc m, Method args, AbiGet result) => args -> t m result type DefaultAccount = AccountT () type PersonalAccount = AccountT Personal -- | Unlockable node managed account params data Personal Personal :: !Address -> !Passphrase -> Personal [personalAddress] :: Personal -> !Address [personalPassphrase] :: Personal -> !Passphrase type LocalKeyAccount = AccountT LocalKey -- | Local EOA params data LocalKey LocalKey :: !PrivateKey -> !Integer -> LocalKey [localKeyPrivate] :: LocalKey -> !PrivateKey [localKeyChainId] :: LocalKey -> !Integer -- | withParam is very similar to withStateT function, -- it's used to set parameters of transaction locally and revert params -- after out of scope. -- --
-- withAccount () $ -- withParam (to .~ tokenAddress) $ -- transfer alice 42 -- --withParam :: Account p (AccountT p) => (CallParam p -> CallParam p) -> AccountT p m a -> AccountT p m a -- | Transaction recipient lens to :: Lens' (CallParam p) Address -- | Transaction value lens value :: Unit value => Lens' (CallParam p) value -- | Transaction gas limit lens gasLimit :: Lens' (CallParam p) Integer -- | Transaction gas price lens gasPrice :: Unit gasprice => Lens' (CallParam p) gasprice -- | Call execution block lens block :: Lens' (CallParam p) DefaultBlock -- | EOA params lens account :: Lens' (CallParam p) p -- | TODO module Network.Ethereum -- | Event callback control response data EventAction ContinueEvent :: EventAction TerminateEvent :: EventAction -- | Run one block at a time. event :: (DecodeEvent i ni e, JsonRpc m) => Filter e -> (e -> ReaderT Change m EventAction) -> m () -- | Polkadot RPC methods with account prefix. module Network.Polkadot.Api.Account -- | Retrieves the next accountIndex as available on the node. nextIndex :: JsonRpc m => Text -> m Int -- | Polkadot RPC methods with author prefix. module Network.Polkadot.Api.Author -- | Returns true if the keystore has private keys for the given public key -- and key type. hasKey :: JsonRpc m => HexString -> Text -> m Bool -- | Returns true if the keystore has private keys for the given session -- public keys. hasSessionKeys :: JsonRpc m => HexString -> m Bool -- | Insert a key into the keystore. insertKey :: JsonRpc m => Text -> Text -> HexString -> m HexString -- | Returns all pending extrinsics, potentially grouped by sender. pendingExtrinsics :: JsonRpc m => m [HexString] -- | Remove given extrinsic from the pool and temporarily ban it to prevent -- reimporting. removeExtrinsic :: JsonRpc m => [HexString] -> m HexString -- | Generate new session keys and returns the corresponding public keys. rotateKeys :: JsonRpc m => m HexString -- | Submit a fully formatted extrinsic for block inclusion. submitExtrinsic :: JsonRpc m => HexString -> m HexString -- | Polkadot RPC methods with babe prefix. module Network.Polkadot.Api.Babe -- | Returns data about which slots (primary or secondary) can be claimed -- in the current epoch with the keys in the keystore. epochAuthorship :: JsonRpc m => m Object -- | Polkadot RPC methods with childstate prefix. module Network.Polkadot.Api.Childstate -- | Returns the keys with prefix from a child storage, leave empty to get -- all the keys. getKeys :: JsonRpc m => HexString -> HexString -> Maybe HexString -> m [HexString] -- | Returns a child storage entry at a specific block state. getStorage :: JsonRpc m => HexString -> HexString -> Maybe HexString -> m (Maybe HexString) -- | Returns the hash of a child storage entry at a block state getStorageHash :: JsonRpc m => HexString -> HexString -> Maybe HexString -> m (Maybe HexString) -- | Returns the size of a child storage entry at a block state. getStorageSize :: JsonRpc m => HexString -> HexString -> Maybe HexString -> m (Maybe Int) -- | Polkadot RPC methods with grandpa prefix. module Network.Polkadot.Api.Grandpa -- | Returns the state of the current best round state as well as the -- ongoing background rounds. roundState :: JsonRpc m => m Object -- | Polkadot RPC methods with rpc prefix. module Network.Polkadot.Api.Rpc -- | Retrieves the list of RPC methods that are exposed by the node. methods :: JsonRpc m => m Value -- | Polkadot JSON-RPC types. module Network.Polkadot.Api.Types -- | The role the node is running as. data NodeRole Full :: NodeRole LightClient :: NodeRole Authority :: NodeRole Sentry :: NodeRole -- | Type op a chain. data ChainType Development :: ChainType Local :: ChainType Live :: ChainType Custom :: Text -> ChainType -- | System health struct returned by the RPC data Health Health :: Int -> Bool -> Bool -> Health -- | Number of connected peers. [healthPeers] :: Health -> Int -- | Is the node syncing. [healthIsSyncing] :: Health -> Bool -- | Should this node have any peers. [healthShouldHavePeers] :: Health -> Bool -- | Network Peer information. data PeerInfo PeerInfo :: Text -> [NodeRole] -> Int -> Text -> Int -> PeerInfo -- | Peer ID [peerInfoPeerId] :: PeerInfo -> Text -- | Roles [peerInfoRoles] :: PeerInfo -> [NodeRole] -- | Protocol version. [peerInfoProtocolVersion] :: PeerInfo -> Int -- | Peer best block hash [peerInfoBestHash] :: PeerInfo -> Text -- | Peer best block number [peerInfoBestNumber] :: PeerInfo -> Int -- | Executes a call to a contract. data ContractCall ContractCall :: HexString -> HexString -> Integer -> Integer -> HexString -> ContractCall [callOrigin] :: ContractCall -> HexString [callDest] :: ContractCall -> HexString [callValue] :: ContractCall -> Integer [callGasLimit] :: ContractCall -> Integer [callInputData] :: ContractCall -> HexString -- | A result of execution of a contract. data ContractExecResult SuccessExec :: Word8 -> Maybe HexString -> ContractExecResult -- | Status code returned by contract. [execStatus] :: ContractExecResult -> Word8 -- | Output data returned by contract. Can be empty. [execData] :: ContractExecResult -> Maybe HexString ExecResultError :: ContractExecResult type Metadata = Value -- | ReadProof struct returned by RPC. data ReadProof ReadProof :: HexString -> [HexString] -> ReadProof -- | Block hash used to generate the proof. [readProofAt] :: ReadProof -> HexString -- | A proof used to prove that storage entries are included in the storage -- trie. [readProofProof] :: ReadProof -> [HexString] -- | Runtime version. This should not be thought of as classic Semver -- (majorminortiny). This triplet have different semantics and -- mis-interpretation could cause problems. In particular: bug fixes -- should result in an increment of spec_version and possibly -- authoring_version, absolutely not impl_version since -- they change the semantics of the runtime. data RuntimeVersion RuntimeVersion :: Text -> Text -> Word32 -> Word32 -> Word32 -> [(HexString, Word32)] -> Word32 -> RuntimeVersion -- | Identifies the different Substrate runtimes. [runtimeSpecName] :: RuntimeVersion -> Text -- | Name of the implementation of the spec. [runtimeImplName] :: RuntimeVersion -> Text -- | authoring_version is the version of the authorship interface. [runtimeAuthoringVersion] :: RuntimeVersion -> Word32 -- | Version of the runtime specification. [runtimeSpecVersion] :: RuntimeVersion -> Word32 -- | Version of the implementation of the specification. [runtimeImplVersion] :: RuntimeVersion -> Word32 -- | List of supported API "features" along with their versions. [runtimeApis] :: RuntimeVersion -> [(HexString, Word32)] -- | All existing dispatches are fully compatible when this number doesn't -- change. [runtimeTransactionVersion] :: RuntimeVersion -> Word32 -- | Type of supported offchain storages. -- -- 1: persistent storage is non-revertible and not fork-aware; 2: local -- storage is revertible and fork-aware. type StorageKind = Word8 -- | Storage changes. data StorageChangeSet StorageChangeSet :: HexString -> [(HexString, Maybe HexString)] -> StorageChangeSet -- | Block hash. [storageBlock] :: StorageChangeSet -> HexString -- | A list of changes. [storageChanges] :: StorageChangeSet -> [(HexString, Maybe HexString)] -- | Numeric range of transaction weight. type Weight = Word64 -- | Generalized group of dispatch types. data DispatchClass Normal :: DispatchClass Operational :: DispatchClass Mandatory :: DispatchClass -- | Some information related to a dispatchable that can be queried from -- the runtime. data RuntimeDispatchInfo RuntimeDispatchInfo :: Weight -> DispatchClass -> Integer -> RuntimeDispatchInfo -- | Weight of this dispatch. [dispatchWeight] :: RuntimeDispatchInfo -> Weight -- | Class of this dispatch. [dispatchClass] :: RuntimeDispatchInfo -> DispatchClass -- | The partial inclusion fee of this dispatch. [dispatchPartialFee] :: RuntimeDispatchInfo -> Integer -- | Auxiliary data associated with an imported block result. data ImportedAux ImportedAux :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> ImportedAux -- | Only the header has been imported. Block body verification was -- skipped. [auxHeaderOnly] :: ImportedAux -> Bool -- | Clear all pending justification requests. [auxClearJustificationRequests] :: ImportedAux -> Bool -- | Request a justification for the given block. [auxNeedsJustification] :: ImportedAux -> Bool -- | Received a bad justification. [auxBadJustification] :: ImportedAux -> Bool -- | Request a finality proof for the given block. [auxNeedsFinalityProof] :: ImportedAux -> Bool -- | Whether the block that was imported is the new best block. [auxIsNewBest] :: ImportedAux -> Bool data CreatedBlock CreatedBlock :: HexString -> ImportedAux -> CreatedBlock [createdBlockHash] :: CreatedBlock -> HexString [createdBlockAux] :: CreatedBlock -> ImportedAux -- | Abstraction over a block header for a substrate chain. data Header Header :: HexString -> Int -> HexString -> HexString -> HexString -> Header -- | The parent hash. [headerParentHash] :: Header -> HexString -- | The block number. [headerNumber] :: Header -> Int -- | The state trie merkle root [headerStateRoot] :: Header -> HexString -- | The merkle root of the extrinsics. [headerExtrinsicsRoot] :: Header -> HexString -- | A chain-specific digest of data useful for light clients or -- referencing auxiliary data. [headerDigest] :: Header -> HexString -- | Abstraction over a substrate block. data Block Block :: Header -> [HexString] -> Block -- | The block header. [blockHeader] :: Block -> Header -- | The accompanying extrinsics. [blockExtrinsics] :: Block -> [HexString] -- | Abstraction over a substrate block and justification. data SignedBlock SignedBlock :: Block -> Maybe HexString -> SignedBlock -- | Full block. [signedBlock] :: SignedBlock -> Block -- | Block justification. [signedJustification] :: SignedBlock -> Maybe HexString instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.SignedBlock instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.SignedBlock instance GHC.Show.Show Network.Polkadot.Api.Types.SignedBlock instance GHC.Generics.Generic Network.Polkadot.Api.Types.SignedBlock instance GHC.Classes.Eq Network.Polkadot.Api.Types.SignedBlock instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.Block instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.Block instance GHC.Show.Show Network.Polkadot.Api.Types.Block instance GHC.Generics.Generic Network.Polkadot.Api.Types.Block instance GHC.Classes.Eq Network.Polkadot.Api.Types.Block instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.Header instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.Header instance GHC.Show.Show Network.Polkadot.Api.Types.Header instance GHC.Generics.Generic Network.Polkadot.Api.Types.Header instance GHC.Classes.Eq Network.Polkadot.Api.Types.Header instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.CreatedBlock instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.CreatedBlock instance GHC.Show.Show Network.Polkadot.Api.Types.CreatedBlock instance GHC.Generics.Generic Network.Polkadot.Api.Types.CreatedBlock instance GHC.Classes.Eq Network.Polkadot.Api.Types.CreatedBlock instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.ImportedAux instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.ImportedAux instance GHC.Show.Show Network.Polkadot.Api.Types.ImportedAux instance GHC.Generics.Generic Network.Polkadot.Api.Types.ImportedAux instance GHC.Classes.Eq Network.Polkadot.Api.Types.ImportedAux instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.RuntimeDispatchInfo instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.RuntimeDispatchInfo instance GHC.Show.Show Network.Polkadot.Api.Types.RuntimeDispatchInfo instance GHC.Generics.Generic Network.Polkadot.Api.Types.RuntimeDispatchInfo instance GHC.Classes.Eq Network.Polkadot.Api.Types.RuntimeDispatchInfo instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.DispatchClass instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.DispatchClass instance GHC.Show.Show Network.Polkadot.Api.Types.DispatchClass instance GHC.Generics.Generic Network.Polkadot.Api.Types.DispatchClass instance GHC.Classes.Eq Network.Polkadot.Api.Types.DispatchClass instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.StorageChangeSet instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.StorageChangeSet instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.RuntimeVersion instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.RuntimeVersion instance GHC.Show.Show Network.Polkadot.Api.Types.RuntimeVersion instance GHC.Generics.Generic Network.Polkadot.Api.Types.RuntimeVersion instance GHC.Classes.Eq Network.Polkadot.Api.Types.RuntimeVersion instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.ReadProof instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.ReadProof instance GHC.Show.Show Network.Polkadot.Api.Types.ReadProof instance GHC.Generics.Generic Network.Polkadot.Api.Types.ReadProof instance GHC.Classes.Eq Network.Polkadot.Api.Types.ReadProof instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.ContractExecResult instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.ContractExecResult instance GHC.Show.Show Network.Polkadot.Api.Types.ContractExecResult instance GHC.Generics.Generic Network.Polkadot.Api.Types.ContractExecResult instance GHC.Classes.Eq Network.Polkadot.Api.Types.ContractExecResult instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.ContractCall instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.ContractCall instance GHC.Show.Show Network.Polkadot.Api.Types.ContractCall instance GHC.Generics.Generic Network.Polkadot.Api.Types.ContractCall instance GHC.Classes.Eq Network.Polkadot.Api.Types.ContractCall instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.PeerInfo instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.PeerInfo instance GHC.Show.Show Network.Polkadot.Api.Types.PeerInfo instance GHC.Generics.Generic Network.Polkadot.Api.Types.PeerInfo instance GHC.Classes.Eq Network.Polkadot.Api.Types.PeerInfo instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.Health instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.Health instance GHC.Show.Show Network.Polkadot.Api.Types.Health instance GHC.Generics.Generic Network.Polkadot.Api.Types.Health instance GHC.Classes.Eq Network.Polkadot.Api.Types.Health instance GHC.Show.Show Network.Polkadot.Api.Types.ChainType instance GHC.Generics.Generic Network.Polkadot.Api.Types.ChainType instance GHC.Classes.Eq Network.Polkadot.Api.Types.ChainType instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.ChainType instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.ChainType instance Data.Aeson.Types.ToJSON.ToJSON Network.Polkadot.Api.Types.NodeRole instance Data.Aeson.Types.FromJSON.FromJSON Network.Polkadot.Api.Types.NodeRole instance GHC.Show.Show Network.Polkadot.Api.Types.NodeRole instance GHC.Generics.Generic Network.Polkadot.Api.Types.NodeRole instance GHC.Classes.Eq Network.Polkadot.Api.Types.NodeRole -- | Polkadot RPC methods with system prefix. module Network.Polkadot.Api.System -- | Adds a reserved peer. addReservedPeer :: JsonRpc m => Text -> m Text -- | Retrieves the chain. chain :: JsonRpc m => m Text -- | Retrieves the chain type. chainType :: JsonRpc m => m ChainType -- | Return health status of the node. health :: JsonRpc m => m Health -- | The addresses include a trailing p2p with the local PeerId, and -- are thus suitable to be passed to addReservedPeer or as a bootnode -- address. localListenAddresses :: JsonRpc m => m [Text] -- | Returns the base58-encoded PeerId of the node. localPeerId :: JsonRpc m => m Text -- | Retrieves the node name. name :: JsonRpc m => m Text -- | Returns current state of the network. -- -- Warning: This API isn't stable. networkState :: JsonRpc m => m Object -- | Returns the roles the node is running as. nodeRoles :: JsonRpc m => m [NodeRole] -- | Returns the currently connected peers. peers :: JsonRpc m => m [PeerInfo] -- | Get a custom set of properties as a JSON object, defined in the chain -- spec. properties :: JsonRpc m => m Object -- | Remove a reserved peer. removeReservedPeer :: JsonRpc m => Text -> m Text -- | Retrieves the version of the node. version :: JsonRpc m => m Text -- | Polkadot RPC methods with state prefix. module Network.Polkadot.Api.State -- | Perform a call to a builtin on the chain. call :: JsonRpc m => Text -> HexString -> Maybe HexString -> m HexString -- | Retrieves the keys with prefix of a specific child storage. getChildKeys :: JsonRpc m => HexString -> HexString -> Int -> HexString -> Maybe HexString -> m [HexString] -- | Retrieves the child storage for a key. getChildStorage :: JsonRpc m => HexString -> HexString -> Int -> HexString -> Maybe HexString -> m HexString -- | Retrieves the child storage hash. getChildStorageHash :: JsonRpc m => HexString -> HexString -> Int -> HexString -> Maybe HexString -> m HexString -- | Retrieves the child storage size. getChildStorageSize :: JsonRpc m => HexString -> HexString -> Int -> HexString -> Maybe HexString -> m Int -- | Retrieves the keys with a certain prefix. getKeys :: JsonRpc m => HexString -> Maybe HexString -> m [HexString] -- | Returns the runtime metadata. getMetadata :: JsonRpc m => m Metadata -- | Returns proof of storage entries at a specific block state. getReadProof :: JsonRpc m => [HexString] -> Maybe HexString -> m ReadProof -- | Get runtime version. getRuntimeVersion :: JsonRpc m => Maybe HexString -> m RuntimeVersion -- | Retrieves the storage for a key. getStorage :: JsonRpc m => HexString -> Maybe HexString -> m HexString -- | Retrieves the storage hash. getStorageHash :: JsonRpc m => HexString -> Maybe HexString -> m HexString -- | Retrieves the storage size. getStorageSize :: JsonRpc m => HexString -> Maybe HexString -> m Int -- | Query historical storage entries (by key) starting from a start block. queryStorage :: JsonRpc m => [HexString] -> HexString -> Maybe HexString -> m [StorageChangeSet] -- | Query storage entries (by key) starting at block hash given as the -- second parameter. queryStorageAt :: JsonRpc m => [HexString] -> Maybe HexString -> m [StorageChangeSet] -- | Polkadot RPC methods with payment prefix. module Network.Polkadot.Api.Payment -- | Retrieves the fee information for an encoded extrinsic. queryInfo :: JsonRpc m => HexString -> Maybe HexString -> m RuntimeDispatchInfo -- | Polkadot RPC methods with offchain prefix. module Network.Polkadot.Api.Offchain -- | Get offchain local storage under given key and prefix. localStorageGet :: JsonRpc m => StorageKind -> HexString -> m (Maybe HexString) -- | Set offchain local storage under given key and prefix localStorageSet :: JsonRpc m => StorageKind -> HexString -> HexString -> m () -- | Polkadot RPC methods with engine prefix. module Network.Polkadot.Api.Engine -- | Instructs the manual-seal authorship task to create a new block. createBlock :: JsonRpc m => Bool -> Bool -> Maybe HexString -> m CreatedBlock -- | Instructs the manual-seal authorship task to finalize a block. finalizeBlock :: JsonRpc m => HexString -> Maybe HexString -> m Bool -- | Polkadot RPC methods with contracts prefix. module Network.Polkadot.Api.Contracts -- | Executes a call to a contract. call :: JsonRpc m => ContractCall -> Maybe HexString -> m ContractExecResult -- | Returns the value under a specified storage key in a contract getStorage :: JsonRpc m => Text -> HexString -> Maybe HexString -> m (Maybe HexString) -- | Returns the projected time a given contract will be able to sustain -- paying its rent. rentProjection :: JsonRpc m => Text -> Maybe HexString -> m (Maybe Int) -- | Polkadot RPC methods with chain prefix. module Network.Polkadot.Api.Chain -- | Get header and body of a relay chain block. getBlock :: JsonRpc m => Maybe HexString -> m (Maybe SignedBlock) -- | Get the block hash for a specific block. getBlockHash :: JsonRpc m => Maybe Int -> m (Maybe HexString) -- | Get hash of the last finalized block in the canon chain. getFinalizedHead :: JsonRpc m => m HexString -- | Retrieves the header for a specific block. getHeader :: JsonRpc m => Maybe HexString -> m (Maybe Header) -- | Web3 service provider. module Network.Web3.Provider -- | Any communication with node wrapped with Web3 monad newtype Web3 a Web3 :: StateT JsonRpcClient IO a -> Web3 a [unWeb3] :: Web3 a -> StateT JsonRpcClient IO a -- | Some peace of error response data Web3Error JsonRpcFail :: !String -> Web3Error ParserFail :: !String -> Web3Error UserFail :: !String -> Web3Error -- | Web3 Provider data Provider HttpProvider :: String -> Provider WsProvider :: String -> Int -> Provider -- | Web3 monad runner, using the supplied Manager runWeb3With :: MonadIO m => Manager -> Provider -> Web3 a -> m (Either Web3Error a) -- | Web3 monad runner runWeb3' :: MonadIO m => Provider -> Web3 a -> m (Either Web3Error a) -- | Web3 runner for default Http provider runWeb3 :: MonadIO m => Web3 a -> m (Either Web3Error a) -- | Fork Web3 with the same Provider and Manager forkWeb3 :: Web3 a -> Web3 (Async a) -- | Returns a WebSocket Connection Instance getConnection :: String -> Int -> String -> IO Connection instance GHC.Generics.Generic Network.Web3.Provider.Provider instance GHC.Classes.Eq Network.Web3.Provider.Provider instance GHC.Show.Show Network.Web3.Provider.Provider instance GHC.Generics.Generic Network.Web3.Provider.Web3Error instance GHC.Classes.Eq Network.Web3.Provider.Web3Error instance GHC.Show.Show Network.Web3.Provider.Web3Error instance Control.Monad.State.Class.MonadState Network.JsonRpc.TinyClient.JsonRpcClient Network.Web3.Provider.Web3 instance Control.Monad.Catch.MonadThrow Network.Web3.Provider.Web3 instance Control.Monad.IO.Class.MonadIO Network.Web3.Provider.Web3 instance GHC.Base.Monad Network.Web3.Provider.Web3 instance GHC.Base.Applicative Network.Web3.Provider.Web3 instance GHC.Base.Functor Network.Web3.Provider.Web3 instance Data.Default.Class.Default Network.Web3.Provider.Provider instance GHC.Exception.Type.Exception Network.Web3.Provider.Web3Error instance Network.JsonRpc.TinyClient.JsonRpc Network.Web3.Provider.Web3 -- | Client library for Third Generation of Web. module Network.Web3 -- | Any communication with node wrapped with Web3 monad data Web3 a -- | Web3 runner for default Http provider runWeb3 :: MonadIO m => Web3 a -> m (Either Web3Error a)