strkey

package
v1.11.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2024 License: Apache-2.0, Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package strkey is an implementation of StrKey, the address scheme for the HcnetNetwork.

Index

Constants

View Source
const (
	//VersionByteAccountID is the version byte used for encoded hcnet addresses
	VersionByteAccountID VersionByte = 6 << 3 // Base32-encodes to 'G...'

	//VersionByteSeed is the version byte used for encoded hcnet seed
	VersionByteSeed = 18 << 3 // Base32-encodes to 'S...'

	//VersionByteMuxedAccount is the version byte used for encoded hcnet multiplexed addresses
	VersionByteMuxedAccount = 12 << 3 // Base32-encodes to 'M...'

	//VersionByteHashTx is the version byte used for encoded hcnet hashTx
	//signer keys.
	VersionByteHashTx = 19 << 3 // Base32-encodes to 'T...'

	//VersionByteHashX is the version byte used for encoded hcnet hashX
	//signer keys.
	VersionByteHashX = 23 << 3 // Base32-encodes to 'X...'

	//VersionByteSignedPayload is the version byte used for encoding "signed
	//payload" (CAP-40) signer keys.
	VersionByteSignedPayload = 15 << 3 // Base-32 encodes to 'P'

	//VersionByteContract is the version byte used for encoded hcnet contracts
	VersionByteContract = 2 << 3 // Base-32 encodes to 'C'
)

Variables

View Source
var ErrInvalidVersionByte = errors.New("invalid version byte")

ErrInvalidVersionByte is returned when the version byte from a provided strkey-encoded string is not one of the valid values.

Functions

func Decode

func Decode(expected VersionByte, src string) ([]byte, error)

Decode decodes the provided StrKey into a raw value, checking the checksum and ensuring the expected VersionByte (the version parameter) is the value actually encoded into the provided src string.

func Encode

func Encode(version VersionByte, src []byte) (string, error)

Encode encodes the provided data to a StrKey, using the provided version byte.

func IsValidEd25519PublicKey added in v1.11.1

func IsValidEd25519PublicKey(i interface{}) bool

IsValidEd25519PublicKey validates a hcnet public key

func IsValidEd25519SecretSeed added in v1.11.1

func IsValidEd25519SecretSeed(i interface{}) bool

IsValidEd25519SecretSeed validates a hcnet secret key

func IsValidMuxedAccountEd25519PublicKey added in v1.11.1

func IsValidMuxedAccountEd25519PublicKey(s string) bool

IsValidMuxedAccountEd25519PublicKey validates a Hcnet SEP-23 muxed address.

func MustDecode

func MustDecode(expected VersionByte, src string) []byte

MustDecode is like Decode, but panics on error

func MustEncode

func MustEncode(version VersionByte, src []byte) string

MustEncode is like Encode, but panics on error

Types

type MuxedAccount added in v1.11.1

type MuxedAccount struct {
	// contains filtered or unexported fields
}

func DecodeMuxedAccount added in v1.11.1

func DecodeMuxedAccount(address string) (*MuxedAccount, error)

DecodeMuxedAccount receives a muxed account M-address and parses it into a MuxedAccount object containing an ed25519 address and an id.

func (*MuxedAccount) AccountID added in v1.11.1

func (m *MuxedAccount) AccountID() (string, error)

AccountID returns the muxed account G-address according with the SEP-23 definition for multiplexed accounts.

func (*MuxedAccount) Address added in v1.11.1

func (m *MuxedAccount) Address() (string, error)

Address returns the muxed account M-address according with the SEP-23 definition for multiplexed accounts.

func (*MuxedAccount) ID added in v1.11.1

func (m *MuxedAccount) ID() uint64

ID returns the muxed account id according with the SEP-23 definition for multiplexed accounts.

func (*MuxedAccount) SetAccountID added in v1.11.1

func (m *MuxedAccount) SetAccountID(address string) error

SetAccountID populates the muxed account G-address.

func (*MuxedAccount) SetID added in v1.11.1

func (m *MuxedAccount) SetID(id uint64)

SetID populates the muxed account ID.

type SignedPayload added in v1.11.1

type SignedPayload struct {
	// contains filtered or unexported fields
}

func DecodeSignedPayload added in v1.11.1

func DecodeSignedPayload(address string) (*SignedPayload, error)

DecodeSignedPayload transforms a P... signer into a `SignedPayload` instance.

func NewSignedPayload added in v1.11.1

func NewSignedPayload(signerPublicKey string, payload []byte) (*SignedPayload, error)

NewSignedPayload creates a signed payload from an account ID (G... address) and a payload. The payload buffer is copied directly into the structure, so it should not be modified after construction.

func (*SignedPayload) Encode added in v1.11.1

func (sp *SignedPayload) Encode() (string, error)

Encode turns a signed payload structure into its StrKey equivalent.

func (*SignedPayload) Payload added in v1.11.1

func (sp *SignedPayload) Payload() []byte

func (*SignedPayload) Signer added in v1.11.1

func (sp *SignedPayload) Signer() string

type VersionByte

type VersionByte byte

VersionByte represents one of the possible prefix values for a StrKey base string--the string the when encoded using base32 yields a final StrKey.

func DecodeAny

func DecodeAny(src string) (VersionByte, []byte, error)

DecodeAny decodes the provided StrKey into a raw value, checking the checksum and if the version byte is one of allowed values.

func Version

func Version(src string) (VersionByte, error)

Version extracts and returns the version byte from the provided source string.

Directories

Path Synopsis
internal
crc16
Package crc16 is implementation according to CCITT standards.
Package crc16 is implementation according to CCITT standards.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL