sdkhelper

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2025 License: MIT Imports: 15 Imported by: 0

Documentation

Overview

ref; https://github.com/cosmos/btcutil/blob/master/bech32/bech32.go

Copyright (c) 2019 The Decred developers Use of this source code is governed by an ISC license that can be found in the LICENSE file. https://github.com/cosmos/btcutil/blob/master/bech32/error.go

Index

Constants

View Source
const Bn254 = "/cosmos.crypto.bn254.PubKey"
View Source
const Ed25519 = "/cosmos.crypto.ed25519.PubKey"
View Source
const MaxLengthBIP173 = 90

MaxLengthBIP173 is the maximum length of bech32-encoded address defined by BIP-173.

View Source
const Secp256k1 = "/cosmos.crypto.secp256k1.PubKey"
View Source
const TendermintSecp256k1 = "tendermint/PubKeySecp256k1"
View Source
const VECommitFlag = tmtypes.BlockIDFlagCommit

Variables

This section is empty.

Functions

func ConvertAndEncode

func ConvertAndEncode(hrp string, data []byte) (string, error)

ConvertAndEncode converts from a base64 encoded byte string to base32 encoded byte string and then to bech32.

func ConvertBits

func ConvertBits(data []byte, fromBits, toBits uint8, pad bool) ([]byte, error)

ConvertBits converts a byte slice where each byte is encoding fromBits bits, to a byte slice where each byte is encoding toBits bits.

func Decode

func Decode(bech string, limit int) (string, []byte, error)

Decode decodes a bech32 encoded string, returning the human-readable part and the data part excluding the checksum.

Note that the returned data is 5-bit (base32) encoded and the human-readable part will be lowercase.

func DecodeAndConvert

func DecodeAndConvert(bech string) (string, []byte, error)

DecodeAndConvert decodes a bech32 encoded string and converts to base64 encoded bytes.

func DecodeNoLimit

func DecodeNoLimit(bech string) (string, []byte, error)

DecodeNoLimit decodes a bech32 encoded string, returning the human-readable part and the data part excluding the checksum. This function does NOT validate against the BIP-173 maximum length allowed for bech32 strings and is meant for use in custom applications (such as lightning network payment requests), NOT on-chain addresses.

Note that the returned data is 5-bit (base32) encoded and the human-readable part will be lowercase.

func DecodePrices

func DecodePrices(decodedBz []byte) (int, error)

for this feature, we should add dependency about connect; vetypes "github.com/skip-mev/slinky/abci/ve/types" NOTE: UNUSED FUNCTION

func DecodeToBase256

func DecodeToBase256(bech string) (string, []byte, error)

DecodeToBase256 decodes a bech32-encoded string into its associated human-readable part (HRP) and base32-encoded data, converts that data to a base256-encoded byte slice and returns it along with the lowercase HRP.

func DecodeUnsafe

func DecodeUnsafe(bech string) (string, []byte, []byte, error)

DecodeUnsafe decodes a bech32 encoded string, returning the human-readable part, the data part (excluding the checksum) and the checksum. This function does NOT validate against the BIP-173 maximum length allowed for bech32 strings and is meant for use in custom applications (such as lightning network payment requests), NOT on-chain addresses. This function assumes the given string includes lowercase letters only, so if not, you should call Normalize first.

Note that the returned data is 5-bit (base32) encoded and the human-readable part will be lowercase.

func DecodingVoteExtensionTx

func DecodingVoteExtensionTx(veTx string) ([]types.VoteExtension, error)

func Encode

func Encode(hrp string, data []byte) (string, error)

Encode encodes a byte slice into a bech32 string with the given human-readable part (HRP). The HRP will be converted to lowercase if needed since mixed cased encodings are not permitted and lowercase is used for checksum purposes. Note that the bytes must each encode 5 bits (base32).

func EncodeFromBase256

func EncodeFromBase256(hrp string, data []byte) (string, error)

