DA.Crypto.Text

Functions for working with Crypto builtins. For example, as used to implement CCTP functionality.

Typeclasses

class HasToHex a where

toHex

: a -> BytesHex

Converts a typed data value into a hex encoded string.

instance HasToHex Party

instance HasToHex Int

instance HasToHex Text

class HasFromHex a where

fromHex

: BytesHex -> a

Converts a hex encoded string into a typed data value.

instance HasFromHex (Optional Party)

instance HasFromHex (Optional Int)

instance HasFromHex (Optional Text)

Data Types

type BytesHex

= Text

type PublicKeyHex

= Text

A DER formatted public key to be used for ECDSA signature verification

type SignatureHex

= Text

A DER formatted SECP256K1 signature

Functions

isHex

: Text -> Bool

isHex is True if t is not empty and consists only of hex or hexadecimal characters.

keccak256

: BytesHex -> BytesHex

Computes the KECCAK256 hash of the UTF8 bytes of the Text, and returns it in its hex-encoded form. The hex encoding uses lowercase letters.

secp256k1

: SignatureHex -> BytesHex -> PublicKeyHex -> Bool

Validate the SECP256K1 signature given a hex encoded message and a hex encoded DER formatted public key.

numericViaStringToHex

: NumericScale n => Numeric n -> BytesHex

numericViaStringFromHex

: NumericScale n => BytesHex -> Optional (Numeric n)

byteCount

: BytesHex -> Int

Number of bytes present in a byte encoded string.

minBytes32Hex

: BytesHex

Minimum Bytes32 hex value

maxBytes32Hex

: BytesHex

Maximum Bytes32 hex value

isBytes32Hex

: BytesHex -> Bool

Validate that the byte encoded string is Bytes32Hex

minUInt32Hex

: BytesHex

Minimum UInt32 hex value

maxUInt32Hex

: BytesHex

Maximum UInt32 hex value

isUInt32Hex

: BytesHex -> Bool

Validate that the byte encoded string is UInt32Hex

minUInt64Hex

: BytesHex

Minimum UInt64 hex value

maxUInt64Hex

: BytesHex

Maximum UInt64 hex value

isUInt64Hex

: BytesHex -> Bool

Validate that the byte encoded string is UInt64Hex

minUInt256Hex

: BytesHex

Minimum UInt256 hex value

maxUInt256Hex

: BytesHex

Maximum UInt256 hex value

isUInt256Hex

: BytesHex -> Bool

Validate that the byte encoded string is UInt256Hex

packHexBytes

: BytesHex -> Int -> Optional BytesHex

Pack a byte encoded string to a given byte count size. If the byte string is shorter than the pad size, then prefix with 00 byte strings. If the byte string is larger, then truncate the byte string.

sliceHexBytes

: BytesHex -> Int -> Int -> Either Text BytesHex

Extract the byte string starting at startByte up to, but excluding, endByte. Byte indexing starts at 1.