difftreelog
feat getSponsoringRateLimit helper call
in: master
5 files changed
Makefilediffbeforeafterboth1.PHONY: _eth_codegen2_eth_codegen:34.PHONY: regenerate_solidity5regenerate_solidity:6 PACKAGE=pallet-nft NAME=eth::erc::fungible_iface OUTPUT=./tests/src/eth/api/UniqueFungible.sol ./.maintain/scripts/generate_api.sh7 PACKAGE=pallet-nft NAME=eth::erc::nft_iface OUTPUT=./tests/src/eth/api/UniqueNFT.sol ./.maintain/scripts/generate_api.sh8 PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_iface OUTPUT=./tests/src/eth/api/ContractHelpers.sol ./.maintain/scripts/generate_api.sh910 PACKAGE=pallet-nft NAME=eth::erc::fungible_impl OUTPUT=./pallets/nft/src/eth/stubs/UniqueFungible.sol ./.maintain/scripts/generate_api.sh11 PACKAGE=pallet-nft NAME=eth::erc::nft_impl OUTPUT=./pallets/nft/src/eth/stubs/UniqueNFT.sol ./.maintain/scripts/generate_api.sh12 PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_impl OUTPUT=./pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol ./.maintain/scripts/generate_api.sh1314NFT_EVM_STUBS=./pallets/nft/src/eth/stubs15CONTRACT_HELPERS_STUBS=./pallets/evm-contract-helpers/src/stubs/1617$(NFT_EVM_STUBS)/UniqueFungible.raw: $(NFT_EVM_STUBS)/UniqueFungible.sol18 INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh19$(NFT_EVM_STUBS)/UniqueNFT.raw: $(NFT_EVM_STUBS)/UniqueNFT.sol20 INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh21$(CONTRACT_HELPERS_STUBS)/ContractHelpers.raw: $(CONTRACT_HELPERS_STUBS)/ContractHelpers.sol22 INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh2324evm_stubs: $(NFT_EVM_STUBS)/UniqueFungible.raw $(NFT_EVM_STUBS)/UniqueNFT.raw $(CONTRACT_HELPERS_STUBS)/ContractHelpers.raw2526.PHONY: _bench27_bench:28 cargo run --release --features runtime-benchmarks -- \29 benchmark --pallet pallet-$(PALLET) \30 --wasm-execution compiled --extrinsic '*' \31 --template .maintain/frame-weight-template.hbs --steps=50 --repeat=20 \32 --output=./pallets/$(PALLET)/src/weights.rs3334.PHONY: bench-evm-migration35bench-evm-migration:36 make _bench PALLET=evm-migration3738.PHONY: bench-nft39bench-nft:40 make _bench PALLET=nft4142.PHONY: bench43bench: bench-evm-migration bench-nft1.PHONY: _help2_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"89.PHONY: regenerate_solidity10regenerate_solidity:11 PACKAGE=pallet-nft NAME=eth::erc::fungible_iface OUTPUT=./tests/src/eth/api/UniqueFungible.sol ./.maintain/scripts/generate_api.sh12 PACKAGE=pallet-nft NAME=eth::erc::nft_iface OUTPUT=./tests/src/eth/api/UniqueNFT.sol ./.maintain/scripts/generate_api.sh13 PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_iface OUTPUT=./tests/src/eth/api/ContractHelpers.sol ./.maintain/scripts/generate_api.sh1415 PACKAGE=pallet-nft NAME=eth::erc::fungible_impl OUTPUT=./pallets/nft/src/eth/stubs/UniqueFungible.sol ./.maintain/scripts/generate_api.sh16 PACKAGE=pallet-nft NAME=eth::erc::nft_impl OUTPUT=./pallets/nft/src/eth/stubs/UniqueNFT.sol ./.maintain/scripts/generate_api.sh17 PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_impl OUTPUT=./pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol ./.maintain/scripts/generate_api.sh1819NFT_EVM_STUBS=./pallets/nft/src/eth/stubs20CONTRACT_HELPERS_STUBS=./pallets/evm-contract-helpers/src/stubs/2122$(NFT_EVM_STUBS)/UniqueFungible.raw: $(NFT_EVM_STUBS)/UniqueFungible.sol23 INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh24$(NFT_EVM_STUBS)/UniqueNFT.raw: $(NFT_EVM_STUBS)/UniqueNFT.sol25 INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh26$(CONTRACT_HELPERS_STUBS)/ContractHelpers.raw: $(CONTRACT_HELPERS_STUBS)/ContractHelpers.sol27 INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh2829evm_stubs: $(NFT_EVM_STUBS)/UniqueFungible.raw $(NFT_EVM_STUBS)/UniqueNFT.raw $(CONTRACT_HELPERS_STUBS)/ContractHelpers.raw3031.PHONY: _bench32_bench:33 cargo run --release --features runtime-benchmarks -- \34 benchmark --pallet pallet-$(PALLET) \35 --wasm-execution compiled --extrinsic '*' \36 --template .maintain/frame-weight-template.hbs --steps=50 --repeat=20 \37 --output=./pallets/$(PALLET)/src/weights.rs3839.PHONY: bench-evm-migration40bench-evm-migration:41 make _bench PALLET=evm-migration4243.PHONY: bench-nft44bench-nft:45 make _bench PALLET=nft4647.PHONY: bench48bench: bench-evm-migration bench-nftpallets/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))
pallets/evm-contract-helpers/src/stubs/ContractHelpers.rawdiffbeforeafterbothbinary blob — no preview
pallets/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
tests/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