strkey

package
v0.1.2 Latest Latest
Warning

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

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

Documentation

Overview

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

Index

Constants

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

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

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

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

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

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

func IsValidEd25519PublicKey(i interface{}) bool

IsValidEd25519PublicKey validates a diamcircle public key

func IsValidEd25519SecretSeed

func IsValidEd25519SecretSeed(i interface{}) bool

IsValidEd25519SecretSeed validates a diamcircle secret key

func IsValidMuxedAccountEd25519PublicKey

func IsValidMuxedAccountEd25519PublicKey(s string) bool

IsValidMuxedAccountEd25519PublicKey validates a Diamcircle 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

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

func DecodeMuxedAccount

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

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

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

func (m *MuxedAccount) ID() uint64

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

func (*MuxedAccount) SetAccountID

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

SetAccountID populates the muxed account G-address.

func (*MuxedAccount) SetID

func (m *MuxedAccount) SetID(id uint64)

SetID populates the muxed account ID.

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