Enum bitcoin::address::WitnessVersion
source · #[repr(u8)]pub enum WitnessVersion {
Show 17 variants
V0 = 0,
V1 = 1,
V2 = 2,
V3 = 3,
V4 = 4,
V5 = 5,
V6 = 6,
V7 = 7,
V8 = 8,
V9 = 9,
V10 = 10,
V11 = 11,
V12 = 12,
V13 = 13,
V14 = 14,
V15 = 15,
V16 = 16,
}
Expand description
Version of the witness program.
Helps limit possible versions of the witness according to the specification. If a plain u8
type was used instead it would mean that the version may be > 16, which would be incorrect.
First byte of scriptPubkey
in transaction output for transactions starting with opcodes
ranging from 0 to 16 (inclusive).
Variants§
V0 = 0
Initial version of witness program. Used for P2WPKH and P2WPK outputs
V1 = 1
Version of witness program used for Taproot P2TR outputs.
V2 = 2
Future (unsupported) version of witness program.
V3 = 3
Future (unsupported) version of witness program.
V4 = 4
Future (unsupported) version of witness program.
V5 = 5
Future (unsupported) version of witness program.
V6 = 6
Future (unsupported) version of witness program.
V7 = 7
Future (unsupported) version of witness program.
V8 = 8
Future (unsupported) version of witness program.
V9 = 9
Future (unsupported) version of witness program.
V10 = 10
Future (unsupported) version of witness program.
V11 = 11
Future (unsupported) version of witness program.
V12 = 12
Future (unsupported) version of witness program.
V13 = 13
Future (unsupported) version of witness program.
V14 = 14
Future (unsupported) version of witness program.
V15 = 15
Future (unsupported) version of witness program.
V16 = 16
Future (unsupported) version of witness program.
Implementations§
source§impl WitnessVersion
impl WitnessVersion
sourcepub fn to_num(self) -> u8
pub fn to_num(self) -> u8
Returns integer version number representation for a given WitnessVersion
value.
NB: this is not the same as an integer representation of the opcode signifying witness version in bitcoin script. Thus, there is no function to directly convert witness version into a byte since the conversion requires context (bitcoin script or just a version number).
sourcepub fn bech32_variant(&self) -> Variant
pub fn bech32_variant(&self) -> Variant
Determines the checksum variant. See BIP-0350 for specification.
Trait Implementations§
source§impl Clone for WitnessVersion
impl Clone for WitnessVersion
source§fn clone(&self) -> WitnessVersion
fn clone(&self) -> WitnessVersion
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WitnessVersion
impl Debug for WitnessVersion
source§impl Display for WitnessVersion
impl Display for WitnessVersion
Prints WitnessVersion
number (from 0 to 16) as integer, without
any prefix or suffix.
source§impl From<WitnessVersion> for All
impl From<WitnessVersion> for All
source§fn from(version: WitnessVersion) -> All
fn from(version: WitnessVersion) -> All
Converts WitnessVersion
instance into corresponding Bitcoin scriptopcode (OP_0
..OP_16
).
source§impl From<WitnessVersion> for u5
impl From<WitnessVersion> for u5
source§fn from(version: WitnessVersion) -> Self
fn from(version: WitnessVersion) -> Self
Converts WitnessVersion
instance into corresponding Bech32(m) u5-value (bech32::u5
).
source§impl FromStr for WitnessVersion
impl FromStr for WitnessVersion
source§impl Hash for WitnessVersion
impl Hash for WitnessVersion
source§impl Ord for WitnessVersion
impl Ord for WitnessVersion
source§fn cmp(&self, other: &WitnessVersion) -> Ordering
fn cmp(&self, other: &WitnessVersion) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq for WitnessVersion
impl PartialEq for WitnessVersion
source§fn eq(&self, other: &WitnessVersion) -> bool
fn eq(&self, other: &WitnessVersion) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for WitnessVersion
impl PartialOrd for WitnessVersion
source§fn partial_cmp(&self, other: &WitnessVersion) -> Option<Ordering>
fn partial_cmp(&self, other: &WitnessVersion) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl TryFrom<All> for WitnessVersion
impl TryFrom<All> for WitnessVersion
source§fn try_from(opcode: All) -> Result<Self, Self::Error>
fn try_from(opcode: All) -> Result<Self, Self::Error>
Converts bitcoin script opcode into WitnessVersion
variant.
Returns
Version of the Witness program (for opcodes in range of OP_0
..OP_16
).
Errors
If the opcode does not correspond to any witness version, errors with
Error::MalformedWitnessVersion
.
source§impl<'a> TryFrom<Instruction<'a>> for WitnessVersion
impl<'a> TryFrom<Instruction<'a>> for WitnessVersion
source§fn try_from(instruction: Instruction<'_>) -> Result<Self, Self::Error>
fn try_from(instruction: Instruction<'_>) -> Result<Self, Self::Error>
Converts bitcoin script Instruction
(parsed opcode) into WitnessVersion
variant.
Returns
Version of the Witness program for Instruction::Op
and Instruction::PushBytes
with
byte value within 1..=16
range.
Errors
If the opcode does not correspond to any witness version, errors with
Error::MalformedWitnessVersion
for the rest of opcodes.
source§impl TryFrom<u5> for WitnessVersion
impl TryFrom<u5> for WitnessVersion
source§fn try_from(value: u5) -> Result<Self, Self::Error>
fn try_from(value: u5) -> Result<Self, Self::Error>
Converts 5-bit unsigned integer value matching single symbol from Bech32(m) address encoding
(bech32::u5
) into WitnessVersion
variant.
Returns
Version of the Witness program.
Errors
If the integer does not correspond to any witness version, errors with
Error::InvalidWitnessVersion
.
source§impl TryFrom<u8> for WitnessVersion
impl TryFrom<u8> for WitnessVersion
source§fn try_from(no: u8) -> Result<Self, Self::Error>
fn try_from(no: u8) -> Result<Self, Self::Error>
Converts an 8-bit unsigned integer value into WitnessVersion
variant.
Returns
Version of the Witness program.
Errors
If the integer does not correspond to any witness version, errors with
Error::InvalidWitnessVersion
.