Enum noble_contracts::Call[][src]

pub enum Call<T: Config> where
    T::AccountId: UncheckedFrom<T::Hash>,
    T::AccountId: AsRef<[u8]>, 
{ update_schedule(Schedule<T>), put_code(Vec<u8>), call(<T::Lookup as StaticLookup>::SourceBalanceOf<T>, GasVec<u8>), instantiate(BalanceOf<T>, GasCodeHash<T>, Vec<u8>, Vec<u8>), claim_surcharge(T::AccountIdOption<T::AccountId>), // some variants omitted }

Dispatchable calls.

Each variant of this enum maps to a dispatchable function from the associated module.

Variants

update_schedule(Schedule<T>)

Updates the schedule for metering contracts.

The schedule must have a greater version than the stored schedule.

put_code(Vec<u8>)

Stores the given binary Wasm code into the chain’s storage and returns its codehash. You can instantiate contracts only with stored code.

call(<T::Lookup as StaticLookup>::SourceBalanceOf<T>, GasVec<u8>)

Makes a call to an account, optionally transferring some balance.

  • If the account is a smart-contract account, the associated code will be executed and any value will be transferred.
  • If the account is a regular account, any value will be transferred.
  • If no account exists and the call value is not less than existential_deposit, a regular account will be created and any value will be transferred.
instantiate(BalanceOf<T>, GasCodeHash<T>, Vec<u8>, Vec<u8>)

Instantiates a new contract from the code_hash generated by put_code, optionally transferring some balance.

The supplied salt is used for contract address deriviation. See fn contract_address.

Instantiation is executed as follows:

  • The destination address is computed based on the sender, code_hash and the salt.
  • The smart-contract account is created at the computed address.
  • The ctor_code is executed in the context of the newly-created account. Buffer returned after the execution is saved as the code of the account. That code will be invoked upon any call received by this account.
  • The contract is initialized.
claim_surcharge(T::AccountIdOption<T::AccountId>)

Allows block producers to claim a small reward for evicting a contract. If a block producer fails to do so, a regular users will be allowed to claim the reward.

In case of a successful eviction no fees are charged from the sender. However, the reward is capped by the total amount of rent that was payed by the contract while it was alive.

If contract is not evicted as a result of this call, Error::ContractNotEvictable is returned and the sender is not eligible for the reward.

Trait Implementations

impl<T: Config> Clone for Call<T> where
    T::AccountId: UncheckedFrom<T::Hash>,
    T::AccountId: AsRef<[u8]>, 
[src]

impl<T: Config> Debug for Call<T> where
    T::AccountId: UncheckedFrom<T::Hash>,
    T::AccountId: AsRef<[u8]>, 
[src]

impl<T: Config> Decode for Call<T> where
    T::AccountId: UncheckedFrom<T::Hash>,
    T::AccountId: AsRef<[u8]>,
    Schedule<T>: Decode,
    Schedule<T>: Decode,
    <T::Lookup as StaticLookup>::Source: Decode,
    <T::Lookup as StaticLookup>::Source: Decode,
    CodeHash<T>: Decode,
    CodeHash<T>: Decode,
    T::AccountId: Decode,
    T::AccountId: Decode,
    Option<T::AccountId>: Decode,
    Option<T::AccountId>: Decode,
    BalanceOf<T>: HasCompact,
    BalanceOf<T>: HasCompact
[src]

impl<T: Config> Encode for Call<T> where
    T::AccountId: UncheckedFrom<T::Hash>,
    T::AccountId: AsRef<[u8]>,
    Schedule<T>: Encode,
    Schedule<T>: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    CodeHash<T>: Encode,
    CodeHash<T>: Encode,
    T::AccountId: Encode,
    T::AccountId: Encode,
    Option<T::AccountId>: Encode,
    Option<T::AccountId>: Encode,
    BalanceOf<T>: HasCompact,
    BalanceOf<T>: HasCompact
[src]

impl<T: Config> EncodeLike<Call<T>> for Call<T> where
    T::AccountId: UncheckedFrom<T::Hash>,
    T::AccountId: AsRef<[u8]>,
    Schedule<T>: Encode,
    Schedule<T>: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    CodeHash<T>: Encode,
    CodeHash<T>: Encode,
    T::AccountId: Encode,
    T::AccountId: Encode,
    Option<T::AccountId>: Encode,
    Option<T::AccountId>: Encode,
    BalanceOf<T>: HasCompact,
    BalanceOf<T>: HasCompact
[src]

impl<T: Config> Eq for Call<T> where
    T::AccountId: UncheckedFrom<T::Hash>,
    T::AccountId: AsRef<[u8]>, 
[src]

impl<T: Config> GetCallName for Call<T> where
    T::AccountId: UncheckedFrom<T::Hash>,
    T::AccountId: AsRef<[u8]>, 
[src]

impl<T: Config> GetDispatchInfo for Call<T> where
    T::AccountId: UncheckedFrom<T::Hash>,
    T::AccountId: AsRef<[u8]>, 
[src]

impl<T: Config> PartialEq<Call<T>> for Call<T> where
    T::AccountId: UncheckedFrom<T::Hash>,
    T::AccountId: AsRef<[u8]>, 
[src]

impl<T: Config> UnfilteredDispatchable for Call<T> where
    T::AccountId: UncheckedFrom<T::Hash>,
    T::AccountId: AsRef<[u8]>, 
[src]

type Origin = T::Origin

The origin type of the runtime, (i.e. fabric_system::Config::Origin).

Auto Trait Implementations

impl<T> RefUnwindSafe for Call<T> where
    T: RefUnwindSafe,
    <T as Config>::AccountId: RefUnwindSafe,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: RefUnwindSafe,
    <T as Config>::Hash: RefUnwindSafe,
    <<T as Config>::Lookup as StaticLookup>::Source: RefUnwindSafe

impl<T> Send for Call<T> where
    T: Send,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Send,
    <<T as Config>::Lookup as StaticLookup>::Source: Send

impl<T> Sync for Call<T> where
    T: Sync,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Sync,
    <<T as Config>::Lookup as StaticLookup>::Source: Sync

impl<T> Unpin for Call<T> where
    T: Unpin,
    <T as Config>::AccountId: Unpin,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Unpin,
    <T as Config>::Hash: Unpin,
    <<T as Config>::Lookup as StaticLookup>::Source: Unpin

impl<T> UnwindSafe for Call<T> where
    T: UnwindSafe,
    <T as Config>::AccountId: UnwindSafe,
    <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: UnwindSafe,
    <T as Config>::Hash: UnwindSafe,
    <<T as Config>::Lookup as StaticLookup>::Source: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CheckedConversion for T[src]

impl<S> Codec for S where
    S: Decode + Encode
[src]

impl<T> DecodeAll for T where
    T: Decode
[src]

impl<T> DecodeLimit for T where
    T: Decode
[src]

impl<T> Downcast for T where
    T: Any

impl<T> DowncastSync for T where
    T: Any + Send + Sync

impl<T> DynClone for T where
    T: Clone
[src]

impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
    T: Encode
[src]

impl<'_, T> EncodeLike<&'_ T> for T where
    T: Encode
[src]

impl<'_, T> EncodeLike<&'_ mut T> for T where
    T: Encode
[src]

impl<T> EncodeLike<Arc<T>> for T where
    T: Encode
[src]

impl<T> EncodeLike<Box<T, Global>> for T where
    T: Encode
[src]

impl<'a, T> EncodeLike<Cow<'a, T>> for T where
    T: ToOwned + Encode
[src]

impl<T> EncodeLike<Rc<T>> for T where
    T: Encode
[src]

impl<T> From<T> for T[src]

impl<S> FullCodec for S where
    S: Decode + FullEncode
[src]

impl<S> FullEncode for S where
    S: Encode + EncodeLike<S>, 
[src]

impl<T> Hashable for T where
    T: Codec
[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IsType<T> for T[src]

impl<T, Outer> IsWrappedBy<Outer> for T where
    T: From<Outer>,
    Outer: AsRef<T> + AsMut<T> + From<T>, 
[src]

pub fn from_ref(outer: &Outer) -> &T[src]

Get a reference to the inner from the outer.

pub fn from_mut(outer: &mut Outer) -> &mut T[src]

Get a mutable reference to the inner from the outer.

impl<T> KeyedVec for T where
    T: Codec
[src]

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeRefUnwindSafe for T where
    T: RefUnwindSafe

impl<T> Member for T where
    T: 'static + Send + Sync + Debug + Eq + PartialEq<T> + Clone
[src]

impl<T> Parameter for T where
    T: Codec + EncodeLike<T> + Clone + Eq + Debug
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> SaturatedConversion for T

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<S, T> UncheckedInto<T> for S where
    T: UncheckedFrom<S>, 
[src]

impl<T, S> UniqueSaturatedInto<T> for S where
    T: Bounded,
    S: TryInto<T>, 

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