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
after · 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 Tuple23[]",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        "internalType": "struct Tuple32[]",245        "name": "",246        "type": "tuple[]"247      }248    ],249    "stateMutability": "view",250    "type": "function"251  },252  {253    "inputs": [],254    "name": "collectionNestingRestrictedCollectionIds",255    "outputs": [256      {257        "components": [258          { "internalType": "bool", "name": "field_0", "type": "bool" },259          {260            "internalType": "uint256[]",261            "name": "field_1",262            "type": "uint256[]"263          }264        ],265        "internalType": "struct Tuple29",266        "name": "",267        "type": "tuple"268      }269    ],270    "stateMutability": "view",271    "type": "function"272  },273  {274    "inputs": [],275    "name": "collectionOwner",276    "outputs": [277      {278        "components": [279          { "internalType": "address", "name": "eth", "type": "address" },280          { "internalType": "uint256", "name": "sub", "type": "uint256" }281        ],282        "internalType": "struct EthCrossAccount",283        "name": "",284        "type": "tuple"285      }286    ],287    "stateMutability": "view",288    "type": "function"289  },290  {291    "inputs": [292      { "internalType": "string[]", "name": "keys", "type": "string[]" }293    ],294    "name": "collectionProperties",295    "outputs": [296      {297        "components": [298          { "internalType": "string", "name": "key", "type": "string" },299          { "internalType": "bytes", "name": "value", "type": "bytes" }300        ],301        "internalType": "struct Property[]",302        "name": "",303        "type": "tuple[]"304      }305    ],306    "stateMutability": "view",307    "type": "function"308  },309  {310    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],311    "name": "collectionProperty",312    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],313    "stateMutability": "view",314    "type": "function"315  },316  {317    "inputs": [],318    "name": "collectionSponsor",319    "outputs": [320      {321        "components": [322          { "internalType": "address", "name": "eth", "type": "address" },323          { "internalType": "uint256", "name": "sub", "type": "uint256" }324        ],325        "internalType": "struct EthCrossAccount",326        "name": "",327        "type": "tuple"328      }329    ],330    "stateMutability": "view",331    "type": "function"332  },333  {334    "inputs": [],335    "name": "confirmCollectionSponsorship",336    "outputs": [],337    "stateMutability": "nonpayable",338    "type": "function"339  },340  {341    "inputs": [],342    "name": "contractAddress",343    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],344    "stateMutability": "view",345    "type": "function"346  },347  {348    "inputs": [],349    "name": "decimals",350    "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],351    "stateMutability": "view",352    "type": "function"353  },354  {355    "inputs": [356      { "internalType": "string[]", "name": "keys", "type": "string[]" }357    ],358    "name": "deleteCollectionProperties",359    "outputs": [],360    "stateMutability": "nonpayable",361    "type": "function"362  },363  {364    "inputs": [],365    "name": "description",366    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],367    "stateMutability": "view",368    "type": "function"369  },370  {371    "inputs": [],372    "name": "hasCollectionPendingSponsor",373    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],374    "stateMutability": "view",375    "type": "function"376  },377  {378    "inputs": [379      {380        "components": [381          { "internalType": "address", "name": "eth", "type": "address" },382          { "internalType": "uint256", "name": "sub", "type": "uint256" }383        ],384        "internalType": "struct EthCrossAccount",385        "name": "user",386        "type": "tuple"387      }388    ],389    "name": "isOwnerOrAdminCross",390    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],391    "stateMutability": "view",392    "type": "function"393  },394  {395    "inputs": [396      { "internalType": "address", "name": "to", "type": "address" },397      { "internalType": "uint256", "name": "amount", "type": "uint256" }398    ],399    "name": "mint",400    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],401    "stateMutability": "nonpayable",402    "type": "function"403  },404  {405    "inputs": [406      {407        "components": [408          { "internalType": "address", "name": "field_0", "type": "address" },409          { "internalType": "uint256", "name": "field_1", "type": "uint256" }410        ],411        "internalType": "struct Tuple9[]",412        "name": "amounts",413        "type": "tuple[]"414      }415    ],416    "name": "mintBulk",417    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],418    "stateMutability": "nonpayable",419    "type": "function"420  },421  {422    "inputs": [423      {424        "components": [425          { "internalType": "address", "name": "eth", "type": "address" },426          { "internalType": "uint256", "name": "sub", "type": "uint256" }427        ],428        "internalType": "struct EthCrossAccount",429        "name": "to",430        "type": "tuple"431      },432      { "internalType": "uint256", "name": "amount", "type": "uint256" }433    ],434    "name": "mintCross",435    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],436    "stateMutability": "nonpayable",437    "type": "function"438  },439  {440    "inputs": [],441    "name": "name",442    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],443    "stateMutability": "view",444    "type": "function"445  },446  {447    "inputs": [448      {449        "components": [450          { "internalType": "address", "name": "eth", "type": "address" },451          { "internalType": "uint256", "name": "sub", "type": "uint256" }452        ],453        "internalType": "struct EthCrossAccount",454        "name": "admin",455        "type": "tuple"456      }457    ],458    "name": "removeCollectionAdminCross",459    "outputs": [],460    "stateMutability": "nonpayable",461    "type": "function"462  },463  {464    "inputs": [],465    "name": "removeCollectionSponsor",466    "outputs": [],467    "stateMutability": "nonpayable",468    "type": "function"469  },470  {471    "inputs": [472      {473        "components": [474          { "internalType": "address", "name": "eth", "type": "address" },475          { "internalType": "uint256", "name": "sub", "type": "uint256" }476        ],477        "internalType": "struct EthCrossAccount",478        "name": "user",479        "type": "tuple"480      }481    ],482    "name": "removeFromCollectionAllowListCross",483    "outputs": [],484    "stateMutability": "nonpayable",485    "type": "function"486  },487  {488    "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],489    "name": "setCollectionAccess",490    "outputs": [],491    "stateMutability": "nonpayable",492    "type": "function"493  },494  {495    "inputs": [496      {497        "internalType": "enum CollectionLimits",498        "name": "limit",499        "type": "uint8"500      },501      { "internalType": "bool", "name": "status", "type": "bool" },502      { "internalType": "uint256", "name": "value", "type": "uint256" }503    ],504    "name": "setCollectionLimit",505    "outputs": [],506    "stateMutability": "nonpayable",507    "type": "function"508  },509  {510    "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],511    "name": "setCollectionMintMode",512    "outputs": [],513    "stateMutability": "nonpayable",514    "type": "function"515  },516  {517    "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],518    "name": "setCollectionNesting",519    "outputs": [],520    "stateMutability": "nonpayable",521    "type": "function"522  },523  {524    "inputs": [525      { "internalType": "bool", "name": "enable", "type": "bool" },526      {527        "internalType": "address[]",528        "name": "collections",529        "type": "address[]"530      }531    ],532    "name": "setCollectionNesting",533    "outputs": [],534    "stateMutability": "nonpayable",535    "type": "function"536  },537  {538    "inputs": [539      {540        "components": [541          { "internalType": "string", "name": "key", "type": "string" },542          { "internalType": "bytes", "name": "value", "type": "bytes" }543        ],544        "internalType": "struct Property[]",545        "name": "properties",546        "type": "tuple[]"547      }548    ],549    "name": "setCollectionProperties",550    "outputs": [],551    "stateMutability": "nonpayable",552    "type": "function"553  },554  {555    "inputs": [556      {557        "components": [558          { "internalType": "address", "name": "eth", "type": "address" },559          { "internalType": "uint256", "name": "sub", "type": "uint256" }560        ],561        "internalType": "struct EthCrossAccount",562        "name": "sponsor",563        "type": "tuple"564      }565    ],566    "name": "setCollectionSponsorCross",567    "outputs": [],568    "stateMutability": "nonpayable",569    "type": "function"570  },571  {572    "inputs": [573      { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }574    ],575    "name": "supportsInterface",576    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],577    "stateMutability": "view",578    "type": "function"579  },580  {581    "inputs": [],582    "name": "symbol",583    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],584    "stateMutability": "view",585    "type": "function"586  },587  {588    "inputs": [],589    "name": "totalSupply",590    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],591    "stateMutability": "view",592    "type": "function"593  },594  {595    "inputs": [596      { "internalType": "address", "name": "to", "type": "address" },597      { "internalType": "uint256", "name": "amount", "type": "uint256" }598    ],599    "name": "transfer",600    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],601    "stateMutability": "nonpayable",602    "type": "function"603  },604  {605    "inputs": [606      {607        "components": [608          { "internalType": "address", "name": "eth", "type": "address" },609          { "internalType": "uint256", "name": "sub", "type": "uint256" }610        ],611        "internalType": "struct EthCrossAccount",612        "name": "to",613        "type": "tuple"614      },615      { "internalType": "uint256", "name": "amount", "type": "uint256" }616    ],617    "name": "transferCross",618    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],619    "stateMutability": "nonpayable",620    "type": "function"621  },622  {623    "inputs": [624      { "internalType": "address", "name": "from", "type": "address" },625      { "internalType": "address", "name": "to", "type": "address" },626      { "internalType": "uint256", "name": "amount", "type": "uint256" }627    ],628    "name": "transferFrom",629    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],630    "stateMutability": "nonpayable",631    "type": "function"632  },633  {634    "inputs": [635      {636        "components": [637          { "internalType": "address", "name": "eth", "type": "address" },638          { "internalType": "uint256", "name": "sub", "type": "uint256" }639        ],640        "internalType": "struct EthCrossAccount",641        "name": "from",642        "type": "tuple"643      },644      {645        "components": [646          { "internalType": "address", "name": "eth", "type": "address" },647          { "internalType": "uint256", "name": "sub", "type": "uint256" }648        ],649        "internalType": "struct EthCrossAccount",650        "name": "to",651        "type": "tuple"652      },653      { "internalType": "uint256", "name": "amount", "type": "uint256" }654    ],655    "name": "transferFromCross",656    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],657    "stateMutability": "nonpayable",658    "type": "function"659  },660  {661    "inputs": [],662    "name": "uniqueCollectionType",663    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],664    "stateMutability": "view",665    "type": "function"666  }667]
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