-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | The cardano api
@package cardano-api
@version 1.22.1


-- | BIP32-Ed25519 digital signatures.
module Cardano.Api.Crypto.Ed25519Bip32
data Ed25519Bip32DSIGN
data family SigDSIGN v
data family SignKeyDSIGN v
data family VerKeyDSIGN v

-- | Serialise an <a>XPrv</a> to a <a>ByteString</a> (96 bytes).
--   
--   In <tt>cardano-crypto</tt>, an <a>XPrv</a> was originally serialised
--   using the following 128-byte binary format:
--   
--   TODO: table
--   
--   However, this function serialises an <a>XPrv</a> using a more compact
--   96-byte binary format:
--   
--   TODO: table
xPrvToBytes :: XPrv -> ByteString

-- | Deserialise an <a>XPrv</a> from a <a>ByteString</a> (96 bytes).
--   
--   In <tt>cardano-crypto</tt>, an <a>XPrv</a> was originally deserialised
--   using the following 128-byte binary format:
--   
--   TODO: table
--   
--   However, this function deserialises an <a>XPrv</a> using a more
--   compact 96-byte binary format:
--   
--   TODO: table
xPrvFromBytes :: ByteString -> Maybe XPrv
instance NoThunks.Class.NoThunks (Cardano.Crypto.DSIGN.Class.SigDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance Data.ByteArray.Types.ByteArrayAccess (Cardano.Crypto.DSIGN.Class.SigDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance GHC.Generics.Generic (Cardano.Crypto.DSIGN.Class.SigDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance GHC.Classes.Eq (Cardano.Crypto.DSIGN.Class.SigDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance GHC.Show.Show (Cardano.Crypto.DSIGN.Class.SigDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance NoThunks.Class.NoThunks (Cardano.Crypto.DSIGN.Class.SignKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance Control.DeepSeq.NFData (Cardano.Crypto.DSIGN.Class.SignKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance Data.ByteArray.Types.ByteArrayAccess (Cardano.Crypto.DSIGN.Class.SignKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance GHC.Generics.Generic (Cardano.Crypto.DSIGN.Class.SignKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance NoThunks.Class.NoThunks (Cardano.Crypto.DSIGN.Class.VerKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance Control.DeepSeq.NFData (Cardano.Crypto.DSIGN.Class.VerKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance GHC.Generics.Generic (Cardano.Crypto.DSIGN.Class.VerKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance GHC.Classes.Eq (Cardano.Crypto.DSIGN.Class.VerKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance GHC.Show.Show (Cardano.Crypto.DSIGN.Class.VerKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance Cardano.Crypto.DSIGN.Class.DSIGNAlgorithm Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN
instance GHC.Show.Show (Cardano.Crypto.DSIGN.Class.SignKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Crypto.DSIGN.Class.VerKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Crypto.DSIGN.Class.VerKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Crypto.DSIGN.Class.SignKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Crypto.DSIGN.Class.SignKeyDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Crypto.DSIGN.Class.SigDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Crypto.DSIGN.Class.SigDSIGN Cardano.Api.Crypto.Ed25519Bip32.Ed25519Bip32DSIGN)

module Cardano.Api.Protocol.Types
data SomeNodeClientProtocol
[SomeNodeClientProtocol] :: RunNode blk => ProtocolClient blk (BlockProtocol blk) -> SomeNodeClientProtocol


-- | Node client support for the Shelley protocol
module Cardano.Api.Protocol.Shelley
mkNodeClientProtocolShelley :: ProtocolClient (ShelleyBlockHFC StandardShelley) ProtocolShelley
mkSomeNodeClientProtocolShelley :: SomeNodeClientProtocol


-- | Node client support for the Cardano protocol
module Cardano.Api.Protocol.Cardano
mkNodeClientProtocolCardano :: EpochSlots -> ProtocolClient (CardanoBlock StandardCrypto) ProtocolCardano
mkSomeNodeClientProtocolCardano :: EpochSlots -> SomeNodeClientProtocol


-- | Node client support for the Byron protocol
module Cardano.Api.Protocol.Byron
mkNodeClientProtocolByron :: EpochSlots -> ProtocolClient ByronBlockHFC ProtocolByron
mkSomeNodeClientProtocolByron :: EpochSlots -> SomeNodeClientProtocol

module Cardano.Api.Shelley.Genesis

-- | Shelley genesis information
--   
--   Note that this is needed only for a pure Shelley network, hence it
--   being defined here rather than in its own module. In mainnet, Shelley
--   will transition naturally from Byron, and thus will never have its own
--   genesis information.
data ShelleyGenesis era
ShelleyGenesis :: !UTCTime -> !Word32 -> !Network -> !Rational -> !Word64 -> !EpochSize -> !Word64 -> !Word64 -> !NominalDiffTime -> !Word64 -> !Word64 -> !PParams era -> !Map (KeyHash 'Genesis (Crypto era)) (GenDelegPair (Crypto era)) -> !Map (Addr era) Coin -> !ShelleyGenesisStaking era -> ShelleyGenesis era
[sgSystemStart] :: ShelleyGenesis era -> !UTCTime
[sgNetworkMagic] :: ShelleyGenesis era -> !Word32
[sgNetworkId] :: ShelleyGenesis era -> !Network
[sgActiveSlotsCoeff] :: ShelleyGenesis era -> !Rational
[sgSecurityParam] :: ShelleyGenesis era -> !Word64
[sgEpochLength] :: ShelleyGenesis era -> !EpochSize
[sgSlotsPerKESPeriod] :: ShelleyGenesis era -> !Word64
[sgMaxKESEvolutions] :: ShelleyGenesis era -> !Word64
[sgSlotLength] :: ShelleyGenesis era -> !NominalDiffTime
[sgUpdateQuorum] :: ShelleyGenesis era -> !Word64
[sgMaxLovelaceSupply] :: ShelleyGenesis era -> !Word64
[sgProtocolParams] :: ShelleyGenesis era -> !PParams era
[sgGenDelegs] :: ShelleyGenesis era -> !Map (KeyHash 'Genesis (Crypto era)) (GenDelegPair (Crypto era))
[sgInitialFunds] :: ShelleyGenesis era -> !Map (Addr era) Coin
[sgStaking] :: ShelleyGenesis era -> !ShelleyGenesisStaking era

-- | Some reasonable starting defaults for constructing a
--   <a>ShelleyGenesis</a>.
--   
--   You must override at least the following fields for this to be useful:
--   
--   <ul>
--   <li><a>sgSystemStart</a> the time of the first block</li>
--   <li><a>sgNetworkMagic</a> to a suitable testnet or mainnet network
--   magic number.</li>
--   <li><a>sgGenDelegs</a> to have some initial nodes</li>
--   <li><a>sgInitialFunds</a> to have any money in the system</li>
--   <li><a>sgMaxLovelaceSupply</a> must be at least the sum of the
--   <a>sgInitialFunds</a> but more if you want to allow for rewards.</li>
--   </ul>
shelleyGenesisDefaults :: ShelleyGenesis crypto


-- | Support for legacy serialisation formats that are no longer available
--   in <tt>cardano-ledger-specs</tt>.
module Cardano.Api.Shelley.Serialisation.Legacy

-- | Wrapper type for a <a>MultiSig</a> script.
--   
--   Used to support the old <tt>Script</tt> binary serialization format
--   from <tt>cardano-ledger-specs</tt>.
newtype WrappedMultiSig era
WrappedMultiSig :: MultiSig era -> WrappedMultiSig era
[unWrappedMultiSig] :: WrappedMultiSig era -> MultiSig era
instance GHC.Generics.Generic (Cardano.Api.Shelley.Serialisation.Legacy.WrappedMultiSig era)
instance Data.Typeable.Internal.Typeable era => NoThunks.Class.NoThunks (Cardano.Api.Shelley.Serialisation.Legacy.WrappedMultiSig era)
instance GHC.Show.Show (Cardano.Api.Shelley.Serialisation.Legacy.WrappedMultiSig era)
instance GHC.Classes.Ord (Cardano.Api.Shelley.Serialisation.Legacy.WrappedMultiSig era)
instance GHC.Classes.Eq (Cardano.Api.Shelley.Serialisation.Legacy.WrappedMultiSig era)
instance (Cardano.Ledger.Era.Era era, Data.Typeable.Internal.Typeable era) => Cardano.Binary.FromCBOR.FromCBOR (Cardano.Binary.Annotated.Annotator (Cardano.Api.Shelley.Serialisation.Legacy.WrappedMultiSig era))
instance Data.Typeable.Internal.Typeable era => Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Shelley.Serialisation.Legacy.WrappedMultiSig era)

module Cardano.Api.TextView

-- | A <a>TextView</a> is a structured envelope for serialised binary
--   values with an external format with a semi-readable textual format.
--   
--   It contains a "type" field, e.g. "PublicKeyByron" or "TxSignedShelley"
--   to indicate the type of the encoded data. This is used as a sanity
--   check and to help readers.
--   
--   It also contains a "title" field which is free-form, and could be used
--   to indicate the role or purpose to a reader.
data TextView
TextView :: !TextViewType -> !TextViewDescription -> !ByteString -> TextView
[tvType] :: TextView -> !TextViewType
[tvDescription] :: TextView -> !TextViewDescription
[tvRawCBOR] :: TextView -> !ByteString

-- | The errors that the pure <a>TextView</a> parsing/decoding functions
--   can return.
data TextViewError
TextViewFormatError :: !Text -> TextViewError

-- | expected, actual
TextViewTypeError :: ![TextViewType] -> !TextViewType -> TextViewError
TextViewDecodeError :: !DecoderError -> TextViewError
TextViewAesonDecodeError :: !String -> TextViewError
newtype TextViewType
TextViewType :: ByteString -> TextViewType
[unTextViewType] :: TextViewType -> ByteString
newtype TextViewDescription
TextViewDescription :: ByteString -> TextViewDescription
[unTextViewDescription] :: TextViewDescription -> ByteString
renderTextViewError :: TextViewError -> Text

-- | Check that the "type" of the <a>TextView</a> is as expected.
--   
--   For example, one might check that the type is "TxSignedShelley".
expectTextViewOfType :: TextViewType -> TextView -> Either TextViewError ()
textViewJSONConfig :: Config
textViewJSONKeyOrder :: Text -> Text -> Ordering
textShow :: Show a => a -> Text

-- | The errors that the IO <a>TextView</a> reading/decoding actions can
--   return.
data TextViewFileError
TextViewFileError :: !FilePath -> !TextViewError -> TextViewFileError
TextViewFileIOError :: !FilePath -> !IOException -> TextViewFileError
renderTextViewFileError :: TextViewFileError -> Text
instance GHC.Base.Semigroup Cardano.Api.TextView.TextViewType
instance GHC.Show.Show Cardano.Api.TextView.TextViewType
instance Data.String.IsString Cardano.Api.TextView.TextViewType
instance GHC.Classes.Eq Cardano.Api.TextView.TextViewType
instance GHC.Base.Semigroup Cardano.Api.TextView.TextViewDescription
instance GHC.Show.Show Cardano.Api.TextView.TextViewDescription
instance Data.String.IsString Cardano.Api.TextView.TextViewDescription
instance GHC.Classes.Eq Cardano.Api.TextView.TextViewDescription
instance GHC.Show.Show Cardano.Api.TextView.TextView
instance GHC.Classes.Eq Cardano.Api.TextView.TextView
instance GHC.Show.Show Cardano.Api.TextView.TextViewError
instance GHC.Classes.Eq Cardano.Api.TextView.TextViewError
instance GHC.Show.Show Cardano.Api.TextView.TextViewFileError
instance GHC.Classes.Eq Cardano.Api.TextView.TextViewFileError
instance Data.Aeson.Types.ToJSON.ToJSON Cardano.Api.TextView.TextView
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Api.TextView.TextView


-- | This module provides a library interface for interacting with Cardano
--   as a user of the system.
--   
--   It is intended to be used to write tools and
--   
--   In the interest of simplicity it glosses over some details of the
--   system. Most simple tools should be able to work just using this
--   interface, however you can go deeper and expose the types from the
--   underlying libraries using <a>Cardano.Api.Byron</a> or
--   <a>Cardano.Api.Shelley</a>.
module Cardano.Api.Typed

-- | A type used as a tag to distinguish the Byron era.
data Byron

-- | A type used as a tag to distinguish the Shelley era.
data Shelley
class HasTypeProxy t where {
    
    -- | A family of singleton types used in this API to indicate which type to
    --   use where it would otherwise be ambiguous or merely unclear.
    --   
    --   Values of this type are passed to
    data family AsType t;
}
proxyToAsType :: HasTypeProxy t => Proxy t -> AsType t

-- | An interface for cryptographic keys used for signatures with a
--   <a>SigningKey</a> and a <a>VerificationKey</a> key.
--   
--   This interface does not provide actual signing or verifying functions
--   since this API is concerned with the management of keys: generating
--   and serialising.
class (Eq (VerificationKey keyrole), Show (VerificationKey keyrole), SerialiseAsRawBytes (Hash keyrole), HasTextEnvelope (VerificationKey keyrole), HasTextEnvelope (SigningKey keyrole)) => Key keyrole

-- | Get the corresponding verification key from a signing key.
getVerificationKey :: Key keyrole => SigningKey keyrole -> VerificationKey keyrole
verificationKeyHash :: Key keyrole => VerificationKey keyrole -> Hash keyrole

-- | Change the role of a <a>VerificationKey</a>, if the representation
--   permits.
castVerificationKey :: CastVerificationKeyRole keyroleA keyroleB => VerificationKey keyroleA -> VerificationKey keyroleB

-- | Change the role of a <a>SigningKey</a>, if the representation permits.
castSigningKey :: CastSigningKeyRole keyroleA keyroleB => SigningKey keyroleA -> SigningKey keyroleB

-- | Generate a <a>SigningKey</a> using a seed from operating system
--   entropy.
generateSigningKey :: Key keyrole => AsType keyrole -> IO (SigningKey keyrole)

-- | Generate a <a>SigningKey</a> deterministically, given a <a>Seed</a>.
--   The required size of the seed is given by
--   <a>deterministicSigningKeySeedSize</a>.
deterministicSigningKey :: Key keyrole => AsType keyrole -> Seed -> SigningKey keyrole
deterministicSigningKeySeedSize :: Key keyrole => AsType keyrole -> Word

-- | A seed contains a finite number of bytes, and is used for seeding
--   cryptographic algorithms including key generation.
--   
--   This is not itself a PRNG, but can be used to seed a PRNG.
data Seed

-- | Construct a <a>Seed</a> deterministically from a number of bytes.
mkSeedFromBytes :: ByteString -> Seed

-- | Obtain a <a>Seed</a> by reading <tt>n</tt> bytes of entropy from the
--   operating system.
readSeedFromSystemEntropy :: Word -> IO Seed
data family Hash keyrole :: Type
castHash :: CastHash keyroleA keyroleB => Hash keyroleA -> Hash keyroleB
data Address era

-- | Byron addresses are valid in both the Byron and Shelley era.
[ByronAddress] :: Address -> Address era

-- | Shelley addresses are only valid in the Shelley era.
[ShelleyAddress] :: Network -> PaymentCredential StandardShelley -> StakeReference StandardShelley -> Address Shelley
data NetworkId
Mainnet :: NetworkId
Testnet :: !NetworkMagic -> NetworkId
makeByronAddress :: NetworkId -> VerificationKey ByronKey -> Address era

-- | Byron-era payment keys. Used for Byron addresses and witnessing
--   transactions that spend from these addresses.
--   
--   These use Ed25519 but with a 32byte "chaincode" used in HD derivation.
--   The inclusion of the chaincode is a design mistake but one that cannot
--   be corrected for the Byron era. The Shelley era <a>PaymentKey</a>s do
--   not include a chaincode. It is safe to use a zero or random chaincode
--   for new Byron keys.
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data ByronKey
makeShelleyAddress :: NetworkId -> PaymentCredential -> StakeAddressReference -> Address Shelley
data PaymentCredential
PaymentCredentialByKey :: Hash PaymentKey -> PaymentCredential
PaymentCredentialByScript :: Hash Script -> PaymentCredential
data StakeAddressReference
StakeAddressByValue :: StakeCredential -> StakeAddressReference
StakeAddressByPointer :: StakeAddressPointer -> StakeAddressReference
NoStakeAddress :: StakeAddressReference

-- | Shelley-era payment keys. Used for Shelley payment addresses and
--   witnessing transactions that spend from these addresses.
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data PaymentKey

-- | Shelley-era payment keys using extended ed25519 cryptographic keys.
--   
--   They can be used for Shelley payment addresses and witnessing
--   transactions that spend from these addresses.
--   
--   These extended keys are used by HD wallets. So this type provides
--   interoperability with HD wallets. The ITN CLI also supported this key
--   type.
--   
--   The extended verification keys can be converted (via
--   <a>castVerificationKey</a>) to ordinary keys (i.e.
--   <a>VerificationKey</a> <a>PaymentKey</a>) but this is <i>not</i> the
--   case for the signing keys. The signing keys can be used to witness
--   transactions directly, with verification via their non-extended
--   verification key (<a>VerificationKey</a> <a>PaymentKey</a>).
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data PaymentExtendedKey
data StakeAddress
[StakeAddress] :: Network -> StakeCredential StandardShelley -> StakeAddress
data StakeCredential
StakeCredentialByKey :: Hash StakeKey -> StakeCredential
StakeCredentialByScript :: Hash Script -> StakeCredential
makeStakeAddress :: NetworkId -> StakeCredential -> StakeAddress
data StakeKey

-- | Shelley-era stake keys using extended ed25519 cryptographic keys.
--   
--   They can be used for Shelley stake addresses and witnessing
--   transactions that use stake addresses.
--   
--   These extended keys are used by HD wallets. So this type provides
--   interoperability with HD wallets. The ITN CLI also supported this key
--   type.
--   
--   The extended verification keys can be converted (via
--   <a>castVerificationKey</a>) to ordinary keys (i.e.
--   <a>VerificationKey</a> <a>StakeKey</a>) but this is <i>not</i> the
--   case for the signing keys. The signing keys can be used to witness
--   transactions directly, with verification via their non-extended
--   verification key (<a>VerificationKey</a> <a>StakeKey</a>).
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data StakeExtendedKey
data TxBody era
[ByronTxBody] :: Annotated Tx ByteString -> TxBody Byron
[ShelleyTxBody] :: TxBody StandardShelley -> Maybe MetaData -> TxBody Shelley
newtype TxId
TxId :: Hash StandardCrypto () -> TxId

-- | Calculate the transaction identifier for a <a>TxBody</a>.
getTxId :: TxBody era -> TxId
data TxIn
TxIn :: TxId -> TxIx -> TxIn
data TxOut era
TxOut :: Address era -> Lovelace -> TxOut era
newtype TxIx
TxIx :: Word -> TxIx
type TTL = SlotNo
type TxFee = Lovelace
newtype Lovelace
Lovelace :: Integer -> Lovelace
makeByronTransaction :: [TxIn] -> [TxOut Byron] -> Either ByronTxBodyConversionError (TxBody Byron)
makeShelleyTransaction :: TxExtraContent -> TTL -> TxFee -> [TxIn] -> [TxOut anyera] -> TxBody Shelley

-- | The 0-based index for the Ourboros time slot.
newtype SlotNo
SlotNo :: Word64 -> SlotNo
[unSlotNo] :: SlotNo -> Word64
data TxExtraContent
TxExtraContent :: Maybe TxMetadata -> [(StakeAddress, Lovelace)] -> [Certificate] -> Maybe UpdateProposal -> TxExtraContent
[txMetadata] :: TxExtraContent -> Maybe TxMetadata
[txWithdrawals] :: TxExtraContent -> [(StakeAddress, Lovelace)]
[txCertificates] :: TxExtraContent -> [Certificate]
[txUpdateProposal] :: TxExtraContent -> Maybe UpdateProposal
txExtraContentEmpty :: TxExtraContent
newtype Certificate
Certificate :: DCert StandardShelley -> Certificate
data Tx era
[ByronTx] :: ATxAux ByteString -> Tx Byron
[ShelleyTx] :: Tx StandardShelley -> Tx Shelley
getTxBody :: Tx era -> TxBody era
getTxWitnesses :: Tx era -> [Witness era]

-- | We support making key witnesses with both normal and extended signing
--   keys.
data ShelleySigningKey
toShelleySigningKey :: ShelleyWitnessSigningKey -> ShelleySigningKey
signByronTransaction :: NetworkId -> TxBody Byron -> [SigningKey ByronKey] -> Tx Byron
signShelleyTransaction :: TxBody Shelley -> [ShelleyWitnessSigningKey] -> Tx Shelley
makeSignedTransaction :: [Witness era] -> TxBody era -> Tx era
data Witness era
[ByronKeyWitness] :: TxInWitness -> Witness Byron
[ShelleyBootstrapWitness] :: BootstrapWitness StandardShelley -> Witness Shelley
[ShelleyKeyWitness] :: WitVKey Witness StandardShelley -> Witness Shelley
[ShelleyScriptWitness] :: Script StandardShelley -> Witness Shelley
makeByronKeyWitness :: NetworkId -> TxBody Byron -> SigningKey ByronKey -> Witness Byron
data ShelleyWitnessSigningKey
WitnessPaymentKey :: SigningKey PaymentKey -> ShelleyWitnessSigningKey
WitnessPaymentExtendedKey :: SigningKey PaymentExtendedKey -> ShelleyWitnessSigningKey
WitnessStakeKey :: SigningKey StakeKey -> ShelleyWitnessSigningKey
WitnessStakeExtendedKey :: SigningKey StakeExtendedKey -> ShelleyWitnessSigningKey
WitnessStakePoolKey :: SigningKey StakePoolKey -> ShelleyWitnessSigningKey
WitnessGenesisKey :: SigningKey GenesisKey -> ShelleyWitnessSigningKey
WitnessGenesisExtendedKey :: SigningKey GenesisExtendedKey -> ShelleyWitnessSigningKey
WitnessGenesisDelegateKey :: SigningKey GenesisDelegateKey -> ShelleyWitnessSigningKey
WitnessGenesisDelegateExtendedKey :: SigningKey GenesisDelegateExtendedKey -> ShelleyWitnessSigningKey
WitnessGenesisUTxOKey :: SigningKey GenesisUTxOKey -> ShelleyWitnessSigningKey
makeShelleyKeyWitness :: TxBody Shelley -> ShelleyWitnessSigningKey -> Witness Shelley

-- | Either a network ID or a Byron address to be used in constructing a
--   Shelley bootstrap witness.
data WitnessNetworkIdOrByronAddress

-- | Network ID.
--   
--   If this value is used in the construction of a Shelley bootstrap
--   witness, the result will not consist of a derivation path. If that is
--   required, specify a <a>WitnessByronAddress</a> value instead.
WitnessNetworkId :: !NetworkId -> WitnessNetworkIdOrByronAddress

-- | Byron address.
--   
--   If this value is used in the construction of a Shelley bootstrap
--   witness, both the network ID and derivation path will be extracted
--   from the address and used in the construction of the witness.
WitnessByronAddress :: !Address Byron -> WitnessNetworkIdOrByronAddress
makeShelleyBootstrapWitness :: WitnessNetworkIdOrByronAddress -> TxBody Shelley -> SigningKey ByronKey -> Witness Shelley
makeShelleyScriptWitness :: Script -> Witness Shelley
makeShelleySignature :: SignableRepresentation tosign => tosign -> ShelleySigningKey -> SignedDSIGN StandardCrypto tosign
getShelleyKeyWitnessVerificationKey :: ShelleySigningKey -> VKey Witness StandardCrypto

-- | For a concrete fully-constructed transaction, determine the minimum
--   fee that it needs to pay.
--   
--   This function is simple, but if you are doing input selection then you
--   probably want to consider estimateTransactionFee.
transactionFee :: Natural -> Natural -> Tx Shelley -> Lovelace

-- | This can estimate what the transaction fee will be, based on a
--   starting base transaction, plus the numbers of the additional
--   components of the transaction that may be added.
--   
--   So for example with wallet coin selection, the base transaction should
--   contain all the things not subject to coin selection (such as script
--   inputs, metadata, withdrawals, certs etc)
estimateTransactionFee :: NetworkId -> Natural -> Natural -> Tx Shelley -> Int -> Int -> Int -> Int -> Lovelace
newtype TxMetadata
TxMetadataShelley :: MetaData -> TxMetadata
pattern TxMetadata :: Map Word64 TxMetadataValue -> TxMetadata
data TxMetadataValue
TxMetaNumber :: Integer -> TxMetadataValue
TxMetaBytes :: ByteString -> TxMetadataValue
TxMetaText :: Text -> TxMetadataValue
TxMetaList :: [TxMetadataValue] -> TxMetadataValue
TxMetaMap :: [(TxMetadataValue, TxMetadataValue)] -> TxMetadataValue
toShelleyMetaData :: Map Word64 TxMetadataValue -> MetaData
fromShelleyMetaData :: MetaData -> Map Word64 TxMetadataValue
makeTransactionMetadata :: Map Word64 TxMetadataValue -> TxMetadata
makeStakeAddressRegistrationCertificate :: StakeCredential -> Certificate
makeStakeAddressDeregistrationCertificate :: StakeCredential -> Certificate
makeStakeAddressDelegationCertificate :: StakeCredential -> PoolId -> Certificate
makeStakePoolRegistrationCertificate :: StakePoolParameters -> Certificate
makeStakePoolRetirementCertificate :: PoolId -> EpochNo -> Certificate
data StakePoolParameters
StakePoolParameters :: PoolId -> Hash VrfKey -> Lovelace -> Rational -> StakeAddress -> Lovelace -> [Hash StakeKey] -> [StakePoolRelay] -> Maybe StakePoolMetadataReference -> StakePoolParameters
[stakePoolId] :: StakePoolParameters -> PoolId
[stakePoolVRF] :: StakePoolParameters -> Hash VrfKey
[stakePoolCost] :: StakePoolParameters -> Lovelace
[stakePoolMargin] :: StakePoolParameters -> Rational
[stakePoolRewardAccount] :: StakePoolParameters -> StakeAddress
[stakePoolPledge] :: StakePoolParameters -> Lovelace
[stakePoolOwners] :: StakePoolParameters -> [Hash StakeKey]
[stakePoolRelays] :: StakePoolParameters -> [StakePoolRelay]
[stakePoolMetadata] :: StakePoolParameters -> Maybe StakePoolMetadataReference
data StakePoolRelay

-- | One or both of IPv4 &amp; IPv6
StakePoolRelayIp :: Maybe IPv4 -> Maybe IPv6 -> Maybe PortNumber -> StakePoolRelay

-- | An DNS name pointing to a <tt>A</tt> or <tt>AAAA</tt> record.
StakePoolRelayDnsARecord :: ByteString -> Maybe PortNumber -> StakePoolRelay

-- | A DNS name pointing to a <tt>SRV</tt> record.
StakePoolRelayDnsSrvRecord :: ByteString -> StakePoolRelay
data StakePoolMetadataReference
StakePoolMetadataReference :: URI -> Hash StakePoolMetadata -> StakePoolMetadataReference
[stakePoolMetadataURL] :: StakePoolMetadataReference -> URI
[stakePoolMetadataHash] :: StakePoolMetadataReference -> Hash StakePoolMetadata

-- | A representation of the required fields for off-chain stake pool
--   metadata.
data StakePoolMetadata
StakePoolMetadata :: !Text -> !Text -> !Text -> !Text -> StakePoolMetadata

-- | A name of up to 50 characters.
[stakePoolName] :: StakePoolMetadata -> !Text

-- | A description of up to 255 characters.
[stakePoolDescription] :: StakePoolMetadata -> !Text

-- | A ticker of 3-5 characters, for a compact display of stake pools in a
--   wallet.
[stakePoolTicker] :: StakePoolMetadata -> !Text

-- | A URL to a homepage with additional information about the pool. n.b.
--   the spec does not specify a character limit for this field.
[stakePoolHomepage] :: StakePoolMetadata -> !Text

-- | Decode and validate the provided JSON-encoded bytes as
--   <a>StakePoolMetadata</a>. Return the decoded metadata and the hash of
--   the original bytes.
validateAndHashStakePoolMetadata :: ByteString -> Either StakePoolMetadataValidationError (StakePoolMetadata, Hash StakePoolMetadata)

-- | A stake pool metadata validation error.
data StakePoolMetadataValidationError
StakePoolMetadataJsonDecodeError :: !String -> StakePoolMetadataValidationError

-- | The length of the JSON-encoded stake pool metadata exceeds the
--   maximum.
StakePoolMetadataInvalidLengthError :: !Int -> !Int -> StakePoolMetadataValidationError
newtype Script
Script :: Script StandardShelley -> Script
parseScript :: Value -> Parser MultiSigScript
parseScriptAny :: Value -> Parser MultiSigScript
parseScriptAll :: Value -> Parser MultiSigScript
parseScriptAtLeast :: Value -> Parser MultiSigScript
parseScriptSig :: Value -> Parser MultiSigScript
scriptHash :: Script -> Hash Script
data MultiSigScript
RequireSignature :: Hash PaymentKey -> MultiSigScript
RequireAllOf :: [MultiSigScript] -> MultiSigScript
RequireAnyOf :: [MultiSigScript] -> MultiSigScript
RequireMOf :: Int -> [MultiSigScript] -> MultiSigScript
makeMultiSigScript :: MultiSigScript -> Script
class HasTypeProxy a => SerialiseAsCBOR a
class Typeable a => ToCBOR a
class Typeable a => FromCBOR a
serialiseToCBOR :: SerialiseAsCBOR a => a -> ByteString
deserialiseFromCBOR :: SerialiseAsCBOR a => AsType a -> ByteString -> Either DecoderError a

-- | A type that can be converted to JSON.
--   
--   Instances in general <i>must</i> specify <a>toJSON</a> and
--   <i>should</i> (but don't need to) specify <a>toEncoding</a>.
--   
--   An example type and instance:
--   
--   <pre>
--   -- Allow ourselves to write <a>Text</a> literals.
--   {-# LANGUAGE OverloadedStrings #-}
--   
--   data Coord = Coord { x :: Double, y :: Double }
--   
--   instance <a>ToJSON</a> Coord where
--     <a>toJSON</a> (Coord x y) = <a>object</a> ["x" <a>.=</a> x, "y" <a>.=</a> y]
--   
--     <a>toEncoding</a> (Coord x y) = <tt>pairs</tt> ("x" <a>.=</a> x <a>&lt;&gt;</a> "y" <a>.=</a> y)
--   </pre>
--   
--   Instead of manually writing your <a>ToJSON</a> instance, there are two
--   options to do it automatically:
--   
--   <ul>
--   <li><a>Data.Aeson.TH</a> provides Template Haskell functions which
--   will derive an instance at compile time. The generated instance is
--   optimized for your type so it will probably be more efficient than the
--   following option.</li>
--   <li>The compiler can provide a default generic implementation for
--   <a>toJSON</a>.</li>
--   </ul>
--   
--   To use the second, simply add a <tt>deriving <a>Generic</a></tt>
--   clause to your datatype and declare a <a>ToJSON</a> instance. If you
--   require nothing other than <a>defaultOptions</a>, it is sufficient to
--   write (and this is the only alternative where the default
--   <a>toJSON</a> implementation is sufficient):
--   
--   <pre>
--   {-# LANGUAGE DeriveGeneric #-}
--   
--   import <a>GHC.Generics</a>
--   
--   data Coord = Coord { x :: Double, y :: Double } deriving <a>Generic</a>
--   
--   instance <a>ToJSON</a> Coord where
--       <a>toEncoding</a> = <a>genericToEncoding</a> <a>defaultOptions</a>
--   </pre>
--   
--   If on the other hand you wish to customize the generic decoding, you
--   have to implement both methods:
--   
--   <pre>
--   customOptions = <a>defaultOptions</a>
--                   { <a>fieldLabelModifier</a> = <a>map</a> <a>toUpper</a>
--                   }
--   
--   instance <a>ToJSON</a> Coord where
--       <a>toJSON</a>     = <a>genericToJSON</a> customOptions
--       <a>toEncoding</a> = <a>genericToEncoding</a> customOptions
--   </pre>
--   
--   Previous versions of this library only had the <a>toJSON</a> method.
--   Adding <a>toEncoding</a> had two reasons:
--   
--   <ol>
--   <li>toEncoding is more efficient for the common case that the output
--   of <a>toJSON</a> is directly serialized to a <tt>ByteString</tt>.
--   Further, expressing either method in terms of the other would be
--   non-optimal.</li>
--   <li>The choice of defaults allows a smooth transition for existing
--   users: Existing instances that do not define <a>toEncoding</a> still
--   compile and have the correct semantics. This is ensured by making the
--   default implementation of <a>toEncoding</a> use <a>toJSON</a>. This
--   produces correct results, but since it performs an intermediate
--   conversion to a <a>Value</a>, it will be less efficient than directly
--   emitting an <a>Encoding</a>. (this also means that specifying nothing
--   more than <tt>instance ToJSON Coord</tt> would be sufficient as a
--   generically decoding instance, but there probably exists no good
--   reason to not specify <a>toEncoding</a> in new instances.)</li>
--   </ol>
class ToJSON a

-- | A type that can be converted from JSON, with the possibility of
--   failure.
--   
--   In many cases, you can get the compiler to generate parsing code for
--   you (see below). To begin, let's cover writing an instance by hand.
--   
--   There are various reasons a conversion could fail. For example, an
--   <a>Object</a> could be missing a required key, an <a>Array</a> could
--   be of the wrong size, or a value could be of an incompatible type.
--   
--   The basic ways to signal a failed conversion are as follows:
--   
--   <ul>
--   <li><a>fail</a> yields a custom error message: it is the recommended
--   way of reporting a failure;</li>
--   <li><a>empty</a> (or <a>mzero</a>) is uninformative: use it when the
--   error is meant to be caught by some <tt>(<a>&lt;|&gt;</a>)</tt>;</li>
--   <li><a>typeMismatch</a> can be used to report a failure when the
--   encountered value is not of the expected JSON type; <a>unexpected</a>
--   is an appropriate alternative when more than one type may be expected,
--   or to keep the expected type implicit.</li>
--   </ul>
--   
--   <a>prependFailure</a> (or <a>modifyFailure</a>) add more information
--   to a parser's error messages.
--   
--   An example type and instance using <a>typeMismatch</a> and
--   <a>prependFailure</a>:
--   
--   <pre>
--   -- Allow ourselves to write <a>Text</a> literals.
--   {-# LANGUAGE OverloadedStrings #-}
--   
--   data Coord = Coord { x :: Double, y :: Double }
--   
--   instance <a>FromJSON</a> Coord where
--       <a>parseJSON</a> (<a>Object</a> v) = Coord
--           <a>&lt;$&gt;</a> v <a>.:</a> "x"
--           <a>&lt;*&gt;</a> v <a>.:</a> "y"
--   
--       -- We do not expect a non-<a>Object</a> value here.
--       -- We could use <a>empty</a> to fail, but <a>typeMismatch</a>
--       -- gives a much more informative error message.
--       <a>parseJSON</a> invalid    =
--           <a>prependFailure</a> "parsing Coord failed, "
--               (<a>typeMismatch</a> "Object" invalid)
--   </pre>
--   
--   For this common case of only being concerned with a single type of
--   JSON value, the functions <a>withObject</a>, <a>withScientific</a>,
--   etc. are provided. Their use is to be preferred when possible, since
--   they are more terse. Using <a>withObject</a>, we can rewrite the above
--   instance (assuming the same language extension and data type) as:
--   
--   <pre>
--   instance <a>FromJSON</a> Coord where
--       <a>parseJSON</a> = <a>withObject</a> "Coord" $ \v -&gt; Coord
--           <a>&lt;$&gt;</a> v <a>.:</a> "x"
--           <a>&lt;*&gt;</a> v <a>.:</a> "y"
--   </pre>
--   
--   Instead of manually writing your <a>FromJSON</a> instance, there are
--   two options to do it automatically:
--   
--   <ul>
--   <li><a>Data.Aeson.TH</a> provides Template Haskell functions which
--   will derive an instance at compile time. The generated instance is
--   optimized for your type so it will probably be more efficient than the
--   following option.</li>
--   <li>The compiler can provide a default generic implementation for
--   <a>parseJSON</a>.</li>
--   </ul>
--   
--   To use the second, simply add a <tt>deriving <a>Generic</a></tt>
--   clause to your datatype and declare a <a>FromJSON</a> instance for
--   your datatype without giving a definition for <a>parseJSON</a>.
--   
--   For example, the previous example can be simplified to just:
--   
--   <pre>
--   {-# LANGUAGE DeriveGeneric #-}
--   
--   import <a>GHC.Generics</a>
--   
--   data Coord = Coord { x :: Double, y :: Double } deriving <a>Generic</a>
--   
--   instance <a>FromJSON</a> Coord
--   </pre>
--   
--   The default implementation will be equivalent to <tt>parseJSON =
--   <a>genericParseJSON</a> <a>defaultOptions</a></tt>; if you need
--   different options, you can customize the generic decoding by defining:
--   
--   <pre>
--   customOptions = <a>defaultOptions</a>
--                   { <a>fieldLabelModifier</a> = <a>map</a> <a>toUpper</a>
--                   }
--   
--   instance <a>FromJSON</a> Coord where
--       <a>parseJSON</a> = <a>genericParseJSON</a> customOptions
--   </pre>
class FromJSON a
serialiseToJSON :: ToJSON a => a -> ByteString
deserialiseFromJSON :: FromJSON a => AsType a -> ByteString -> Either JsonDecodeError a
class (HasTypeProxy a, SerialiseAsRawBytes a) => SerialiseAsBech32 a
serialiseToBech32 :: SerialiseAsBech32 a => a -> Text
deserialiseFromBech32 :: SerialiseAsBech32 a => AsType a -> Text -> Either Bech32DecodeError a
deserialiseAnyOfFromBech32 :: forall b. [FromSomeType SerialiseAsBech32 b] -> Text -> Either Bech32DecodeError b

-- | Bech32 decoding error.
data Bech32DecodeError

-- | There was an error decoding the string as Bech32.
Bech32DecodingError :: !DecodingError -> Bech32DecodeError

-- | The human-readable prefix in the Bech32-encoded string is not one of
--   the ones expected.
Bech32UnexpectedPrefix :: !Text -> !Set Text -> Bech32DecodeError

-- | There was an error in extracting a <a>ByteString</a> from the data
--   part of the Bech32-encoded string.
Bech32DataPartToBytesError :: !Text -> Bech32DecodeError

-- | There was an error in deserialising the bytes into a value of the
--   expected type.
Bech32DeserialiseFromBytesError :: !ByteString -> Bech32DecodeError

-- | The human-readable prefix in the Bech32-encoded string does not
--   correspond to the prefix that should be used for the payload value.
Bech32WrongPrefix :: !Text -> !Text -> Bech32DecodeError

-- | Address serialisation uses different serialisation formats for
--   different kinds of addresses, so it needs its own class.
--   
--   In particular, Byron addresses are typically formatted in base 58,
--   while Shelley addresses (payment and stake) are formatted using
--   Bech32.
class HasTypeProxy addr => SerialiseAddress addr
serialiseAddress :: SerialiseAddress addr => addr -> Text
deserialiseAddress :: SerialiseAddress addr => AsType addr -> Text -> Maybe addr
class HasTypeProxy a => SerialiseAsRawBytes a
serialiseToRawBytes :: SerialiseAsRawBytes a => a -> ByteString
deserialiseFromRawBytes :: SerialiseAsRawBytes a => AsType a -> ByteString -> Maybe a
serialiseToRawBytesHex :: SerialiseAsRawBytes a => a -> ByteString
deserialiseFromRawBytesHex :: SerialiseAsRawBytes a => AsType a -> ByteString -> Maybe a
class SerialiseAsCBOR a => HasTextEnvelope a
textEnvelopeType :: HasTextEnvelope a => AsType a -> TextEnvelopeType
textEnvelopeDefaultDescr :: HasTextEnvelope a => a -> TextEnvelopeDescr
type TextEnvelope = TextView
type TextEnvelopeType = TextViewType
type TextEnvelopeDescr = TextViewDescription
type TextEnvelopeError = TextViewError
serialiseToTextEnvelope :: forall a. HasTextEnvelope a => Maybe TextEnvelopeDescr -> a -> TextEnvelope
deserialiseFromTextEnvelope :: HasTextEnvelope a => AsType a -> TextEnvelope -> Either TextEnvelopeError a
readFileTextEnvelope :: HasTextEnvelope a => AsType a -> FilePath -> IO (Either (FileError TextEnvelopeError) a)
writeFileTextEnvelope :: HasTextEnvelope a => FilePath -> Maybe TextEnvelopeDescr -> a -> IO (Either (FileError ()) ())
readTextEnvelopeFromFile :: FilePath -> IO (Either (FileError TextEnvelopeError) TextEnvelope)
readTextEnvelopeOfTypeFromFile :: TextEnvelopeType -> FilePath -> IO (Either (FileError TextEnvelopeError) TextEnvelope)
data FromSomeType (c :: Type -> Constraint) b
[FromSomeType] :: c a => AsType a -> (a -> b) -> FromSomeType c b
deserialiseFromTextEnvelopeAnyOf :: [FromSomeType HasTextEnvelope b] -> TextEnvelope -> Either TextEnvelopeError b
readFileTextEnvelopeAnyOf :: [FromSomeType HasTextEnvelope b] -> FilePath -> IO (Either (FileError TextEnvelopeError) b)
class Show e => Error e
displayError :: Error e => e -> String

-- | The preferred approach is to use <tt>Except</tt> or <a>ExceptT</a>,
--   but you can if necessary use IO exceptions.
throwErrorAsException :: Error e => e -> IO a
data FileError e
FileError :: FilePath -> e -> FileError e
FileIOError :: FilePath -> IOException -> FileError e

-- | Establish a connection to a node and execute the given set of protocol
--   handlers.
connectToLocalNode :: forall mode block. (ShowProxy block, ShowProxy (ApplyTxErr block), ShowProxy (Query block), ShowProxy (GenTx block), ShowQuery (Query block)) => LocalNodeConnectInfo mode block -> LocalNodeClientProtocols block -> IO ()
data LocalNodeConnectInfo mode block
LocalNodeConnectInfo :: FilePath -> NetworkId -> NodeConsensusMode mode block -> LocalNodeConnectInfo mode block
[localNodeSocketPath] :: LocalNodeConnectInfo mode block -> FilePath
[localNodeNetworkId] :: LocalNodeConnectInfo mode block -> NetworkId
[localNodeConsensusMode] :: LocalNodeConnectInfo mode block -> NodeConsensusMode mode block
data ByronMode
data ShelleyMode
data CardanoMode
data NodeConsensusMode mode block
[ByronMode] :: EpochSlots -> NodeConsensusMode ByronMode ByronBlockHFC
[ShelleyMode] :: NodeConsensusMode ShelleyMode (ShelleyBlockHFC StandardShelley)
[CardanoMode] :: EpochSlots -> NodeConsensusMode CardanoMode (CardanoBlock StandardCrypto)
data LocalNodeClientProtocols block
LocalNodeClientProtocols :: Maybe (ChainSyncClient block (Point block) (Tip block) IO ()) -> Maybe (LocalTxSubmissionClient (GenTx block) (ApplyTxErr block) IO ()) -> Maybe (LocalStateQueryClient block (Point block) (Query block) IO ()) -> LocalNodeClientProtocols block
[localChainSyncClient] :: LocalNodeClientProtocols block -> Maybe (ChainSyncClient block (Point block) (Tip block) IO ())
[localTxSubmissionClient] :: LocalNodeClientProtocols block -> Maybe (LocalTxSubmissionClient (GenTx block) (ApplyTxErr block) IO ())
[localStateQueryClient] :: LocalNodeClientProtocols block -> Maybe (LocalStateQueryClient block (Point block) (Query block) IO ())
nullLocalNodeClientProtocols :: LocalNodeClientProtocols block
withNodeProtocolClient :: NodeConsensusMode mode block -> ((SerialiseNodeToClientConstraints block, SupportedNetworkProtocolVersion block) => ProtocolClient block (BlockProtocol block) -> a) -> a
newtype ChainSyncClient header point tip (m :: Type -> Type) a
ChainSyncClient :: m (ClientStIdle header point tip m a) -> ChainSyncClient header point tip (m :: Type -> Type) a
[runChainSyncClient] :: ChainSyncClient header point tip (m :: Type -> Type) a -> m (ClientStIdle header point tip m a)
newtype LocalTxSubmissionClient tx reject (m :: Type -> Type) a
LocalTxSubmissionClient :: m (LocalTxClientStIdle tx reject m a) -> LocalTxSubmissionClient tx reject (m :: Type -> Type) a
[runLocalTxSubmissionClient] :: LocalTxSubmissionClient tx reject (m :: Type -> Type) a -> m (LocalTxClientStIdle tx reject m a)
submitTxToNodeLocal :: forall mode block. (ShowProxy block, ShowProxy (ApplyTxErr block), ShowProxy (Query block), ShowProxy (GenTx block), ShowQuery (Query block)) => LocalNodeConnectInfo mode block -> GenTx block -> IO (SubmitResult (ApplyTxErr block))
newtype LocalStateQueryClient block point (query :: Type -> Type) (m :: Type -> Type) a
LocalStateQueryClient :: m (ClientStIdle block point query m a) -> LocalStateQueryClient block point (query :: Type -> Type) (m :: Type -> Type) a
[runLocalStateQueryClient] :: LocalStateQueryClient block point (query :: Type -> Type) (m :: Type -> Type) a -> m (ClientStIdle block point query m a)

-- | Establish a connection to a node and execute a single query using the
--   local state query protocol.
queryNodeLocalState :: forall mode block result. (ShowProxy block, ShowProxy (ApplyTxErr block), ShowProxy (Query block), ShowProxy (GenTx block), ShowQuery (Query block)) => LocalNodeConnectInfo mode block -> (Point block, Query block result) -> IO (Either AcquireFailure result)
data StakePoolKey
type PoolId = Hash StakePoolKey
data KesKey
data VrfKey
data OperationalCertificate
OperationalCertificate :: !OCert StandardCrypto -> !VerificationKey StakePoolKey -> OperationalCertificate
data OperationalCertificateIssueCounter
OperationalCertificateIssueCounter :: !Word64 -> !VerificationKey StakePoolKey -> OperationalCertificateIssueCounter
newtype KESPeriod
KESPeriod :: Word -> KESPeriod
[unKESPeriod] :: KESPeriod -> Word
data OperationalCertIssueError

-- | The stake pool verification key expected for the
--   <a>OperationalCertificateIssueCounter</a> does not match the signing
--   key supplied for signing.
--   
--   Order: pool vkey expected, pool skey supplied
OperationalCertKeyMismatch :: VerificationKey StakePoolKey -> VerificationKey StakePoolKey -> OperationalCertIssueError
issueOperationalCertificate :: VerificationKey KesKey -> Either (SigningKey StakePoolKey) (SigningKey GenesisDelegateExtendedKey) -> KESPeriod -> OperationalCertificateIssueCounter -> Either OperationalCertIssueError (OperationalCertificate, OperationalCertificateIssueCounter)
data GenesisKey

-- | Shelley-era genesis keys using extended ed25519 cryptographic keys.
--   
--   These serve the same role as normal genesis keys, but are here to
--   support legacy Byron genesis keys which used extended keys.
--   
--   The extended verification keys can be converted (via
--   <a>castVerificationKey</a>) to ordinary keys (i.e.
--   <a>VerificationKey</a> <a>GenesisKey</a>) but this is <i>not</i> the
--   case for the signing keys. The signing keys can be used to witness
--   transactions directly, with verification via their non-extended
--   verification key (<a>VerificationKey</a> <a>GenesisKey</a>).
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data GenesisExtendedKey
data GenesisDelegateKey

-- | Shelley-era genesis keys using extended ed25519 cryptographic keys.
--   
--   These serve the same role as normal genesis keys, but are here to
--   support legacy Byron genesis keys which used extended keys.
--   
--   The extended verification keys can be converted (via
--   <a>castVerificationKey</a>) to ordinary keys (i.e.
--   <a>VerificationKey</a> <a>GenesisKey</a>) but this is <i>not</i> the
--   case for the signing keys. The signing keys can be used to witness
--   transactions directly, with verification via their non-extended
--   verification key (<a>VerificationKey</a> <a>GenesisKey</a>).
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data GenesisDelegateExtendedKey
data GenesisUTxOKey

-- | Compute the <a>TxIn</a> of the initial UTxO pseudo-transaction
--   corresponding to the given address in the genesis initial funds.
--   
--   The Shelley initial UTxO is constructed from the
--   <tt>sgInitialFunds</tt> which is not a full UTxO but just a map from
--   addresses to coin values.
--   
--   This gets turned into a UTxO by making a pseudo-transaction for each
--   address, with the 0th output being the coin value. So to spend from
--   the initial UTxO we need this same <a>TxIn</a> to use as an input to
--   the spending transaction.
genesisUTxOPseudoTxIn :: NetworkId -> Hash GenesisUTxOKey -> TxIn
makeMIRCertificate :: MIRPot -> [(StakeCredential, Lovelace)] -> Certificate
makeGenesisKeyDelegationCertificate :: Hash GenesisKey -> Hash GenesisDelegateKey -> Hash VrfKey -> Certificate
newtype UpdateProposal
UpdateProposal :: Update StandardShelley -> UpdateProposal
data ProtocolParametersUpdate
ProtocolParametersUpdate :: Maybe (Natural, Natural) -> Maybe Rational -> Maybe (Maybe ByteString) -> Maybe Natural -> Maybe Natural -> Maybe Natural -> Maybe Natural -> Maybe Natural -> Maybe Lovelace -> Maybe Lovelace -> Maybe Lovelace -> Maybe Lovelace -> Maybe EpochNo -> Maybe Natural -> Maybe Rational -> Maybe Rational -> Maybe Rational -> ProtocolParametersUpdate

-- | Protocol version, major and minor. Updating the major version is used
--   to trigger hard forks.
[protocolUpdateProtocolVersion] :: ProtocolParametersUpdate -> Maybe (Natural, Natural)

-- | The decentralization parameter. This is fraction of slots that belong
--   to the BFT overlay schedule, rather than the Praos schedule. So 1
--   means fully centralised, while 0 means fully decentralised.
--   
--   This is the "d" parameter from the design document.
[protocolUpdateDecentralization] :: ProtocolParametersUpdate -> Maybe Rational

-- | Extra entropy for the Praos per-epoch nonce.
--   
--   This can be used to add extra entropy during the decentralisation
--   process. If the extra entropy can be demonstrated to be generated
--   randomly then this method can be used to show that the initial
--   federated operators did not subtly bias the initial schedule so that
--   they retain undue influence after decentralisation.
[protocolUpdateExtraPraosEntropy] :: ProtocolParametersUpdate -> Maybe (Maybe ByteString)

-- | The maximum permitted size of a block header.
--   
--   This must be at least as big as the largest legitimate block headers
--   but should not be too much larger, to help prevent DoS attacks.
--   
--   Caution: setting this to be smaller than legitimate block headers is a
--   sure way to brick the system!
[protocolUpdateMaxBlockHeaderSize] :: ProtocolParametersUpdate -> Maybe Natural

-- | The maximum permitted size of the block body (that is, the block
--   payload, without the block header).
--   
--   This should be picked with the Praos network delta security parameter
--   in mind. Making this too large can severely weaken the Praos consensus
--   properties.
--   
--   Caution: setting this to be smaller than a transaction that can change
--   the protocol parameters is a sure way to brick the system!
[protocolUpdateMaxBlockBodySize] :: ProtocolParametersUpdate -> Maybe Natural

-- | The maximum permitted size of a transaction.
--   
--   Typically this should not be too high a fraction of the block size,
--   otherwise wastage from block fragmentation becomes a problem, and the
--   current implementation does not use any sophisticated box packing
--   algorithm.
[protocolUpdateMaxTxSize] :: ProtocolParametersUpdate -> Maybe Natural

-- | The constant factor for the minimum fee calculation.
[protocolUpdateTxFeeFixed] :: ProtocolParametersUpdate -> Maybe Natural

-- | The linear factor for the minimum fee calculation.
[protocolUpdateTxFeePerByte] :: ProtocolParametersUpdate -> Maybe Natural

-- | The minimum permitted value for new UTxO entries, ie for transaction
--   outputs.
[protocolUpdateMinUTxOValue] :: ProtocolParametersUpdate -> Maybe Lovelace

-- | The deposit required to register a stake address.
[protocolUpdateStakeAddressDeposit] :: ProtocolParametersUpdate -> Maybe Lovelace

-- | The deposit required to register a stake pool.
[protocolUpdateStakePoolDeposit] :: ProtocolParametersUpdate -> Maybe Lovelace

-- | The minimum value that stake pools are permitted to declare for their
--   cost parameter.
[protocolUpdateMinPoolCost] :: ProtocolParametersUpdate -> Maybe Lovelace

-- | The maximum number of epochs into the future that stake pools are
--   permitted to schedule a retirement.
[protocolUpdatePoolRetireMaxEpoch] :: ProtocolParametersUpdate -> Maybe EpochNo

-- | The equilibrium target number of stake pools.
--   
--   This is the "k" incentives parameter from the design document.
[protocolUpdateStakePoolTargetNum] :: ProtocolParametersUpdate -> Maybe Natural

-- | The influence of the pledge in stake pool rewards.
--   
--   This is the "a_0" incentives parameter from the design document.
[protocolUpdatePoolPledgeInfluence] :: ProtocolParametersUpdate -> Maybe Rational

-- | The monetary expansion rate. This determines the fraction of the
--   reserves that are added to the fee pot each epoch.
--   
--   This is the "rho" incentives parameter from the design document.
[protocolUpdateMonetaryExpansion] :: ProtocolParametersUpdate -> Maybe Rational

-- | The fraction of the fee pot each epoch that goes to the treasury.
--   
--   This is the "tau" incentives parameter from the design document.
[protocolUpdateTreasuryCut] :: ProtocolParametersUpdate -> Maybe Rational

-- | An epoch, i.e. the number of the epoch.
newtype EpochNo
EpochNo :: Word64 -> EpochNo
[unEpochNo] :: EpochNo -> Word64
newtype NetworkMagic
NetworkMagic :: Word32 -> NetworkMagic
[unNetworkMagic] :: NetworkMagic -> Word32
makeShelleyUpdateProposal :: ProtocolParametersUpdate -> [Hash GenesisKey] -> EpochNo -> UpdateProposal
toShelleyPParamsUpdate :: ProtocolParametersUpdate -> PParamsUpdate StandardShelley
toByronNetworkMagic :: NetworkId -> NetworkMagic
toByronProtocolMagicId :: NetworkId -> ProtocolMagicId
toByronRequiresNetworkMagic :: NetworkId -> RequiresNetworkMagic
toByronLovelace :: Lovelace -> Maybe Lovelace
toByronTxIn :: TxIn -> TxIn
toByronTxId :: TxId -> TxId
toByronTxOut :: TxOut Byron -> Maybe TxOut
toShelleyNetwork :: NetworkId -> Network
toShelleyPoolParams :: StakePoolParameters -> PoolParams StandardShelley
toNetworkMagic :: NetworkId -> NetworkMagic

-- | An address for UTxO.
data Addr era
Addr :: Network -> PaymentCredential era -> StakeReference era -> Addr era
AddrBootstrap :: BootstrapAddress era -> Addr era

-- | The amount of value held by a transaction output.
newtype Coin
Coin :: Integer -> Coin
[unCoin] :: Coin -> Integer
newtype EpochSize
EpochSize :: Word64 -> EpochSize
[unEpochSize] :: EpochSize -> Word64
data GenDelegPair crypto
GenDelegPair :: !KeyHash 'GenesisDelegate crypto -> !Hash crypto (VerKeyVRF crypto) -> GenDelegPair crypto
[genDelegKeyHash] :: GenDelegPair crypto -> !KeyHash 'GenesisDelegate crypto
[genDelegVrfHash] :: GenDelegPair crypto -> !Hash crypto (VerKeyVRF crypto)

-- | The role of a key.
--   
--   Note that a role is not _fixed_, nor is it unique. In particular, keys
--   may variously be used as witnesses, and so in many case we will change
--   the role of a key to the <a>Witness</a> role.
--   
--   It is also perfectly allowable for a key to be used in many roles;
--   there is nothing prohibiting somebody using the same underlying key as
--   their payment and staking key, as well as the key for their stake
--   pool. So these roles are more intended for two purposes:
--   
--   <ul>
--   <li>To make explicit how we are using a key in the specifications</li>
--   <li>To provide a guide to downstream implementors, for whom the
--   profusion of keys may be confusing.</li>
--   </ul>
data KeyRole
Genesis :: KeyRole
GenesisDelegate :: KeyRole
Payment :: KeyRole
Staking :: KeyRole
StakePool :: KeyRole
BlockIssuer :: KeyRole
Witness :: KeyRole

-- | Discriminated hash of public Key
newtype KeyHash (discriminator :: KeyRole) crypto
KeyHash :: Hash (ADDRHASH crypto) (VerKeyDSIGN (DSIGN crypto)) -> KeyHash (discriminator :: KeyRole) crypto

-- | Protocol parameters.
--   
--   We use the HKD type family so that the protocol parameters type and
--   the type for the updates to the protocol parameters can share records
--   fields. The protocol parameters will have type <a>PParams'</a>
--   <a>Identity</a>, and the updates will have type <a>PParams'</a>
--   <a>StrictMaybe</a>, though <a>Identity</a> will be hidden from use.
--   
--   For example:
--   
--   <pre>
--   myParameters =
--     PParams
--       { _minfeeA = 0,
--         _minfeeB = 0,
--         ...
--       }
--   
--   myUpdate =
--     PParamsUpdate
--       { _minfeeA = SNothing,
--         _minfeeB = SJust 42,
--         ...
--       }
--   </pre>
data PParams' (f :: Type -> Type) era
PParams :: !HKD f Natural -> !HKD f Natural -> !HKD f Natural -> !HKD f Natural -> !HKD f Natural -> !HKD f Coin -> !HKD f Coin -> !HKD f EpochNo -> !HKD f Natural -> !HKD f Rational -> !HKD f UnitInterval -> !HKD f UnitInterval -> !HKD f UnitInterval -> !HKD f Nonce -> !HKD f ProtVer -> !HKD f Coin -> !HKD f Coin -> PParams' (f :: Type -> Type) era

-- | The linear factor for the minimum fee calculation
[_minfeeA] :: PParams' (f :: Type -> Type) era -> !HKD f Natural

-- | The constant factor for the minimum fee calculation
[_minfeeB] :: PParams' (f :: Type -> Type) era -> !HKD f Natural

-- | Maximal block body size
[_maxBBSize] :: PParams' (f :: Type -> Type) era -> !HKD f Natural

-- | Maximal transaction size
[_maxTxSize] :: PParams' (f :: Type -> Type) era -> !HKD f Natural

-- | Maximal block header size
[_maxBHSize] :: PParams' (f :: Type -> Type) era -> !HKD f Natural

-- | The amount of a key registration deposit
[_keyDeposit] :: PParams' (f :: Type -> Type) era -> !HKD f Coin

-- | The amount of a pool registration deposit
[_poolDeposit] :: PParams' (f :: Type -> Type) era -> !HKD f Coin

-- | epoch bound on pool retirement
[_eMax] :: PParams' (f :: Type -> Type) era -> !HKD f EpochNo

-- | Desired number of pools
[_nOpt] :: PParams' (f :: Type -> Type) era -> !HKD f Natural

-- | Pool influence
[_a0] :: PParams' (f :: Type -> Type) era -> !HKD f Rational

-- | Monetary expansion
[_rho] :: PParams' (f :: Type -> Type) era -> !HKD f UnitInterval

-- | Treasury expansion
[_tau] :: PParams' (f :: Type -> Type) era -> !HKD f UnitInterval

-- | Decentralization parameter
[_d] :: PParams' (f :: Type -> Type) era -> !HKD f UnitInterval

-- | Extra entropy
[_extraEntropy] :: PParams' (f :: Type -> Type) era -> !HKD f Nonce

-- | Protocol version
[_protocolVersion] :: PParams' (f :: Type -> Type) era -> !HKD f ProtVer

-- | Minimum UTxO value
[_minUTxOValue] :: PParams' (f :: Type -> Type) era -> !HKD f Coin

-- | Minimum Stake Pool Cost
[_minPoolCost] :: PParams' (f :: Type -> Type) era -> !HKD f Coin
type PParamsUpdate era = PParams' StrictMaybe era
type VerKeyVRF c = VerKeyVRF VRF c

-- | The Shelley era with standard crypto
type StandardShelley = ShelleyEra StandardCrypto

-- | Returns a basic "empty" <a>PParams</a> structure with all zero values.
emptyPParams :: PParams era

-- | Convert a rational to a <a>UnitInterval</a> by ignoring its integer
--   part.
truncateUnitInterval :: Ratio Word64 -> UnitInterval

-- | Empty genesis staking
emptyGenesisStaking :: ShelleyGenesisStaking era
secondsToNominalDiffTime :: Double -> NominalDiffTime
instance GHC.Show.Show Cardano.Api.Typed.StakeAddress
instance GHC.Classes.Ord Cardano.Api.Typed.StakeAddress
instance GHC.Classes.Eq Cardano.Api.Typed.StakeAddress
instance GHC.Show.Show Cardano.Api.Typed.NetworkId
instance GHC.Classes.Eq Cardano.Api.Typed.NetworkId
instance Data.String.IsString Cardano.Api.Typed.TxId
instance GHC.Show.Show Cardano.Api.Typed.TxId
instance GHC.Classes.Ord Cardano.Api.Typed.TxId
instance GHC.Classes.Eq Cardano.Api.Typed.TxId
instance GHC.Enum.Enum Cardano.Api.Typed.TxIx
instance GHC.Show.Show Cardano.Api.Typed.TxIx
instance GHC.Classes.Ord Cardano.Api.Typed.TxIx
instance GHC.Classes.Eq Cardano.Api.Typed.TxIx
instance GHC.Show.Show Cardano.Api.Typed.Lovelace
instance GHC.Enum.Enum Cardano.Api.Typed.Lovelace
instance GHC.Classes.Ord Cardano.Api.Typed.Lovelace
instance GHC.Classes.Eq Cardano.Api.Typed.Lovelace
instance GHC.Show.Show Cardano.Api.Typed.ByronTxBodyConversionError
instance Cardano.Binary.ToCBOR.ToCBOR Cardano.Api.Typed.Script
instance GHC.Show.Show Cardano.Api.Typed.Script
instance GHC.Classes.Ord Cardano.Api.Typed.Script
instance GHC.Classes.Eq Cardano.Api.Typed.Script
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.Script)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.Script)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.Script)
instance GHC.Show.Show Cardano.Api.Typed.StakePoolRelay
instance GHC.Classes.Eq Cardano.Api.Typed.StakePoolRelay
instance GHC.Show.Show Cardano.Api.Typed.StakePoolMetadata
instance GHC.Classes.Eq Cardano.Api.Typed.StakePoolMetadata
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakePoolMetadata)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakePoolMetadata)
instance GHC.Show.Show Cardano.Api.Typed.StakePoolMetadataReference
instance GHC.Classes.Eq Cardano.Api.Typed.StakePoolMetadataReference
instance GHC.Show.Show Cardano.Api.Typed.StakePoolMetadataValidationError
instance GHC.Show.Show Cardano.Api.Typed.TxMetadata
instance GHC.Classes.Eq Cardano.Api.Typed.TxMetadata
instance GHC.Show.Show Cardano.Api.Typed.TxMetadataValue
instance GHC.Classes.Ord Cardano.Api.Typed.TxMetadataValue
instance GHC.Classes.Eq Cardano.Api.Typed.TxMetadataValue
instance GHC.Show.Show Cardano.Api.Typed.ProtocolParametersUpdate
instance GHC.Classes.Eq Cardano.Api.Typed.ProtocolParametersUpdate
instance Cardano.Api.Typed.SerialiseAsCBOR Cardano.Api.Typed.UpdateProposal
instance Cardano.Binary.FromCBOR.FromCBOR Cardano.Api.Typed.UpdateProposal
instance Cardano.Binary.ToCBOR.ToCBOR Cardano.Api.Typed.UpdateProposal
instance GHC.Show.Show Cardano.Api.Typed.UpdateProposal
instance GHC.Classes.Eq Cardano.Api.Typed.UpdateProposal
instance Cardano.Api.Typed.SerialiseAsCBOR Cardano.Api.Typed.Certificate
instance Cardano.Binary.FromCBOR.FromCBOR Cardano.Api.Typed.Certificate
instance Cardano.Binary.ToCBOR.ToCBOR Cardano.Api.Typed.Certificate
instance GHC.Show.Show Cardano.Api.Typed.Certificate
instance GHC.Classes.Eq Cardano.Api.Typed.Certificate
instance GHC.Show.Show Cardano.Api.Typed.Bech32DecodeError
instance GHC.Classes.Eq Cardano.Api.Typed.Bech32DecodeError
instance GHC.Show.Show e => GHC.Show.Show (Cardano.Api.Typed.FileError e)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.ByronKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.ByronKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.ByronKey)
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.ByronKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.ByronKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.ByronKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.ByronKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.ByronKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.ByronKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.ByronKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.ByronKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.ByronKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.ByronKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.ByronKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentKey)
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.PaymentKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.PaymentKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.PaymentKey)
instance GHC.Show.Show Cardano.Api.Typed.MultiSigScript
instance GHC.Classes.Eq Cardano.Api.Typed.MultiSigScript
instance GHC.Show.Show Cardano.Api.Typed.PaymentCredential
instance GHC.Classes.Eq Cardano.Api.Typed.PaymentCredential
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentExtendedKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentExtendedKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.PaymentExtendedKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.PaymentExtendedKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.PaymentExtendedKey)
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakeKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakeKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakeKey)
instance GHC.Show.Show Cardano.Api.Typed.StakeCredential
instance GHC.Classes.Eq Cardano.Api.Typed.StakeCredential
instance GHC.Show.Show Cardano.Api.Typed.StakeAddressReference
instance GHC.Classes.Eq Cardano.Api.Typed.StakeAddressReference
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeExtendedKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeExtendedKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakeExtendedKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakeExtendedKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisKey)
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisKey)
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisExtendedKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisExtendedKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisExtendedKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisExtendedKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateKey)
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisDelegateKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisDelegateKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisDelegateKey)
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisUTxOKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisUTxOKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisUTxOKey)
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisUTxOKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisUTxOKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisUTxOKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisUTxOKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisUTxOKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisUTxOKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisUTxOKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisUTxOKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisUTxOKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisUTxOKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisUTxOKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakePoolKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakePoolKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakePoolKey)
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakePoolKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakePoolKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakePoolKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakePoolKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakePoolKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakePoolKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakePoolKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakePoolKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakePoolKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakePoolKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakePoolKey)
instance GHC.Show.Show Cardano.Api.Typed.OperationalCertIssueError
instance Cardano.Api.Typed.SerialiseAsCBOR Cardano.Api.Typed.OperationalCertificateIssueCounter
instance GHC.Show.Show Cardano.Api.Typed.OperationalCertificateIssueCounter
instance GHC.Classes.Eq Cardano.Api.Typed.OperationalCertificateIssueCounter
instance Cardano.Api.Typed.SerialiseAsCBOR Cardano.Api.Typed.OperationalCertificate
instance GHC.Show.Show Cardano.Api.Typed.OperationalCertificate
instance GHC.Classes.Eq Cardano.Api.Typed.OperationalCertificate
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.KesKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.KesKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.KesKey)
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.KesKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.KesKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.KesKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.KesKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.KesKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.KesKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.KesKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.KesKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.KesKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.KesKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.KesKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.VrfKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.VrfKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.VrfKey)
instance Data.String.IsString (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.VrfKey)
instance GHC.Show.Show (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.VrfKey)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.VrfKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.VrfKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.VrfKey)
instance Data.String.IsString (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.VrfKey)
instance GHC.Show.Show (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.VrfKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.VrfKey)
instance GHC.Show.Show (Cardano.Api.Typed.Hash Cardano.Api.Typed.VrfKey)
instance GHC.Classes.Ord (Cardano.Api.Typed.Hash Cardano.Api.Typed.VrfKey)
instance GHC.Classes.Eq (Cardano.Api.Typed.Hash Cardano.Api.Typed.VrfKey)
instance GHC.Show.Show Cardano.Api.Typed.StakePoolParameters
instance GHC.Classes.Eq Cardano.Api.Typed.StakePoolParameters
instance GHC.Classes.Eq (Cardano.Api.Typed.Address Cardano.Api.Typed.Byron)
instance GHC.Classes.Ord (Cardano.Api.Typed.Address Cardano.Api.Typed.Byron)
instance GHC.Show.Show (Cardano.Api.Typed.Address Cardano.Api.Typed.Byron)
instance GHC.Classes.Eq (Cardano.Api.Typed.Address Cardano.Api.Typed.Shelley)
instance GHC.Classes.Ord (Cardano.Api.Typed.Address Cardano.Api.Typed.Shelley)
instance GHC.Show.Show (Cardano.Api.Typed.Address Cardano.Api.Typed.Shelley)
instance GHC.Classes.Eq Cardano.Api.Typed.TxIn
instance GHC.Show.Show Cardano.Api.Typed.TxIn
instance GHC.Classes.Eq (Cardano.Api.Typed.TxOut Cardano.Api.Typed.Byron)
instance GHC.Classes.Eq (Cardano.Api.Typed.TxOut Cardano.Api.Typed.Shelley)
instance GHC.Show.Show (Cardano.Api.Typed.TxOut Cardano.Api.Typed.Byron)
instance GHC.Show.Show (Cardano.Api.Typed.TxOut Cardano.Api.Typed.Shelley)
instance GHC.Classes.Eq (Cardano.Api.Typed.TxBody Cardano.Api.Typed.Byron)
instance GHC.Show.Show (Cardano.Api.Typed.TxBody Cardano.Api.Typed.Byron)
instance GHC.Classes.Eq (Cardano.Api.Typed.TxBody Cardano.Api.Typed.Shelley)
instance GHC.Show.Show (Cardano.Api.Typed.TxBody Cardano.Api.Typed.Shelley)
instance GHC.Classes.Eq (Cardano.Api.Typed.Tx Cardano.Api.Typed.Byron)
instance GHC.Show.Show (Cardano.Api.Typed.Tx Cardano.Api.Typed.Byron)
instance GHC.Classes.Eq (Cardano.Api.Typed.Tx Cardano.Api.Typed.Shelley)
instance GHC.Show.Show (Cardano.Api.Typed.Tx Cardano.Api.Typed.Shelley)
instance GHC.Classes.Eq (Cardano.Api.Typed.Witness Cardano.Api.Typed.Byron)
instance GHC.Show.Show (Cardano.Api.Typed.Witness Cardano.Api.Typed.Byron)
instance GHC.Classes.Eq (Cardano.Api.Typed.Witness Cardano.Api.Typed.Shelley)
instance GHC.Show.Show (Cardano.Api.Typed.Witness Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.VrfKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.VrfKey
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.VrfKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.VrfKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.VrfKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.VrfKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.VrfKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.VrfKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.VrfKey)
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.KesKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.KesKey
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.KesKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.KesKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.KesKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.KesKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.KesKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.KesKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.KesKey)
instance Cardano.Binary.ToCBOR.ToCBOR Cardano.Api.Typed.OperationalCertificate
instance Cardano.Binary.FromCBOR.FromCBOR Cardano.Api.Typed.OperationalCertificate
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.OperationalCertificate
instance Cardano.Api.Typed.HasTextEnvelope Cardano.Api.Typed.OperationalCertificate
instance Cardano.Binary.ToCBOR.ToCBOR Cardano.Api.Typed.OperationalCertificateIssueCounter
instance Cardano.Binary.FromCBOR.FromCBOR Cardano.Api.Typed.OperationalCertificateIssueCounter
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.OperationalCertificateIssueCounter
instance Cardano.Api.Typed.HasTextEnvelope Cardano.Api.Typed.OperationalCertificateIssueCounter
instance Cardano.Api.Typed.Error Cardano.Api.Typed.OperationalCertIssueError
instance Cardano.Api.Typed.CastVerificationKeyRole Cardano.Api.Typed.GenesisDelegateKey Cardano.Api.Typed.StakePoolKey
instance Cardano.Api.Typed.CastSigningKeyRole Cardano.Api.Typed.GenesisDelegateKey Cardano.Api.Typed.StakePoolKey
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.StakePoolKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.StakePoolKey
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakePoolKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakePoolKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakePoolKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakePoolKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakePoolKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakePoolKey)
instance Data.Aeson.Types.ToJSON.ToJSON (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakePoolKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakePoolKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakePoolKey)
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.GenesisUTxOKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.GenesisUTxOKey
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisUTxOKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisUTxOKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisUTxOKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisUTxOKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisUTxOKey)
instance Cardano.Api.Typed.CastVerificationKeyRole Cardano.Api.Typed.GenesisUTxOKey Cardano.Api.Typed.PaymentKey
instance Cardano.Api.Typed.CastSigningKeyRole Cardano.Api.Typed.GenesisUTxOKey Cardano.Api.Typed.PaymentKey
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.GenesisDelegateExtendedKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.GenesisDelegateExtendedKey
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateExtendedKey)
instance Cardano.Api.Typed.CastVerificationKeyRole Cardano.Api.Typed.GenesisDelegateExtendedKey Cardano.Api.Typed.GenesisDelegateKey
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.GenesisDelegateKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.GenesisDelegateKey
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisDelegateKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisDelegateKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisDelegateKey)
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.GenesisExtendedKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.GenesisExtendedKey
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisExtendedKey)
instance Cardano.Api.Typed.CastVerificationKeyRole Cardano.Api.Typed.GenesisExtendedKey Cardano.Api.Typed.GenesisKey
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.GenesisKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.GenesisKey
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.GenesisKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.GenesisKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.GenesisKey)
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.StakeExtendedKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.StakeExtendedKey
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeExtendedKey)
instance Cardano.Api.Typed.CastVerificationKeyRole Cardano.Api.Typed.StakeExtendedKey Cardano.Api.Typed.StakeKey
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.StakeKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.StakeKey
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakeKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.StakeKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.StakeKey)
instance Cardano.Api.Typed.CastVerificationKeyRole Cardano.Api.Typed.ByronKey Cardano.Api.Typed.PaymentExtendedKey
instance Cardano.Api.Typed.CastVerificationKeyRole Cardano.Api.Typed.ByronKey Cardano.Api.Typed.PaymentKey
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.PaymentExtendedKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.PaymentExtendedKey
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Binary.ToCBOR.ToCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Binary.FromCBOR.FromCBOR (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentExtendedKey)
instance Cardano.Api.Typed.CastVerificationKeyRole Cardano.Api.Typed.PaymentExtendedKey Cardano.Api.Typed.PaymentKey
instance Data.Aeson.Types.ToJSON.ToJSON Cardano.Api.Typed.MultiSigScript
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Api.Typed.MultiSigScript
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.PaymentKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.PaymentKey
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.PaymentKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.PaymentKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.PaymentKey)
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.ByronKey
instance Cardano.Api.Typed.Key Cardano.Api.Typed.ByronKey
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.ByronKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.ByronKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.ByronKey)
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.ByronKey)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.ByronKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.VerificationKey Cardano.Api.Typed.ByronKey)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.SigningKey Cardano.Api.Typed.ByronKey)
instance GHC.Show.Show Cardano.Api.Typed.ErrorAsException
instance GHC.Exception.Type.Exception Cardano.Api.Typed.ErrorAsException
instance Cardano.Api.Typed.Error Cardano.Api.Typed.StakePoolMetadataValidationError
instance Cardano.Api.Typed.Error Cardano.Api.Typed.Bech32DecodeError
instance Cardano.Api.Typed.Error e => Cardano.Api.Typed.Error (Cardano.Api.Typed.FileError e)
instance Cardano.Api.Typed.Error Cardano.Api.TextView.TextViewError
instance Cardano.Api.Typed.Error ()
instance Cardano.Api.Typed.HasTypeProxy a => Cardano.Api.Typed.HasTypeProxy (Cardano.Api.Typed.VerificationKey a)
instance Cardano.Api.Typed.HasTypeProxy a => Cardano.Api.Typed.HasTypeProxy (Cardano.Api.Typed.SigningKey a)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.TxBody Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.TxBody Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.Tx Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.Tx Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.Witness Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.HasTextEnvelope (Cardano.Api.Typed.Witness Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.HasTextEnvelope Cardano.Api.Typed.Script
instance Cardano.Api.Typed.HasTextEnvelope Cardano.Api.Typed.Certificate
instance Cardano.Api.Typed.HasTextEnvelope Cardano.Api.Typed.UpdateProposal
instance Cardano.Api.Typed.SerialiseAddress (Cardano.Api.Typed.Address Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.SerialiseAddress (Cardano.Api.Typed.Address Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.SerialiseAddress Cardano.Api.Typed.StakeAddress
instance Cardano.Api.Typed.SerialiseAsBech32 (Cardano.Api.Typed.Address Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.SerialiseAsBech32 Cardano.Api.Typed.StakeAddress
instance Cardano.Api.Typed.SerialiseAsRawBytes a => GHC.Show.Show (Cardano.Api.Typed.UsingRawBytesHex a)
instance Cardano.Api.Typed.SerialiseAsRawBytes a => Data.String.IsString (Cardano.Api.Typed.UsingRawBytesHex a)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Address Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Address Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.SerialiseAsRawBytes Cardano.Api.Typed.StakeAddress
instance Cardano.Api.Typed.SerialiseAsRawBytes Cardano.Api.Typed.TxId
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.Script)
instance Cardano.Api.Typed.SerialiseAsRawBytes (Cardano.Api.Typed.Hash Cardano.Api.Typed.StakePoolMetadata)
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.Certificate
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.UpdateProposal
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.TxBody Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.TxBody Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.Tx Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.Tx Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.Witness Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.SerialiseAsCBOR (Cardano.Api.Typed.Witness Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.SerialiseAsCBOR Cardano.Api.Typed.Script
instance Cardano.Api.Typed.SerialiseAsCBOR Cardano.Api.Typed.TxMetadata
instance GHC.Base.Semigroup Cardano.Api.Typed.ProtocolParametersUpdate
instance GHC.Base.Monoid Cardano.Api.Typed.ProtocolParametersUpdate
instance GHC.Base.Semigroup Cardano.Api.Typed.TxMetadata
instance GHC.Base.Monoid Cardano.Api.Typed.TxMetadata
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.TxMetadata
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.StakePoolMetadata
instance Data.Aeson.Types.FromJSON.FromJSON Cardano.Api.Typed.StakePoolMetadata
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.Script
instance Cardano.Api.Typed.HasTypeProxy (Cardano.Api.Typed.Witness Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.HasTypeProxy (Cardano.Api.Typed.Witness Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.HasTypeProxy (Cardano.Api.Typed.Tx Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.HasTypeProxy (Cardano.Api.Typed.Tx Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.HasTypeProxy (Cardano.Api.Typed.TxBody Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.HasTypeProxy (Cardano.Api.Typed.TxBody Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.TxId
instance Cardano.Api.Typed.HasTypeProxy Cardano.Api.Typed.StakeAddress
instance Cardano.Api.Typed.HasTypeProxy (Cardano.Api.Typed.Address Cardano.Api.Typed.Byron)
instance Cardano.Api.Typed.HasTypeProxy (Cardano.Api.Typed.Address Cardano.Api.Typed.Shelley)
instance Cardano.Api.Typed.HasTypeProxy a => Cardano.Api.Typed.HasTypeProxy (Cardano.Api.Typed.Hash a)

module Cardano.Api.TxSubmit
submitTx :: forall mode block. LocalNodeConnectInfo mode block -> TxForMode mode -> IO (TxSubmitResultForMode mode)
data TxForMode mode
[TxForByronMode] :: Tx Byron -> TxForMode ByronMode
[TxForShelleyMode] :: Tx Shelley -> TxForMode ShelleyMode
[TxForCardanoMode] :: Either (Tx Byron) (Tx Shelley) -> TxForMode CardanoMode
data TxSubmitResultForMode mode
[TxSubmitSuccess] :: TxSubmitResultForMode mode
[TxSubmitFailureByronMode] :: ApplyTxErr ByronBlock -> TxSubmitResultForMode ByronMode
[TxSubmitFailureShelleyMode] :: ApplyTxErr (ShelleyBlock StandardShelley) -> TxSubmitResultForMode ShelleyMode
[TxSubmitFailureCardanoMode] :: CardanoApplyTxErr StandardCrypto -> TxSubmitResultForMode CardanoMode
renderTxSubmitResult :: TxSubmitResultForMode mode -> Text
instance GHC.Show.Show (Cardano.Api.TxSubmit.TxSubmitResultForMode Cardano.Api.Typed.ByronMode)
instance GHC.Show.Show (Cardano.Api.TxSubmit.TxSubmitResultForMode Cardano.Api.Typed.ShelleyMode)
instance GHC.Show.Show (Cardano.Api.TxSubmit.TxSubmitResultForMode Cardano.Api.Typed.CardanoMode)

module Cardano.Api.Protocol
data Protocol
ByronProtocol :: !EpochSlots -> Protocol
ShelleyProtocol :: Protocol
CardanoProtocol :: !EpochSlots -> Protocol
localNodeConnectInfo :: Protocol -> NetworkId -> FilePath -> LocalNodeConnectInfoForSomeMode
withlocalNodeConnectInfo :: Protocol -> NetworkId -> FilePath -> (forall mode block. RunNode block => LocalNodeConnectInfo mode block -> a) -> a
data LocalNodeConnectInfoForSomeMode
[LocalNodeConnectInfoForSomeMode] :: RunNode block => LocalNodeConnectInfo mode block -> LocalNodeConnectInfoForSomeMode
instance GHC.Show.Show Cardano.Api.Protocol.Protocol
instance GHC.Classes.Eq Cardano.Api.Protocol.Protocol

module Cardano.Api.MetaData
newtype TxMetadata
TxMetadataShelley :: MetaData -> TxMetadata
pattern TxMetadata :: Map Word64 TxMetadataValue -> TxMetadata
makeTransactionMetadata :: Map Word64 TxMetadataValue -> TxMetadata
data TxMetadataValue
TxMetaNumber :: Integer -> TxMetadataValue
TxMetaBytes :: ByteString -> TxMetadataValue
TxMetaText :: Text -> TxMetadataValue
TxMetaList :: [TxMetadataValue] -> TxMetadataValue
TxMetaMap :: [(TxMetadataValue, TxMetadataValue)] -> TxMetadataValue

-- | Validate transaction metadata. This is for use with existing
--   constructed metadata values, e.g. constructed manually or decoded from
--   CBOR directly.
validateTxMetadata :: TxMetadata -> Either (NonEmpty TxMetadataRangeError) TxMetadata

-- | An error in transaction metadata due to an out-of-range value.
data TxMetadataRangeError

-- | The number is outside the maximum range of <tt>-2^64-1 .. 2^64-1</tt>.
TxMetadataNumberOutOfRange :: !Integer -> TxMetadataRangeError

-- | The length of a text string metadatum value exceeds the maximum of 64
--   bytes as UTF8.
TxMetadataTextTooLong :: !Int -> TxMetadataRangeError

-- | The length of a byte string metadatum value exceeds the maximum of 64
--   bytes.
TxMetadataBytesTooLong :: !Int -> TxMetadataRangeError

-- | Tx metadata is similar to JSON but not exactly the same. It has some
--   deliberate limitations such as no support for floating point numbers
--   or special forms for null or boolean values. It also has limitations
--   on the length of strings. On the other hand, unlike JSON, it
--   distinguishes between byte strings and text strings. It also supports
--   any value as map keys rather than just string.
--   
--   We provide two different mappings between tx metadata and JSON, useful
--   for different purposes:
--   
--   <ol>
--   <li>A mapping that allows almost any JSON value to be converted into
--   tx metadata. This does not require a specific JSON schema for the
--   input. It does not expose the full representation capability of tx
--   metadata.</li>
--   <li>A mapping that exposes the full representation capability of tx
--   metadata, but relies on a specific JSON schema for the input
--   JSON.</li>
--   </ol>
--   
--   In the "no schema" mapping, the idea is that (almost) any JSON can be
--   turned into tx metadata and then converted back, without loss. That
--   is, we can round-trip the JSON.
--   
--   The subset of JSON supported is all JSON except: * No null or bool
--   values * No floating point, only integers in the range of a 64bit
--   signed integer * A limitation on string lengths
--   
--   The approach for this mapping is to use whichever representation as tx
--   metadata is most compact. In particular:
--   
--   <ul>
--   <li>JSON lists and maps represented as CBOR lists and maps</li>
--   <li>JSON strings represented as CBOR strings</li>
--   <li>JSON hex strings with "0x" prefix represented as CBOR byte
--   strings</li>
--   <li>JSON integer numbers represented as CBOR signed or unsigned
--   numbers</li>
--   <li>JSON maps with string keys that parse as numbers or hex byte
--   strings, represented as CBOR map keys that are actually numbers or
--   byte strings.</li>
--   </ul>
--   
--   The string length limit depends on whether the hex string
--   representation is used or not. For text strings the limit is 64 bytes
--   for the UTF8 representation of the text string. For byte strings the
--   limit is 64 bytes for the raw byte form (ie not the input hex, but
--   after hex decoding).
--   
--   In the "detailed schema" mapping, the idea is that we expose the full
--   representation capability of the tx metadata in the form of a JSON
--   schema. This means the full representation is available and can be
--   controlled precisely. It also means any tx metadata can be converted
--   into the JSON and back without loss. That is we can round-trip the tx
--   metadata via the JSON and also round-trip schema-compliant JSON via tx
--   metadata.
data TxMetadataJsonSchema

-- | Use the "no schema" mapping between JSON and tx metadata as described
--   above.
TxMetadataJsonNoSchema :: TxMetadataJsonSchema

-- | Use the "detailed schema" mapping between JSON and tx metadata as
--   described above.
TxMetadataJsonDetailedSchema :: TxMetadataJsonSchema

-- | Convert a value from JSON into tx metadata, using the given choice of
--   mapping between JSON and tx metadata.
--   
--   This may fail with a conversion error if the JSON is outside the
--   supported subset for the chosen mapping. See
--   <a>TxMetadataJsonSchema</a> for the details.
metadataFromJson :: TxMetadataJsonSchema -> Value -> Either TxMetadataJsonError TxMetadata

-- | Convert a tx metadata value into JSON , using the given choice of
--   mapping between JSON and tx metadata.
--   
--   This conversion is total but is not necessarily invertible. See
--   <a>TxMetadataJsonSchema</a> for the details.
metadataToJson :: TxMetadataJsonSchema -> TxMetadata -> Value
metadataValueToJsonNoSchema :: TxMetadataValue -> Value
data TxMetadataJsonError
TxMetadataJsonToplevelNotMap :: TxMetadataJsonError
TxMetadataJsonToplevelBadKey :: !Text -> TxMetadataJsonError
TxMetadataJsonSchemaError :: !Word64 -> !Value -> !TxMetadataJsonSchemaError -> TxMetadataJsonError
TxMetadataRangeError :: !Word64 -> !Value -> !TxMetadataRangeError -> TxMetadataJsonError
data TxMetadataJsonSchemaError
TxMetadataJsonNullNotAllowed :: TxMetadataJsonSchemaError
TxMetadataJsonBoolNotAllowed :: TxMetadataJsonSchemaError
TxMetadataJsonNumberNotInteger :: !Double -> TxMetadataJsonSchemaError
TxMetadataJsonNotObject :: !Value -> TxMetadataJsonSchemaError
TxMetadataJsonBadObject :: ![(Text, Value)] -> TxMetadataJsonSchemaError
TxMetadataJsonBadMapPair :: !Value -> TxMetadataJsonSchemaError
TxMetadataJsonTypeMismatch :: !Text -> !Value -> TxMetadataJsonSchemaError
instance GHC.Show.Show Cardano.Api.MetaData.TxMetadataRangeError
instance GHC.Classes.Eq Cardano.Api.MetaData.TxMetadataRangeError
instance GHC.Show.Show Cardano.Api.MetaData.TxMetadataJsonSchema
instance GHC.Classes.Eq Cardano.Api.MetaData.TxMetadataJsonSchema
instance GHC.Show.Show Cardano.Api.MetaData.TxMetadataJsonSchemaError
instance GHC.Classes.Eq Cardano.Api.MetaData.TxMetadataJsonSchemaError
instance GHC.Show.Show Cardano.Api.MetaData.TxMetadataJsonError
instance GHC.Classes.Eq Cardano.Api.MetaData.TxMetadataJsonError
instance Cardano.Api.Typed.Error Cardano.Api.MetaData.TxMetadataJsonError
instance Cardano.Api.Typed.Error Cardano.Api.MetaData.TxMetadataJsonSchemaError
instance Cardano.Api.Typed.Error Cardano.Api.MetaData.TxMetadataRangeError

module Cardano.Api.LocalChainSync

-- | Get the node's tip using the local chain sync protocol.
getLocalTip :: (ShowProxy block, ShowProxy (ApplyTxErr block), ShowProxy (Query block), ShowProxy (GenTx block), ShowQuery (Query block)) => LocalNodeConnectInfo mode block -> IO (Tip block)


-- | This module provides a library interface for interacting with Cardano
--   as a user of the system.
--   
--   It is intended to be the complete API covering everything but without
--   exposing constructors that reveal any lower level types.
--   
--   In the interest of simplicity it glosses over some details of the
--   system. Most simple tools should be able to work just using this
--   interface, however you can go deeper and expose the types from the
--   underlying libraries using <a>Cardano.Api.Byron</a> or
--   <a>Cardano.Api.Shelley</a>.
module Cardano.API
class HasTypeProxy t where {
    
    -- | A family of singleton types used in this API to indicate which type to
    --   use where it would otherwise be ambiguous or merely unclear.
    --   
    --   Values of this type are passed to
    data family AsType t;
}
proxyToAsType :: HasTypeProxy t => Proxy t -> AsType t

-- | An interface for cryptographic keys used for signatures with a
--   <a>SigningKey</a> and a <a>VerificationKey</a> key.
--   
--   This interface does not provide actual signing or verifying functions
--   since this API is concerned with the management of keys: generating
--   and serialising.
class (Eq (VerificationKey keyrole), Show (VerificationKey keyrole), SerialiseAsRawBytes (Hash keyrole), HasTextEnvelope (VerificationKey keyrole), HasTextEnvelope (SigningKey keyrole)) => Key keyrole

-- | Get the corresponding verification key from a signing key.
getVerificationKey :: Key keyrole => SigningKey keyrole -> VerificationKey keyrole
verificationKeyHash :: Key keyrole => VerificationKey keyrole -> Hash keyrole

-- | Change the role of a <a>VerificationKey</a>, if the representation
--   permits.
castVerificationKey :: CastVerificationKeyRole keyroleA keyroleB => VerificationKey keyroleA -> VerificationKey keyroleB

-- | Change the role of a <a>SigningKey</a>, if the representation permits.
castSigningKey :: CastSigningKeyRole keyroleA keyroleB => SigningKey keyroleA -> SigningKey keyroleB

-- | Generate a <a>SigningKey</a> using a seed from operating system
--   entropy.
generateSigningKey :: Key keyrole => AsType keyrole -> IO (SigningKey keyrole)

-- | Generate a <a>SigningKey</a> deterministically, given a <a>Seed</a>.
--   The required size of the seed is given by
--   <a>deterministicSigningKeySeedSize</a>.
deterministicSigningKey :: Key keyrole => AsType keyrole -> Seed -> SigningKey keyrole
deterministicSigningKeySeedSize :: Key keyrole => AsType keyrole -> Word
data family Hash keyrole :: Type
castHash :: CastHash keyroleA keyroleB => Hash keyroleA -> Hash keyroleB
data Address era
data NetworkId
Mainnet :: NetworkId
Testnet :: !NetworkMagic -> NetworkId
makeByronAddress :: NetworkId -> VerificationKey ByronKey -> Address era

-- | Byron-era payment keys. Used for Byron addresses and witnessing
--   transactions that spend from these addresses.
--   
--   These use Ed25519 but with a 32byte "chaincode" used in HD derivation.
--   The inclusion of the chaincode is a design mistake but one that cannot
--   be corrected for the Byron era. The Shelley era <a>PaymentKey</a>s do
--   not include a chaincode. It is safe to use a zero or random chaincode
--   for new Byron keys.
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data ByronKey
makeShelleyAddress :: NetworkId -> PaymentCredential -> StakeAddressReference -> Address Shelley
data PaymentCredential
data StakeAddressReference

-- | Shelley-era payment keys. Used for Shelley payment addresses and
--   witnessing transactions that spend from these addresses.
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data PaymentKey

-- | Shelley-era payment keys using extended ed25519 cryptographic keys.
--   
--   They can be used for Shelley payment addresses and witnessing
--   transactions that spend from these addresses.
--   
--   These extended keys are used by HD wallets. So this type provides
--   interoperability with HD wallets. The ITN CLI also supported this key
--   type.
--   
--   The extended verification keys can be converted (via
--   <a>castVerificationKey</a>) to ordinary keys (i.e.
--   <a>VerificationKey</a> <a>PaymentKey</a>) but this is <i>not</i> the
--   case for the signing keys. The signing keys can be used to witness
--   transactions directly, with verification via their non-extended
--   verification key (<a>VerificationKey</a> <a>PaymentKey</a>).
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data PaymentExtendedKey
data StakeAddress
data StakeCredential
makeStakeAddress :: NetworkId -> StakeCredential -> StakeAddress
data StakeKey

-- | Shelley-era stake keys using extended ed25519 cryptographic keys.
--   
--   They can be used for Shelley stake addresses and witnessing
--   transactions that use stake addresses.
--   
--   These extended keys are used by HD wallets. So this type provides
--   interoperability with HD wallets. The ITN CLI also supported this key
--   type.
--   
--   The extended verification keys can be converted (via
--   <a>castVerificationKey</a>) to ordinary keys (i.e.
--   <a>VerificationKey</a> <a>StakeKey</a>) but this is <i>not</i> the
--   case for the signing keys. The signing keys can be used to witness
--   transactions directly, with verification via their non-extended
--   verification key (<a>VerificationKey</a> <a>StakeKey</a>).
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data StakeExtendedKey
data TxBody era
data TxId

-- | Calculate the transaction identifier for a <a>TxBody</a>.
getTxId :: TxBody era -> TxId
data TxIn
TxIn :: TxId -> TxIx -> TxIn
data TxOut era
TxOut :: Address era -> Lovelace -> TxOut era
newtype TxIx
TxIx :: Word -> TxIx
type TTL = SlotNo
type TxFee = Lovelace
newtype Lovelace
Lovelace :: Integer -> Lovelace
makeByronTransaction :: [TxIn] -> [TxOut Byron] -> Either ByronTxBodyConversionError (TxBody Byron)
makeShelleyTransaction :: TxExtraContent -> TTL -> TxFee -> [TxIn] -> [TxOut anyera] -> TxBody Shelley

-- | The 0-based index for the Ourboros time slot.
data SlotNo
data TxExtraContent
txExtraContentEmpty :: TxExtraContent
data Certificate
data Tx era
getTxBody :: Tx era -> TxBody era
getTxWitnesses :: Tx era -> [Witness era]
signByronTransaction :: NetworkId -> TxBody Byron -> [SigningKey ByronKey] -> Tx Byron
signShelleyTransaction :: TxBody Shelley -> [ShelleyWitnessSigningKey] -> Tx Shelley
makeSignedTransaction :: [Witness era] -> TxBody era -> Tx era
data Witness era
makeByronKeyWitness :: NetworkId -> TxBody Byron -> SigningKey ByronKey -> Witness Byron
data ShelleyWitnessSigningKey
makeShelleyKeyWitness :: TxBody Shelley -> ShelleyWitnessSigningKey -> Witness Shelley
makeShelleyBootstrapWitness :: WitnessNetworkIdOrByronAddress -> TxBody Shelley -> SigningKey ByronKey -> Witness Shelley
makeShelleyScriptWitness :: Script -> Witness Shelley

-- | For a concrete fully-constructed transaction, determine the minimum
--   fee that it needs to pay.
--   
--   This function is simple, but if you are doing input selection then you
--   probably want to consider estimateTransactionFee.
transactionFee :: Natural -> Natural -> Tx Shelley -> Lovelace

-- | This can estimate what the transaction fee will be, based on a
--   starting base transaction, plus the numbers of the additional
--   components of the transaction that may be added.
--   
--   So for example with wallet coin selection, the base transaction should
--   contain all the things not subject to coin selection (such as script
--   inputs, metadata, withdrawals, certs etc)
estimateTransactionFee :: NetworkId -> Natural -> Natural -> Tx Shelley -> Int -> Int -> Int -> Int -> Lovelace
data TxMetadata
pattern TxMetadata :: Map Word64 TxMetadataValue -> TxMetadata
data TxMetadataValue
makeTransactionMetadata :: Map Word64 TxMetadataValue -> TxMetadata
makeStakeAddressRegistrationCertificate :: StakeCredential -> Certificate
makeStakeAddressDeregistrationCertificate :: StakeCredential -> Certificate
makeStakeAddressDelegationCertificate :: StakeCredential -> PoolId -> Certificate
makeStakePoolRegistrationCertificate :: StakePoolParameters -> Certificate
makeStakePoolRetirementCertificate :: PoolId -> EpochNo -> Certificate
data StakePoolParameters
data StakePoolRelay
data StakePoolMetadataReference

-- | A representation of the required fields for off-chain stake pool
--   metadata.
data StakePoolMetadata

-- | Decode and validate the provided JSON-encoded bytes as
--   <a>StakePoolMetadata</a>. Return the decoded metadata and the hash of
--   the original bytes.
validateAndHashStakePoolMetadata :: ByteString -> Either StakePoolMetadataValidationError (StakePoolMetadata, Hash StakePoolMetadata)

-- | A stake pool metadata validation error.
data StakePoolMetadataValidationError
data Script
scriptHash :: Script -> Hash Script
data MultiSigScript
makeMultiSigScript :: MultiSigScript -> Script
class HasTypeProxy a => SerialiseAsCBOR a
class Typeable a => ToCBOR a
class Typeable a => FromCBOR a
serialiseToCBOR :: SerialiseAsCBOR a => a -> ByteString
deserialiseFromCBOR :: SerialiseAsCBOR a => AsType a -> ByteString -> Either DecoderError a

-- | A type that can be converted to JSON.
--   
--   Instances in general <i>must</i> specify <a>toJSON</a> and
--   <i>should</i> (but don't need to) specify <a>toEncoding</a>.
--   
--   An example type and instance:
--   
--   <pre>
--   -- Allow ourselves to write <a>Text</a> literals.
--   {-# LANGUAGE OverloadedStrings #-}
--   
--   data Coord = Coord { x :: Double, y :: Double }
--   
--   instance <a>ToJSON</a> Coord where
--     <a>toJSON</a> (Coord x y) = <a>object</a> ["x" <a>.=</a> x, "y" <a>.=</a> y]
--   
--     <a>toEncoding</a> (Coord x y) = <tt>pairs</tt> ("x" <a>.=</a> x <a>&lt;&gt;</a> "y" <a>.=</a> y)
--   </pre>
--   
--   Instead of manually writing your <a>ToJSON</a> instance, there are two
--   options to do it automatically:
--   
--   <ul>
--   <li><a>Data.Aeson.TH</a> provides Template Haskell functions which
--   will derive an instance at compile time. The generated instance is
--   optimized for your type so it will probably be more efficient than the
--   following option.</li>
--   <li>The compiler can provide a default generic implementation for
--   <a>toJSON</a>.</li>
--   </ul>
--   
--   To use the second, simply add a <tt>deriving <a>Generic</a></tt>
--   clause to your datatype and declare a <a>ToJSON</a> instance. If you
--   require nothing other than <a>defaultOptions</a>, it is sufficient to
--   write (and this is the only alternative where the default
--   <a>toJSON</a> implementation is sufficient):
--   
--   <pre>
--   {-# LANGUAGE DeriveGeneric #-}
--   
--   import <a>GHC.Generics</a>
--   
--   data Coord = Coord { x :: Double, y :: Double } deriving <a>Generic</a>
--   
--   instance <a>ToJSON</a> Coord where
--       <a>toEncoding</a> = <a>genericToEncoding</a> <a>defaultOptions</a>
--   </pre>
--   
--   If on the other hand you wish to customize the generic decoding, you
--   have to implement both methods:
--   
--   <pre>
--   customOptions = <a>defaultOptions</a>
--                   { <a>fieldLabelModifier</a> = <a>map</a> <a>toUpper</a>
--                   }
--   
--   instance <a>ToJSON</a> Coord where
--       <a>toJSON</a>     = <a>genericToJSON</a> customOptions
--       <a>toEncoding</a> = <a>genericToEncoding</a> customOptions
--   </pre>
--   
--   Previous versions of this library only had the <a>toJSON</a> method.
--   Adding <a>toEncoding</a> had two reasons:
--   
--   <ol>
--   <li>toEncoding is more efficient for the common case that the output
--   of <a>toJSON</a> is directly serialized to a <tt>ByteString</tt>.
--   Further, expressing either method in terms of the other would be
--   non-optimal.</li>
--   <li>The choice of defaults allows a smooth transition for existing
--   users: Existing instances that do not define <a>toEncoding</a> still
--   compile and have the correct semantics. This is ensured by making the
--   default implementation of <a>toEncoding</a> use <a>toJSON</a>. This
--   produces correct results, but since it performs an intermediate
--   conversion to a <a>Value</a>, it will be less efficient than directly
--   emitting an <a>Encoding</a>. (this also means that specifying nothing
--   more than <tt>instance ToJSON Coord</tt> would be sufficient as a
--   generically decoding instance, but there probably exists no good
--   reason to not specify <a>toEncoding</a> in new instances.)</li>
--   </ol>
class ToJSON a

-- | A type that can be converted from JSON, with the possibility of
--   failure.
--   
--   In many cases, you can get the compiler to generate parsing code for
--   you (see below). To begin, let's cover writing an instance by hand.
--   
--   There are various reasons a conversion could fail. For example, an
--   <a>Object</a> could be missing a required key, an <a>Array</a> could
--   be of the wrong size, or a value could be of an incompatible type.
--   
--   The basic ways to signal a failed conversion are as follows:
--   
--   <ul>
--   <li><a>fail</a> yields a custom error message: it is the recommended
--   way of reporting a failure;</li>
--   <li><a>empty</a> (or <a>mzero</a>) is uninformative: use it when the
--   error is meant to be caught by some <tt>(<a>&lt;|&gt;</a>)</tt>;</li>
--   <li><a>typeMismatch</a> can be used to report a failure when the
--   encountered value is not of the expected JSON type; <a>unexpected</a>
--   is an appropriate alternative when more than one type may be expected,
--   or to keep the expected type implicit.</li>
--   </ul>
--   
--   <a>prependFailure</a> (or <a>modifyFailure</a>) add more information
--   to a parser's error messages.
--   
--   An example type and instance using <a>typeMismatch</a> and
--   <a>prependFailure</a>:
--   
--   <pre>
--   -- Allow ourselves to write <a>Text</a> literals.
--   {-# LANGUAGE OverloadedStrings #-}
--   
--   data Coord = Coord { x :: Double, y :: Double }
--   
--   instance <a>FromJSON</a> Coord where
--       <a>parseJSON</a> (<a>Object</a> v) = Coord
--           <a>&lt;$&gt;</a> v <a>.:</a> "x"
--           <a>&lt;*&gt;</a> v <a>.:</a> "y"
--   
--       -- We do not expect a non-<a>Object</a> value here.
--       -- We could use <a>empty</a> to fail, but <a>typeMismatch</a>
--       -- gives a much more informative error message.
--       <a>parseJSON</a> invalid    =
--           <a>prependFailure</a> "parsing Coord failed, "
--               (<a>typeMismatch</a> "Object" invalid)
--   </pre>
--   
--   For this common case of only being concerned with a single type of
--   JSON value, the functions <a>withObject</a>, <a>withScientific</a>,
--   etc. are provided. Their use is to be preferred when possible, since
--   they are more terse. Using <a>withObject</a>, we can rewrite the above
--   instance (assuming the same language extension and data type) as:
--   
--   <pre>
--   instance <a>FromJSON</a> Coord where
--       <a>parseJSON</a> = <a>withObject</a> "Coord" $ \v -&gt; Coord
--           <a>&lt;$&gt;</a> v <a>.:</a> "x"
--           <a>&lt;*&gt;</a> v <a>.:</a> "y"
--   </pre>
--   
--   Instead of manually writing your <a>FromJSON</a> instance, there are
--   two options to do it automatically:
--   
--   <ul>
--   <li><a>Data.Aeson.TH</a> provides Template Haskell functions which
--   will derive an instance at compile time. The generated instance is
--   optimized for your type so it will probably be more efficient than the
--   following option.</li>
--   <li>The compiler can provide a default generic implementation for
--   <a>parseJSON</a>.</li>
--   </ul>
--   
--   To use the second, simply add a <tt>deriving <a>Generic</a></tt>
--   clause to your datatype and declare a <a>FromJSON</a> instance for
--   your datatype without giving a definition for <a>parseJSON</a>.
--   
--   For example, the previous example can be simplified to just:
--   
--   <pre>
--   {-# LANGUAGE DeriveGeneric #-}
--   
--   import <a>GHC.Generics</a>
--   
--   data Coord = Coord { x :: Double, y :: Double } deriving <a>Generic</a>
--   
--   instance <a>FromJSON</a> Coord
--   </pre>
--   
--   The default implementation will be equivalent to <tt>parseJSON =
--   <a>genericParseJSON</a> <a>defaultOptions</a></tt>; if you need
--   different options, you can customize the generic decoding by defining:
--   
--   <pre>
--   customOptions = <a>defaultOptions</a>
--                   { <a>fieldLabelModifier</a> = <a>map</a> <a>toUpper</a>
--                   }
--   
--   instance <a>FromJSON</a> Coord where
--       <a>parseJSON</a> = <a>genericParseJSON</a> customOptions
--   </pre>
class FromJSON a
serialiseToJSON :: ToJSON a => a -> ByteString
deserialiseFromJSON :: FromJSON a => AsType a -> ByteString -> Either JsonDecodeError a
class (HasTypeProxy a, SerialiseAsRawBytes a) => SerialiseAsBech32 a
serialiseToBech32 :: SerialiseAsBech32 a => a -> Text
deserialiseFromBech32 :: SerialiseAsBech32 a => AsType a -> Text -> Either Bech32DecodeError a
deserialiseAnyOfFromBech32 :: forall b. [FromSomeType SerialiseAsBech32 b] -> Text -> Either Bech32DecodeError b

-- | Bech32 decoding error.
data Bech32DecodeError

-- | Address serialisation uses different serialisation formats for
--   different kinds of addresses, so it needs its own class.
--   
--   In particular, Byron addresses are typically formatted in base 58,
--   while Shelley addresses (payment and stake) are formatted using
--   Bech32.
class HasTypeProxy addr => SerialiseAddress addr
serialiseAddress :: SerialiseAddress addr => addr -> Text
deserialiseAddress :: SerialiseAddress addr => AsType addr -> Text -> Maybe addr
class HasTypeProxy a => SerialiseAsRawBytes a
serialiseToRawBytes :: SerialiseAsRawBytes a => a -> ByteString
deserialiseFromRawBytes :: SerialiseAsRawBytes a => AsType a -> ByteString -> Maybe a
serialiseToRawBytesHex :: SerialiseAsRawBytes a => a -> ByteString
deserialiseFromRawBytesHex :: SerialiseAsRawBytes a => AsType a -> ByteString -> Maybe a
class SerialiseAsCBOR a => HasTextEnvelope a
type TextEnvelope = TextView
type TextEnvelopeType = TextViewType
type TextEnvelopeDescr = TextViewDescription
type TextEnvelopeError = TextViewError
serialiseToTextEnvelope :: forall a. HasTextEnvelope a => Maybe TextEnvelopeDescr -> a -> TextEnvelope
deserialiseFromTextEnvelope :: HasTextEnvelope a => AsType a -> TextEnvelope -> Either TextEnvelopeError a
readFileTextEnvelope :: HasTextEnvelope a => AsType a -> FilePath -> IO (Either (FileError TextEnvelopeError) a)
writeFileTextEnvelope :: HasTextEnvelope a => FilePath -> Maybe TextEnvelopeDescr -> a -> IO (Either (FileError ()) ())
readTextEnvelopeFromFile :: FilePath -> IO (Either (FileError TextEnvelopeError) TextEnvelope)
readTextEnvelopeOfTypeFromFile :: TextEnvelopeType -> FilePath -> IO (Either (FileError TextEnvelopeError) TextEnvelope)
data FromSomeType (c :: Type -> Constraint) b
deserialiseFromTextEnvelopeAnyOf :: [FromSomeType HasTextEnvelope b] -> TextEnvelope -> Either TextEnvelopeError b
readFileTextEnvelopeAnyOf :: [FromSomeType HasTextEnvelope b] -> FilePath -> IO (Either (FileError TextEnvelopeError) b)
class Show e => Error e

-- | The preferred approach is to use <tt>Except</tt> or <a>ExceptT</a>,
--   but you can if necessary use IO exceptions.
throwErrorAsException :: Error e => e -> IO a
data FileError e

-- | Establish a connection to a node and execute the given set of protocol
--   handlers.
connectToLocalNode :: forall mode block. (ShowProxy block, ShowProxy (ApplyTxErr block), ShowProxy (Query block), ShowProxy (GenTx block), ShowQuery (Query block)) => LocalNodeConnectInfo mode block -> LocalNodeClientProtocols block -> IO ()
data LocalNodeConnectInfo mode block
localNodeSocketPath :: LocalNodeConnectInfo mode block -> FilePath
localNodeNetworkId :: LocalNodeConnectInfo mode block -> NetworkId
localNodeConsensusMode :: LocalNodeConnectInfo mode block -> NodeConsensusMode mode block
data NodeConsensusMode mode block
data LocalNodeClientProtocols block
localChainSyncClient :: LocalNodeClientProtocols block -> Maybe (ChainSyncClient block (Point block) (Tip block) IO ())
localTxSubmissionClient :: LocalNodeClientProtocols block -> Maybe (LocalTxSubmissionClient (GenTx block) (ApplyTxErr block) IO ())
localStateQueryClient :: LocalNodeClientProtocols block -> Maybe (LocalStateQueryClient block (Point block) (Query block) IO ())
nullLocalNodeClientProtocols :: LocalNodeClientProtocols block
data ChainSyncClient header point tip (m :: Type -> Type) a
runChainSyncClient :: ChainSyncClient header point tip m a -> m (ClientStIdle header point tip m a)
data LocalTxSubmissionClient tx reject (m :: Type -> Type) a
runLocalTxSubmissionClient :: LocalTxSubmissionClient tx reject m a -> m (LocalTxClientStIdle tx reject m a)
submitTxToNodeLocal :: forall mode block. (ShowProxy block, ShowProxy (ApplyTxErr block), ShowProxy (Query block), ShowProxy (GenTx block), ShowQuery (Query block)) => LocalNodeConnectInfo mode block -> GenTx block -> IO (SubmitResult (ApplyTxErr block))
data LocalStateQueryClient block point (query :: Type -> Type) (m :: Type -> Type) a
runLocalStateQueryClient :: LocalStateQueryClient block point query m a -> m (ClientStIdle block point query m a)

-- | Establish a connection to a node and execute a single query using the
--   local state query protocol.
queryNodeLocalState :: forall mode block result. (ShowProxy block, ShowProxy (ApplyTxErr block), ShowProxy (Query block), ShowProxy (GenTx block), ShowQuery (Query block)) => LocalNodeConnectInfo mode block -> (Point block, Query block result) -> IO (Either AcquireFailure result)
data OperationalCertificate
data OperationalCertificateIssueCounter
data OperationalCertIssueError
issueOperationalCertificate :: VerificationKey KesKey -> Either (SigningKey StakePoolKey) (SigningKey GenesisDelegateExtendedKey) -> KESPeriod -> OperationalCertificateIssueCounter -> Either OperationalCertIssueError (OperationalCertificate, OperationalCertificateIssueCounter)
data GenesisKey

-- | Shelley-era genesis keys using extended ed25519 cryptographic keys.
--   
--   These serve the same role as normal genesis keys, but are here to
--   support legacy Byron genesis keys which used extended keys.
--   
--   The extended verification keys can be converted (via
--   <a>castVerificationKey</a>) to ordinary keys (i.e.
--   <a>VerificationKey</a> <a>GenesisKey</a>) but this is <i>not</i> the
--   case for the signing keys. The signing keys can be used to witness
--   transactions directly, with verification via their non-extended
--   verification key (<a>VerificationKey</a> <a>GenesisKey</a>).
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data GenesisExtendedKey
data GenesisDelegateKey

-- | Shelley-era genesis keys using extended ed25519 cryptographic keys.
--   
--   These serve the same role as normal genesis keys, but are here to
--   support legacy Byron genesis keys which used extended keys.
--   
--   The extended verification keys can be converted (via
--   <a>castVerificationKey</a>) to ordinary keys (i.e.
--   <a>VerificationKey</a> <a>GenesisKey</a>) but this is <i>not</i> the
--   case for the signing keys. The signing keys can be used to witness
--   transactions directly, with verification via their non-extended
--   verification key (<a>VerificationKey</a> <a>GenesisKey</a>).
--   
--   This is a type level tag, used with other interfaces like <a>Key</a>.
data GenesisDelegateExtendedKey
data GenesisUTxOKey

-- | Compute the <a>TxIn</a> of the initial UTxO pseudo-transaction
--   corresponding to the given address in the genesis initial funds.
--   
--   The Shelley initial UTxO is constructed from the
--   <tt>sgInitialFunds</tt> which is not a full UTxO but just a map from
--   addresses to coin values.
--   
--   This gets turned into a UTxO by making a pseudo-transaction for each
--   address, with the 0th output being the coin value. So to spend from
--   the initial UTxO we need this same <a>TxIn</a> to use as an input to
--   the spending transaction.
genesisUTxOPseudoTxIn :: NetworkId -> Hash GenesisUTxOKey -> TxIn
makeMIRCertificate :: MIRPot -> [(StakeCredential, Lovelace)] -> Certificate
makeGenesisKeyDelegationCertificate :: Hash GenesisKey -> Hash GenesisDelegateKey -> Hash VrfKey -> Certificate
data NetworkMagic
makeShelleyUpdateProposal :: ProtocolParametersUpdate -> [Hash GenesisKey] -> EpochNo -> UpdateProposal


-- | This module provides a library interface that is intended to be the
--   complete API for Shelley covering everything, including exposing
--   constructors for the lower level types.
module Cardano.Api.Shelley

-- | A type used as a tag to distinguish the Shelley era.
data Shelley
class HasTypeProxy t where {
    
    -- | A family of singleton types used in this API to indicate which type to
    --   use where it would otherwise be ambiguous or merely unclear.
    --   
    --   Values of this type are passed to
    data family AsType t;
}
proxyToAsType :: HasTypeProxy t => Proxy t -> AsType t
data Address era

-- | Shelley addresses are only valid in the Shelley era.
[ShelleyAddress] :: Network -> PaymentCredential StandardShelley -> StakeReference StandardShelley -> Address Shelley
data NetworkId
Mainnet :: NetworkId
Testnet :: !NetworkMagic -> NetworkId
data TxBody era
[ShelleyTxBody] :: TxBody StandardShelley -> Maybe MetaData -> TxBody Shelley
newtype TxId
TxId :: Hash StandardCrypto () -> TxId
data TxIn
TxIn :: TxId -> TxIx -> TxIn
data TxOut era
TxOut :: Address era -> Lovelace -> TxOut era
newtype TxIx
TxIx :: Word -> TxIx
newtype Lovelace
Lovelace :: Integer -> Lovelace

-- | The 0-based index for the Ourboros time slot.
newtype SlotNo
SlotNo :: Word64 -> SlotNo
data Tx era
[ShelleyTx] :: Tx StandardShelley -> Tx Shelley
data Witness era
[ShelleyBootstrapWitness] :: BootstrapWitness StandardShelley -> Witness Shelley
[ShelleyKeyWitness] :: WitVKey Witness StandardShelley -> Witness Shelley
[ShelleyScriptWitness] :: Script StandardShelley -> Witness Shelley
data ShelleyWitnessSigningKey
WitnessPaymentKey :: SigningKey PaymentKey -> ShelleyWitnessSigningKey
WitnessPaymentExtendedKey :: SigningKey PaymentExtendedKey -> ShelleyWitnessSigningKey
WitnessStakeKey :: SigningKey StakeKey -> ShelleyWitnessSigningKey
WitnessStakeExtendedKey :: SigningKey StakeExtendedKey -> ShelleyWitnessSigningKey
WitnessStakePoolKey :: SigningKey StakePoolKey -> ShelleyWitnessSigningKey
WitnessGenesisKey :: SigningKey GenesisKey -> ShelleyWitnessSigningKey
WitnessGenesisExtendedKey :: SigningKey GenesisExtendedKey -> ShelleyWitnessSigningKey
WitnessGenesisDelegateKey :: SigningKey GenesisDelegateKey -> ShelleyWitnessSigningKey
WitnessGenesisDelegateExtendedKey :: SigningKey GenesisDelegateExtendedKey -> ShelleyWitnessSigningKey

-- | We support making key witnesses with both normal and extended signing
--   keys.
data ShelleySigningKey
getShelleyKeyWitnessVerificationKey :: ShelleySigningKey -> VKey Witness StandardCrypto
makeShelleySignature :: SignableRepresentation tosign => tosign -> ShelleySigningKey -> SignedDSIGN StandardCrypto tosign
toShelleySigningKey :: ShelleyWitnessSigningKey -> ShelleySigningKey
data FromSomeType (c :: Type -> Constraint) b
[FromSomeType] :: c a => AsType a -> (a -> b) -> FromSomeType c b
newtype TxMetadata
TxMetadataShelley :: MetaData -> TxMetadata
pattern TxMetadata :: Map Word64 TxMetadataValue -> TxMetadata
data TxMetadataValue
TxMetaNumber :: Integer -> TxMetadataValue
TxMetaBytes :: ByteString -> TxMetadataValue
TxMetaText :: Text -> TxMetadataValue
TxMetaList :: [TxMetadataValue] -> TxMetadataValue
TxMetaMap :: [(TxMetadataValue, TxMetadataValue)] -> TxMetadataValue
toShelleyMetaData :: Map Word64 TxMetadataValue -> MetaData
fromShelleyMetaData :: MetaData -> Map Word64 TxMetadataValue
newtype UpdateProposal
UpdateProposal :: Update StandardShelley -> UpdateProposal
data ProtocolParametersUpdate
ProtocolParametersUpdate :: Maybe (Natural, Natural) -> Maybe Rational -> Maybe (Maybe ByteString) -> Maybe Natural -> Maybe Natural -> Maybe Natural -> Maybe Natural -> Maybe Natural -> Maybe Lovelace -> Maybe Lovelace -> Maybe Lovelace -> Maybe Lovelace -> Maybe EpochNo -> Maybe Natural -> Maybe Rational -> Maybe Rational -> Maybe Rational -> ProtocolParametersUpdate

-- | Protocol version, major and minor. Updating the major version is used
--   to trigger hard forks.
protocolUpdateProtocolVersion :: ProtocolParametersUpdate -> Maybe (Natural, Natural)

-- | The decentralization parameter. This is fraction of slots that belong
--   to the BFT overlay schedule, rather than the Praos schedule. So 1
--   means fully centralised, while 0 means fully decentralised.
--   
--   This is the "d" parameter from the design document.
protocolUpdateDecentralization :: ProtocolParametersUpdate -> Maybe Rational

-- | Extra entropy for the Praos per-epoch nonce.
--   
--   This can be used to add extra entropy during the decentralisation
--   process. If the extra entropy can be demonstrated to be generated
--   randomly then this method can be used to show that the initial
--   federated operators did not subtly bias the initial schedule so that
--   they retain undue influence after decentralisation.
protocolUpdateExtraPraosEntropy :: ProtocolParametersUpdate -> Maybe (Maybe ByteString)

-- | The maximum permitted size of a block header.
--   
--   This must be at least as big as the largest legitimate block headers
--   but should not be too much larger, to help prevent DoS attacks.
--   
--   Caution: setting this to be smaller than legitimate block headers is a
--   sure way to brick the system!
protocolUpdateMaxBlockHeaderSize :: ProtocolParametersUpdate -> Maybe Natural

-- | The maximum permitted size of the block body (that is, the block
--   payload, without the block header).
--   
--   This should be picked with the Praos network delta security parameter
--   in mind. Making this too large can severely weaken the Praos consensus
--   properties.
--   
--   Caution: setting this to be smaller than a transaction that can change
--   the protocol parameters is a sure way to brick the system!
protocolUpdateMaxBlockBodySize :: ProtocolParametersUpdate -> Maybe Natural

-- | The maximum permitted size of a transaction.
--   
--   Typically this should not be too high a fraction of the block size,
--   otherwise wastage from block fragmentation becomes a problem, and the
--   current implementation does not use any sophisticated box packing
--   algorithm.
protocolUpdateMaxTxSize :: ProtocolParametersUpdate -> Maybe Natural

-- | The constant factor for the minimum fee calculation.
protocolUpdateTxFeeFixed :: ProtocolParametersUpdate -> Maybe Natural

-- | The linear factor for the minimum fee calculation.
protocolUpdateTxFeePerByte :: ProtocolParametersUpdate -> Maybe Natural

-- | The minimum permitted value for new UTxO entries, ie for transaction
--   outputs.
protocolUpdateMinUTxOValue :: ProtocolParametersUpdate -> Maybe Lovelace

-- | The deposit required to register a stake address.
protocolUpdateStakeAddressDeposit :: ProtocolParametersUpdate -> Maybe Lovelace

-- | The deposit required to register a stake pool.
protocolUpdateStakePoolDeposit :: ProtocolParametersUpdate -> Maybe Lovelace

-- | The minimum value that stake pools are permitted to declare for their
--   cost parameter.
protocolUpdateMinPoolCost :: ProtocolParametersUpdate -> Maybe Lovelace

-- | The maximum number of epochs into the future that stake pools are
--   permitted to schedule a retirement.
protocolUpdatePoolRetireMaxEpoch :: ProtocolParametersUpdate -> Maybe EpochNo

-- | The equilibrium target number of stake pools.
--   
--   This is the "k" incentives parameter from the design document.
protocolUpdateStakePoolTargetNum :: ProtocolParametersUpdate -> Maybe Natural

-- | The influence of the pledge in stake pool rewards.
--   
--   This is the "a_0" incentives parameter from the design document.
protocolUpdatePoolPledgeInfluence :: ProtocolParametersUpdate -> Maybe Rational

-- | The monetary expansion rate. This determines the fraction of the
--   reserves that are added to the fee pot each epoch.
--   
--   This is the "rho" incentives parameter from the design document.
protocolUpdateMonetaryExpansion :: ProtocolParametersUpdate -> Maybe Rational

-- | The fraction of the fee pot each epoch that goes to the treasury.
--   
--   This is the "tau" incentives parameter from the design document.
protocolUpdateTreasuryCut :: ProtocolParametersUpdate -> Maybe Rational

-- | An epoch, i.e. the number of the epoch.
newtype EpochNo
EpochNo :: Word64 -> EpochNo
[unEpochNo] :: EpochNo -> Word64
newtype NetworkMagic
NetworkMagic :: Word32 -> NetworkMagic
[unNetworkMagic] :: NetworkMagic -> Word32
toShelleyPParamsUpdate :: ProtocolParametersUpdate -> PParamsUpdate StandardShelley
newtype Script
Script :: Script StandardShelley -> Script
data MultiSigScript
RequireSignature :: Hash PaymentKey -> MultiSigScript
RequireAllOf :: [MultiSigScript] -> MultiSigScript
RequireAnyOf :: [MultiSigScript] -> MultiSigScript
RequireMOf :: Int -> [MultiSigScript] -> MultiSigScript
parseScript :: Value -> Parser MultiSigScript
parseScriptAny :: Value -> Parser MultiSigScript
parseScriptAll :: Value -> Parser MultiSigScript
parseScriptAtLeast :: Value -> Parser MultiSigScript
parseScriptSig :: Value -> Parser MultiSigScript
newtype Certificate
Certificate :: DCert StandardShelley -> Certificate
data OperationalCertificate
OperationalCertificate :: !OCert StandardCrypto -> !VerificationKey StakePoolKey -> OperationalCertificate
data OperationalCertificateIssueCounter
OperationalCertificateIssueCounter :: !Word64 -> !VerificationKey StakePoolKey -> OperationalCertificateIssueCounter
data OperationalCertIssueError

-- | The stake pool verification key expected for the
--   <a>OperationalCertificateIssueCounter</a> does not match the signing
--   key supplied for signing.
--   
--   Order: pool vkey expected, pool skey supplied
OperationalCertKeyMismatch :: VerificationKey StakePoolKey -> VerificationKey StakePoolKey -> OperationalCertIssueError

-- | A representation of the required fields for off-chain stake pool
--   metadata.
data StakePoolMetadata
StakePoolMetadata :: !Text -> !Text -> !Text -> !Text -> StakePoolMetadata

-- | A name of up to 50 characters.
stakePoolName :: StakePoolMetadata -> Text

-- | A description of up to 255 characters.
stakePoolDescription :: StakePoolMetadata -> Text

-- | A ticker of 3-5 characters, for a compact display of stake pools in a
--   wallet.
stakePoolTicker :: StakePoolMetadata -> Text

-- | A URL to a homepage with additional information about the pool. n.b.
--   the spec does not specify a character limit for this field.
stakePoolHomepage :: StakePoolMetadata -> Text
data StakePoolMetadataReference
StakePoolMetadataReference :: URI -> Hash StakePoolMetadata -> StakePoolMetadataReference
stakePoolMetadataURL :: StakePoolMetadataReference -> URI
stakePoolMetadataHash :: StakePoolMetadataReference -> Hash StakePoolMetadata
data StakePoolParameters
StakePoolParameters :: PoolId -> Hash VrfKey -> Lovelace -> Rational -> StakeAddress -> Lovelace -> [Hash StakeKey] -> [StakePoolRelay] -> Maybe StakePoolMetadataReference -> StakePoolParameters
stakePoolId :: StakePoolParameters -> PoolId
stakePoolVRF :: StakePoolParameters -> Hash VrfKey
stakePoolCost :: StakePoolParameters -> Lovelace
stakePoolMargin :: StakePoolParameters -> Rational
stakePoolRewardAccount :: StakePoolParameters -> StakeAddress
stakePoolPledge :: StakePoolParameters -> Lovelace
stakePoolOwners :: StakePoolParameters -> [Hash StakeKey]
stakePoolRelays :: StakePoolParameters -> [StakePoolRelay]
stakePoolMetadata :: StakePoolParameters -> Maybe StakePoolMetadataReference
data StakePoolRelay

-- | One or both of IPv4 &amp; IPv6
StakePoolRelayIp :: Maybe IPv4 -> Maybe IPv6 -> Maybe PortNumber -> StakePoolRelay

-- | An DNS name pointing to a <tt>A</tt> or <tt>AAAA</tt> record.
StakePoolRelayDnsARecord :: ByteString -> Maybe PortNumber -> StakePoolRelay

-- | A DNS name pointing to a <tt>SRV</tt> record.
StakePoolRelayDnsSrvRecord :: ByteString -> StakePoolRelay
toShelleyPoolParams :: StakePoolParameters -> PoolParams StandardShelley
data StakePoolKey
type PoolId = Hash StakePoolKey
data KesKey
data VrfKey
data LocalNodeConnectInfo mode block
LocalNodeConnectInfo :: FilePath -> NetworkId -> NodeConsensusMode mode block -> LocalNodeConnectInfo mode block
data ShelleyMode
data CardanoMode
data NodeConsensusMode mode block
[ShelleyMode] :: NodeConsensusMode ShelleyMode (ShelleyBlockHFC StandardShelley)
[CardanoMode] :: EpochSlots -> NodeConsensusMode CardanoMode (CardanoBlock StandardCrypto)
data LocalNodeClientProtocols block
LocalNodeClientProtocols :: Maybe (ChainSyncClient block (Point block) (Tip block) IO ()) -> Maybe (LocalTxSubmissionClient (GenTx block) (ApplyTxErr block) IO ()) -> Maybe (LocalStateQueryClient block (Point block) (Query block) IO ()) -> LocalNodeClientProtocols block
withNodeProtocolClient :: NodeConsensusMode mode block -> ((SerialiseNodeToClientConstraints block, SupportedNetworkProtocolVersion block) => ProtocolClient block (BlockProtocol block) -> a) -> a


-- | This module provides a library interface that is intended to be the
--   complete API for Byron covering everything, including exposing
--   constructors for the lower level types.
module Cardano.Api.Byron

-- | A type used as a tag to distinguish the Byron era.
data Byron
class HasTypeProxy t where {
    
    -- | A family of singleton types used in this API to indicate which type to
    --   use where it would otherwise be ambiguous or merely unclear.
    --   
    --   Values of this type are passed to
    data family AsType t;
}
proxyToAsType :: HasTypeProxy t => Proxy t -> AsType t
data Address era

-- | Byron addresses are valid in both the Byron and Shelley era.
[ByronAddress] :: Address -> Address era
data NetworkId
Mainnet :: NetworkId
Testnet :: !NetworkMagic -> NetworkId
data TxBody era
[ByronTxBody] :: Annotated Tx ByteString -> TxBody Byron
newtype TxId
TxId :: Hash StandardCrypto () -> TxId
data TxIn
TxIn :: TxId -> TxIx -> TxIn
data TxOut era
TxOut :: Address era -> Lovelace -> TxOut era
newtype TxIx
TxIx :: Word -> TxIx
newtype Lovelace
Lovelace :: Integer -> Lovelace

-- | The 0-based index for the Ourboros time slot.
newtype SlotNo
SlotNo :: Word64 -> SlotNo
toByronLovelace :: Lovelace -> Maybe Lovelace
toByronTxId :: TxId -> TxId
toByronTxIn :: TxIn -> TxIn
toByronTxOut :: TxOut Byron -> Maybe TxOut
data Tx era
[ByronTx] :: ATxAux ByteString -> Tx Byron
data Witness era
[ByronKeyWitness] :: TxInWitness -> Witness Byron

-- | Either a network ID or a Byron address to be used in constructing a
--   Shelley bootstrap witness.
data WitnessNetworkIdOrByronAddress

-- | Network ID.
--   
--   If this value is used in the construction of a Shelley bootstrap
--   witness, the result will not consist of a derivation path. If that is
--   required, specify a <a>WitnessByronAddress</a> value instead.
WitnessNetworkId :: !NetworkId -> WitnessNetworkIdOrByronAddress

-- | Byron address.
--   
--   If this value is used in the construction of a Shelley bootstrap
--   witness, both the network ID and derivation path will be extracted
--   from the address and used in the construction of the witness.
WitnessByronAddress :: !Address Byron -> WitnessNetworkIdOrByronAddress
data FromSomeType (c :: Type -> Constraint) b
[FromSomeType] :: c a => AsType a -> (a -> b) -> FromSomeType c b
class Show e => Error e
displayError :: Error e => e -> String
data FileError e
FileError :: FilePath -> e -> FileError e
FileIOError :: FilePath -> IOException -> FileError e
data LocalNodeConnectInfo mode block
LocalNodeConnectInfo :: FilePath -> NetworkId -> NodeConsensusMode mode block -> LocalNodeConnectInfo mode block
data ByronMode
data CardanoMode
data NodeConsensusMode mode block
[ByronMode] :: EpochSlots -> NodeConsensusMode ByronMode ByronBlockHFC
[CardanoMode] :: EpochSlots -> NodeConsensusMode CardanoMode (CardanoBlock StandardCrypto)
data LocalNodeClientProtocols block
LocalNodeClientProtocols :: Maybe (ChainSyncClient block (Point block) (Tip block) IO ()) -> Maybe (LocalTxSubmissionClient (GenTx block) (ApplyTxErr block) IO ()) -> Maybe (LocalStateQueryClient block (Point block) (Query block) IO ()) -> LocalNodeClientProtocols block
withNodeProtocolClient :: NodeConsensusMode mode block -> ((SerialiseNodeToClientConstraints block, SupportedNetworkProtocolVersion block) => ProtocolClient block (BlockProtocol block) -> a) -> a
newtype ChainSyncClient header point tip (m :: Type -> Type) a
ChainSyncClient :: m (ClientStIdle header point tip m a) -> ChainSyncClient header point tip (m :: Type -> Type) a
[runChainSyncClient] :: ChainSyncClient header point tip (m :: Type -> Type) a -> m (ClientStIdle header point tip m a)
newtype LocalTxSubmissionClient tx reject (m :: Type -> Type) a
LocalTxSubmissionClient :: m (LocalTxClientStIdle tx reject m a) -> LocalTxSubmissionClient tx reject (m :: Type -> Type) a
newtype LocalStateQueryClient block point (query :: Type -> Type) (m :: Type -> Type) a
LocalStateQueryClient :: m (ClientStIdle block point query m a) -> LocalStateQueryClient block point (query :: Type -> Type) (m :: Type -> Type) a
[runLocalStateQueryClient] :: LocalStateQueryClient block point (query :: Type -> Type) (m :: Type -> Type) a -> m (ClientStIdle block point query m a)
newtype NetworkMagic
NetworkMagic :: Word32 -> NetworkMagic
[unNetworkMagic] :: NetworkMagic -> Word32
toByronNetworkMagic :: NetworkId -> NetworkMagic
toByronProtocolMagicId :: NetworkId -> ProtocolMagicId
toByronRequiresNetworkMagic :: NetworkId -> RequiresNetworkMagic
toNetworkMagic :: NetworkId -> NetworkMagic
