atlas-cardano
Copyright(c) 2023 GYELD GMBH
LicenseApache 2.0
Maintainer[email protected]
Stabilitydevelop
Safe HaskellNone
LanguageGHC2021

GeniusYield.Types.Key

Description

 
Synopsis

Documentation

Signing key

data GYSigningKey (kr :: GYKeyRole) #

>>> "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290" :: (GYSigningKey 'GYKeyRolePayment)
GYSigningKey (GYKeyRolePayment) "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"

Instances

Instances details
(SingGYKeyRoleI kr, SerialiseAsCBOR (GYSigningKeyToApi kr)) => FromJSON (GYSigningKey kr) #
>>> Aeson.eitherDecode @GYPaymentSigningKey "\"58205ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290\""
Right (GYSigningKey (GYKeyRolePayment) "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290")
>>> Aeson.eitherDecode @GYPaymentSigningKey "\"58205ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fceczzz\""
Left "Error in $: invalid character at offset: 65"
Instance details

Defined in GeniusYield.Types.Key

(SingGYKeyRoleI kr, SerialiseAsCBOR (GYSigningKeyToApi kr)) => ToJSON (GYSigningKey kr) #
>>> LBS8.putStrLn $ Aeson.encode ("5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290" :: GYPaymentSigningKey)
"58205ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"
Instance details

Defined in GeniusYield.Types.Key

SingGYKeyRoleI kr => ToShelleyWitnessSigningKey (GYSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

PrintfArg (GYSigningKey kr) #
>>> Printf.printf "%s\n" ("5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290" :: GYPaymentSigningKey)
5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290
Instance details

Defined in GeniusYield.Types.Key

(SingGYKeyRoleI kr, SerialiseAsCBOR (GYSigningKeyToApi kr)) => FromField (GYSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

(SingGYKeyRoleI kr, SerialiseAsCBOR (GYSigningKeyToApi kr)) => ToField (GYSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

Methods

toField :: GYSigningKey kr -> Field #

IsString (GYSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

SingGYKeyRoleI kr => Show (GYSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

SingGYKeyRoleI kr => Eq (GYSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

Methods

(==) :: GYSigningKey kr -> GYSigningKey kr -> Bool #

(/=) :: GYSigningKey kr -> GYSigningKey kr -> Bool #

SingGYKeyRoleI kr => Ord (GYSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

signingKeyFromRawBytes :: forall (kr :: GYKeyRole). ByteString -> Maybe (GYSigningKey kr) #

Decode from raw bytes.

signingKeyFromRawBytesHex :: forall (kr :: GYKeyRole). ByteString -> Either String (GYSigningKey kr) #

Decode from raw bytes represented as hex.

Verification key

data GYVerificationKey (kr :: GYKeyRole) #

Instances

Instances details
(SingGYKeyRoleI kr, SerialiseAsCBOR (GYVerificationKeyToApi kr)) => FromJSON (GYVerificationKey kr) #
>>> Aeson.eitherDecode @GYPaymentVerificationKey "\"58200717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605\""
Right (GYVerificationKey (GYKeyRolePayment) "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605")
>>> Aeson.eitherDecode @GYPaymentVerificationKey "\"58200717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193zzz\""
Left "Error in $: invalid character at offset: 65"
Instance details

Defined in GeniusYield.Types.Key

(SingGYKeyRoleI kr, SerialiseAsCBOR (GYVerificationKeyToApi kr)) => ToJSON (GYVerificationKey kr) #
>>> LBS8.putStrLn $ Aeson.encode ("0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605" :: GYPaymentVerificationKey)
"58200717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"
Instance details

Defined in GeniusYield.Types.Key

PrintfArg (GYVerificationKey kr) #
>>> Printf.printf "%s\n" ("0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605" :: GYPaymentVerificationKey)
0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605
Instance details

Defined in GeniusYield.Types.Key

IsString (GYVerificationKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

SingGYKeyRoleI kr => Show (GYVerificationKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

Eq (GYVerificationKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

verificationKeyFromRawBytes :: forall (kr :: GYKeyRole). ByteString -> Maybe (GYVerificationKey kr) #

Decode from raw bytes.

verificationKeyFromRawBytesHex :: forall (kr :: GYKeyRole). ByteString -> Either String (GYVerificationKey kr) #

Decode from raw bytes represented as hex.

Extended signing key

data GYExtendedSigningKey (kr :: GYKeyRole) #

Extended signing key.

Instances

Instances details
SingGYKeyRoleI kr => ToShelleyWitnessSigningKey (GYExtendedSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

IsString (GYExtendedSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

SingGYKeyRoleI kr => Show (GYExtendedSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

SingGYKeyRoleI kr => Eq (GYExtendedSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

SingGYKeyRoleI kr => Ord (GYExtendedSigningKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

extendedSigningKeyFromRawBytes :: forall (kr :: GYKeyRole). ByteString -> Maybe (GYExtendedSigningKey kr) #

Decode from raw bytes.

extendedSigningKeyFromRawBytesHex :: forall (kr :: GYKeyRole). ByteString -> Either String (GYExtendedSigningKey kr) #

Decode from raw bytes represented as hex.

Extended verification key

data GYExtendedVerificationKey (kr :: GYKeyRole) #

Instances

Instances details
(SingGYKeyRoleI kr, SerialiseAsCBOR (GYExtendedVerificationKeyToApi kr)) => FromJSON (GYExtendedVerificationKey kr) #
>>> Aeson.eitherDecode @(GYExtendedVerificationKey 'GYKeyRolePayment) "\"4081b0a03b2b66c74ed1b0de1d874ed820c31b2c0cbba632f4f1ca82a113ac7e18f5eadae23a5c4e65e65e9d4e3a1d0e5c54f0e0c04e6e85e1f7ea75db7c9f1e\""
Right (GYExtendedVerificationKey (GYKeyRolePayment) "4081b0a03b2b66c74ed1b0de1d874ed820c31b2c0cbba632f4f1ca82a113ac7e18f5eadae23a5c4e65e65e9d4e3a1d0e5c54f0e0c04e6e85e1f7ea75db7c9f1e")
>>> Aeson.eitherDecode @(GYExtendedVerificationKey 'GYKeyRolePayment) "\"4081b0a03b2b66c74ed1b0de1d874ed820c31b2c0cbba632f4f1ca82a113ac7e18f5eadae23a5c4e65e65e9d4e3a1d0e5c54f0e0c04e6e85e1f7ea75db7c9f1e26\""
Left "Error in $: GeniusYield.Types.Key.extendedVerificationKeyFromRawBytesHex: unable to decode from bytes, given hex string \"4081b0a03b2b66c74ed1b0de1d874ed820c31b2c0cbba632f4f1ca82a113ac7e18f5eadae23a5c4e65e65e9d4e3a1d0e5c54f0e0c04e6e85e1f7ea75db7c9f1e26\", corresponding bytes \"@\\129\\176\\160;+f\\199N\\209\\176\\222\\GS\\135N\\216 \\195\\ESC,\\f\\187\\166\\&2\\244\\241\\202\\130\\161\\DC3\\172~\\CAN\\245\\234\\218\\226:\\\\Ne\\230^\\157N:\\GS\\SO\\\\T\\240\\224\\192Nn\\133\\225\\247\\234u\\219|\\159\\RS&\", error: error: xprv needs to be 64 bytes: got 65 bytes"
Instance details

Defined in GeniusYield.Types.Key

(SingGYKeyRoleI kr, SerialiseAsCBOR (GYExtendedVerificationKeyToApi kr)) => ToJSON (GYExtendedVerificationKey kr) #
>>> LBS8.putStrLn $ Aeson.encode ("4081b0a03b2b66c74ed1b0de1d874ed820c31b2c0cbba632f4f1ca82a113ac7e18f5eadae23a5c4e65e65e9d4e3a1d0e5c54f0e0c04e6e85e1f7ea75db7c9f1e" :: GYExtendedVerificationKey 'GYKeyRolePayment)
"58404081b0a03b2b66c74ed1b0de1d874ed820c31b2c0cbba632f4f1ca82a113ac7e18f5eadae23a5c4e65e65e9d4e3a1d0e5c54f0e0c04e6e85e1f7ea75db7c9f1e"
Instance details

Defined in GeniusYield.Types.Key

PrintfArg (GYExtendedVerificationKey kr) #
>>> Printf.printf "%s\n" ("4081b0a03b2b66c74ed1b0de1d874ed820c31b2c0cbba632f4f1ca82a113ac7e18f5eadae23a5c4e65e65e9d4e3a1d0e5c54f0e0c04e6e85e1f7ea75db7c9f1e" :: (GYExtendedVerificationKey 'GYKeyRolePayment))
4081b0a03b2b66c74ed1b0de1d874ed820c31b2c0cbba632f4f1ca82a113ac7e18f5eadae23a5c4e65e65e9d4e3a1d0e5c54f0e0c04e6e85e1f7ea75db7c9f1e
Instance details

Defined in GeniusYield.Types.Key

IsString (GYExtendedVerificationKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

SingGYKeyRoleI kr => Show (GYExtendedVerificationKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

Eq (GYExtendedVerificationKey kr) # 
Instance details

Defined in GeniusYield.Types.Key

extendedVerificationKeyFromRawBytesHex :: forall (kr :: GYKeyRole). ByteString -> Either String (GYExtendedVerificationKey kr) #

Decode from raw bytes represented as hex.

Payment verification key

type GYPaymentVerificationKey = GYVerificationKey 'GYKeyRolePayment #

type GYPaymentVerificationKey = GYVerificationKey 'GYKeyRolePayment
>>> "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605" :: GYPaymentVerificationKey
GYVerificationKey (GYKeyRolePayment) "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"

paymentVerificationKeyFromApi :: VerificationKey PaymentKey -> GYPaymentVerificationKey #

>>> paymentVerificationKeyFromApi "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"
GYVerificationKey (GYKeyRolePayment) "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"

paymentVerificationKeyToApi :: GYPaymentVerificationKey -> VerificationKey PaymentKey #

>>> paymentVerificationKeyToApi "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"
"0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"

Payment signing key

type GYPaymentSigningKey = GYSigningKey 'GYKeyRolePayment #

type GYPaymentSigningKey = GYSigningKey 'GYKeyRolePayment
>>> "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290" :: GYPaymentSigningKey
GYSigningKey (GYKeyRolePayment) "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"

type GYExtendedPaymentSigningKey = GYExtendedSigningKey 'GYKeyRolePayment #

type GYExtendedPaymentSigningKey = GYExtendedSigningKey 'GYKeyRolePayment

paymentSigningKeyFromApi :: SigningKey PaymentKey -> GYPaymentSigningKey #

>>> paymentSigningKeyFromApi "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"
GYSigningKey (GYKeyRolePayment) "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"

paymentSigningKeyToApi :: GYPaymentSigningKey -> SigningKey PaymentKey #

>>> paymentSigningKeyToApi "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"
"5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"

readPaymentSigningKey :: FilePath -> IO GYPaymentSigningKey #

Reads a payment signing key from a file.

readExtendedPaymentSigningKey :: FilePath -> IO GYExtendedPaymentSigningKey #

Reads extended payment signing key from file

writePaymentSigningKey :: FilePath -> GYPaymentSigningKey -> IO () #

Writes a payment signing key to a file.

writeExtendedPaymentSigningKey :: FilePath -> GYExtendedPaymentSigningKey -> IO () #

Writes a extended payment signing key to a file.

paymentVerificationKey :: GYPaymentSigningKey -> GYPaymentVerificationKey #

>>> paymentVerificationKey "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"
GYVerificationKey (GYKeyRolePayment) "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"

generatePaymentSigningKey :: IO GYPaymentSigningKey #

Generates a new random payment signing key.

Stake verification key

type GYStakeVerificationKey = GYVerificationKey 'GYKeyRoleStaking #

type GYStakeVerificationKey = GYVerificationKey 'GYKeyRoleStaking
>>> "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605" :: GYStakeVerificationKey
GYVerificationKey (GYKeyRoleStaking) "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"

stakeVerificationKeyFromApi :: VerificationKey StakeKey -> GYStakeVerificationKey #

>>> stakeVerificationKeyFromApi "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"
GYVerificationKey (GYKeyRoleStaking) "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"

stakeVerificationKeyToApi :: GYStakeVerificationKey -> VerificationKey StakeKey #

>>> stakeVerificationKeyToApi "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"
"0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"

Stake signing key

type GYStakeSigningKey = GYSigningKey 'GYKeyRoleStaking #

type GYStakeSigningKey = GYSigningKey 'GYKeyRoleStaking
>>> "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290" :: GYStakeSigningKey
GYSigningKey (GYKeyRoleStaking) "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"

type GYExtendedStakeSigningKey = GYExtendedSigningKey 'GYKeyRoleStaking #

type GYExtendedStakeSigningKey = GYEExtendedSigningKey 'GYKeyRoleStaking

stakeSigningKeyFromApi :: SigningKey StakeKey -> GYStakeSigningKey #

>>> stakeSigningKeyFromApi "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"
GYSigningKey (GYKeyRoleStaking) "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"

stakeSigningKeyToApi :: GYStakeSigningKey -> SigningKey StakeKey #

>>> stakeSigningKeyToApi "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"
"5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"

readStakeSigningKey :: FilePath -> IO GYStakeSigningKey #

Reads a stake signing key from a file.

readExtendedStakeSigningKey :: FilePath -> IO GYExtendedStakeSigningKey #

Reads extended stake signing key from file

writeStakeSigningKey :: FilePath -> GYStakeSigningKey -> IO () #

Writes a stake signing key to a file.

writeExtendedStakeSigningKey :: FilePath -> GYExtendedStakeSigningKey -> IO () #

Writes a extended stake signing key to a file.

stakeVerificationKey :: GYStakeSigningKey -> GYStakeVerificationKey #

>>> stakeVerificationKey "5ac75cb3435ef38c5bf15d11469b301b13729deb9595133a608fc0881fcec290"
GYVerificationKey (GYKeyRoleStaking) "0717bc56ed4897c3dde0690e3d9ce61e28a55f520fde454f6b5b61305b193605"

generateStakeSigningKey :: IO GYStakeSigningKey #

Generates a new random stake signing key.