difftreelog
fix Spend gas before do some thing.
in: master
1 file changed
pallets/evm-contract-helpers/src/eth.rsdiffbeforeafterboth65 contract_address: address,65 contract_address: address,66 sponsor: address,66 sponsor: address,67 ) -> Result<void> {67 ) -> Result<void> {68 self.recorder().consume_sload()?;69 self.recorder().consume_sstore()?;7068 Pallet::<T>::set_sponsor(71 Pallet::<T>::set_sponsor(69 &T::CrossAccountId::from_eth(caller),72 &T::CrossAccountId::from_eth(caller),72 )75 )73 .map_err(dispatch_to_evm::<T>)?;76 .map_err(dispatch_to_evm::<T>)?;7475 self.recorder().consume_sload()?;76 self.recorder().consume_sstore()?;777778 Ok(())78 Ok(())79 }79 }82 ///82 ///83 /// @param contract_address Contract for which a self sponsoring is being enabled.83 /// @param contract_address Contract for which a self sponsoring is being enabled.84 fn self_sponsored_enable(&mut self, caller: caller, contract_address: address) -> Result<void> {84 fn self_sponsored_enable(&mut self, caller: caller, contract_address: address) -> Result<void> {85 self.recorder().consume_sload()?;86 self.recorder().consume_sstore()?;8785 Pallet::<T>::self_sponsored_enable(&T::CrossAccountId::from_eth(caller), contract_address)88 Pallet::<T>::self_sponsored_enable(&T::CrossAccountId::from_eth(caller), contract_address)86 .map_err(dispatch_to_evm::<T>)?;89 .map_err(dispatch_to_evm::<T>)?;8788 self.recorder().consume_sload()?;89 self.recorder().consume_sstore()?;909091 Ok(())91 Ok(())92 }92 }95 ///95 ///96 /// @param contract_address Contract for which a sponsorship is being removed.96 /// @param contract_address Contract for which a sponsorship is being removed.97 fn remove_sponsor(&mut self, caller: caller, contract_address: address) -> Result<void> {97 fn remove_sponsor(&mut self, caller: caller, contract_address: address) -> Result<void> {98 self.recorder().consume_sload()?;99 self.recorder().consume_sstore()?;10098 Pallet::<T>::remove_sponsor(&T::CrossAccountId::from_eth(caller), contract_address)101 Pallet::<T>::remove_sponsor(&T::CrossAccountId::from_eth(caller), contract_address)99 .map_err(dispatch_to_evm::<T>)?;102 .map_err(dispatch_to_evm::<T>)?;100101 self.recorder().consume_sload()?;102 self.recorder().consume_sstore()?;103103104 Ok(())104 Ok(())105 }105 }110 ///110 ///111 /// @param contract_address Сontract for which need to confirm sponsorship.111 /// @param contract_address Сontract for which need to confirm sponsorship.112 fn confirm_sponsorship(&mut self, caller: caller, contract_address: address) -> Result<void> {112 fn confirm_sponsorship(&mut self, caller: caller, contract_address: address) -> Result<void> {113 self.recorder().consume_sload()?;114 self.recorder().consume_sstore()?;115113 Pallet::<T>::confirm_sponsorship(&T::CrossAccountId::from_eth(caller), contract_address)116 Pallet::<T>::confirm_sponsorship(&T::CrossAccountId::from_eth(caller), contract_address)114 .map_err(dispatch_to_evm::<T>)?;117 .map_err(dispatch_to_evm::<T>)?;115116 self.recorder().consume_sload()?;117 self.recorder().consume_sstore()?;118118119 Ok(())119 Ok(())120 }120 }165 contract_address: address,165 contract_address: address,166 mode: uint8,166 mode: uint8,167 ) -> Result<void> {167 ) -> Result<void> {168 self.recorder().consume_sload()?;169 self.recorder().consume_sstore()?;170168 <Pallet<T>>::ensure_owner(contract_address, caller).map_err(dispatch_to_evm::<T>)?;171 <Pallet<T>>::ensure_owner(contract_address, caller).map_err(dispatch_to_evm::<T>)?;169 let mode = SponsoringModeT::from_eth(mode).ok_or("unknown mode")?;172 let mode = SponsoringModeT::from_eth(mode).ok_or("unknown mode")?;170 <Pallet<T>>::set_sponsoring_mode(contract_address, mode);173 <Pallet<T>>::set_sponsoring_mode(contract_address, mode);171172 self.recorder().consume_sload()?;173 self.recorder().consume_sstore()?;174174175 Ok(())175 Ok(())176 }176 }185 contract_address: address,185 contract_address: address,186 rate_limit: uint32,186 rate_limit: uint32,187 ) -> Result<void> {187 ) -> Result<void> {188 self.recorder().consume_sload()?;189 self.recorder().consume_sstore()?;190188 <Pallet<T>>::ensure_owner(contract_address, caller).map_err(dispatch_to_evm::<T>)?;191 <Pallet<T>>::ensure_owner(contract_address, caller).map_err(dispatch_to_evm::<T>)?;189 <Pallet<T>>::set_sponsoring_rate_limit(contract_address, rate_limit.into());192 <Pallet<T>>::set_sponsoring_rate_limit(contract_address, rate_limit.into());190191 self.recorder().consume_sload()?;192 self.recorder().consume_sstore()?;193193194 Ok(())194 Ok(())195 }195 }215 contract_address: address,215 contract_address: address,216 enabled: bool,216 enabled: bool,217 ) -> Result<void> {217 ) -> Result<void> {218 self.recorder().consume_sload()?;219 self.recorder().consume_sstore()?;220218 <Pallet<T>>::ensure_owner(contract_address, caller).map_err(dispatch_to_evm::<T>)?;221 <Pallet<T>>::ensure_owner(contract_address, caller).map_err(dispatch_to_evm::<T>)?;219 <Pallet<T>>::toggle_allowlist(contract_address, enabled);222 <Pallet<T>>::toggle_allowlist(contract_address, enabled);220221 self.recorder().consume_sload()?;222 self.recorder().consume_sstore()?;223223224 Ok(())224 Ok(())225 }225 }231 user: address,231 user: address,232 allowed: bool,232 allowed: bool,233 ) -> Result<void> {233 ) -> Result<void> {234 self.recorder().consume_sload()?;235 self.recorder().consume_sstore()?;236 234 <Pallet<T>>::ensure_owner(contract_address, caller).map_err(dispatch_to_evm::<T>)?;237 <Pallet<T>>::ensure_owner(contract_address, caller).map_err(dispatch_to_evm::<T>)?;235 <Pallet<T>>::toggle_allowed(contract_address, user, allowed);238 <Pallet<T>>::toggle_allowed(contract_address, user, allowed);236237 self.recorder().consume_sload()?;238 self.recorder().consume_sstore()?;239239240 Ok(())240 Ok(())241 }241 }