Documentation ¶
Overview ¶
Package strkey is an implementation of StrKey, the address scheme for the HcnetNetwork.
Index ¶
- Constants
- Variables
- func Decode(expected VersionByte, src string) ([]byte, error)
- func Encode(version VersionByte, src []byte) (string, error)
- func IsValidEd25519PublicKey(i interface{}) bool
- func IsValidEd25519SecretSeed(i interface{}) bool
- func IsValidMuxedAccountEd25519PublicKey(s string) bool
- func MustDecode(expected VersionByte, src string) []byte
- func MustEncode(version VersionByte, src []byte) string
- type MuxedAccount
- type SignedPayload
- type VersionByte
Constants ¶
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 ¶
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
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.