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 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 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
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<String> for AddressOrScriptHash
impl From<String> for AddressOrScriptHash
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§impl Serialize for AddressOrScriptHash
impl Serialize 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 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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
Converts
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>
Converts
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 more