bech32: add new set of constants/versions to be used for bech32m
This commit is contained in:
parent
e2ba6805a8
commit
3ecfc35771
1 changed files with 43 additions and 0 deletions
43
bech32/version.go
Normal file
43
bech32/version.go
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
package bech32
|
||||||
|
|
||||||
|
// ChecksumConst is a type that represents the currently defined bech32
|
||||||
|
// checksum constants.
|
||||||
|
type ChecksumConst int
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Version0Const is the original constant used in the checksum
|
||||||
|
// verification for bech32.
|
||||||
|
Version0Const ChecksumConst = 1
|
||||||
|
|
||||||
|
// VersionMConst is the new constant used for bech32m checksum
|
||||||
|
// verification.
|
||||||
|
VersionMConst ChecksumConst = 0x2bc830a3
|
||||||
|
)
|
||||||
|
|
||||||
|
// Version defines the current set of bech32 versions.
|
||||||
|
type Version uint8
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Version0 defines the original bech version.
|
||||||
|
Version0 Version = iota
|
||||||
|
|
||||||
|
// VersionM is the new bech32 version defined in BIP-350, also known as
|
||||||
|
// bech32m.
|
||||||
|
VersionM
|
||||||
|
|
||||||
|
// VersionUnknown denotes an unknown bech version.
|
||||||
|
VersionUnknown
|
||||||
|
)
|
||||||
|
|
||||||
|
// VersionToConsts maps bech32 versions to the checksum constant to be used
|
||||||
|
// when encoding, and asserting a particular version when decoding.
|
||||||
|
var VersionToConsts = map[Version]ChecksumConst{
|
||||||
|
Version0: Version0Const,
|
||||||
|
VersionM: VersionMConst,
|
||||||
|
}
|
||||||
|
|
||||||
|
// ConstsToVersion maps a bech32 constant to the version it's associated with.
|
||||||
|
var ConstsToVersion = map[ChecksumConst]Version{
|
||||||
|
Version0Const: Version0,
|
||||||
|
VersionMConst: VersionM,
|
||||||
|
}
|
Loading…
Reference in a new issue