Struct iota_types::object::Object
source · pub struct Object(/* private fields */);
Implementations§
source§impl Object
impl Object
pub fn into_inner(self) -> ObjectInner
pub fn as_inner(&self) -> &ObjectInner
pub fn owner(&self) -> &Owner
pub fn new_from_genesis( data: Data, owner: Owner, previous_transaction: TransactionDigest, ) -> Self
sourcepub fn new_move(
o: MoveObject,
owner: Owner,
previous_transaction: TransactionDigest,
) -> Self
pub fn new_move( o: MoveObject, owner: Owner, previous_transaction: TransactionDigest, ) -> Self
Create a new Move object
pub fn new_package_from_data( data: Data, previous_transaction: TransactionDigest, ) -> Self
pub fn new_from_package( package: MovePackage, previous_transaction: TransactionDigest, ) -> Self
pub fn new_package<'p>( modules: &[CompiledModule], previous_transaction: TransactionDigest, max_move_package_size: u64, move_binary_format_version: u32, dependencies: impl IntoIterator<Item = &'p MovePackage>, ) -> Result<Self, ExecutionError>
pub fn new_upgraded_package<'p>( previous_package: &MovePackage, new_package_id: ObjectID, modules: &[CompiledModule], previous_transaction: TransactionDigest, protocol_config: &ProtocolConfig, dependencies: impl IntoIterator<Item = &'p MovePackage>, ) -> Result<Self, ExecutionError>
pub fn new_package_for_testing( modules: &[CompiledModule], previous_transaction: TransactionDigest, dependencies: impl IntoIterator<Item = MovePackage>, ) -> Result<Self, ExecutionError>
sourcepub fn new_system_package(
modules: &[CompiledModule],
version: SequenceNumber,
dependencies: Vec<ObjectID>,
previous_transaction: TransactionDigest,
) -> Self
pub fn new_system_package( modules: &[CompiledModule], version: SequenceNumber, dependencies: Vec<ObjectID>, previous_transaction: TransactionDigest, ) -> Self
Create a system package which is not subject to size limits. Panics if the object ID is not a known system package.
source§impl Object
impl Object
sourcepub fn get_total_iota(
&self,
layout_resolver: &mut dyn LayoutResolver,
) -> Result<u64, IotaError>
pub fn get_total_iota( &self, layout_resolver: &mut dyn LayoutResolver, ) -> Result<u64, IotaError>
Get the total amount of IOTA embedded in self
, including both Move
objects and the storage rebate
pub fn immutable_with_id_for_testing(id: ObjectID) -> Self
pub fn immutable_for_testing() -> Self
Make a new random test shared object.
pub fn with_id_owner_gas_for_testing( id: ObjectID, owner: IotaAddress, gas: u64, ) -> Self
pub fn treasury_cap_for_testing( struct_tag: StructTag, treasury_cap: TreasuryCap, ) -> Self
pub fn coin_metadata_for_testing( struct_tag: StructTag, metadata: CoinMetadata, ) -> Self
pub fn with_object_owner_for_testing(id: ObjectID, owner: ObjectID) -> Self
pub fn with_id_owner_for_testing(id: ObjectID, owner: IotaAddress) -> Self
pub fn with_id_owner_version_for_testing( id: ObjectID, version: SequenceNumber, owner: IotaAddress, ) -> Self
pub fn with_owner_for_testing(owner: IotaAddress) -> Self
sourcepub fn new_gas_with_balance_and_owner_for_testing(
value: u64,
owner: IotaAddress,
) -> Self
pub fn new_gas_with_balance_and_owner_for_testing( value: u64, owner: IotaAddress, ) -> Self
Generate a new gas coin worth value
with a random object ID and owner
For testing purposes only
sourcepub fn new_gas_for_testing() -> Self
pub fn new_gas_for_testing() -> Self
Generate a new gas coin object with default balance and random owner.
Methods from Deref<Target = ObjectInner>§
sourcepub fn is_system_package(&self) -> bool
pub fn is_system_package(&self) -> bool
Returns true if the object is a system package.
pub fn is_immutable(&self) -> bool
pub fn is_address_owned(&self) -> bool
pub fn is_child_object(&self) -> bool
pub fn get_single_owner(&self) -> Option<IotaAddress>
pub fn get_owner_and_id(&self) -> Option<(Owner, ObjectID)>
sourcepub fn is_package(&self) -> bool
pub fn is_package(&self) -> bool
Return true if this object is a Move package, false if it is a Move value
pub fn compute_object_reference(&self) -> ObjectRef
pub fn digest(&self) -> ObjectDigest
pub fn id(&self) -> ObjectID
pub fn version(&self) -> SequenceNumber
pub fn type_(&self) -> Option<&MoveObjectType>
pub fn struct_tag(&self) -> Option<StructTag>
pub fn is_coin(&self) -> bool
pub fn is_gas_coin(&self) -> bool
pub fn as_coin_maybe(&self) -> Option<Coin>
pub fn as_timelock_balance_maybe(&self) -> Option<TimeLock<Balance>>
pub fn coin_type_maybe(&self) -> Option<TypeTag>
sourcepub fn get_coin_value_unsafe(&self) -> u64
pub fn get_coin_value_unsafe(&self) -> u64
Return the value: u64
field of a Coin<T>
type.
Useful for reading the coin without deserializing the object into a Move
value It is the caller’s responsibility to check that self
is a
coin–this function may panic or do something unexpected otherwise.
sourcepub fn object_size_for_gas_metering(&self) -> usize
pub fn object_size_for_gas_metering(&self) -> usize
Approximate size of the object in bytes. This is used for gas metering. This will be slgihtly different from the serialized size, but we also don’t want to serialize the object just to get the size. This approximation should be good enough for gas metering.
sourcepub fn transfer(&mut self, new_owner: IotaAddress)
pub fn transfer(&mut self, new_owner: IotaAddress)
Change the owner of self
to new_owner
.
sourcepub fn get_layout(
&self,
resolver: &impl GetModule,
) -> Result<Option<MoveStructLayout>, IotaError>
pub fn get_layout( &self, resolver: &impl GetModule, ) -> Result<Option<MoveStructLayout>, IotaError>
Get a MoveStructLayout
for self
.
The resolver
value must contain the module that declares self.type_
and the (transitive) dependencies of self.type_
in order for this
to succeed. Failure will result in an ObjectSerializationError
sourcepub fn get_move_template_type(&self) -> IotaResult<TypeTag>
pub fn get_move_template_type(&self) -> IotaResult<TypeTag>
Treat the object type as a Move struct with one type parameter,
like this: S<T>
.
Returns the inner parameter type T
.
pub fn to_rust<'de, T: Deserialize<'de>>(&'de self) -> Option<T>
Trait Implementations§
source§impl<'de> Deserialize<'de> for Object
impl<'de> Deserialize<'de> for Object
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<&Object> for ObjectType
impl From<&Object> for ObjectType
source§impl From<Object> for ObjectOrTombstone
impl From<Object> for ObjectOrTombstone
source§impl From<Object> for ObjectReadResultKind
impl From<Object> for ObjectReadResultKind
source§impl From<Object> for ReceivingObjectReadResultKind
impl From<Object> for ReceivingObjectReadResultKind
source§impl From<ObjectInner> for Object
impl From<ObjectInner> for Object
source§fn from(inner: ObjectInner) -> Self
fn from(inner: ObjectInner) -> Self
source§impl From<PackageObject> for Object
impl From<PackageObject> for Object
source§fn from(package_object_arc: PackageObject) -> Self
fn from(package_object_arc: PackageObject) -> Self
source§impl PartialEq for Object
impl PartialEq for Object
source§impl TryFrom<&Object> for CoinMetadata
impl TryFrom<&Object> for CoinMetadata
source§impl TryFrom<&Object> for GasCoin
impl TryFrom<&Object> for GasCoin
§type Error = ExecutionError
type Error = ExecutionError
source§impl TryFrom<&Object> for StakedIota
impl TryFrom<&Object> for StakedIota
source§impl TryFrom<&Object> for TimelockedStakedIota
impl TryFrom<&Object> for TimelockedStakedIota
source§impl TryFrom<Object> for CoinMetadata
impl TryFrom<Object> for CoinMetadata
source§impl TryFrom<Object> for TreasuryCap
impl TryFrom<Object> for TreasuryCap
impl Eq for Object
impl StructuralPartialEq for Object
Auto Trait Implementations§
impl Freeze for Object
impl RefUnwindSafe for Object
impl Send for Object
impl Sync for Object
impl Unpin for Object
impl UnwindSafe for Object
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self
to type T
. The semantics of numeric casting with the as
operator are followed, so <T as As>::as_::<U>
can be used in the same way as T as U
for numeric conversions. Read more§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§impl<T> CallHasher for T
impl<T> CallHasher for T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> ConvertTo<T> for Twhere
T: Send,
impl<T> ConvertTo<T> for Twhere
T: Send,
fn convert(self) -> Result<T, Error>
fn convert_unchecked(self) -> T
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.§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
§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
key
and return true
if they are equal.§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
§impl<T> FmtForward for T
impl<T> FmtForward for T
§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.§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.§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.§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.§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.§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.§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.§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.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§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> 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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a Request
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§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 more§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 more§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
§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
§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.§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.§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.§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§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 more§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 more§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 more§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 more§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 more§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 more§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.§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.§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.§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.§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.§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.§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.