git.delta.rocks / unique-network / refs/commits / abfdac1dcd93

difftreelog

Merge pull request #194 from UniqueNetwork/feature/getSponsoringRateLimit-helper

kozyrevdev2021-09-02parents: #4d7077f #66ac31c.patch.diff
in: master
Add getSponsoringRateLimit helper

5 files changed

modifiedMakefilediffbeforeafterboth
1.PHONY: _eth_codegen1.PHONY: _help
2_eth_codegen:2_help:
3 @echo "regenerate_solidity - generate stubs/interfaces for contracts defined in native (via evm-coder)"
4 @echo "evm_stubs - recompile contract stubs"
5 @echo "bench - run frame-benchmarking"
6 @echo " bench-evm-migration"
7 @echo " bench-nft"
38
4.PHONY: regenerate_solidity9.PHONY: regenerate_solidity
5regenerate_solidity:10regenerate_solidity:
modifiedpallets/evm-contract-helpers/src/eth.rsdiffbeforeafterboth
--- a/pallets/evm-contract-helpers/src/eth.rs
+++ b/pallets/evm-contract-helpers/src/eth.rs
@@ -8,7 +8,7 @@
 };
 use frame_support::traits::Get;
 use up_sponsorship::SponsorshipHandler;
-use sp_std::vec::Vec;
+use sp_std::{convert::TryInto, vec::Vec};
 
 struct ContractHelpers<T: Config>(SubstrateRecorder<T>);
 
@@ -50,6 +50,13 @@
 		Ok(())
 	}
 
+	fn get_sponsoring_rate_limit(&self, contract_address: address) -> Result<uint32> {
+		self.0.consume_sload()?;
+		Ok(<SponsoringRateLimit<T>>::get(contract_address)
+			.try_into()
+			.map_err(|_| "rate limit > u32::MAX")?)
+	}
+
 	fn allowed(&self, contract_address: address, user: address) -> Result<bool> {
 		self.0.consume_sload()?;
 		Ok(<Pallet<T>>::allowed(contract_address, user, true))
modifiedpallets/evm-contract-helpers/src/stubs/ContractHelpers.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/evm-contract-helpers/src/stubs/ContractHelpers.soldiffbeforeafterboth
--- a/pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol
+++ b/pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol
@@ -52,6 +52,18 @@
 		dummy = 0;
 	}
 
+	// Selector: getSponsoringRateLimit(address) 610cfabd
+	function getSponsoringRateLimit(address contractAddress)
+		public
+		view
+		returns (uint32)
+	{
+		require(false, stub_error);
+		contractAddress;
+		dummy;
+		return 0;
+	}
+
 	// Selector: allowed(address,address) 5c658165
 	function allowed(address contractAddress, address user)
 		public
modifiedtests/src/eth/api/ContractHelpers.soldiffbeforeafterboth
--- a/tests/src/eth/api/ContractHelpers.sol
+++ b/tests/src/eth/api/ContractHelpers.sol
@@ -28,6 +28,12 @@
 	function setSponsoringRateLimit(address contractAddress, uint32 rateLimit)
 		external;
 
+	// Selector: getSponsoringRateLimit(address) 610cfabd
+	function getSponsoringRateLimit(address contractAddress)
+		external
+		view
+		returns (uint32);
+
 	// Selector: allowed(address,address) 5c658165
 	function allowed(address contractAddress, address user)
 		external