git.delta.rocks / unique-network / refs/commits / 7a21c0bed6bb

difftreelog

path: Add has_sponsor function to solidity. Fix confirm_sponsorship.

Trubnikov Sergey2022-08-05parent: #f5f392c.patch.diff
in: master

2 files changed

modifiedpallets/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)
 	}
modifiedpallets/evm-contract-helpers/src/lib.rsdiffbeforeafterboth
168 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(_) => {