Struct sov_bank::Bank

source ·
pub struct Bank<C: Context> { /* private fields */ }
Expand description

The sov-bank module manages user balances. It provides functionality for:

  • Token creation.
  • Token transfers.
  • Token burn.

Implementations§

source§

impl<C: Context> Bank<C>

source

pub fn create_token( &self, token_name: String, salt: u64, initial_balance: Amount, minter_address: C::Address, authorized_minters: Vec<C::Address>, context: &C, working_set: &mut WorkingSet<C::Storage> ) -> Result<C::Address>

Creates a token from a set of configuration parameters. Checks if a token already exists at that address. If so return an error.

source

pub fn transfer( &self, to: C::Address, coins: Coins<C>, context: &C, working_set: &mut WorkingSet<C::Storage> ) -> Result<CallResponse>

Transfers the set of coins to the address specified by to.

source

pub fn burn( &self, coins: Coins<C>, owner: &C::Address, working_set: &mut WorkingSet<C::Storage> ) -> Result<()>

Burns the set of coins.

If there is no token at the address specified in the Coins structure, return an error; on success it updates the total supply of tokens.

source

pub fn mint_from_eoa( &self, coins: &Coins<C>, mint_to_address: &C::Address, context: &C, working_set: &mut WorkingSet<C::Storage> ) -> Result<()>

Mints the coinsto the address mint_to_address using the externally owned account (“EOA”) supplied by context.sender() as the authorizer. Returns an error if the token address doesn’t exist or context.sender() is not authorized to mint tokens.

On success, it updates the self.tokens set to store the new balance.

source

pub fn mint( &self, coins: &Coins<C>, mint_to_address: &C::Address, authorizer: &C::Address, working_set: &mut WorkingSet<C::Storage> ) -> Result<()>

Mints the coins to the address mint_to_address if authorizer is an allowed minter. Returns an error if the token address doesn’t exist or context.sender() is not authorized to mint tokens.

On success, it updates the self.tokens set to store the new minted address.

source§

impl<C: Context> Bank<C>

source

pub fn transfer_from( &self, from: &C::Address, to: &C::Address, coins: Coins<C>, working_set: &mut WorkingSet<C::Storage> ) -> Result<CallResponse>

Transfers the set of coins from the address from to the address to.

Returns an error if the token address doesn’t exist.

source

pub fn get_balance_of( &self, user_address: C::Address, token_address: C::Address, working_set: &mut WorkingSet<C::Storage> ) -> Option<u64>

Helper function used by the rpc method balance_of to return the balance of the token stored at token_address for the user having the address user_address from the underlying storage. If the token address doesn’t exist, or if the user doesn’t have tokens of that type, return None. Otherwise, wrap the resulting balance in Some.

source

pub fn get_token_name( &self, token_address: &C::Address, working_set: &mut WorkingSet<C::Storage> ) -> Option<String>

Get the name of a token by address

Trait Implementations§

source§

impl<C: Clone + Context> Clone for Bank<C>where C::Address: Clone,

source§

fn clone(&self) -> Bank<C>

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<C: Context> Default for Bank<C>

source§

fn default() -> Self

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

impl<C: Context> Module for Bank<C>

§

type Context = C

Execution context.
§

type Config = BankConfig<C>

Configuration for the genesis method.
§

type CallMessage = CallMessage<C>

Module defined argument to the call method.
source§

fn genesis( &self, config: &Self::Config, working_set: &mut WorkingSet<C::Storage> ) -> Result<(), Error>

Genesis is called when a rollup is deployed and can be used to set initial state values in the module.
source§

fn call( &self, msg: Self::CallMessage, context: &Self::Context, working_set: &mut WorkingSet<C::Storage> ) -> Result<CallResponse, Error>

Call allows interaction with the module and invokes state changes. It takes a module defined type and a context as parameters.
source§

impl<C: Context> ModuleInfo for Bank<C>

§

type Context = C

source§

fn prefix(&self) -> Prefix

Returns the prefix of the module.
source§

fn address(&self) -> &<Self::Context as Spec>::Address

Returns address of the module.
source§

fn dependencies(&self) -> Vec<&<Self::Context as Spec>::Address>

Returns addresses of all the other modules this module is dependent on

Auto Trait Implementations§

§

impl<C> RefUnwindSafe for Bank<C>where <C as Spec>::Address: RefUnwindSafe,

§

impl<C> Send for Bank<C>

§

impl<C> Sync for Bank<C>

§

impl<C> Unpin for Bank<C>where <C as Spec>::Address: Unpin,

§

impl<C> UnwindSafe for Bank<C>where <C as Spec>::Address: UnwindSafe,

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> 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> Genesis for Twhere T: Module,

§

type Context = <T as Module>::Context

§

type Config = <T as Module>::Config

Initial configuration for the module.
source§

fn genesis( &self, config: &<T as Genesis>::Config, working_set: &mut WorkingSet<<<T as Genesis>::Context as Spec>::Storage> ) -> Result<(), Error>

Initializes the state of the rollup.
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> 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.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more