--- a/pallets/common/src/erc.rs +++ b/pallets/common/src/erc.rs @@ -592,6 +592,7 @@ /// /// @dev Owner can be changed only by current owner /// @param newOwner new owner account + #[solidity(rename_selector = "changeCollectionOwner")] fn set_owner(&mut self, caller: caller, new_owner: address) -> Result { self.consume_store_writes(1)?; --- a/pallets/fungible/src/stubs/UniqueFungible.sol +++ b/pallets/fungible/src/stubs/UniqueFungible.sol @@ -18,7 +18,7 @@ } /// @title A contract that allows you to work with collections. -/// @dev the ERC-165 identifier for this interface is 0x3e1e8083 +/// @dev the ERC-165 identifier for this interface is 0x62e22290 contract Collection is Dummy, ERC165 { /// Set collection property. /// @@ -296,9 +296,9 @@ /// /// @dev Owner can be changed only by current owner /// @param newOwner new owner account - /// @dev EVM selector for this function is: 0x13af4035, - /// or in textual repr: setOwner(address) - function setOwner(address newOwner) public { + /// @dev EVM selector for this function is: 0x4f53e226, + /// or in textual repr: changeCollectionOwner(address) + function changeCollectionOwner(address newOwner) public { require(false, stub_error); newOwner; dummy = 0; --- a/pallets/nonfungible/src/stubs/UniqueNFT.sol +++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol @@ -91,7 +91,7 @@ } /// @title A contract that allows you to work with collections. -/// @dev the ERC-165 identifier for this interface is 0x3e1e8083 +/// @dev the ERC-165 identifier for this interface is 0x62e22290 contract Collection is Dummy, ERC165 { /// Set collection property. /// @@ -369,9 +369,9 @@ /// /// @dev Owner can be changed only by current owner /// @param newOwner new owner account - /// @dev EVM selector for this function is: 0x13af4035, - /// or in textual repr: setOwner(address) - function setOwner(address newOwner) public { + /// @dev EVM selector for this function is: 0x4f53e226, + /// or in textual repr: changeCollectionOwner(address) + function changeCollectionOwner(address newOwner) public { require(false, stub_error); newOwner; dummy = 0; --- a/pallets/refungible/src/stubs/UniqueRefungible.sol +++ b/pallets/refungible/src/stubs/UniqueRefungible.sol @@ -91,7 +91,7 @@ } /// @title A contract that allows you to work with collections. -/// @dev the ERC-165 identifier for this interface is 0x3e1e8083 +/// @dev the ERC-165 identifier for this interface is 0x62e22290 contract Collection is Dummy, ERC165 { /// Set collection property. /// @@ -369,9 +369,9 @@ /// /// @dev Owner can be changed only by current owner /// @param newOwner new owner account - /// @dev EVM selector for this function is: 0x13af4035, - /// or in textual repr: setOwner(address) - function setOwner(address newOwner) public { + /// @dev EVM selector for this function is: 0x4f53e226, + /// or in textual repr: changeCollectionOwner(address) + function changeCollectionOwner(address newOwner) public { require(false, stub_error); newOwner; dummy = 0; --- a/pallets/unique/src/eth/mod.rs +++ b/pallets/unique/src/eth/mod.rs @@ -184,6 +184,7 @@ /// @return address Address of the newly created collection #[weight(>::create_collection())] #[deprecated(note = "mathod was renamed to `create_nft_collection`, prefer it instead")] + #[solidity(hide)] fn create_nonfungible_collection( &mut self, caller: caller, --- a/pallets/unique/src/eth/stubs/CollectionHelpers.sol +++ b/pallets/unique/src/eth/stubs/CollectionHelpers.sol @@ -45,25 +45,21 @@ return 0x0000000000000000000000000000000000000000; } - /// Create an NFT collection - /// @param name Name of the collection - /// @param description Informative description of the collection - /// @param tokenPrefix Token prefix to represent the collection tokens in UI and user applications - /// @return address Address of the newly created collection - /// @dev EVM selector for this function is: 0xe34a6844, - /// or in textual repr: createNonfungibleCollection(string,string,string) - function createNonfungibleCollection( - string memory name, - string memory description, - string memory tokenPrefix - ) public payable returns (address) { - require(false, stub_error); - name; - description; - tokenPrefix; - dummy = 0; - return 0x0000000000000000000000000000000000000000; - } + // /// Create an NFT collection + // /// @param name Name of the collection + // /// @param description Informative description of the collection + // /// @param tokenPrefix Token prefix to represent the collection tokens in UI and user applications + // /// @return address Address of the newly created collection + // /// @dev EVM selector for this function is: 0xe34a6844, + // /// or in textual repr: createNonfungibleCollection(string,string,string) + // function createNonfungibleCollection(string memory name, string memory description, string memory tokenPrefix) public payable returns (address) { + // require(false, stub_error); + // name; + // description; + // tokenPrefix; + // dummy = 0; + // return 0x0000000000000000000000000000000000000000; + // } /// @dev EVM selector for this function is: 0xab173450, /// or in textual repr: createRFTCollection(string,string,string) --- a/tests/src/eth/api/CollectionHelpers.sol +++ b/tests/src/eth/api/CollectionHelpers.sol @@ -33,18 +33,14 @@ string memory tokenPrefix ) external payable returns (address); - /// Create an NFT collection - /// @param name Name of the collection - /// @param description Informative description of the collection - /// @param tokenPrefix Token prefix to represent the collection tokens in UI and user applications - /// @return address Address of the newly created collection - /// @dev EVM selector for this function is: 0xe34a6844, - /// or in textual repr: createNonfungibleCollection(string,string,string) - function createNonfungibleCollection( - string memory name, - string memory description, - string memory tokenPrefix - ) external payable returns (address); + // /// Create an NFT collection + // /// @param name Name of the collection + // /// @param description Informative description of the collection + // /// @param tokenPrefix Token prefix to represent the collection tokens in UI and user applications + // /// @return address Address of the newly created collection + // /// @dev EVM selector for this function is: 0xe34a6844, + // /// or in textual repr: createNonfungibleCollection(string,string,string) + // function createNonfungibleCollection(string memory name, string memory description, string memory tokenPrefix) external payable returns (address); /// @dev EVM selector for this function is: 0xab173450, /// or in textual repr: createRFTCollection(string,string,string) --- a/tests/src/eth/api/UniqueFungible.sol +++ b/tests/src/eth/api/UniqueFungible.sol @@ -13,7 +13,7 @@ } /// @title A contract that allows you to work with collections. -/// @dev the ERC-165 identifier for this interface is 0x3e1e8083 +/// @dev the ERC-165 identifier for this interface is 0x62e22290 interface Collection is Dummy, ERC165 { /// Set collection property. /// @@ -194,9 +194,9 @@ /// /// @dev Owner can be changed only by current owner /// @param newOwner new owner account - /// @dev EVM selector for this function is: 0x13af4035, - /// or in textual repr: setOwner(address) - function setOwner(address newOwner) external; + /// @dev EVM selector for this function is: 0x4f53e226, + /// or in textual repr: changeCollectionOwner(address) + function changeCollectionOwner(address newOwner) external; } /// @dev the ERC-165 identifier for this interface is 0x63034ac5 --- a/tests/src/eth/api/UniqueNFT.sol +++ b/tests/src/eth/api/UniqueNFT.sol @@ -62,7 +62,7 @@ } /// @title A contract that allows you to work with collections. -/// @dev the ERC-165 identifier for this interface is 0x3e1e8083 +/// @dev the ERC-165 identifier for this interface is 0x62e22290 interface Collection is Dummy, ERC165 { /// Set collection property. /// @@ -243,9 +243,9 @@ /// /// @dev Owner can be changed only by current owner /// @param newOwner new owner account - /// @dev EVM selector for this function is: 0x13af4035, - /// or in textual repr: setOwner(address) - function setOwner(address newOwner) external; + /// @dev EVM selector for this function is: 0x4f53e226, + /// or in textual repr: changeCollectionOwner(address) + function changeCollectionOwner(address newOwner) external; } /// @dev anonymous struct --- a/tests/src/eth/api/UniqueRefungible.sol +++ b/tests/src/eth/api/UniqueRefungible.sol @@ -62,7 +62,7 @@ } /// @title A contract that allows you to work with collections. -/// @dev the ERC-165 identifier for this interface is 0x3e1e8083 +/// @dev the ERC-165 identifier for this interface is 0x62e22290 interface Collection is Dummy, ERC165 { /// Set collection property. /// @@ -243,9 +243,9 @@ /// /// @dev Owner can be changed only by current owner /// @param newOwner new owner account - /// @dev EVM selector for this function is: 0x13af4035, - /// or in textual repr: setOwner(address) - function setOwner(address newOwner) external; + /// @dev EVM selector for this function is: 0x4f53e226, + /// or in textual repr: changeCollectionOwner(address) + function changeCollectionOwner(address newOwner) external; } /// @dev anonymous struct --- a/tests/src/eth/collectionAdmin.test.ts +++ b/tests/src/eth/collectionAdmin.test.ts @@ -282,7 +282,7 @@ const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C'); const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner); - await collectionEvm.methods.setOwner(newOwner).send(); + await collectionEvm.methods.changeCollectionOwner(newOwner).send(); expect(await collectionEvm.methods.isOwnerOrAdmin(owner).call()).to.be.false; expect(await collectionEvm.methods.isOwnerOrAdmin(newOwner).call()).to.be.true; @@ -293,7 +293,7 @@ const newOwner = await helper.eth.createAccountWithBalance(donor); const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C'); const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner); - const cost = await recordEthFee(helper, owner, () => collectionEvm.methods.setOwner(newOwner).send()); + const cost = await recordEthFee(helper, owner, () => collectionEvm.methods.changeCollectionOwner(newOwner).send()); expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal()))); expect(cost > 0); }); @@ -304,7 +304,7 @@ const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C'); const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner); - await expect(collectionEvm.methods.setOwner(newOwner).send({from: newOwner})).to.be.rejected; + await expect(collectionEvm.methods.changeCollectionOwner(newOwner).send({from: newOwner})).to.be.rejected; expect(await collectionEvm.methods.isOwnerOrAdmin(newOwner).call()).to.be.false; }); }); --- a/tests/src/eth/collectionHelpersAbi.json +++ b/tests/src/eth/collectionHelpersAbi.json @@ -42,17 +42,6 @@ { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "string", "name": "tokenPrefix", "type": "string" } ], - "name": "createNonfungibleCollection", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "string", "name": "name", "type": "string" }, - { "internalType": "string", "name": "description", "type": "string" }, - { "internalType": "string", "name": "tokenPrefix", "type": "string" } - ], "name": "createRFTCollection", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "payable", --- a/tests/src/eth/fungibleAbi.json +++ b/tests/src/eth/fungibleAbi.json @@ -116,6 +116,15 @@ "type": "function" }, { + "inputs": [ + { "internalType": "address", "name": "newOwner", "type": "address" } + ], + "name": "changeCollectionOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { "inputs": [], "name": "collectionOwner", "outputs": [ @@ -329,15 +338,6 @@ { "internalType": "address", "name": "sponsor", "type": "address" } ], "name": "setCollectionSponsor", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" --- a/tests/src/eth/nonFungibleAbi.json +++ b/tests/src/eth/nonFungibleAbi.json @@ -146,6 +146,15 @@ "type": "function" }, { + "inputs": [ + { "internalType": "address", "name": "newOwner", "type": "address" } + ], + "name": "changeCollectionOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { "inputs": [], "name": "collectionOwner", "outputs": [ @@ -472,15 +481,6 @@ { "internalType": "address", "name": "sponsor", "type": "address" } ], "name": "setCollectionSponsor", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" --- a/tests/src/eth/reFungibleAbi.json +++ b/tests/src/eth/reFungibleAbi.json @@ -146,6 +146,15 @@ "type": "function" }, { + "inputs": [ + { "internalType": "address", "name": "newOwner", "type": "address" } + ], + "name": "changeCollectionOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { "inputs": [], "name": "collectionOwner", "outputs": [ @@ -472,15 +481,6 @@ { "internalType": "address", "name": "sponsor", "type": "address" } ], "name": "setCollectionSponsor", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function"