git.delta.rocks / unique-network / refs/commits / 9e7b960e54f6

difftreelog

chore generate stubs & fix docs

PraetorP2022-12-16parent: #e624910.patch.diff
in: master

13 files changed

modifiedpallets/common/src/eth.rsdiffbeforeafterboth
--- a/pallets/common/src/eth.rs
+++ b/pallets/common/src/eth.rs
@@ -147,29 +147,41 @@
 	/// How many tokens can a user have on one account.
 	#[default]
 	AccountTokenOwnership,
+
 	/// How many bytes of data are available for sponsorship.
 	SponsoredDataSize,
+
 	/// In any case, chain default: [`SponsoringRateLimit::SponsoringDisabled`]
 	SponsoredDataRateLimit,
+
 	/// How many tokens can be mined into this collection.
 	TokenLimit,
+
 	/// Timeouts for transfer sponsoring.
 	SponsorTransferTimeout,
+
 	/// Timeout for sponsoring an approval in passed blocks.
 	SponsorApproveTimeout,
+
 	/// Whether the collection owner of the collection can send tokens (which belong to other users).
 	OwnerCanTransfer,
+
 	/// Can the collection owner burn other people's tokens.
 	OwnerCanDestroy,
+
 	/// Is it possible to send tokens from this collection between users.
 	TransferEnabled,
 }
+/// Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.
 #[derive(Default, Debug, Clone, Copy, AbiCoder)]
 #[repr(u8)]
 pub enum CollectionPermissions {
+	/// Owner of token can nest tokens under it.
 	#[default]
-	CollectionAdmin,
 	TokenOwner,
+
+	/// Admin of token collection can nest tokens under token.
+	CollectionAdmin,
 }
 
 /// Ethereum representation of TokenPermissions (see [`up_data_structs::PropertyPermission`]) fields as an enumeration.
modifiedpallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth
--- a/pallets/fungible/src/stubs/UniqueFungible.sol
+++ b/pallets/fungible/src/stubs/UniqueFungible.sol
@@ -173,10 +173,10 @@
 	/// Return `false` if a limit not set.
 	/// @dev EVM selector for this function is: 0xf63bc572,
 	///  or in textual repr: collectionLimits()
