Struct Object
pub struct Object(/* private fields */);
Implementations§
§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, ) -> Object
pub fn new_move(
o: MoveObject,
owner: Owner,
previous_transaction: TransactionDigest,
) -> Object
pub fn new_move( o: MoveObject, owner: Owner, previous_transaction: TransactionDigest, ) -> Object
Create a new Move object
pub fn new_package_from_data( data: Data, previous_transaction: TransactionDigest, ) -> Object
pub fn new_from_package( package: MovePackage, previous_transaction: TransactionDigest, ) -> Object
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<Object, 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<Object, ExecutionError>
pub fn new_package_for_testing( modules: &[CompiledModule], previous_transaction: TransactionDigest, dependencies: impl IntoIterator<Item = MovePackage>, ) -> Result<Object, ExecutionError>
pub fn new_system_package(
modules: &[CompiledModule],
version: SequenceNumber,
dependencies: Vec<ObjectID>,
previous_transaction: TransactionDigest,
) -> Object
pub fn new_system_package( modules: &[CompiledModule], version: SequenceNumber, dependencies: Vec<ObjectID>, previous_transaction: TransactionDigest, ) -> Object
Create a system package which is not subject to size limits. Panics if the object ID is not a known system package.
§impl Object
impl Object
pub 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) -> Object
pub fn immutable_for_testing() -> Object
Make a new random test shared object.
pub fn with_id_owner_gas_for_testing( id: ObjectID, owner: IotaAddress, gas: u64, ) -> Object
pub fn treasury_cap_for_testing( struct_tag: StructTag, treasury_cap: TreasuryCap, ) -> Object
pub fn coin_metadata_for_testing( struct_tag: StructTag, metadata: CoinMetadata, ) -> Object
pub fn with_object_owner_for_testing(id: ObjectID, owner: ObjectID) -> Object
pub fn with_id_owner_for_testing(id: ObjectID, owner: IotaAddress) -> Object
pub fn with_id_owner_version_for_testing( id: ObjectID, version: SequenceNumber, owner: IotaAddress, ) -> Object
pub fn with_owner_for_testing(owner: IotaAddress) -> Object
pub fn new_gas_with_balance_and_owner_for_testing(
value: u64,
owner: IotaAddress,
) -> Object
pub fn new_gas_with_balance_and_owner_for_testing( value: u64, owner: IotaAddress, ) -> Object
Generate a new gas coin worth value
with a random object ID and owner
For testing purposes only
pub fn new_gas_for_testing() -> Object
pub fn new_gas_for_testing() -> Object
Generate a new gas coin object with default balance and random owner.
Methods from Deref<Target = ObjectInner>§
pub 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)>
pub 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, ) -> (ObjectID, SequenceNumber, ObjectDigest)
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>
pub 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.
pub 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.
pub fn transfer(&mut self, new_owner: IotaAddress)
pub fn transfer(&mut self, new_owner: IotaAddress)
Change the owner of self
to new_owner
.
pub 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
pub fn get_move_template_type(&self) -> Result<TypeTag, IotaError>
pub fn get_move_template_type(&self) -> Result<TypeTag, IotaError>
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>(&'de self) -> Option<T>where
T: Deserialize<'de>,
Trait Implementations§
§impl<'de> Deserialize<'de> for Object
impl<'de> Deserialize<'de> for Object
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Object, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Object, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl From<&Object> for ObjectType
impl From<&Object> for ObjectType
§fn from(o: &Object) -> ObjectType
fn from(o: &Object) -> ObjectType
§impl From<Object> for ObjectOrTombstone
impl From<Object> for ObjectOrTombstone
§fn from(object: Object) -> ObjectOrTombstone
fn from(object: Object) -> ObjectOrTombstone
§impl From<Object> for ObjectReadResultKind
impl From<Object> for ObjectReadResultKind
§fn from(object: Object) -> ObjectReadResultKind
fn from(object: Object) -> ObjectReadResultKind
§impl From<Object> for ReceivingObjectReadResultKind
impl From<Object> for ReceivingObjectReadResultKind
§fn from(object: Object) -> ReceivingObjectReadResultKind
fn from(object: Object) -> ReceivingObjectReadResultKind
§impl From<ObjectInner> for Object
impl From<ObjectInner> for Object
§fn from(inner: ObjectInner) -> Object
fn from(inner: ObjectInner) -> Object
§impl From<PackageObject> for Object
impl From<PackageObject> for Object
§fn from(package_object_arc: PackageObject) -> Object
fn from(package_object_arc: PackageObject) -> Object
§impl Serialize for Object
impl Serialize for Object
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
§impl TryFrom<&Object> for CoinMetadata
impl TryFrom<&Object> for CoinMetadata
§impl TryFrom<&Object> for GasCoin
impl TryFrom<&Object> for GasCoin
§type Error = ExecutionError
type Error = ExecutionError
§impl TryFrom<&Object> for StakedIota
impl TryFrom<&Object> for StakedIota
§impl TryFrom<&Object> for TimelockedStakedIota
impl TryFrom<&Object> for TimelockedStakedIota
§impl TryFrom<Object> for CoinMetadata
impl TryFrom<Object> for CoinMetadata
§impl TryFrom<Object> for IotaCoinMetadata
impl TryFrom<Object> for IotaCoinMetadata
§impl TryFrom<Object> for TreasuryCap
impl TryFrom<Object> for TreasuryCap
§impl TryInto<Object> for IotaObjectData
impl TryInto<Object> for IotaObjectData
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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
§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
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<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.