From ebbe668ef5cd74b1235ab5ef2645318043a80109 Mon Sep 17 00:00:00 2001 From: Trubnikov Sergey Date: Thu, 09 Jun 2022 12:41:27 +0000 Subject: [PATCH] CORE-386 Fix after rebase --- --- a/pallets/common/src/erc.rs +++ b/pallets/common/src/erc.rs @@ -21,7 +21,6 @@ }; pub use pallet_evm::{PrecompileOutput, PrecompileResult, PrecompileHandle, account::CrossAccountId}; use pallet_evm_coder_substrate::dispatch_to_evm; -use sp_core::{H160, U256}; use sp_std::vec::Vec; use up_data_structs::{Property, SponsoringRateLimit, NestingRule, OwnerRestrictedSet, AccessMode}; use alloc::format; @@ -290,7 +289,11 @@ Ok(caller) } -fn save(collection: &CollectionHandle) { +fn save(collection: &CollectionHandle) -> Result { + // TODO possibly delete for the lack of transaction + collection + .check_is_internal() + .map_err(dispatch_to_evm::)?; >::insert(collection.id, collection.collection.clone()); Ok(()) } --- a/pallets/common/src/lib.rs +++ b/pallets/common/src/lib.rs @@ -1133,7 +1133,6 @@ user: &T::CrossAccountId, admin: bool, ) -> DispatchResult { - collection.check_is_mutable()?; collection.check_is_owner(sender)?; let was_admin = >::get((collection.id, user)); --- a/pallets/nonfungible/src/stubs/UniqueNFT.sol +++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol @@ -51,6 +51,147 @@ event MintingFinished(); } +// Selector: 2da6e59e +contract Collection is Dummy, ERC165 { + // Selector: setCollectionProperty(string,bytes) 2f073f66 + function setCollectionProperty(string memory key, bytes memory value) + public + { + require(false, stub_error); + key; + value; + dummy = 0; + } + + // Selector: deleteCollectionProperty(string) 7b7debce + function deleteCollectionProperty(string memory key) public { + require(false, stub_error); + key; + dummy = 0; + } + + // Throws error if key not found + // + // Selector: collectionProperty(string) cf24fd6d + function collectionProperty(string memory key) + public + view + returns (bytes memory) + { + require(false, stub_error); + key; + dummy; + return hex""; + } + + // Selector: setCollectionSponsor(address) 7623402e + function setCollectionSponsor(address sponsor) public { + require(false, stub_error); + sponsor; + dummy = 0; + } + + // Selector: confirmCollectionSponsorship() 3c50e97a + function confirmCollectionSponsorship() public { + require(false, stub_error); + dummy = 0; + } + + // Selector: setCollectionLimit(string,uint32) 6a3841db + function setCollectionLimit(string memory limit, uint32 value) public { + require(false, stub_error); + limit; + value; + dummy = 0; + } + + // Selector: setCollectionLimit(string,bool) 993b7fba + function setCollectionLimit(string memory limit, bool value) public { + require(false, stub_error); + limit; + value; + dummy = 0; + } + + // Selector: contractAddress() f6b4dfb4 + function contractAddress() public view returns (address) { + require(false, stub_error); + dummy; + return 0x0000000000000000000000000000000000000000; + } + + // Selector: addCollectionAdminSubstrate(uint256) 5730062b + function addCollectionAdminSubstrate(uint256 newAdmin) public view { + require(false, stub_error); + newAdmin; + dummy; + } + + // Selector: removeCollectionAdminSubstrate(uint256) 4048fcf9 + function removeCollectionAdminSubstrate(uint256 newAdmin) public view { + require(false, stub_error); + newAdmin; + dummy; + } + + // Selector: addCollectionAdmin(address) 92e462c7 + function addCollectionAdmin(address newAdmin) public view { + require(false, stub_error); + newAdmin; + dummy; + } + + // Selector: removeAdmin(address) 1785f53c + function removeAdmin(address admin) public view { + require(false, stub_error); + admin; + dummy; + } + + // Selector: setNesting(bool) e8fc50dd + function setNesting(bool enable) public { + require(false, stub_error); + enable; + dummy = 0; + } + + // Selector: setNesting(bool,address[]) 7df12a9a + function setNesting(bool enable, address[] memory collections) public { + require(false, stub_error); + enable; + collections; + dummy = 0; + } + + // Selector: setCollectionAccess(uint8) 41835d4c + function setCollectionAccess(uint8 mode) public { + require(false, stub_error); + mode; + dummy = 0; + } + + // Selector: addToCollectionAllowList(address) 67844fe6 + function addToCollectionAllowList(address user) public view { + require(false, stub_error); + user; + dummy; + } + + // Selector: removeFromCollectionAllowList(address) 85c51acb + function removeFromCollectionAllowList(address user) public view { + require(false, stub_error); + user; + dummy; + } + + // Selector: setMintMode(bool) 5dea9bd5 + function setMintMode(bool mode) public { + require(false, stub_error); + mode; + dummy = 0; + } +} + // Selector: 41369377 contract TokenProperties is Dummy, ERC165 { // Selector: setTokenPropertyPermission(string,bool,bool,bool) 222d97fa @@ -327,147 +468,6 @@ require(false, stub_error); dummy; return 0; - } -} - -// Selector: 7d9262e6 -contract Collection is Dummy, ERC165 { - // Selector: setCollectionProperty(string,bytes) 2f073f66 - function setCollectionProperty(string memory key, bytes memory value) - public - { - require(false, stub_error); - key; - value; - dummy = 0; - } - - // Selector: deleteCollectionProperty(string) 7b7debce - function deleteCollectionProperty(string memory key) public { - require(false, stub_error); - key; - dummy = 0; - } - - // Throws error if key not found - // - // Selector: collectionProperty(string) cf24fd6d - function collectionProperty(string memory key) - public - view - returns (bytes memory) - { - require(false, stub_error); - key; - dummy; - return hex""; - } - - // Selector: ethSetSponsor(address) 8f9af356 - function ethSetSponsor(address sponsor) public { - require(false, stub_error); - sponsor; - dummy = 0; - } - - // Selector: ethConfirmSponsorship() a8580d1a - function ethConfirmSponsorship() public { - require(false, stub_error); - dummy = 0; - } - - // Selector: setLimit(string,uint32) 68db30ca - function setLimit(string memory limit, uint32 value) public { - require(false, stub_error); - limit; - value; - dummy = 0; - } - - // Selector: setLimit(string,bool) ea67e4c2 - function setLimit(string memory limit, bool value) public { - require(false, stub_error); - limit; - value; - dummy = 0; - } - - // Selector: contractAddress() f6b4dfb4 - function contractAddress() public view returns (address) { - require(false, stub_error); - dummy; - return 0x0000000000000000000000000000000000000000; - } - - // Selector: addCollectionAdminSubstrate(uint256) 5730062b - function addCollectionAdminSubstrate(uint256 newAdmin) public view { - require(false, stub_error); - newAdmin; - dummy; - } - - // Selector: removeCollectionAdminSubstrate(uint256) 4048fcf9 - function removeCollectionAdminSubstrate(uint256 newAdmin) public view { - require(false, stub_error); - newAdmin; - dummy; - } - - // Selector: addCollectionAdmin(address) 92e462c7 - function addCollectionAdmin(address newAdmin) public view { - require(false, stub_error); - newAdmin; - dummy; - } - - // Selector: removeAdmin(address) 1785f53c - function removeAdmin(address admin) public view { - require(false, stub_error); - admin; - dummy; - } - - // Selector: setNesting(bool) e8fc50dd - function setNesting(bool enable) public { - require(false, stub_error); - enable; - dummy = 0; - } - - // Selector: setNesting(bool,address[]) 7df12a9a - function setNesting(bool enable, address[] memory collections) public { - require(false, stub_error); - enable; - collections; - dummy = 0; - } - - // Selector: setAccess(string) 488f56aa - function setAccess(string memory mode) public { - require(false, stub_error); - mode; - dummy = 0; - } - - // Selector: addToAllowList(address) 31f59102 - function addToAllowList(address user) public view { - require(false, stub_error); - user; - dummy; - } - - // Selector: removeFromAllowList(address) eba8dabc - function removeFromAllowList(address user) public view { - require(false, stub_error); - user; - dummy; - } - - // Selector: setMintMode(bool) 5dea9bd5 - function setMintMode(bool mode) public { - require(false, stub_error); - mode; - dummy = 0; } } --- a/tests/src/eth/api/UniqueNFT.sol +++ b/tests/src/eth/api/UniqueNFT.sol @@ -42,6 +42,69 @@ event MintingFinished(); } +// Selector: 2da6e59e +interface Collection is Dummy, ERC165 { + // Selector: setCollectionProperty(string,bytes) 2f073f66 + function setCollectionProperty(string memory key, bytes memory value) + external; + + // Selector: deleteCollectionProperty(string) 7b7debce + function deleteCollectionProperty(string memory key) external; + + // Throws error if key not found + // + // Selector: collectionProperty(string) cf24fd6d + function collectionProperty(string memory key) + external + view + returns (bytes memory); + + // Selector: setCollectionSponsor(address) 7623402e + function setCollectionSponsor(address sponsor) external; + + // Selector: confirmCollectionSponsorship() 3c50e97a + function confirmCollectionSponsorship() external; + + // Selector: setCollectionLimit(string,uint32) 6a3841db + function setCollectionLimit(string memory limit, uint32 value) external; + + // Selector: setCollectionLimit(string,bool) 993b7fba + function setCollectionLimit(string memory limit, bool value) external; + + // Selector: contractAddress() f6b4dfb4 + function contractAddress() external view returns (address); + + // Selector: addCollectionAdminSubstrate(uint256) 5730062b + function addCollectionAdminSubstrate(uint256 newAdmin) external view; + + // Selector: removeCollectionAdminSubstrate(uint256) 4048fcf9 + function removeCollectionAdminSubstrate(uint256 newAdmin) external view; + + // Selector: addCollectionAdmin(address) 92e462c7 + function addCollectionAdmin(address newAdmin) external view; + + // Selector: removeAdmin(address) 1785f53c + function removeAdmin(address admin) external view; + + // Selector: setNesting(bool) e8fc50dd + function setNesting(bool enable) external; + + // Selector: setNesting(bool,address[]) 7df12a9a + function setNesting(bool enable, address[] memory collections) external; + + // Selector: setCollectionAccess(uint8) 41835d4c + function setCollectionAccess(uint8 mode) external; + + // Selector: addToCollectionAllowList(address) 67844fe6 + function addToCollectionAllowList(address user) external view; + + // Selector: removeFromCollectionAllowList(address) 85c51acb + function removeFromCollectionAllowList(address user) external view; + + // Selector: setMintMode(bool) 5dea9bd5 + function setMintMode(bool mode) external; +} + // Selector: 41369377 interface TokenProperties is Dummy, ERC165 { // Selector: setTokenPropertyPermission(string,bool,bool,bool) 222d97fa @@ -189,70 +252,6 @@ // Selector: totalSupply() 18160ddd function totalSupply() external view returns (uint256); -} - -// Selector: 7d9262e6 -interface Collection is Dummy, ERC165 { - // Selector: setCollectionProperty(string,bytes) 2f073f66 - function setCollectionProperty(string memory key, bytes memory value) - external; - - // Selector: deleteCollectionProperty(string) 7b7debce - function deleteCollectionProperty(string memory key) external; - - // Throws error if key not found - // - // Selector: collectionProperty(string) cf24fd6d - function collectionProperty(string memory key) - external - view - returns (bytes memory); - - // Selector: setCollectionSponsor(address) 7623402e - function setCollectionSponsor(address sponsor) external; - - // Selector: confirmCollectionSponsorship() 3c50e97a - function confirmCollectionSponsorship() external; - - // Selector: setCollectionLimit(string,uint32) 6a3841db - function setCollectionLimit(string memory limit, uint32 value) external; - - // Selector: setCollectionLimit(string,bool) 993b7fba - function setCollectionLimit(string memory limit, bool value) external; - - // Selector: contractAddress() f6b4dfb4 - function contractAddress() external view returns (address); - - // Selector: addCollectionAdminSubstrate(uint256) 5730062b - function addCollectionAdminSubstrate(uint256 newAdmin) external view; - - // Selector: removeCollectionAdminSubstrate(uint256) 4048fcf9 - function removeCollectionAdminSubstrate(uint256 newAdmin) external view; - - // Selector: addCollectionAdmin(address) 92e462c7 - function addCollectionAdmin(address newAdmin) external view; - - // Selector: removeCollectionAdmin(address) fafd7b42 - function removeCollectionAdmin(address admin) external view; - - // Selector: setCollectionNesting(bool) 112d4586 - function setCollectionNesting(bool enable) external; - - // Selector: setCollectionNesting(bool,address[]) 64872396 - function setCollectionNesting(bool enable, address[] memory collections) - external; - - // Selector: setCollectionAccess(uint8) 41835d4c - function setCollectionAccess(uint8 mode) external; - - // Selector: addToCollectionAllowList(address) 67844fe6 - function addToCollectionAllowList(address user) external view; - - // Selector: removeFromCollectionAllowList(address) 85c51acb - function removeFromCollectionAllowList(address user) external view; - - // Selector: setCollectionMintMode(bool) 00018e84 - function setCollectionMintMode(bool mode) external; } // Selector: d74d154f @@ -275,63 +274,6 @@ function mintBulkWithTokenURI(address to, Tuple0[] memory tokens) external returns (bool); -} - -// Selector: f56cd7fa -interface Collection is Dummy, ERC165 { - // Selector: setCollectionProperty(string,bytes) 2f073f66 - function setCollectionProperty(string memory key, bytes memory value) - external; - - // Selector: deleteCollectionProperty(string) 7b7debce - function deleteCollectionProperty(string memory key) external; - - // Throws error if key not found - // - // Selector: collectionProperty(string) cf24fd6d - function collectionProperty(string memory key) - external - view - returns (bytes memory); - - // Selector: ethSetSponsor(address) 8f9af356 - function ethSetSponsor(address sponsor) external; - - // Selector: ethConfirmSponsorship() a8580d1a - function ethConfirmSponsorship() external; - - // Selector: setLimit(string,uint32) 68db30ca - function setLimit(string memory limit, uint32 value) external; - - // Selector: setLimit(string,bool) ea67e4c2 - function setLimit(string memory limit, bool value) external; - - // Selector: contractAddress() f6b4dfb4 - function contractAddress() external view returns (address); - - // Selector: addAdmin(address) 70480275 - function addAdmin(address newAdmin) external view; - - // Selector: removeAdmin(address) 1785f53c - function removeAdmin(address admin) external view; - - // Selector: setNesting(bool) e8fc50dd - function setNesting(bool enable) external; - - // Selector: setNesting(bool,address[]) 7df12a9a - function setNesting(bool enable, address[] memory collections) external; - - // Selector: setAccess(string) 488f56aa - function setAccess(string memory mode) external; - - // Selector: addToAllowList(address) 31f59102 - function addToAllowList(address user) external view; - - // Selector: removeFromAllowList(address) eba8dabc - function removeFromAllowList(address user) external view; - - // Selector: setMintMode(bool) 5dea9bd5 - function setMintMode(bool mode) external; } interface UniqueNFT is --- a/tests/src/eth/nonFungibleAbi.json +++ b/tests/src/eth/nonFungibleAbi.json @@ -84,7 +84,7 @@ "inputs": [ { "internalType": "address", "name": "newAdmin", "type": "address" } ], - "name": "addAdmin", + "name": "addCollectionAdmin", "outputs": [], "stateMutability": "view", "type": "function" @@ -102,7 +102,7 @@ "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], - "name": "addToAllowList", + "name": "addToCollectionAllowList", "outputs": [], "stateMutability": "view", "type": "function" @@ -320,7 +320,7 @@ "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], - "name": "removeFromAllowList", + "name": "removeFromCollectionAllowList", "outputs": [], "stateMutability": "view", "type": "function" @@ -349,13 +349,6 @@ "type": "function" }, { - "inputs": [{ "internalType": "string", "name": "mode", "type": "string" }], - "name": "setAccess", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } @@ -388,34 +381,6 @@ { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setCollectionLimit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }], - "name": "setCollectionMintMode", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }], - "name": "setCollectionNesting", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "bool", "name": "enable", "type": "bool" }, - { - "internalType": "address[]", - "name": "collections", - "type": "address[]" - } - ], - "name": "setCollectionNesting", "outputs": [], "stateMutability": "nonpayable", "type": "function" -- gitstuff