From 9309104302007a434f6698deace5bdbbb9f2bc84 Mon Sep 17 00:00:00 2001 From: Grigoriy Simonov Date: Tue, 27 Sep 2022 10:13:26 +0000 Subject: [PATCH] chore: add `collectionCreationFee` method to CollectionHelpers --- --- a/pallets/unique/src/eth/stubs/CollectionHelpers.sol +++ b/pallets/unique/src/eth/stubs/CollectionHelpers.sol @@ -23,7 +23,7 @@ } /// @title Contract, which allows users to operate with collections -/// @dev the ERC-165 identifier for this interface is 0x88ee8ef1 +/// @dev the ERC-165 identifier for this interface is 0x5ad4f440 contract CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents { /// Create an NFT collection /// @param name Name of the collection @@ -105,4 +105,12 @@ dummy; return false; } + + /// @dev EVM selector for this function is: 0xd23a7ab1, + /// or in textual repr: collectionCreationFee() + function collectionCreationFee() public view returns (uint256) { + require(false, stub_error); + dummy; + return 0; + } } --- a/tests/src/eth/api/CollectionHelpers.sol +++ b/tests/src/eth/api/CollectionHelpers.sol @@ -18,7 +18,7 @@ } /// @title Contract, which allows users to operate with collections -/// @dev the ERC-165 identifier for this interface is 0x88ee8ef1 +/// @dev the ERC-165 identifier for this interface is 0x5ad4f440 interface CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents { /// Create an NFT collection /// @param name Name of the collection @@ -65,4 +65,8 @@ /// @dev EVM selector for this function is: 0xc3de1494, /// or in textual repr: isCollectionExist(address) function isCollectionExist(address collectionAddress) external view returns (bool); + + /// @dev EVM selector for this function is: 0xd23a7ab1, + /// or in textual repr: collectionCreationFee() + function collectionCreationFee() external view returns (uint256); } --- a/tests/src/eth/collectionHelpersAbi.json +++ b/tests/src/eth/collectionHelpersAbi.json @@ -19,6 +19,13 @@ "type": "event" }, { + "inputs": [], + "name": "collectionCreationFee", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, --- a/tests/src/eth/payable.test.ts +++ b/tests/src/eth/payable.test.ts @@ -171,6 +171,11 @@ expect(finalContractBalance == initialContractBalance).to.be.true; }); + itEth('Get collection creation fee', async({helper}) => { + const deployer = await helper.eth.createAccountWithBalance(donor); + expect(await helper.eth.getCollectionCreationFee(deployer)).to.be.equal(String(2n * helper.balance.getOneTokenNominal())); + }); + async function deployProxyContract(helper: EthUniqueHelper, deployer: string) { return await helper.ethContract.deployByCode( deployer, --- a/tests/src/eth/util/playgrounds/unique.dev.ts +++ b/tests/src/eth/util/playgrounds/unique.dev.ts @@ -152,6 +152,11 @@ async transferBalanceFromSubstrate(donor: IKeyringPair, recepient: string, amount=1000n, inTokens=true) { return await this.helper.balance.transferToSubstrate(donor, evmToAddress(recepient), amount * (inTokens ? this.helper.balance.getOneTokenNominal() : 1n)); } + + async getCollectionCreationFee(signer: string) { + const collectionHelper = this.helper.ethNativeContract.collectionHelpers(signer); + return await collectionHelper.methods.collectionCreationFee().call(); + } async sendEVM(signer: IKeyringPair, contractAddress: string, abi: string, value: string, gasLimit?: number) { if(!gasLimit) gasLimit = this.DEFAULT_GAS; -- gitstuff