pub struct ProverIncentives<C: Context, Vm: Zkvm> {
    pub address: C::Address,
    pub bonding_token_address: StateValue<C::Address>,
    pub commitment_of_allowed_verifier_method: StateValue<Vm::CodeCommitment, BcsCodec>,
    pub bonded_provers: StateMap<C::Address, u64>,
    pub minimum_bond: StateValue<u64>,
    /* private fields */
}
Expand description

A new module:

  • Must derive ModuleInfo
  • Must contain [address] field
  • Can contain any number of #[state] or [module] fields

Fields§

§address: C::Address

Address of the module.

§bonding_token_address: StateValue<C::Address>

The address of the token used for bonding provers

§commitment_of_allowed_verifier_method: StateValue<Vm::CodeCommitment, BcsCodec>

The code commitment to be used for verifying proofs

§bonded_provers: StateMap<C::Address, u64>

The set of registered provers and their bonded amount.

§minimum_bond: StateValue<u64>

The minimum bond for a prover to be eligible for onchain verification

Trait Implementations§

source§

impl<C: Context, Vm: Zkvm> Default for ProverIncentives<C, Vm>

source§

fn default() -> Self

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

impl<C: Context, Vm: Zkvm> Module for ProverIncentives<C, Vm>

§

type Context = C

Execution context.
§

type Config = ProverIncentivesConfig<C, Vm>

Configuration for the genesis method.
§

type CallMessage = CallMessage

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, Vm: Zkvm> ModuleInfo for ProverIncentives<C, Vm>

§

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, Vm> RefUnwindSafe for ProverIncentives<C, Vm>where <C as Spec>::Address: RefUnwindSafe, <Vm as Zkvm>::CodeCommitment: RefUnwindSafe,

§

impl<C, Vm> Send for ProverIncentives<C, Vm>where <Vm as Zkvm>::CodeCommitment: Send,

§

impl<C, Vm> Sync for ProverIncentives<C, Vm>where <Vm as Zkvm>::CodeCommitment: Sync,

§

impl<C, Vm> Unpin for ProverIncentives<C, Vm>where <C as Spec>::Address: Unpin, <Vm as Zkvm>::CodeCommitment: Unpin,

§

impl<C, Vm> UnwindSafe for ProverIncentives<C, Vm>where <C as Spec>::Address: UnwindSafe, <Vm as Zkvm>::CodeCommitment: 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, 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