difftreelog
path: Return sponsor as a tuple.
in: master
3 files changed
crates/evm-coder/src/abi.rsdiffbeforeafterbothno syntactic changes
pallets/common/src/eth.rsdiffbeforeafterboth52 address[0..16] == ETH_COLLECTION_PREFIX52 address[0..16] == ETH_COLLECTION_PREFIX53}53}5455/// Convert `CrossAccountId` to `uint256`.56pub fn convert_cross_account_to_eth_uint256<T: Config>(from: &T::CrossAccountId) -> uint25657where58 T::AccountId: AsRef<[u8]>,59{60 use pallet_evm::account::CrossAccountId;61 let slice = from.as_sub().as_ref();62 uint256::from_big_endian(slice)63}546455/// Converts Substrate address to CrossAccountId65/// Converts Substrate address to CrossAccountId56pub fn convert_substrate_address_to_cross_account_id<T: Config>(66pub fn convert_substrate_address_to_cross_account_id<T: Config>(pallets/evm-contract-helpers/src/eth.rsdiffbeforeafterboth17use core::marker::PhantomData;17use core::marker::PhantomData;18use evm_coder::{18use evm_coder::{abi::AbiWriter, execution::Result, generate_stubgen, solidity_interface, types::*};19 abi::AbiWriter,20 execution::{Result, Error},21 generate_stubgen, solidity_interface,22 types::*,23};24use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder, dispatch_to_evm};19use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder, dispatch_to_evm};25use pallet_evm::{20use pallet_evm::{474248#[solidity_interface(name = "ContractHelpers")]43#[solidity_interface(name = "ContractHelpers")]49impl<T: Config> ContractHelpers<T> {44impl<T: Config> ContractHelpers<T>45where46 T::AccountId: AsRef<[u8]>,47{50 fn contract_owner(&self, contract_address: address) -> Result<address> {48 fn contract_owner(&self, contract_address: address) -> Result<address> {51 Ok(<Owner<T>>::get(contract_address))49 Ok(<Owner<T>>::get(contract_address))72 Ok(())70 Ok(())73 }71 }747275 fn get_sponsor(&self, contract_address: address) -> Result<address> {73 fn get_sponsor(&self, contract_address: address) -> Result<(address, uint256)> {76 let sponsor =74 let sponsor =77 Pallet::<T>::get_sponsor(contract_address).ok_or("Contract has no sponsor")?;75 Pallet::<T>::get_sponsor(contract_address).ok_or("Contract has no sponsor")?;76 let sponsor_sub =77 pallet_common::eth::convert_cross_account_to_eth_uint256::<T>(&sponsor);78 Ok(*sponsor.as_eth())78 Ok((*sponsor.as_eth(), sponsor_sub))79 }79 }808081 fn sponsoring_enabled(&self, contract_address: address) -> Result<bool> {81 fn sponsoring_enabled(&self, contract_address: address) -> Result<bool> {82 Ok(<Pallet<T>>::sponsoring_mode(contract_address) != SponsoringModeT::Disabled)82 Ok(<Pallet<T>>::sponsoring_mode(contract_address) != SponsoringModeT::Disabled)83 }83 }848485 /// Deprecated85 /// Deprecated 86 fn toggle_sponsoring(86 fn toggle_sponsoring(87 &mut self,87 &mut self,88 caller: caller,88 caller: caller,162162163pub struct HelpersOnMethodCall<T: Config>(PhantomData<*const T>);163pub struct HelpersOnMethodCall<T: Config>(PhantomData<*const T>);164impl<T: Config> OnMethodCall<T> for HelpersOnMethodCall<T> {164impl<T: Config> OnMethodCall<T> for HelpersOnMethodCall<T>165where166 T::AccountId: AsRef<[u8]>,167{165 fn is_reserved(contract: &sp_core::H160) -> bool {168 fn is_reserved(contract: &sp_core::H160) -> bool {166 contract == &T::ContractAddress::get()169 contract == &T::ContractAddress::get()