-	function collectionLimits() public view returns (Tuple20[] memory) {
+	function collectionLimits() public view returns (Tuple23[] memory) {
 		require(false, stub_error);
 		dummy;
-		return new Tuple20[](0);
+		return new Tuple23[](0);
 	}
 
 	/// Set limits for the collection.
@@ -284,33 +284,19 @@
 	/// Returns nesting for a collection
 	/// @dev EVM selector for this function is: 0x22d25bfe,
 	///  or in textual repr: collectionNestingRestrictedCollectionIds()
-<<<<<<< HEAD
-	function collectionNestingRestrictedCollectionIds() public view returns (Tuple26 memory) {
+	function collectionNestingRestrictedCollectionIds() public view returns (Tuple29 memory) {
 		require(false, stub_error);
 		dummy;
-		return Tuple26(false, new uint256[](0));
-=======
-	function collectionNestingRestrictedCollectionIds() public view returns (Tuple24 memory) {
-		require(false, stub_error);
-		dummy;
-		return Tuple24(false, new uint256[](0));
->>>>>>> 09f69700... chore: generate stubs
+		return Tuple29(false, new uint256[](0));
 	}
 
 	/// Returns permissions for a collection
 	/// @dev EVM selector for this function is: 0x5b2eaf4b,
 	///  or in textual repr: collectionNestingPermissions()
-<<<<<<< HEAD
-	function collectionNestingPermissions() public view returns (Tuple29[] memory) {
+	function collectionNestingPermissions() public view returns (Tuple32[] memory) {
 		require(false, stub_error);
 		dummy;
-		return new Tuple29[](0);
-=======
-	function collectionNestingPermissions() public view returns (Tuple27[] memory) {
-		require(false, stub_error);
-		dummy;
-		return new Tuple27[](0);
->>>>>>> 09f69700... chore: generate stubs
+		return new Tuple32[](0);
 	}
 
 	/// Set the collection access method.
@@ -490,21 +476,13 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple29 {
-=======
-struct Tuple27 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple32 {
 	CollectionPermissions field_0;
 	bool field_1;
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple26 {
-=======
-struct Tuple24 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple29 {
 	bool field_0;
 	uint256[] field_1;
 }
@@ -532,7 +510,7 @@
 }
 
 /// @dev anonymous struct
-struct Tuple20 {
+struct Tuple23 {
 	CollectionLimits field_0;
 	bool field_1;
 	uint256 field_2;
modifiedpallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth
--- a/pallets/nonfungible/src/stubs/UniqueNFT.sol
+++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol
@@ -42,11 +42,7 @@
 	/// @param permissions Permissions for keys.
 	/// @dev EVM selector for this function is: 0xbd92983a,
 	///  or in textual repr: setTokenPropertyPermissions((string,(uint8,bool)[])[])
-<<<<<<< HEAD
-	function setTokenPropertyPermissions(Tuple59[] memory permissions) public {
-=======
-	function setTokenPropertyPermissions(Tuple56[] memory permissions) public {
->>>>>>> 9e929f90... chore: generate stubs & types
+	function setTokenPropertyPermissions(Tuple61[] memory permissions) public {
 		require(false, stub_error);
 		permissions;
 		dummy = 0;
@@ -55,17 +51,10 @@
 	/// @notice Get permissions for token properties.
 	/// @dev EVM selector for this function is: 0xf23d7790,
 	///  or in textual repr: tokenPropertyPermissions()
-<<<<<<< HEAD
-	function tokenPropertyPermissions() public view returns (Tuple59[] memory) {
-		require(false, stub_error);
-		dummy;
-		return new Tuple59[](0);
-=======
-	function tokenPropertyPermissions() public view returns (Tuple56[] memory) {
+	function tokenPropertyPermissions() public view returns (Tuple61[] memory) {
 		require(false, stub_error);
 		dummy;
-		return new Tuple56[](0);
->>>>>>> 9e929f90... chore: generate stubs & types
+		return new Tuple61[](0);
 	}
 
 	// /// @notice Set token property value.
@@ -155,23 +144,13 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple59 {
+struct Tuple61 {
 	string field_0;
-	Tuple57[] field_1;
+	Tuple59[] field_1;
 }
 
 /// @dev anonymous struct
-struct Tuple57 {
-=======
-struct Tuple56 {
-	string field_0;
-	Tuple54[] field_1;
-}
-
-/// @dev anonymous struct
-struct Tuple54 {
->>>>>>> 9e929f90... chore: generate stubs & types
+struct Tuple59 {
 	EthTokenPermissions field_0;
 	bool field_1;
 }
@@ -332,10 +311,10 @@
 	/// Return `false` if a limit not set.
 	/// @dev EVM selector for this function is: 0xf63bc572,
 	///  or in textual repr: collectionLimits()
-	function collectionLimits() public view returns (Tuple33[] memory) {
+	function collectionLimits() public view returns (Tuple35[] memory) {
 		require(false, stub_error);
 		dummy;
-		return new Tuple33[](0);
+		return new Tuple35[](0);
 	}
 
 	/// Set limits for the collection.
@@ -443,33 +422,19 @@
 	/// Returns nesting for a collection
 	/// @dev EVM selector for this function is: 0x22d25bfe,
 	///  or in textual repr: collectionNestingRestrictedCollectionIds()
-<<<<<<< HEAD
-	function collectionNestingRestrictedCollectionIds() public view returns (Tuple39 memory) {
+	function collectionNestingRestrictedCollectionIds() public view returns (Tuple41 memory) {
 		require(false, stub_error);
 		dummy;
-		return Tuple39(false, new uint256[](0));
-=======
-	function collectionNestingRestrictedCollectionIds() public view returns (Tuple36 memory) {
-		require(false, stub_error);
-		dummy;
-		return Tuple36(false, new uint256[](0));
->>>>>>> 09f69700... chore: generate stubs
+		return Tuple41(false, new uint256[](0));
 	}
 
 	/// Returns permissions for a collection
 	/// @dev EVM selector for this function is: 0x5b2eaf4b,
 	///  or in textual repr: collectionNestingPermissions()
-<<<<<<< HEAD
-	function collectionNestingPermissions() public view returns (Tuple42[] memory) {
-		require(false, stub_error);
-		dummy;
-		return new Tuple42[](0);
-=======
-	function collectionNestingPermissions() public view returns (Tuple39[] memory) {
+	function collectionNestingPermissions() public view returns (Tuple44[] memory) {
 		require(false, stub_error);
 		dummy;
-		return new Tuple39[](0);
->>>>>>> 09f69700... chore: generate stubs
+		return new Tuple44[](0);
 	}
 
 	/// Set the collection access method.
@@ -649,26 +614,17 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple42 {
-=======
-struct Tuple39 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple44 {
 	CollectionPermissions field_0;
 	bool field_1;
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple39 {
-=======
-struct Tuple36 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple41 {
 	bool field_0;
 	uint256[] field_1;
 }
 
-<<<<<<< HEAD
 /// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) representation for EVM.
 enum CollectionLimits {
 	/// @dev How many tokens can a user have on one account.
@@ -692,22 +648,12 @@
 }
 
 /// @dev anonymous struct
-struct Tuple33 {
+struct Tuple35 {
 	CollectionLimits field_0;
 	bool field_1;
 	uint256 field_2;
 }
 
-/// @dev anonymous struct
-struct Tuple32 {
-	address field_0;
-	uint256 field_1;
-}
-
-=======
->>>>>>> 0bf15e6f... fixed tests&tuple instead of struct, refactored `refungible` pallet
-=======
->>>>>>> 09f69700... chore: generate stubs
 /// @title ERC-721 Non-Fungible Token Standard, optional metadata extension
 /// @dev See https://eips.ethereum.org/EIPS/eip-721
 /// @dev the ERC-165 identifier for this interface is 0x5b5e139f
modifiedpallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth
--- a/pallets/refungible/src/stubs/UniqueRefungible.sol
+++ b/pallets/refungible/src/stubs/UniqueRefungible.sol
@@ -42,11 +42,7 @@
 	/// @param permissions Permissions for keys.
 	/// @dev EVM selector for this function is: 0xbd92983a,
 	///  or in textual repr: setTokenPropertyPermissions((string,(uint8,bool)[])[])
-<<<<<<< HEAD
-	function setTokenPropertyPermissions(Tuple58[] memory permissions) public {
-=======
-	function setTokenPropertyPermissions(Tuple55[] memory permissions) public {
->>>>>>> 9e929f90... chore: generate stubs & types
+	function setTokenPropertyPermissions(Tuple60[] memory permissions) public {
 		require(false, stub_error);
 		permissions;
 		dummy = 0;
@@ -55,17 +51,10 @@
 	/// @notice Get permissions for token properties.
 	/// @dev EVM selector for this function is: 0xf23d7790,
 	///  or in textual repr: tokenPropertyPermissions()
-<<<<<<< HEAD
-	function tokenPropertyPermissions() public view returns (Tuple58[] memory) {
-		require(false, stub_error);
-		dummy;
-		return new Tuple58[](0);
-=======
-	function tokenPropertyPermissions() public view returns (Tuple55[] memory) {
+	function tokenPropertyPermissions() public view returns (Tuple60[] memory) {
 		require(false, stub_error);
 		dummy;
-		return new Tuple55[](0);
->>>>>>> 9e929f90... chore: generate stubs & types
+		return new Tuple60[](0);
 	}
 
 	// /// @notice Set token property value.
@@ -155,23 +144,13 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple58 {
-	string field_0;
-	Tuple56[] field_1;
-}
-
-/// @dev anonymous struct
-struct Tuple56 {
-=======
-struct Tuple55 {
+struct Tuple60 {
 	string field_0;
-	Tuple53[] field_1;
+	Tuple58[] field_1;
 }
 
 /// @dev anonymous struct
-struct Tuple53 {
->>>>>>> 9e929f90... chore: generate stubs & types
+struct Tuple58 {
 	EthTokenPermissions field_0;
 	bool field_1;
 }
@@ -332,10 +311,10 @@
 	/// Return `false` if a limit not set.
 	/// @dev EVM selector for this function is: 0xf63bc572,
 	///  or in textual repr: collectionLimits()
-	function collectionLimits() public view returns (Tuple32[] memory) {
+	function collectionLimits() public view returns (Tuple34[] memory) {
 		require(false, stub_error);
 		dummy;
-		return new Tuple32[](0);
+		return new Tuple34[](0);
 	}
 
 	/// Set limits for the collection.
@@ -443,33 +422,19 @@
 	/// Returns nesting for a collection
 	/// @dev EVM selector for this function is: 0x22d25bfe,
 	///  or in textual repr: collectionNestingRestrictedCollectionIds()
-<<<<<<< HEAD
-	function collectionNestingRestrictedCollectionIds() public view returns (Tuple38 memory) {
+	function collectionNestingRestrictedCollectionIds() public view returns (Tuple40 memory) {
 		require(false, stub_error);
 		dummy;
-		return Tuple38(false, new uint256[](0));
-=======
-	function collectionNestingRestrictedCollectionIds() public view returns (Tuple35 memory) {
-		require(false, stub_error);
-		dummy;
-		return Tuple35(false, new uint256[](0));
->>>>>>> 09f69700... chore: generate stubs
+		return Tuple40(false, new uint256[](0));
 	}
 
 	/// Returns permissions for a collection
 	/// @dev EVM selector for this function is: 0x5b2eaf4b,
 	///  or in textual repr: collectionNestingPermissions()
-<<<<<<< HEAD
-	function collectionNestingPermissions() public view returns (Tuple41[] memory) {
-		require(false, stub_error);
-		dummy;
-		return new Tuple41[](0);
-=======
-	function collectionNestingPermissions() public view returns (Tuple38[] memory) {
+	function collectionNestingPermissions() public view returns (Tuple43[] memory) {
 		require(false, stub_error);
 		dummy;
-		return new Tuple38[](0);
->>>>>>> 09f69700... chore: generate stubs
+		return new Tuple43[](0);
 	}
 
 	/// Set the collection access method.
@@ -649,26 +614,17 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple41 {
-=======
-struct Tuple38 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple43 {
 	CollectionPermissions field_0;
 	bool field_1;
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple38 {
-=======
-struct Tuple35 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple40 {
 	bool field_0;
 	uint256[] field_1;
 }
 
-<<<<<<< HEAD
 /// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) representation for EVM.
 enum CollectionLimits {
 	/// @dev How many tokens can a user have on one account.
@@ -692,20 +648,12 @@
 }
 
 /// @dev anonymous struct
-struct Tuple32 {
+struct Tuple34 {
 	CollectionLimits field_0;
 	bool field_1;
 	uint256 field_2;
-}
-
-/// @dev anonymous struct
-struct Tuple31 {
-	address field_0;
-	uint256 field_1;
 }
 
-=======
->>>>>>> 09f69700... chore: generate stubs
 /// @dev the ERC-165 identifier for this interface is 0x5b5e139f
 contract ERC721Metadata is Dummy, ERC165 {
 	// /// @notice A descriptive name for a collection of NFTs in this contract
modifiedtests/src/eth/abi/fungible.jsondiffbeforeafterboth
before · tests/src/eth/abi/fungible.json
1[2  {3    "anonymous": false,4    "inputs": [5      {6        "indexed": true,7        "internalType": "address",8        "name": "owner",9        "type": "address"10      },11      {12        "indexed": true,13        "internalType": "address",14        "name": "spender",15        "type": "address"16      },17      {18        "indexed": false,19        "internalType": "uint256",20        "name": "value",21        "type": "uint256"22      }23    ],24    "name": "Approval",25    "type": "event"26  },27  {28    "anonymous": false,29    "inputs": [30      {31        "indexed": true,32        "internalType": "address",33        "name": "from",34        "type": "address"35      },36      {37        "indexed": true,38        "internalType": "address",39        "name": "to",40        "type": "address"41      },42      {43        "indexed": false,44        "internalType": "uint256",45        "name": "value",46        "type": "uint256"47      }48    ],49    "name": "Transfer",50    "type": "event"51  },52  {53    "inputs": [54      {55        "components": [56          { "internalType": "address", "name": "eth", "type": "address" },57          { "internalType": "uint256", "name": "sub", "type": "uint256" }58        ],59        "internalType": "struct EthCrossAccount",60        "name": "newAdmin",61        "type": "tuple"62      }63    ],64    "name": "addCollectionAdminCross",65    "outputs": [],66    "stateMutability": "nonpayable",67    "type": "function"68  },69  {70    "inputs": [71      {72        "components": [73          { "internalType": "address", "name": "eth", "type": "address" },74          { "internalType": "uint256", "name": "sub", "type": "uint256" }75        ],76        "internalType": "struct EthCrossAccount",77        "name": "user",78        "type": "tuple"79      }80    ],81    "name": "addToCollectionAllowListCross",82    "outputs": [],83    "stateMutability": "nonpayable",84    "type": "function"85  },86  {87    "inputs": [88      { "internalType": "address", "name": "owner", "type": "address" },89      { "internalType": "address", "name": "spender", "type": "address" }90    ],91    "name": "allowance",92    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],93    "stateMutability": "view",94    "type": "function"95  },96  {97    "inputs": [98      {99        "components": [100          { "internalType": "address", "name": "eth", "type": "address" },101          { "internalType": "uint256", "name": "sub", "type": "uint256" }102        ],103        "internalType": "struct EthCrossAccount",104        "name": "user",105        "type": "tuple"106      }107    ],108    "name": "allowlistedCross",109    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],110    "stateMutability": "view",111    "type": "function"112  },113  {114    "inputs": [115      { "internalType": "address", "name": "spender", "type": "address" },116      { "internalType": "uint256", "name": "amount", "type": "uint256" }117    ],118    "name": "approve",119    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],120    "stateMutability": "nonpayable",121    "type": "function"122  },123  {124    "inputs": [125      {126        "components": [127          { "internalType": "address", "name": "eth", "type": "address" },128          { "internalType": "uint256", "name": "sub", "type": "uint256" }129        ],130        "internalType": "struct EthCrossAccount",131        "name": "spender",132        "type": "tuple"133      },134      { "internalType": "uint256", "name": "amount", "type": "uint256" }135    ],136    "name": "approveCross",137    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],138    "stateMutability": "nonpayable",139    "type": "function"140  },141  {142    "inputs": [143      { "internalType": "address", "name": "owner", "type": "address" }144    ],145    "name": "balanceOf",146    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],147    "stateMutability": "view",148    "type": "function"149  },150  {151    "inputs": [152      {153        "components": [154          { "internalType": "address", "name": "eth", "type": "address" },155          { "internalType": "uint256", "name": "sub", "type": "uint256" }156        ],157        "internalType": "struct EthCrossAccount",158        "name": "from",159        "type": "tuple"160      },161      { "internalType": "uint256", "name": "amount", "type": "uint256" }162    ],163    "name": "burnFromCross",164    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],165    "stateMutability": "nonpayable",166    "type": "function"167  },168  {169    "inputs": [170      {171        "components": [172          { "internalType": "address", "name": "eth", "type": "address" },173          { "internalType": "uint256", "name": "sub", "type": "uint256" }174        ],175        "internalType": "struct EthCrossAccount",176        "name": "newOwner",177        "type": "tuple"178      }179    ],180    "name": "changeCollectionOwnerCross",181    "outputs": [],182    "stateMutability": "nonpayable",183    "type": "function"184  },185  {186    "inputs": [],187    "name": "collectionAdmins",188    "outputs": [189      {190        "components": [191          { "internalType": "address", "name": "eth", "type": "address" },192          { "internalType": "uint256", "name": "sub", "type": "uint256" }193        ],194        "internalType": "struct EthCrossAccount[]",195        "name": "",196        "type": "tuple[]"197      }198    ],199    "stateMutability": "view",200    "type": "function"201  },202  {203    "inputs": [],204    "name": "collectionHelperAddress",205    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],206    "stateMutability": "view",207    "type": "function"208  },209  {210    "inputs": [],211    "name": "collectionLimits",212    "outputs": [213      {214        "components": [215          {216            "internalType": "enum CollectionLimits",217            "name": "field_0",218            "type": "uint8"219          },220          { "internalType": "bool", "name": "field_1", "type": "bool" },221          { "internalType": "uint256", "name": "field_2", "type": "uint256" }222        ],223        "internalType": "struct Tuple20[]",224        "name": "",225        "type": "tuple[]"226      }227    ],228    "stateMutability": "view",229    "type": "function"230  },231  {232    "inputs": [],233    "name": "collectionNestingPermissions",234    "outputs": [235      {236        "components": [237          {238            "internalType": "enum CollectionPermissions",239            "name": "field_0",240            "type": "uint8"241          },242          { "internalType": "bool", "name": "field_1", "type": "bool" }243        ],244<<<<<<< HEAD245        "internalType": "struct Tuple29[]",246=======247        "internalType": "struct Tuple27[]",248>>>>>>> 09f69700... chore: generate stubs249        "name": "",250        "type": "tuple[]"251      }252    ],253    "stateMutability": "view",254    "type": "function"255  },256  {257    "inputs": [],258    "name": "collectionNestingRestrictedCollectionIds",259    "outputs": [260      {261        "components": [262          { "internalType": "bool", "name": "field_0", "type": "bool" },263          {264            "internalType": "uint256[]",265            "name": "field_1",266            "type": "uint256[]"267          }268        ],269<<<<<<< HEAD270        "internalType": "struct Tuple26",271=======272        "internalType": "struct Tuple24",273>>>>>>> 09f69700... chore: generate stubs274        "name": "",275        "type": "tuple"276      }277    ],278    "stateMutability": "view",279    "type": "function"280  },281  {282    "inputs": [],283    "name": "collectionOwner",284    "outputs": [285      {286        "components": [287          { "internalType": "address", "name": "eth", "type": "address" },288          { "internalType": "uint256", "name": "sub", "type": "uint256" }289        ],290        "internalType": "struct EthCrossAccount",291        "name": "",292        "type": "tuple"293      }294    ],295    "stateMutability": "view",296    "type": "function"297  },298  {299    "inputs": [300      { "internalType": "string[]", "name": "keys", "type": "string[]" }301    ],302    "name": "collectionProperties",303    "outputs": [304      {305        "components": [306          { "internalType": "string", "name": "key", "type": "string" },307          { "internalType": "bytes", "name": "value", "type": "bytes" }308        ],309        "internalType": "struct Property[]",310        "name": "",311        "type": "tuple[]"312      }313    ],314    "stateMutability": "view",315    "type": "function"316  },317  {318    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],319    "name": "collectionProperty",320    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],321    "stateMutability": "view",322    "type": "function"323  },324  {325    "inputs": [],326    "name": "collectionSponsor",327    "outputs": [328      {329        "components": [330          { "internalType": "address", "name": "eth", "type": "address" },331          { "internalType": "uint256", "name": "sub", "type": "uint256" }332        ],333        "internalType": "struct EthCrossAccount",334        "name": "",335        "type": "tuple"336      }337    ],338    "stateMutability": "view",339    "type": "function"340  },341  {342    "inputs": [],343    "name": "confirmCollectionSponsorship",344    "outputs": [],345    "stateMutability": "nonpayable",346    "type": "function"347  },348  {349    "inputs": [],350    "name": "contractAddress",351    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],352    "stateMutability": "view",353    "type": "function"354  },355  {356    "inputs": [],357    "name": "decimals",358    "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],359    "stateMutability": "view",360    "type": "function"361  },362  {363    "inputs": [364      { "internalType": "string[]", "name": "keys", "type": "string[]" }365    ],366    "name": "deleteCollectionProperties",367    "outputs": [],368    "stateMutability": "nonpayable",369    "type": "function"370  },371  {372    "inputs": [],373    "name": "description",374    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],375    "stateMutability": "view",376    "type": "function"377  },378  {379    "inputs": [],380    "name": "hasCollectionPendingSponsor",381    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],382    "stateMutability": "view",383    "type": "function"384  },385  {386    "inputs": [387      {388        "components": [389          { "internalType": "address", "name": "eth", "type": "address" },390          { "internalType": "uint256", "name": "sub", "type": "uint256" }391        ],392        "internalType": "struct EthCrossAccount",393        "name": "user",394        "type": "tuple"395      }396    ],397    "name": "isOwnerOrAdminCross",398    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],399    "stateMutability": "view",400    "type": "function"401  },402  {403    "inputs": [404      { "internalType": "address", "name": "to", "type": "address" },405      { "internalType": "uint256", "name": "amount", "type": "uint256" }406    ],407    "name": "mint",408    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],409    "stateMutability": "nonpayable",410    "type": "function"411  },412  {413    "inputs": [414      {415        "components": [416          { "internalType": "address", "name": "field_0", "type": "address" },417          { "internalType": "uint256", "name": "field_1", "type": "uint256" }418        ],419        "internalType": "struct Tuple9[]",420        "name": "amounts",421        "type": "tuple[]"422      }423    ],424    "name": "mintBulk",425    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],426    "stateMutability": "nonpayable",427    "type": "function"428  },429  {430    "inputs": [431      {432        "components": [433          { "internalType": "address", "name": "eth", "type": "address" },434          { "internalType": "uint256", "name": "sub", "type": "uint256" }435        ],436        "internalType": "struct EthCrossAccount",437        "name": "to",438        "type": "tuple"439      },440      { "internalType": "uint256", "name": "amount", "type": "uint256" }441    ],442    "name": "mintCross",443    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],444    "stateMutability": "nonpayable",445    "type": "function"446  },447  {448    "inputs": [],449    "name": "name",450    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],451    "stateMutability": "view",452    "type": "function"453  },454  {455    "inputs": [456      {457        "components": [458          { "internalType": "address", "name": "eth", "type": "address" },459          { "internalType": "uint256", "name": "sub", "type": "uint256" }460        ],461        "internalType": "struct EthCrossAccount",462        "name": "admin",463        "type": "tuple"464      }465    ],466    "name": "removeCollectionAdminCross",467    "outputs": [],468    "stateMutability": "nonpayable",469    "type": "function"470  },471  {472    "inputs": [],473    "name": "removeCollectionSponsor",474    "outputs": [],475    "stateMutability": "nonpayable",476    "type": "function"477  },478  {479    "inputs": [480      {481        "components": [482          { "internalType": "address", "name": "eth", "type": "address" },483          { "internalType": "uint256", "name": "sub", "type": "uint256" }484        ],485        "internalType": "struct EthCrossAccount",486        "name": "user",487        "type": "tuple"488      }489    ],490    "name": "removeFromCollectionAllowListCross",491    "outputs": [],492    "stateMutability": "nonpayable",493    "type": "function"494  },495  {496    "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],497    "name": "setCollectionAccess",498    "outputs": [],499    "stateMutability": "nonpayable",500    "type": "function"501  },502  {503    "inputs": [504      {505        "internalType": "enum CollectionLimits",506        "name": "limit",507        "type": "uint8"508      },509      { "internalType": "bool", "name": "status", "type": "bool" },510      { "internalType": "uint256", "name": "value", "type": "uint256" }511    ],512    "name": "setCollectionLimit",513    "outputs": [],514    "stateMutability": "nonpayable",515    "type": "function"516  },517  {518    "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],519    "name": "setCollectionMintMode",520    "outputs": [],521    "stateMutability": "nonpayable",522    "type": "function"523  },524  {525    "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],526    "name": "setCollectionNesting",527    "outputs": [],528    "stateMutability": "nonpayable",529    "type": "function"530  },531  {532    "inputs": [533      { "internalType": "bool", "name": "enable", "type": "bool" },534      {535        "internalType": "address[]",536        "name": "collections",537        "type": "address[]"538      }539    ],540    "name": "setCollectionNesting",541    "outputs": [],542    "stateMutability": "nonpayable",543    "type": "function"544  },545  {546    "inputs": [547      {548        "components": [549          { "internalType": "string", "name": "key", "type": "string" },550          { "internalType": "bytes", "name": "value", "type": "bytes" }551        ],552        "internalType": "struct Property[]",553        "name": "properties",554        "type": "tuple[]"555      }556    ],557    "name": "setCollectionProperties",558    "outputs": [],559    "stateMutability": "nonpayable",560    "type": "function"561  },562  {563    "inputs": [564      {565        "components": [566          { "internalType": "address", "name": "eth", "type": "address" },567          { "internalType": "uint256", "name": "sub", "type": "uint256" }568        ],569        "internalType": "struct EthCrossAccount",570        "name": "sponsor",571        "type": "tuple"572      }573    ],574    "name": "setCollectionSponsorCross",575    "outputs": [],576    "stateMutability": "nonpayable",577    "type": "function"578  },579  {580    "inputs": [581      { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }582    ],583    "name": "supportsInterface",584    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],585    "stateMutability": "view",586    "type": "function"587  },588  {589    "inputs": [],590    "name": "symbol",591    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],592    "stateMutability": "view",593    "type": "function"594  },595  {596    "inputs": [],597    "name": "totalSupply",598    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],599    "stateMutability": "view",600    "type": "function"601  },602  {603    "inputs": [604      { "internalType": "address", "name": "to", "type": "address" },605      { "internalType": "uint256", "name": "amount", "type": "uint256" }606    ],607    "name": "transfer",608    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],609    "stateMutability": "nonpayable",610    "type": "function"611  },612  {613    "inputs": [614      {615        "components": [616          { "internalType": "address", "name": "eth", "type": "address" },617          { "internalType": "uint256", "name": "sub", "type": "uint256" }618        ],619        "internalType": "struct EthCrossAccount",620        "name": "to",621        "type": "tuple"622      },623      { "internalType": "uint256", "name": "amount", "type": "uint256" }624    ],625    "name": "transferCross",626    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],627    "stateMutability": "nonpayable",628    "type": "function"629  },630  {631    "inputs": [632      { "internalType": "address", "name": "from", "type": "address" },633      { "internalType": "address", "name": "to", "type": "address" },634      { "internalType": "uint256", "name": "amount", "type": "uint256" }635    ],636    "name": "transferFrom",637    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],638    "stateMutability": "nonpayable",639    "type": "function"640  },641  {642    "inputs": [643      {644        "components": [645          { "internalType": "address", "name": "eth", "type": "address" },646          { "internalType": "uint256", "name": "sub", "type": "uint256" }647        ],648        "internalType": "struct EthCrossAccount",649        "name": "from",650        "type": "tuple"651      },652      {653        "components": [654          { "internalType": "address", "name": "eth", "type": "address" },655          { "internalType": "uint256", "name": "sub", "type": "uint256" }656        ],657        "internalType": "struct EthCrossAccount",658        "name": "to",659        "type": "tuple"660      },661      { "internalType": "uint256", "name": "amount", "type": "uint256" }662    ],663    "name": "transferFromCross",664    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],665    "stateMutability": "nonpayable",666    "type": "function"667  },668  {669    "inputs": [],670    "name": "uniqueCollectionType",671    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],672    "stateMutability": "view",673    "type": "function"674  }675]
modifiedtests/src/eth/abi/nonFungible.jsondiffbeforeafterboth
--- a/tests/src/eth/abi/nonFungible.json
+++ b/tests/src/eth/abi/nonFungible.json
@@ -250,7 +250,7 @@
           { "internalType": "bool", "name": "field_1", "type": "bool" },
           { "internalType": "uint256", "name": "field_2", "type": "uint256" }
         ],
-        "internalType": "struct Tuple33[]",
+        "internalType": "struct Tuple35[]",
         "name": "",
         "type": "tuple[]"
       }
@@ -271,11 +271,7 @@
           },
           { "internalType": "bool", "name": "field_1", "type": "bool" }
         ],
-<<<<<<< HEAD
-        "internalType": "struct Tuple42[]",
-=======
-        "internalType": "struct Tuple39[]",
->>>>>>> 09f69700... chore: generate stubs
+        "internalType": "struct Tuple44[]",
         "name": "",
         "type": "tuple[]"
       }
@@ -296,11 +292,7 @@
             "type": "uint256[]"
           }
         ],
-<<<<<<< HEAD
-        "internalType": "struct Tuple39",
-=======
-        "internalType": "struct Tuple36",
->>>>>>> 09f69700... chore: generate stubs
+        "internalType": "struct Tuple41",
         "name": "",
         "type": "tuple"
       }
@@ -770,20 +762,12 @@
               },
               { "internalType": "bool", "name": "field_1", "type": "bool" }
             ],
-<<<<<<< HEAD
-            "internalType": "struct Tuple57[]",
-=======
-            "internalType": "struct Tuple54[]",
->>>>>>> 9e929f90... chore: generate stubs & types
+            "internalType": "struct Tuple59[]",
             "name": "field_1",
             "type": "tuple[]"
           }
         ],
-<<<<<<< HEAD
-        "internalType": "struct Tuple59[]",
-=======
-        "internalType": "struct Tuple56[]",
->>>>>>> 9e929f90... chore: generate stubs & types
+        "internalType": "struct Tuple61[]",
         "name": "permissions",
         "type": "tuple[]"
       }
@@ -844,20 +828,12 @@
               },
               { "internalType": "bool", "name": "field_1", "type": "bool" }
             ],
-<<<<<<< HEAD
-            "internalType": "struct Tuple57[]",
-=======
-            "internalType": "struct Tuple54[]",
->>>>>>> 9e929f90... chore: generate stubs & types
+            "internalType": "struct Tuple59[]",
             "name": "field_1",
             "type": "tuple[]"
           }
         ],
-<<<<<<< HEAD
-        "internalType": "struct Tuple59[]",
-=======
-        "internalType": "struct Tuple56[]",
->>>>>>> 9e929f90... chore: generate stubs & types
+        "internalType": "struct Tuple61[]",
         "name": "",
         "type": "tuple[]"
       }
modifiedtests/src/eth/abi/reFungible.jsondiffbeforeafterboth
--- a/tests/src/eth/abi/reFungible.json
+++ b/tests/src/eth/abi/reFungible.json
@@ -232,7 +232,7 @@
           { "internalType": "bool", "name": "field_1", "type": "bool" },
           { "internalType": "uint256", "name": "field_2", "type": "uint256" }
         ],
-        "internalType": "struct Tuple32[]",
+        "internalType": "struct Tuple34[]",
         "name": "",
         "type": "tuple[]"
       }
@@ -253,11 +253,7 @@
           },
           { "internalType": "bool", "name": "field_1", "type": "bool" }
         ],
-<<<<<<< HEAD
-        "internalType": "struct Tuple41[]",
-=======
-        "internalType": "struct Tuple38[]",
->>>>>>> 09f69700... chore: generate stubs
+        "internalType": "struct Tuple43[]",
         "name": "",
         "type": "tuple[]"
       }
@@ -278,11 +274,7 @@
             "type": "uint256[]"
           }
         ],
