#[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 from_u5(value: u5) -> Result<Self, Error>
pub fn from_u5(value: u5) -> Result<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.
Sourcepub fn from_num(no: u8) -> Result<Self, Error>
pub fn from_num(no: u8) -> Result<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.
Sourcepub fn from_opcode(opcode: All) -> Result<Self, Error>
pub fn from_opcode(opcode: All) -> Result<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.
Sourcepub fn from_instruction(instruction: Instruction<'_>) -> Result<Self, Error>
pub fn from_instruction(instruction: Instruction<'_>) -> Result<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.
Sourcepub fn into_num(self) -> u8
pub fn into_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
Prints WitnessVersion number (from 0 to 16) as integer, without
any prefix or suffix.
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).