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 copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
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