-<<<<<<< HEAD
-        "internalType": "struct Tuple38",
-=======
-        "internalType": "struct Tuple35",
->>>>>>> 09f69700... chore: generate stubs
+        "internalType": "struct Tuple40",
         "name": "",
         "type": "tuple"
       }
@@ -752,20 +744,12 @@
               },
               { "internalType": "bool", "name": "field_1", "type": "bool" }
             ],
-<<<<<<< HEAD
-            "internalType": "struct Tuple56[]",
-=======
-            "internalType": "struct Tuple53[]",
->>>>>>> 9e929f90... chore: generate stubs & types
+            "internalType": "struct Tuple58[]",
             "name": "field_1",
             "type": "tuple[]"
           }
         ],
-<<<<<<< HEAD
-        "internalType": "struct Tuple58[]",
-=======
-        "internalType": "struct Tuple55[]",
->>>>>>> 9e929f90... chore: generate stubs & types
+        "internalType": "struct Tuple60[]",
         "name": "permissions",
         "type": "tuple[]"
       }
@@ -835,20 +819,12 @@
               },
               { "internalType": "bool", "name": "field_1", "type": "bool" }
             ],
-<<<<<<< HEAD
-            "internalType": "struct Tuple56[]",
-=======
-            "internalType": "struct Tuple53[]",
->>>>>>> 9e929f90... chore: generate stubs & types
+            "internalType": "struct Tuple58[]",
             "name": "field_1",
             "type": "tuple[]"
           }
         ],
