difftreelog
path: Add has_sponsor function to solidity. Fix confirm_sponsorship.
in: master
2 files changed
pallets/evm-contract-helpers/src/eth.rsdiffbeforeafterboth--- a/pallets/evm-contract-helpers/src/eth.rs
+++ b/pallets/evm-contract-helpers/src/eth.rs
@@ -73,11 +73,14 @@
fn get_sponsor(&self, contract_address: address) -> Result<(address, uint256)> {
let sponsor =
Pallet::<T>::get_sponsor(contract_address).ok_or("Contract has no sponsor")?;
- let sponsor_sub =
- pallet_common::eth::convert_cross_account_to_eth_uint256::<T>(&sponsor);
+ let sponsor_sub = pallet_common::eth::convert_cross_account_to_eth_uint256::<T>(&sponsor);
Ok((*sponsor.as_eth(), sponsor_sub))
}
+ fn has_sponsor(&self, contract_address: address) -> Result<bool> {
+ Ok(Pallet::<T>::get_sponsor(contract_address).is_some())
+ }
+
fn sponsoring_enabled(&self, contract_address: address) -> Result<bool> {
Ok(<Pallet<T>>::sponsoring_mode(contract_address) != SponsoringModeT::Disabled)
}
pallets/evm-contract-helpers/src/lib.rsdiffbeforeafterboth168 match Sponsoring::<T>::get(contract) {168 match Sponsoring::<T>::get(contract) {169 SponsorshipState::Unconfirmed(sponsor) => {169 SponsorshipState::Unconfirmed(sponsor) => {170 ensure!(sponsor == *sender, Error::<T>::NoPermission);170 ensure!(sponsor == *sender, Error::<T>::NoPermission);171 Sponsoring::<T>::mutate_exists(contract, |state| {172 *state = Some(SponsorshipState::<T::CrossAccountId>::Confirmed(173 sponsor.clone(),174 ))175 });171 Ok(())176 Ok(())172 }177 }173 SponsorshipState::Disabled | SponsorshipState::Confirmed(_) => {178 SponsorshipState::Disabled | SponsorshipState::Confirmed(_) => {