Skip to content
Snippets Groups Projects
  • PG Herveou's avatar
    [pallet-revive] update generic runtime types (#5608) · 868a36bd
    PG Herveou authored
    
    fix #5574
    
    - Use U256 instead of BalanceOf<T> and MomentOf<T> in Ext trait
    - Enforce H256 for T::Hash
    
    The Ext trait still depends on the associated type `T: Config`, we can
    look into refactoring it even more later but even in the current state
    it should not influence how the data is encoded / decoded between the
    contract and the host
    ```
    fn caller(&self) -> Origin<Self::T>;
    -> only use to extract the address of the caller 
    
    fn account_id(&self) -> &AccountIdOf<Self::T>;
     -> only used to expose the address or access the account_id internally   
    
    fn gas_meter(&self) -> &GasMeter<Self::T>;
    fn gas_meter_mut(&mut self) -> &mut GasMeter<Self::T>;
     -> encoding does not depend on T
    
    fn call_runtime(&self, call: <Self::T as Config>::RuntimeCall) -> DispatchResultWithPostInfo;
    -> Substrate specific, just an opaque blob of bytes from the contract's perspective
    
    fn contract_info(&mut self) -> &mut ContractInfo<Self::T>;
    fn transient_storage(&mut self) -> &mut TransientStorage<Self::T>;
    -> gated by #[cfg(any(test, feature = "runtime-benchmarks"))]
    ```
    
    ---------
    
    Co-authored-by: default avatarAlexander Theißen <alex.theissen@me.com>
    Unverified
    868a36bd
Code owners
Assign users and groups as approvers for specific file changes. Learn more.