-<<<<<<< HEAD
-        "internalType": "struct Tuple58[]",
-=======
-        "internalType": "struct Tuple55[]",
->>>>>>> 9e929f90... chore: generate stubs & types
+        "internalType": "struct Tuple60[]",
         "name": "",
         "type": "tuple[]"
       }
modifiedtests/src/eth/api/UniqueFungible.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueFungible.sol
+++ b/tests/src/eth/api/UniqueFungible.sol
@@ -119,7 +119,7 @@
 	/// Return `false` if a limit not set.
 	/// @dev EVM selector for this function is: 0xf63bc572,
 	///  or in textual repr: collectionLimits()
-	function collectionLimits() external view returns (Tuple19[] memory);
+	function collectionLimits() external view returns (Tuple21[] memory);
 
 	/// Set limits for the collection.
 	/// @dev Throws error if limit not found.
@@ -191,20 +191,12 @@
 	/// Returns nesting for a collection
 	/// @dev EVM selector for this function is: 0x22d25bfe,
 	///  or in textual repr: collectionNestingRestrictedCollectionIds()
-<<<<<<< HEAD
-	function collectionNestingRestrictedCollectionIds() external view returns (Tuple24 memory);
-=======
-	function collectionNestingRestrictedCollectionIds() external view returns (Tuple22 memory);
->>>>>>> 09f69700... chore: generate stubs
+	function collectionNestingRestrictedCollectionIds() external view returns (Tuple26 memory);
 
 	/// Returns permissions for a collection
 	/// @dev EVM selector for this function is: 0x5b2eaf4b,
 	///  or in textual repr: collectionNestingPermissions()
