zcash-haskell-0.8.0.0: Utilities to interact with the Zcash blockchain
Copyright2022-2024 Vergara Technologies
LicenseMIT
Maintainerrene@vergara.network
Stabilityexperimental
Portabilityunknown
Safe HaskellSafe-Inferred
LanguageHaskell2010

ZcashHaskell.Orchard

Description

Functions to interact with the Orchard shielded pool of the Zcash blockchain.

Synopsis

Documentation

genOrchardSpendingKey #

Arguments

:: Seed

The cryptographic seed for the wallet

-> CoinType

The coin type constant

-> AccountId

The index of the account to be used

-> Maybe OrchardSpendingKey 

Derives an Orchard spending key for the given seed and account ID

genOrchardReceiver #

Arguments

:: Int

The index of the address to be created

-> Scope

External for wallet addresses, Internal for change addresses

-> OrchardSpendingKey

The spending key

-> Maybe OrchardReceiver 

Derives an Orchard receiver for the given spending key and index

genOrchardReceiverFvk #

Arguments

:: Int

The index of the address to be created

-> Scope

External for wallet addresses, Internal for change addresses

-> ByteString

The full viewing key

-> Maybe OrchardReceiver 

Derives an Orchard receiver for the given full viewing key and index

genOrchardReceiverIvk #

Arguments

:: Int

The index of the address to be created

-> ByteString

The full viewing key

-> Maybe OrchardReceiver 

Derives an Orchard receiver for the given incoming viewing key and index

isValidUnifiedAddress :: ByteString -> Maybe UnifiedAddress #

Checks if given bytestring is a valid encoded unified address

decodeUfvk :: ByteString -> Maybe UnifiedFullViewingKey #

Attempts to decode the given bytestring into a Unified Full Viewing Key

decodeUivk :: ByteString -> Maybe UnifiedIncomingViewingKey #

Attempts to decode the given bytestring into a Unified Full Viewing Key

matchOrchardAddress :: ByteString -> ByteString -> Bool #

Check if the given UVK matches the UA given

decryptOrchardAction :: UnifiedFullViewingKey -> OrchardAction -> Maybe DecodedNote #

Attempts to decode the given OrchardAction using the given UnifiedFullViewingKey.

decryptOrchardActionFvk :: UnifiedFullViewingKey -> Scope -> OrchardAction -> Maybe DecodedNote #

Attempts to decode the given OrchardAction using the given UnifiedFullViewingKey.

decryptOrchardActionIvk :: UnifiedIncomingViewingKey -> OrchardAction -> Maybe DecodedNote #

Attempts to decode the given OrchardAction using the given UnifiedFullViewingKey.

decryptOrchardActionSK :: OrchardSpendingKey -> Scope -> OrchardAction -> Maybe DecodedNote #

Attemtps to decode the given OrchardAction using the given OrchardSpendingKey

updateOrchardCommitmentTree #

Arguments

:: OrchardFrontier

the base tree

-> HexString

the new note commitment

-> Maybe OrchardFrontier 

Update a Orchard commitment tree

getOrchardWitness :: OrchardFrontier -> Maybe OrchardWitness #

Get the Orchard incremental witness from a commitment tree

getOrchardNotePosition :: OrchardWitness -> Integer #

Get the Sapling note position from a witness

updateOrchardWitness :: OrchardWitness -> [HexString] -> OrchardWitness #

Update the witness of an Orchard note

parseAddress :: ByteString -> Maybe ValidAddress #

Parse a potential Zcash address

deriveOrchardFvk #

Arguments

:: OrchardSpendingKey

The Orchard spending key

-> Maybe HexString 

Derive an Orchard Full Viewing Key

deriveOrchardIvk #

Arguments

:: OrchardSpendingKey

The Orchard spending key

-> Maybe HexString 

Derive an Orchard Incoming Viewing Key