--- a/pallets/evm-contract-helpers/src/eth.rs +++ b/pallets/evm-contract-helpers/src/eth.rs @@ -169,7 +169,7 @@ /// /// @param contractAddress The contract for which a sponsor is requested. /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw. - fn get_sponsor(&self, contract_address: address) -> Result<(address, uint256)> { + fn sponsor(&self, contract_address: address) -> Result<(address, uint256)> { let sponsor = Pallet::::get_sponsor(contract_address).ok_or("Contract has no sponsor")?; Ok(pallet_common::eth::convert_cross_account_to_tuple::( @@ -220,7 +220,7 @@ /// Get current contract sponsoring rate limit /// @param contractAddress Contract to get sponsoring rate limit of /// @return uint32 Amount of blocks between two sponsored transactions - fn get_sponsoring_rate_limit(&self, contract_address: address) -> Result { + fn sponsoring_rate_limit(&self, contract_address: address) -> Result { self.recorder().consume_sload()?; Ok(>::get(contract_address) @@ -273,7 +273,7 @@ /// @param contractAddress Contract to get sponsoring fee limit of /// @return uint256 Maximum amount of fee that could be spent by single /// transaction - fn get_sponsoring_fee_limit(&self, contract_address: address) -> Result { + fn sponsoring_fee_limit(&self, contract_address: address) -> Result { self.recorder().consume_sload()?; Ok(get_sponsoring_fee_limit::(contract_address)) --- a/pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol +++ b/pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol @@ -25,7 +25,7 @@ } /// @title Magic contract, which allows users to reconfigure other contracts -/// @dev the ERC-165 identifier for this interface is 0x172cb4fb +/// @dev the ERC-165 identifier for this interface is 0x30afad04 contract ContractHelpers is Dummy, ERC165, ContractHelpersEvents { /// Get user, which deployed specified contract /// @dev May return zero address in case if contract is deployed @@ -94,9 +94,9 @@ /// /// @param contractAddress The contract for which a sponsor is requested. /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw. - /// @dev EVM selector for this function is: 0x743fc745, - /// or in textual repr: getSponsor(address) - function getSponsor(address contractAddress) public view returns (Tuple0 memory) { + /// @dev EVM selector for this function is: 0x766c4f37, + /// or in textual repr: sponsor(address) + function sponsor(address contractAddress) public view returns (Tuple0 memory) { require(false, stub_error); contractAddress; dummy; @@ -150,9 +150,9 @@ /// Get current contract sponsoring rate limit /// @param contractAddress Contract to get sponsoring rate limit of /// @return uint32 Amount of blocks between two sponsored transactions - /// @dev EVM selector for this function is: 0x610cfabd, - /// or in textual repr: getSponsoringRateLimit(address) - function getSponsoringRateLimit(address contractAddress) public view returns (uint32) { + /// @dev EVM selector for this function is: 0xf29694d8, + /// or in textual repr: sponsoringRateLimit(address) + function sponsoringRateLimit(address contractAddress) public view returns (uint32) { require(false, stub_error); contractAddress; dummy; @@ -193,9 +193,9 @@ /// @param contractAddress Contract to get sponsoring fee limit of /// @return uint256 Maximum amount of fee that could be spent by single /// transaction - /// @dev EVM selector for this function is: 0xc3fdc9ee, - /// or in textual repr: getSponsoringFeeLimit(address) - function getSponsoringFeeLimit(address contractAddress) public view returns (uint256) { + /// @dev EVM selector for this function is: 0x75b73606, + /// or in textual repr: sponsoringFeeLimit(address) + function sponsoringFeeLimit(address contractAddress) public view returns (uint256) { require(false, stub_error); contractAddress; dummy; --- a/tests/src/eth/api/ContractHelpers.sol +++ b/tests/src/eth/api/ContractHelpers.sol @@ -20,7 +20,7 @@ } /// @title Magic contract, which allows users to reconfigure other contracts -/// @dev the ERC-165 identifier for this interface is 0x172cb4fb +/// @dev the ERC-165 identifier for this interface is 0x30afad04 interface ContractHelpers is Dummy, ERC165, ContractHelpersEvents { /// Get user, which deployed specified contract /// @dev May return zero address in case if contract is deployed @@ -67,9 +67,9 @@ /// /// @param contractAddress The contract for which a sponsor is requested. /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw. - /// @dev EVM selector for this function is: 0x743fc745, - /// or in textual repr: getSponsor(address) - function getSponsor(address contractAddress) external view returns (Tuple0 memory); + /// @dev EVM selector for this function is: 0x766c4f37, + /// or in textual repr: sponsor(address) + function sponsor(address contractAddress) external view returns (Tuple0 memory); /// Check tat contract has confirmed sponsor. /// @@ -98,9 +98,9 @@ /// Get current contract sponsoring rate limit /// @param contractAddress Contract to get sponsoring rate limit of /// @return uint32 Amount of blocks between two sponsored transactions - /// @dev EVM selector for this function is: 0x610cfabd, - /// or in textual repr: getSponsoringRateLimit(address) - function getSponsoringRateLimit(address contractAddress) external view returns (uint32); + /// @dev EVM selector for this function is: 0xf29694d8, + /// or in textual repr: sponsoringRateLimit(address) + function sponsoringRateLimit(address contractAddress) external view returns (uint32); /// Set contract sponsoring rate limit /// @dev Sponsoring rate limit - is a minimum amount of blocks that should @@ -126,9 +126,9 @@ /// @param contractAddress Contract to get sponsoring fee limit of /// @return uint256 Maximum amount of fee that could be spent by single /// transaction - /// @dev EVM selector for this function is: 0xc3fdc9ee, - /// or in textual repr: getSponsoringFeeLimit(address) - function getSponsoringFeeLimit(address contractAddress) external view returns (uint256); + /// @dev EVM selector for this function is: 0x75b73606, + /// or in textual repr: sponsoringFeeLimit(address) + function sponsoringFeeLimit(address contractAddress) external view returns (uint256); /// Is specified user present in contract allow list /// @dev Contract owner always implicitly included --- a/tests/src/eth/contractSponsoring.test.ts +++ b/tests/src/eth/contractSponsoring.test.ts @@ -223,7 +223,7 @@ const helpers = contractHelpers(web3, owner); await helpers.methods.selfSponsoredEnable(flipper.options.address).send(); - const result = await helpers.methods.getSponsor(flipper.options.address).call(); + const result = await helpers.methods.sponsor(flipper.options.address).call(); expect(result[0]).to.be.eq(flipper.options.address); expect(result[1]).to.be.eq('0'); @@ -237,7 +237,7 @@ await helpers.methods.setSponsor(flipper.options.address, sponsor).send(); await helpers.methods.confirmSponsorship(flipper.options.address).send({from: sponsor}); - const result = await helpers.methods.getSponsor(flipper.options.address).call(); + const result = await helpers.methods.sponsor(flipper.options.address).call(); expect(result[0]).to.be.eq(sponsor); expect(result[1]).to.be.eq('0'); @@ -482,7 +482,7 @@ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper); const flipper = await deployFlipper(web3, owner); const helpers = contractHelpers(web3, owner); - expect(await helpers.methods.getSponsoringRateLimit(flipper.options.address).call()).to.be.equals('7200'); + expect(await helpers.methods.sponsoringRateLimit(flipper.options.address).call()).to.be.equals('7200'); }); }); @@ -551,7 +551,7 @@ const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper); const flipper = await deployFlipper(web3, owner); const helpers = contractHelpers(web3, owner); - expect(await helpers.methods.getSponsoringFeeLimit(flipper.options.address).call()).to.be.equals('115792089237316195423570985008687907853269984665640564039457584007913129639935'); + expect(await helpers.methods.sponsoringFeeLimit(flipper.options.address).call()).to.be.equals('115792089237316195423570985008687907853269984665640564039457584007913129639935'); }); itWeb3('Set fee limit', async ({api, web3, privateKeyWrapper}) => { @@ -559,7 +559,7 @@ const flipper = await deployFlipper(web3, owner); const helpers = contractHelpers(web3, owner); await helpers.methods.setSponsoringFeeLimit(flipper.options.address, 100).send(); - expect(await helpers.methods.getSponsoringFeeLimit(flipper.options.address).call()).to.be.equals('100'); + expect(await helpers.methods.sponsoringFeeLimit(flipper.options.address).call()).to.be.equals('100'); }); itWeb3('Negative test - set fee limit by non-owner', async ({api, web3, privateKeyWrapper}) => { --- a/tests/src/eth/util/contractHelpersAbi.json +++ b/tests/src/eth/util/contractHelpersAbi.json @@ -111,18 +111,8 @@ "type": "address" } ], - "name": "getSponsor", - "outputs": [ - { - "components": [ - { "internalType": "address", "name": "field_0", "type": "address" }, - { "internalType": "uint256", "name": "field_1", "type": "uint256" } - ], - "internalType": "struct Tuple0", - "name": "", - "type": "tuple" - } - ], + "name": "hasPendingSponsor", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, @@ -134,8 +124,8 @@ "type": "address" } ], - "name": "getSponsoringFeeLimit", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "hasSponsor", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, @@ -147,9 +137,9 @@ "type": "address" } ], - "name": "getSponsoringRateLimit", - "outputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }], - "stateMutability": "view", + "name": "removeSponsor", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -160,9 +150,9 @@ "type": "address" } ], - "name": "hasPendingSponsor", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "view", + "name": "selfSponsoredEnable", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -171,11 +161,12 @@ "internalType": "address", "name": "contractAddress", "type": "address" - } + }, + { "internalType": "address", "name": "sponsor", "type": "address" } ], - "name": "hasSponsor", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "stateMutability": "view", + "name": "setSponsor", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -184,9 +175,10 @@ "internalType": "address", "name": "contractAddress", "type": "address" - } + }, + { "internalType": "uint256", "name": "feeLimit", "type": "uint256" } ], - "name": "removeSponsor", + "name": "setSponsoringFeeLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -197,9 +189,10 @@ "internalType": "address", "name": "contractAddress", "type": "address" - } + }, + { "internalType": "uint8", "name": "mode", "type": "uint8" } ], - "name": "selfSponsoredEnable", + "name": "setSponsoringMode", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -211,9 +204,9 @@ "name": "contractAddress", "type": "address" }, - { "internalType": "address", "name": "sponsor", "type": "address" } + { "internalType": "uint32", "name": "rateLimit", "type": "uint32" } ], - "name": "setSponsor", + "name": "setSponsoringRateLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -224,12 +217,21 @@ "internalType": "address", "name": "contractAddress", "type": "address" - }, - { "internalType": "uint256", "name": "feeLimit", "type": "uint256" } + } + ], + "name": "sponsor", + "outputs": [ + { + "components": [ + { "internalType": "address", "name": "field_0", "type": "address" }, + { "internalType": "uint256", "name": "field_1", "type": "uint256" } + ], + "internalType": "struct Tuple0", + "name": "", + "type": "tuple" + } ], - "name": "setSponsoringFeeLimit", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -238,12 +240,11 @@ "internalType": "address", "name": "contractAddress", "type": "address" - }, - { "internalType": "uint8", "name": "mode", "type": "uint8" } + } ], - "name": "setSponsoringMode", - "outputs": [], - "stateMutability": "nonpayable", + "name": "sponsoringEnabled", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "view", "type": "function" }, { @@ -252,12 +253,11 @@ "internalType": "address", "name": "contractAddress", "type": "address" - }, - { "internalType": "uint32", "name": "rateLimit", "type": "uint32" } + } ], - "name": "setSponsoringRateLimit", - "outputs": [], - "stateMutability": "nonpayable", + "name": "sponsoringFeeLimit", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", "type": "function" }, { @@ -268,8 +268,8 @@ "type": "address" } ], - "name": "sponsoringEnabled", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "name": "sponsoringRateLimit", + "outputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }], "stateMutability": "view", "type": "function" },