-<<<<<<< HEAD
-	function collectionNestingPermissions() external view returns (Tuple27[] memory);
-=======
-	function collectionNestingPermissions() external view returns (Tuple25[] memory);
->>>>>>> 09f69700... chore: generate stubs
+	function collectionNestingPermissions() external view returns (Tuple29[] memory);
 
 	/// Set the collection access method.
 	/// @param mode Access mode
@@ -319,11 +311,7 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple27 {
-=======
-struct Tuple25 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple29 {
 	CollectionPermissions field_0;
 	bool field_1;
 }
@@ -334,11 +322,7 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple24 {
-=======
-struct Tuple22 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple26 {
 	bool field_0;
 	uint256[] field_1;
 }
@@ -366,7 +350,7 @@
 }
 
 /// @dev anonymous struct
-struct Tuple19 {
+struct Tuple21 {
 	CollectionLimits field_0;
 	bool field_1;
 	uint256 field_2;
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -30,20 +30,12 @@
 	/// @param permissions Permissions for keys.
 	/// @dev EVM selector for this function is: 0xbd92983a,
 	///  or in textual repr: setTokenPropertyPermissions((string,(uint8,bool)[])[])
-<<<<<<< HEAD
-	function setTokenPropertyPermissions(Tuple52[] memory permissions) external;
-=======
-	function setTokenPropertyPermissions(Tuple49[] memory permissions) external;
->>>>>>> 9e929f90... chore: generate stubs & types
+	function setTokenPropertyPermissions(Tuple53[] memory permissions) external;
 
 	/// @notice Get permissions for token properties.
 	/// @dev EVM selector for this function is: 0xf23d7790,
 	///  or in textual repr: tokenPropertyPermissions()
-<<<<<<< HEAD
-	function tokenPropertyPermissions() external view returns (Tuple52[] memory);
-=======
-	function tokenPropertyPermissions() external view returns (Tuple49[] memory);
->>>>>>> 9e929f90... chore: generate stubs & types
+	function tokenPropertyPermissions() external view returns (Tuple53[] memory);
 
 	// /// @notice Set token property value.
 	// /// @dev Throws error if `msg.sender` has no permission to edit the property.
@@ -105,23 +97,13 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple52 {
+struct Tuple53 {
 	string field_0;
-	Tuple50[] field_1;
+	Tuple51[] field_1;
 }
 
 /// @dev anonymous struct
-struct Tuple50 {
-=======
-struct Tuple49 {
-	string field_0;
-	Tuple47[] field_1;
-}
-
-/// @dev anonymous struct
-struct Tuple47 {
->>>>>>> 9e929f90... chore: generate stubs & types
+struct Tuple51 {
 	EthTokenPermissions field_0;
 	bool field_1;
 }
@@ -233,7 +215,7 @@
 	/// Return `false` if a limit not set.
 	/// @dev EVM selector for this function is: 0xf63bc572,
 	///  or in textual repr: collectionLimits()
-	function collectionLimits() external view returns (Tuple30[] memory);
+	function collectionLimits() external view returns (Tuple31[] memory);
 
 	/// Set limits for the collection.
 	/// @dev Throws error if limit not found.
@@ -305,20 +287,12 @@
 	/// Returns nesting for a collection
 	/// @dev EVM selector for this function is: 0x22d25bfe,
 	///  or in textual repr: collectionNestingRestrictedCollectionIds()
-<<<<<<< HEAD
-	function collectionNestingRestrictedCollectionIds() external view returns (Tuple35 memory);
-=======
-	function collectionNestingRestrictedCollectionIds() external view returns (Tuple32 memory);
->>>>>>> 09f69700... chore: generate stubs
+	function collectionNestingRestrictedCollectionIds() external view returns (Tuple36 memory);
 
 	/// Returns permissions for a collection
 	/// @dev EVM selector for this function is: 0x5b2eaf4b,
 	///  or in textual repr: collectionNestingPermissions()
-<<<<<<< HEAD
-	function collectionNestingPermissions() external view returns (Tuple38[] memory);
-=======
-	function collectionNestingPermissions() external view returns (Tuple35[] memory);
->>>>>>> 09f69700... chore: generate stubs
+	function collectionNestingPermissions() external view returns (Tuple39[] memory);
 
 	/// Set the collection access method.
 	/// @param mode Access mode
@@ -433,11 +407,7 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple38 {
-=======
-struct Tuple35 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple39 {
 	CollectionPermissions field_0;
 	bool field_1;
 }
@@ -448,16 +418,11 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple35 {
-=======
-struct Tuple32 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple36 {
 	bool field_0;
 	uint256[] field_1;
 }
 
-<<<<<<< HEAD
 /// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) representation for EVM.
 enum CollectionLimits {
 	/// @dev How many tokens can a user have on one account.
@@ -481,22 +446,12 @@
 }
 
 /// @dev anonymous struct
-struct Tuple30 {
+struct Tuple31 {
 	CollectionLimits field_0;
 	bool field_1;
 	uint256 field_2;
-}
-
-/// @dev anonymous struct
-struct Tuple27 {
-	address field_0;
-	uint256 field_1;
 }
 
-=======
->>>>>>> 0bf15e6f... fixed tests&tuple instead of struct, refactored `refungible` pallet
-=======
->>>>>>> 09f69700... chore: generate stubs
 /// @title ERC-721 Non-Fungible Token Standard, optional metadata extension
 /// @dev See https://eips.ethereum.org/EIPS/eip-721
 /// @dev the ERC-165 identifier for this interface is 0x5b5e139f
modifiedtests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -30,20 +30,12 @@
 	/// @param permissions Permissions for keys.
 	/// @dev EVM selector for this function is: 0xbd92983a,
 	///  or in textual repr: setTokenPropertyPermissions((string,(uint8,bool)[])[])
-<<<<<<< HEAD
-	function setTokenPropertyPermissions(Tuple51[] memory permissions) external;
-=======
-	function setTokenPropertyPermissions(Tuple48[] memory permissions) external;
->>>>>>> 9e929f90... chore: generate stubs & types
+	function setTokenPropertyPermissions(Tuple52[] memory permissions) external;
 
 	/// @notice Get permissions for token properties.
 	/// @dev EVM selector for this function is: 0xf23d7790,
 	///  or in textual repr: tokenPropertyPermissions()
-<<<<<<< HEAD
-	function tokenPropertyPermissions() external view returns (Tuple51[] memory);
-=======
-	function tokenPropertyPermissions() external view returns (Tuple48[] memory);
->>>>>>> 9e929f90... chore: generate stubs & types
+	function tokenPropertyPermissions() external view returns (Tuple52[] memory);
 
 	// /// @notice Set token property value.
 	// /// @dev Throws error if `msg.sender` has no permission to edit the property.
@@ -105,23 +97,13 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple51 {
+struct Tuple52 {
 	string field_0;
-	Tuple49[] field_1;
+	Tuple50[] field_1;
 }
 
 /// @dev anonymous struct
-struct Tuple49 {
-=======
-struct Tuple48 {
-	string field_0;
-	Tuple46[] field_1;
-}
-
-/// @dev anonymous struct
-struct Tuple46 {
->>>>>>> 9e929f90... chore: generate stubs & types
+struct Tuple50 {
 	EthTokenPermissions field_0;
 	bool field_1;
 }
@@ -233,7 +215,7 @@
 	/// Return `false` if a limit not set.
 	/// @dev EVM selector for this function is: 0xf63bc572,
 	///  or in textual repr: collectionLimits()
-	function collectionLimits() external view returns (Tuple29[] memory);
+	function collectionLimits() external view returns (Tuple30[] memory);
 
 	/// Set limits for the collection.
 	/// @dev Throws error if limit not found.
@@ -305,20 +287,12 @@
 	/// Returns nesting for a collection
 	/// @dev EVM selector for this function is: 0x22d25bfe,
 	///  or in textual repr: collectionNestingRestrictedCollectionIds()
-<<<<<<< HEAD
-	function collectionNestingRestrictedCollectionIds() external view returns (Tuple34 memory);
-=======
-	function collectionNestingRestrictedCollectionIds() external view returns (Tuple31 memory);
->>>>>>> 09f69700... chore: generate stubs
+	function collectionNestingRestrictedCollectionIds() external view returns (Tuple35 memory);
 
 	/// Returns permissions for a collection
 	/// @dev EVM selector for this function is: 0x5b2eaf4b,
 	///  or in textual repr: collectionNestingPermissions()
-<<<<<<< HEAD
-	function collectionNestingPermissions() external view returns (Tuple37[] memory);
-=======
-	function collectionNestingPermissions() external view returns (Tuple34[] memory);
->>>>>>> 09f69700... chore: generate stubs
+	function collectionNestingPermissions() external view returns (Tuple38[] memory);
 
 	/// Set the collection access method.
 	/// @param mode Access mode
@@ -433,11 +407,7 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple37 {
-=======
-struct Tuple34 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple38 {
 	CollectionPermissions field_0;
 	bool field_1;
 }
@@ -448,16 +418,11 @@
 }
 
 /// @dev anonymous struct
-<<<<<<< HEAD
-struct Tuple34 {
-=======
-struct Tuple31 {
->>>>>>> 09f69700... chore: generate stubs
+struct Tuple35 {
 	bool field_0;
 	uint256[] field_1;
 }
 
-<<<<<<< HEAD
 /// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) representation for EVM.
 enum CollectionLimits {
 	/// @dev How many tokens can a user have on one account.
@@ -481,22 +446,12 @@
 }
 
 /// @dev anonymous struct
-struct Tuple29 {
+struct Tuple30 {
 	CollectionLimits field_0;
 	bool field_1;
 	uint256 field_2;
-}
-
-/// @dev anonymous struct
-struct Tuple26 {
-	address field_0;
-	uint256 field_1;
 }
 
-=======
->>>>>>> 0bf15e6f... fixed tests&tuple instead of struct, refactored `refungible` pallet
-=======
->>>>>>> 09f69700... chore: generate stubs
 /// @dev the ERC-165 identifier for this interface is 0x5b5e139f
 interface ERC721Metadata is Dummy, ERC165 {
 	// /// @notice A descriptive name for a collection of NFTs in this contract