pub struct RuntimeBalances { /* private fields */ }
Expand description

Structure to encapsulate asset balances for VM runtime

Implementations§

source§

impl RuntimeBalances

source

pub fn try_from_iter<T>(iter: T) -> Result<Self, CheckError>where T: IntoIterator<Item = (AssetId, Word)>,

Attempt to create a set of runtime balances from an iterator of pairs.

This will fail if, and only if, the provided asset/balance pair isn’t consistent or a balance overflows.

source

pub fn balance(&self, asset: &AssetId) -> Option<Word>

Fetch the balance of a given Id, if set.

source

pub fn checked_balance_add( &mut self, memory: &mut [u8], asset: &AssetId, value: Word ) -> Option<Word>

Attempt to add the balance of an asset, updating the VM memory in the appropriate offset

Note: This will not append a new asset into the set since all the assets must be created during VM initialization and any additional asset would imply reordering the memory representation of the balances since they must always be ordered, as in the protocol.

source

pub fn checked_balance_sub( &mut self, memory: &mut [u8], asset: &AssetId, value: Word ) -> Option<Word>

Attempt to subtract the balance of an asset, updating the VM memory in the appropriate offset

source

pub fn to_vm<S, Tx>(self, vm: &mut Interpreter<S, Tx>)where Tx: ExecutableTransaction,

Write all assets into the VM memory.

Trait Implementations§

source§

impl AsMut<HashMap<AssetId, Balance, RandomState>> for RuntimeBalances

source§

fn as_mut(&mut self) -> &mut HashMap<AssetId, Balance>

Converts this type into a mutable reference of the (usually inferred) input type.
source§

impl AsRef<HashMap<AssetId, Balance, RandomState>> for RuntimeBalances

source§

fn as_ref(&self) -> &HashMap<AssetId, Balance>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for RuntimeBalances

source§

fn clone(&self) -> RuntimeBalances

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RuntimeBalances

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for RuntimeBalances

source§

fn default() -> RuntimeBalances

Returns the “default value” for a type. Read more
source§

impl From<BTreeMap<AssetId, u64, Global>> for RuntimeBalances

source§

fn from(balances: InitialBalances) -> Self

Converts to this type from the input type.
source§

impl Index<&AssetId> for RuntimeBalances

§

type Output = u64

The returned type after indexing.
source§

fn index(&self, index: &AssetId) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl PartialEq<RuntimeBalances> for RuntimeBalances

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> AnyDebug for Twhere T: Any + Debug,

source§

fn as_any_ref(&self) -> &(dyn Any + 'static)

Returns a reference to the underlying type as Any.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> StorageAsMut for T

source§

fn storage<Type>(&mut self) -> StorageMut<'_, Self, Type>where Type: Mappable,

source§

fn storage_as_mut<Type>(&mut self) -> StorageMut<'_, Self, Type>where Type: Mappable,

source§

impl<T> StorageAsRef for T

source§

fn storage<Type>(&self) -> StorageRef<'_, Self, Type>where Type: Mappable,

source§

fn storage_as_ref<Type>(&self) -> StorageRef<'_, Self, Type>where Type: Mappable,

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V