EncodeFromBase256 converts a base256-encoded byte slice into a base32-encoded byte slice and then encodes it into a bech32 string with the given human-readable part (HRP). The HRP will be converted to lowercase if needed since mixed cased encodings are not permitted and lowercase is used for checksum purposes.

func ExportBech32ValconsPrefix

func ExportBech32ValconsPrefix(bech32ValoperPrefix string) (string, error)

NOTE: this is not cosmos-sdk native. so, I placed this function into uptime package parse valcons prefix with valoper address

func IsProposerAddress

func IsProposerAddress(str string) bool

func MakeBLSPubkey

func MakeBLSPubkey(cometbftPubKey string) (string, error)

func MakeProposerAddress

func MakeProposerAddress(keyType string, decodedPubkey []byte) (string, error)

func MakeValconsAddressFromPubeky

func MakeValconsAddressFromPubeky(pubkey string, hrp string) (
	string,
	error,
)

NOTE: only support ed25519 key type for ICS

func MustDecompress

func MustDecompress(bz []byte) ([]byte, error)

func Normalize

func Normalize(bech *string) (bool, error)

Normalize converts the uppercase letters to lowercase in string, because Bech32 standard uses only the lowercase for of string for checksum calculation. If conversion occurs during function call, `true` will be returned.

Mixed case is NOT allowed.

func ProposerAddressFromPublicKey

func ProposerAddressFromPublicKey(pubKey string) (string, error)

func VerifyChecksum

func VerifyChecksum(hrp string, values []byte, checksum []byte) bool

VerifyChecksum verifies whether the bech32 string specified by the provided hrp and payload data (encoded as 5 bits per element byte slice) are validated by the given checksum.

For more details on the checksum verification, please refer to BIP 173.

Types

type ErrInvalidBitGroups

type ErrInvalidBitGroups struct{}

ErrInvalidBitGroups is returned when conversion is attempted between byte slices using bit-per-element of unsupported value.

func (ErrInvalidBitGroups) Error

func (e ErrInvalidBitGroups) Error() string

type ErrInvalidCharacter

type ErrInvalidCharacter rune

ErrInvalidCharacter is returned when the bech32 string has a character outside the range of the supported charset.

func (ErrInvalidCharacter) Error

func (e ErrInvalidCharacter) Error() string

type ErrInvalidChecksum

type ErrInvalidChecksum struct {
	Expected string
	Actual   string
}

ErrInvalidChecksum is returned when the extracted checksum of the string is different than what was expected.

func (ErrInvalidChecksum) Error

func (e ErrInvalidChecksum) Error() string

type ErrInvalidDataByte

type ErrInvalidDataByte byte

ErrInvalidDataByte is returned when a byte outside the range required for conversion into a string was found.

func (ErrInvalidDataByte) Error

func (e ErrInvalidDataByte) Error() string

type ErrInvalidIncompleteGroup

type ErrInvalidIncompleteGroup struct{}

ErrInvalidIncompleteGroup is returned when then byte slice used as input has data of wrong length.

func (ErrInvalidIncompleteGroup) Error

type ErrInvalidLength

type ErrInvalidLength int

ErrInvalidLength is returned when the bech32 string has an invalid length given the BIP-173 defined restrictions.

func (ErrInvalidLength) Error

func (e ErrInvalidLength) Error() string

type ErrInvalidSeparatorIndex

type ErrInvalidSeparatorIndex int

ErrInvalidSeparatorIndex is returned when the separator character '1' is in an invalid position in the bech32 string.

func (ErrInvalidSeparatorIndex) Error

func (e ErrInvalidSeparatorIndex) Error() string

type ErrMixedCase

type ErrMixedCase struct{}

ErrMixedCase is returned when the bech32 string has both lower and uppercase characters.

func (ErrMixedCase) Error

func (e ErrMixedCase) Error() string

type ErrNonCharsetChar

type ErrNonCharsetChar rune

ErrNonCharsetChar is returned when a character outside of the specific bech32 charset is used in the string.

func (ErrNonCharsetChar) Error

func (e ErrNonCharsetChar) Error() string

Jump to

Keyboard shortcuts

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