pub enum AddressOrScriptHash {
Address(Address),
ScriptHash(H160),
}Expand description
An enum that can represent either a blockchain Address or a ScriptHash,
offering flexibility for APIs that can work with either.
Variants§
Implementations§
Source§impl AddressOrScriptHash
impl AddressOrScriptHash
Sourcepub fn try_from_script_hash_bytes(bytes: &[u8]) -> Result<Self, TypeError>
pub fn try_from_script_hash_bytes(bytes: &[u8]) -> Result<Self, TypeError>
Creates an AddressOrScriptHash from script hash bytes, rejecting invalid lengths.
Sourcepub fn address(&self) -> Address
pub fn address(&self) -> Address
Retrieves the Address representation. If the instance is a ScriptHash, converts it to an Address.
§Examples
use primitive_types::H160;
use neo3::neo_types::AddressOrScriptHash;
let script_hash = AddressOrScriptHash::ScriptHash(H160::repeat_byte(0x01));
let address = script_hash.address();
// The address will be a valid Neo address derived from the script hash
assert!(address.starts_with("N"));Sourcepub fn try_script_hash(&self) -> Result<H160, TypeError>
pub fn try_script_hash(&self) -> Result<H160, TypeError>
Retrieves the ScriptHash representation. If the instance is an Address, converts it to a ScriptHash.
§Errors
Returns TypeError::InvalidAddress when the stored address is invalid.
Sourcepub fn script_hash(&self) -> H160
pub fn script_hash(&self) -> H160
Retrieves the ScriptHash representation. If the instance is an Address, converts it to a ScriptHash.
§Examples
use primitive_types::H160;
use neo3::neo_types::AddressOrScriptHash;
let address = AddressOrScriptHash::Address("NNLi44dJNXtDNSBkofB48aTVYtb1zZrNEs".to_string());
let script_hash = address.script_hash();
// The script hash will be derived from the address
assert!(script_hash != H160::zero());Trait Implementations§
Source§impl Clone for AddressOrScriptHash
impl Clone for AddressOrScriptHash
Source§fn clone(&self) -> AddressOrScriptHash
fn clone(&self) -> AddressOrScriptHash
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AddressOrScriptHash
impl Debug for AddressOrScriptHash
Source§impl Default for AddressOrScriptHash
impl Default for AddressOrScriptHash
Source§impl<'de> Deserialize<'de> for AddressOrScriptHash
impl<'de> Deserialize<'de> for AddressOrScriptHash
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl From<String> for AddressOrScriptHash
impl From<String> for AddressOrScriptHash
Source§fn from(s: Address) -> Self
fn from(s: Address) -> Self
Allows creating an AddressOrScriptHash directly from an Address.
§Examples
use neo3::neo_types::AddressOrScriptHash;
let from_address = AddressOrScriptHash::from("NNLi44dJNXtDNSBkofB48aTVYtb1zZrNEs".to_string());
assert!(matches!(from_address, AddressOrScriptHash::Address(_)));Source§impl From<Vec<u8>> for AddressOrScriptHash
impl From<Vec<u8>> for AddressOrScriptHash
Source§fn from(s: Bytes) -> Self
fn from(s: Bytes) -> Self
Allows creating an AddressOrScriptHash from a Bytes array, automatically converting it into a ScriptHash.
§Examples
use neo3::neo_types::{AddressOrScriptHash, Bytes};
let bytes: Bytes = vec![0xde, 0xad, 0xbe, 0xef, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10];
let from_bytes = AddressOrScriptHash::from(bytes);
assert!(matches!(from_bytes, AddressOrScriptHash::ScriptHash(_)));Source§impl Hash for AddressOrScriptHash
impl Hash for AddressOrScriptHash
Source§fn hash<H: Hasher>(&self, state: &mut H)
fn hash<H: Hasher>(&self, state: &mut H)
Implements the Hash trait to allow AddressOrScriptHash
instances to be used as keys in hash maps or elements in hash sets.
§Examples
use std::collections::HashSet;
use neo3::neo_types::AddressOrScriptHash;
let mut set = HashSet::new();
set.insert(AddressOrScriptHash::Address("myAddress".into()));Source§impl PartialEq for AddressOrScriptHash
impl PartialEq for AddressOrScriptHash
Source§fn eq(&self, other: &AddressOrScriptHash) -> bool
fn eq(&self, other: &AddressOrScriptHash) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for AddressOrScriptHash
impl Serialize for AddressOrScriptHash
Source§impl TryFrom<&[u8]> for AddressOrScriptHash
impl TryFrom<&[u8]> for AddressOrScriptHash
impl Eq for AddressOrScriptHash
impl StructuralPartialEq for AddressOrScriptHash
Auto Trait Implementations§
impl Freeze for AddressOrScriptHash
impl RefUnwindSafe for AddressOrScriptHash
impl Send for AddressOrScriptHash
impl Sync for AddressOrScriptHash
impl Unpin for AddressOrScriptHash
impl UnsafeUnpin for AddressOrScriptHash
impl UnwindSafe for AddressOrScriptHash
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.