git.delta.rocks / unique-network / refs/commits / ab7466d7b8ed

difftreelog

fix PR

Trubnikov Sergey2023-02-06parent: #b06f11d.patch.diff
in: master

9 files changed

modifiedpallets/nonfungible/src/erc.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/erc.rs
+++ b/pallets/nonfungible/src/erc.rs
@@ -55,10 +55,8 @@
 pub enum ERC721TokenEvent {
 	/// The token has been changed.
 	TokenChanged {
-		/// Collection ID.
+		/// Token ID.
 		#[indexed]
-		collection_id: Address,
-		/// Token ID.
 		token_id: U256,
 	},
 }
modifiedpallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth
--- a/pallets/nonfungible/src/stubs/UniqueNFT.sol
+++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol
@@ -19,7 +19,7 @@
 
 /// @dev inlined interface
 contract ERC721TokenEvent {
-	event TokenChanged(address indexed collectionId, uint256 tokenId);
+	event TokenChanged(uint256 indexed tokenId);
 }
 
 /// @title A contract that allows to set and delete token properties and change token property permissions.
modifiedpallets/refungible/src/erc.rsdiffbeforeafterboth
--- a/pallets/refungible/src/erc.rs
+++ b/pallets/refungible/src/erc.rs
@@ -64,10 +64,8 @@
 pub enum ERC721TokenEvent {
 	/// The token has been changed.
 	TokenChanged {
-		/// Collection ID.
+		/// Token ID.
 		#[indexed]
-		collection_id: Address,
-		/// Token ID.
 		token_id: U256,
 	},
 }
modifiedpallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth
--- a/pallets/refungible/src/stubs/UniqueRefungible.sol
+++ b/pallets/refungible/src/stubs/UniqueRefungible.sol
@@ -19,7 +19,7 @@
 
 /// @dev inlined interface
 contract ERC721TokenEvent {
-	event TokenChanged(address indexed collectionId, uint256 tokenId);
+	event TokenChanged(uint256 indexed tokenId);
 }
 
 /// @title A contract that allows to set and delete token properties and change token property permissions.
modifiedtests/src/eth/abi/nonFungible.jsondiffbeforeafterboth
--- a/tests/src/eth/abi/nonFungible.json
+++ b/tests/src/eth/abi/nonFungible.json
@@ -54,12 +54,6 @@
     "inputs": [
       {
         "indexed": true,
-        "internalType": "address",
-        "name": "collectionId",
-        "type": "address"
-      },
-      {
-        "indexed": false,
         "internalType": "uint256",
         "name": "tokenId",
         "type": "uint256"
modifiedtests/src/eth/abi/reFungible.jsondiffbeforeafterboth
before · tests/src/eth/abi/reFungible.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": "approved",15        "type": "address"16      },17      {18        "indexed": true,19        "internalType": "uint256",20        "name": "tokenId",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": "owner",34        "type": "address"35      },36      {37        "indexed": true,38        "internalType": "address",39        "name": "operator",40        "type": "address"41      },42      {43        "indexed": false,44        "internalType": "bool",45        "name": "approved",46        "type": "bool"47      }48    ],49    "name": "ApprovalForAll",50    "type": "event"51  },52  {53    "anonymous": false,54    "inputs": [55      {56        "indexed": true,57        "internalType": "address",58        "name": "collectionId",59        "type": "address"60      },61      {62        "indexed": false,63        "internalType": "uint256",64        "name": "tokenId",65        "type": "uint256"66      }67    ],68    "name": "TokenChanged",69    "type": "event"70  },71  {72    "anonymous": false,73    "inputs": [74      {75        "indexed": true,76        "internalType": "address",77        "name": "from",78        "type": "address"79      },80      {81        "indexed": true,82        "internalType": "address",83        "name": "to",84        "type": "address"85      },86      {87        "indexed": true,88        "internalType": "uint256",89        "name": "tokenId",90        "type": "uint256"91      }92    ],93    "name": "Transfer",94    "type": "event"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 CrossAddress",104        "name": "newAdmin",105        "type": "tuple"106      }107    ],108    "name": "addCollectionAdminCross",109    "outputs": [],110    "stateMutability": "nonpayable",111    "type": "function"112  },113  {114    "inputs": [115      {116        "components": [117          { "internalType": "address", "name": "eth", "type": "address" },118          { "internalType": "uint256", "name": "sub", "type": "uint256" }119        ],120        "internalType": "struct CrossAddress",121        "name": "user",122        "type": "tuple"123      }124    ],125    "name": "addToCollectionAllowListCross",126    "outputs": [],127    "stateMutability": "nonpayable",128    "type": "function"129  },130  {131    "inputs": [132      {133        "components": [134          { "internalType": "address", "name": "eth", "type": "address" },135          { "internalType": "uint256", "name": "sub", "type": "uint256" }136        ],137        "internalType": "struct CrossAddress",138        "name": "user",139        "type": "tuple"140      }141    ],142    "name": "allowlistedCross",143    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],144    "stateMutability": "view",145    "type": "function"146  },147  {148    "inputs": [149      { "internalType": "address", "name": "approved", "type": "address" },150      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }151    ],152    "name": "approve",153    "outputs": [],154    "stateMutability": "nonpayable",155    "type": "function"156  },157  {158    "inputs": [159      { "internalType": "address", "name": "owner", "type": "address" }160    ],161    "name": "balanceOf",162    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],163    "stateMutability": "view",164    "type": "function"165  },166  {167    "inputs": [168      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }169    ],170    "name": "burn",171    "outputs": [],172    "stateMutability": "nonpayable",173    "type": "function"174  },175  {176    "inputs": [177      {178        "components": [179          { "internalType": "address", "name": "eth", "type": "address" },180          { "internalType": "uint256", "name": "sub", "type": "uint256" }181        ],182        "internalType": "struct CrossAddress",183        "name": "from",184        "type": "tuple"185      },186      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }187    ],188    "name": "burnFromCross",189    "outputs": [],190    "stateMutability": "nonpayable",191    "type": "function"192  },193  {194    "inputs": [195      {196        "components": [197          { "internalType": "address", "name": "eth", "type": "address" },198          { "internalType": "uint256", "name": "sub", "type": "uint256" }199        ],200        "internalType": "struct CrossAddress",201        "name": "newOwner",202        "type": "tuple"203      }204    ],205    "name": "changeCollectionOwnerCross",206    "outputs": [],207    "stateMutability": "nonpayable",208    "type": "function"209  },210  {211    "inputs": [],212    "name": "collectionAdmins",213    "outputs": [214      {215        "components": [216          { "internalType": "address", "name": "eth", "type": "address" },217          { "internalType": "uint256", "name": "sub", "type": "uint256" }218        ],219        "internalType": "struct CrossAddress[]",220        "name": "",221        "type": "tuple[]"222      }223    ],224    "stateMutability": "view",225    "type": "function"226  },227  {228    "inputs": [],229    "name": "collectionHelperAddress",230    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],231    "stateMutability": "view",232    "type": "function"233  },234  {235    "inputs": [],236    "name": "collectionLimits",237    "outputs": [238      {239        "components": [240          {241            "internalType": "enum CollectionLimitField",242            "name": "field",243            "type": "uint8"244          },245          {246            "components": [247              { "internalType": "bool", "name": "status", "type": "bool" },248              { "internalType": "uint256", "name": "value", "type": "uint256" }249            ],250            "internalType": "struct OptionUint256",251            "name": "value",252            "type": "tuple"253          }254        ],255        "internalType": "struct CollectionLimit[]",256        "name": "",257        "type": "tuple[]"258      }259    ],260    "stateMutability": "view",261    "type": "function"262  },263  {264    "inputs": [],265    "name": "collectionNestingPermissions",266    "outputs": [267      {268        "components": [269          {270            "internalType": "enum CollectionPermissionField",271            "name": "field",272            "type": "uint8"273          },274          { "internalType": "bool", "name": "value", "type": "bool" }275        ],276        "internalType": "struct CollectionNestingPermission[]",277        "name": "",278        "type": "tuple[]"279      }280    ],281    "stateMutability": "view",282    "type": "function"283  },284  {285    "inputs": [],286    "name": "collectionNestingRestrictedCollectionIds",287    "outputs": [288      {289        "components": [290          { "internalType": "bool", "name": "token_owner", "type": "bool" },291          { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }292        ],293        "internalType": "struct CollectionNesting",294        "name": "",295        "type": "tuple"296      }297    ],298    "stateMutability": "view",299    "type": "function"300  },301  {302    "inputs": [],303    "name": "collectionOwner",304    "outputs": [305      {306        "components": [307          { "internalType": "address", "name": "eth", "type": "address" },308          { "internalType": "uint256", "name": "sub", "type": "uint256" }309        ],310        "internalType": "struct CrossAddress",311        "name": "",312        "type": "tuple"313      }314    ],315    "stateMutability": "view",316    "type": "function"317  },318  {319    "inputs": [320      { "internalType": "string[]", "name": "keys", "type": "string[]" }321    ],322    "name": "collectionProperties",323    "outputs": [324      {325        "components": [326          { "internalType": "string", "name": "key", "type": "string" },327          { "internalType": "bytes", "name": "value", "type": "bytes" }328        ],329        "internalType": "struct Property[]",330        "name": "",331        "type": "tuple[]"332      }333    ],334    "stateMutability": "view",335    "type": "function"336  },337  {338    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],339    "name": "collectionProperty",340    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],341    "stateMutability": "view",342    "type": "function"343  },344  {345    "inputs": [],346    "name": "collectionSponsor",347    "outputs": [348      {349        "components": [350          { "internalType": "address", "name": "eth", "type": "address" },351          { "internalType": "uint256", "name": "sub", "type": "uint256" }352        ],353        "internalType": "struct CrossAddress",354        "name": "",355        "type": "tuple"356      }357    ],358    "stateMutability": "view",359    "type": "function"360  },361  {362    "inputs": [],363    "name": "confirmCollectionSponsorship",364    "outputs": [],365    "stateMutability": "nonpayable",366    "type": "function"367  },368  {369    "inputs": [],370    "name": "contractAddress",371    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],372    "stateMutability": "view",373    "type": "function"374  },375  {376    "inputs": [377      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }378    ],379    "name": "crossOwnerOf",380    "outputs": [381      {382        "components": [383          { "internalType": "address", "name": "eth", "type": "address" },384          { "internalType": "uint256", "name": "sub", "type": "uint256" }385        ],386        "internalType": "struct CrossAddress",387        "name": "",388        "type": "tuple"389      }390    ],391    "stateMutability": "view",392    "type": "function"393  },394  {395    "inputs": [396      { "internalType": "string[]", "name": "keys", "type": "string[]" }397    ],398    "name": "deleteCollectionProperties",399    "outputs": [],400    "stateMutability": "nonpayable",401    "type": "function"402  },403  {404    "inputs": [405      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },406      { "internalType": "string[]", "name": "keys", "type": "string[]" }407    ],408    "name": "deleteProperties",409    "outputs": [],410    "stateMutability": "nonpayable",411    "type": "function"412  },413  {414    "inputs": [],415    "name": "description",416    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],417    "stateMutability": "view",418    "type": "function"419  },420  {421    "inputs": [422      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }423    ],424    "name": "getApproved",425    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],426    "stateMutability": "view",427    "type": "function"428  },429  {430    "inputs": [],431    "name": "hasCollectionPendingSponsor",432    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],433    "stateMutability": "view",434    "type": "function"435  },436  {437    "inputs": [438      { "internalType": "address", "name": "owner", "type": "address" },439      { "internalType": "address", "name": "operator", "type": "address" }440    ],441    "name": "isApprovedForAll",442    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],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 CrossAddress",454        "name": "user",455        "type": "tuple"456      }457    ],458    "name": "isOwnerOrAdminCross",459    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],460    "stateMutability": "view",461    "type": "function"462  },463  {464    "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],465    "name": "mint",466    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],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 CrossAddress",478        "name": "to",479        "type": "tuple"480      },481      {482        "components": [483          { "internalType": "string", "name": "key", "type": "string" },484          { "internalType": "bytes", "name": "value", "type": "bytes" }485        ],486        "internalType": "struct Property[]",487        "name": "properties",488        "type": "tuple[]"489      }490    ],491    "name": "mintCross",492    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],493    "stateMutability": "nonpayable",494    "type": "function"495  },496  {497    "inputs": [498      { "internalType": "address", "name": "to", "type": "address" },499      { "internalType": "string", "name": "tokenUri", "type": "string" }500    ],501    "name": "mintWithTokenURI",502    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],503    "stateMutability": "nonpayable",504    "type": "function"505  },506  {507    "inputs": [],508    "name": "name",509    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],510    "stateMutability": "view",511    "type": "function"512  },513  {514    "inputs": [],515    "name": "nextTokenId",516    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],517    "stateMutability": "view",518    "type": "function"519  },520  {521    "inputs": [522      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }523    ],524    "name": "ownerOf",525    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],526    "stateMutability": "view",527    "type": "function"528  },529  {530    "inputs": [531      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },532      { "internalType": "string[]", "name": "keys", "type": "string[]" }533    ],534    "name": "properties",535    "outputs": [536      {537        "components": [538          { "internalType": "string", "name": "key", "type": "string" },539          { "internalType": "bytes", "name": "value", "type": "bytes" }540        ],541        "internalType": "struct Property[]",542        "name": "",543        "type": "tuple[]"544      }545    ],546    "stateMutability": "view",547    "type": "function"548  },549  {550    "inputs": [551      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },552      { "internalType": "string", "name": "key", "type": "string" }553    ],554    "name": "property",555    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],556    "stateMutability": "view",557    "type": "function"558  },559  {560    "inputs": [561      {562        "components": [563          { "internalType": "address", "name": "eth", "type": "address" },564          { "internalType": "uint256", "name": "sub", "type": "uint256" }565        ],566        "internalType": "struct CrossAddress",567        "name": "admin",568        "type": "tuple"569      }570    ],571    "name": "removeCollectionAdminCross",572    "outputs": [],573    "stateMutability": "nonpayable",574    "type": "function"575  },576  {577    "inputs": [],578    "name": "removeCollectionSponsor",579    "outputs": [],580    "stateMutability": "nonpayable",581    "type": "function"582  },583  {584    "inputs": [585      {586        "components": [587          { "internalType": "address", "name": "eth", "type": "address" },588          { "internalType": "uint256", "name": "sub", "type": "uint256" }589        ],590        "internalType": "struct CrossAddress",591        "name": "user",592        "type": "tuple"593      }594    ],595    "name": "removeFromCollectionAllowListCross",596    "outputs": [],597    "stateMutability": "nonpayable",598    "type": "function"599  },600  {601    "inputs": [602      { "internalType": "address", "name": "from", "type": "address" },603      { "internalType": "address", "name": "to", "type": "address" },604      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }605    ],606    "name": "safeTransferFrom",607    "outputs": [],608    "stateMutability": "nonpayable",609    "type": "function"610  },611  {612    "inputs": [613      { "internalType": "address", "name": "from", "type": "address" },614      { "internalType": "address", "name": "to", "type": "address" },615      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },616      { "internalType": "bytes", "name": "data", "type": "bytes" }617    ],618    "name": "safeTransferFrom",619    "outputs": [],620    "stateMutability": "nonpayable",621    "type": "function"622  },623  {624    "inputs": [625      { "internalType": "address", "name": "operator", "type": "address" },626      { "internalType": "bool", "name": "approved", "type": "bool" }627    ],628    "name": "setApprovalForAll",629    "outputs": [],630    "stateMutability": "nonpayable",631    "type": "function"632  },633  {634    "inputs": [635      { "internalType": "enum AccessMode", "name": "mode", "type": "uint8" }636    ],637    "name": "setCollectionAccess",638    "outputs": [],639    "stateMutability": "nonpayable",640    "type": "function"641  },642  {643    "inputs": [644      {645        "components": [646          {647            "internalType": "enum CollectionLimitField",648            "name": "field",649            "type": "uint8"650          },651          {652            "components": [653              { "internalType": "bool", "name": "status", "type": "bool" },654              { "internalType": "uint256", "name": "value", "type": "uint256" }655            ],656            "internalType": "struct OptionUint256",657            "name": "value",658            "type": "tuple"659          }660        ],661        "internalType": "struct CollectionLimit",662        "name": "limit",663        "type": "tuple"664      }665    ],666    "name": "setCollectionLimit",667    "outputs": [],668    "stateMutability": "nonpayable",669    "type": "function"670  },671  {672    "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],673    "name": "setCollectionMintMode",674    "outputs": [],675    "stateMutability": "nonpayable",676    "type": "function"677  },678  {679    "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],680    "name": "setCollectionNesting",681    "outputs": [],682    "stateMutability": "nonpayable",683    "type": "function"684  },685  {686    "inputs": [687      { "internalType": "bool", "name": "enable", "type": "bool" },688      {689        "internalType": "address[]",690        "name": "collections",691        "type": "address[]"692      }693    ],694    "name": "setCollectionNesting",695    "outputs": [],696    "stateMutability": "nonpayable",697    "type": "function"698  },699  {700    "inputs": [701      {702        "components": [703          { "internalType": "string", "name": "key", "type": "string" },704          { "internalType": "bytes", "name": "value", "type": "bytes" }705        ],706        "internalType": "struct Property[]",707        "name": "properties",708        "type": "tuple[]"709      }710    ],711    "name": "setCollectionProperties",712    "outputs": [],713    "stateMutability": "nonpayable",714    "type": "function"715  },716  {717    "inputs": [718      {719        "components": [720          { "internalType": "address", "name": "eth", "type": "address" },721          { "internalType": "uint256", "name": "sub", "type": "uint256" }722        ],723        "internalType": "struct CrossAddress",724        "name": "sponsor",725        "type": "tuple"726      }727    ],728    "name": "setCollectionSponsorCross",729    "outputs": [],730    "stateMutability": "nonpayable",731    "type": "function"732  },733  {734    "inputs": [735      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },736      {737        "components": [738          { "internalType": "string", "name": "key", "type": "string" },739          { "internalType": "bytes", "name": "value", "type": "bytes" }740        ],741        "internalType": "struct Property[]",742        "name": "properties",743        "type": "tuple[]"744      }745    ],746    "name": "setProperties",747    "outputs": [],748    "stateMutability": "nonpayable",749    "type": "function"750  },751  {752    "inputs": [753      {754        "components": [755          { "internalType": "string", "name": "key", "type": "string" },756          {757            "components": [758              {759                "internalType": "enum TokenPermissionField",760                "name": "code",761                "type": "uint8"762              },763              { "internalType": "bool", "name": "value", "type": "bool" }764            ],765            "internalType": "struct PropertyPermission[]",766            "name": "permissions",767            "type": "tuple[]"768          }769        ],770        "internalType": "struct TokenPropertyPermission[]",771        "name": "permissions",772        "type": "tuple[]"773      }774    ],775    "name": "setTokenPropertyPermissions",776    "outputs": [],777    "stateMutability": "nonpayable",778    "type": "function"779  },780  {781    "inputs": [782      { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }783    ],784    "name": "supportsInterface",785    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],786    "stateMutability": "view",787    "type": "function"788  },789  {790    "inputs": [],791    "name": "symbol",792    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],793    "stateMutability": "view",794    "type": "function"795  },796  {797    "inputs": [798      { "internalType": "uint256", "name": "index", "type": "uint256" }799    ],800    "name": "tokenByIndex",801    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],802    "stateMutability": "view",803    "type": "function"804  },805  {806    "inputs": [807      { "internalType": "uint256", "name": "token", "type": "uint256" }808    ],809    "name": "tokenContractAddress",810    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],811    "stateMutability": "view",812    "type": "function"813  },814  {815    "inputs": [816      { "internalType": "address", "name": "owner", "type": "address" },817      { "internalType": "uint256", "name": "index", "type": "uint256" }818    ],819    "name": "tokenOfOwnerByIndex",820    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],821    "stateMutability": "view",822    "type": "function"823  },824  {825    "inputs": [],826    "name": "tokenPropertyPermissions",827    "outputs": [828      {829        "components": [830          { "internalType": "string", "name": "key", "type": "string" },831          {832            "components": [833              {834                "internalType": "enum TokenPermissionField",835                "name": "code",836                "type": "uint8"837              },838              { "internalType": "bool", "name": "value", "type": "bool" }839            ],840            "internalType": "struct PropertyPermission[]",841            "name": "permissions",842            "type": "tuple[]"843          }844        ],845        "internalType": "struct TokenPropertyPermission[]",846        "name": "",847        "type": "tuple[]"848      }849    ],850    "stateMutability": "view",851    "type": "function"852  },853  {854    "inputs": [855      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }856    ],857    "name": "tokenURI",858    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],859    "stateMutability": "view",860    "type": "function"861  },862  {863    "inputs": [],864    "name": "totalSupply",865    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],866    "stateMutability": "view",867    "type": "function"868  },869  {870    "inputs": [871      { "internalType": "address", "name": "to", "type": "address" },872      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }873    ],874    "name": "transfer",875    "outputs": [],876    "stateMutability": "nonpayable",877    "type": "function"878  },879  {880    "inputs": [881      {882        "components": [883          { "internalType": "address", "name": "eth", "type": "address" },884          { "internalType": "uint256", "name": "sub", "type": "uint256" }885        ],886        "internalType": "struct CrossAddress",887        "name": "to",888        "type": "tuple"889      },890      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }891    ],892    "name": "transferCross",893    "outputs": [],894    "stateMutability": "nonpayable",895    "type": "function"896  },897  {898    "inputs": [899      { "internalType": "address", "name": "from", "type": "address" },900      { "internalType": "address", "name": "to", "type": "address" },901      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }902    ],903    "name": "transferFrom",904    "outputs": [],905    "stateMutability": "nonpayable",906    "type": "function"907  },908  {909    "inputs": [910      {911        "components": [912          { "internalType": "address", "name": "eth", "type": "address" },913          { "internalType": "uint256", "name": "sub", "type": "uint256" }914        ],915        "internalType": "struct CrossAddress",916        "name": "from",917        "type": "tuple"918      },919      {920        "components": [921          { "internalType": "address", "name": "eth", "type": "address" },922          { "internalType": "uint256", "name": "sub", "type": "uint256" }923        ],924        "internalType": "struct CrossAddress",925        "name": "to",926        "type": "tuple"927      },928      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }929    ],930    "name": "transferFromCross",931    "outputs": [],932    "stateMutability": "nonpayable",933    "type": "function"934  },935  {936    "inputs": [],937    "name": "uniqueCollectionType",938    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],939    "stateMutability": "view",940    "type": "function"941  }942]
after · tests/src/eth/abi/reFungible.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": "approved",15        "type": "address"16      },17      {18        "indexed": true,19        "internalType": "uint256",20        "name": "tokenId",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": "owner",34        "type": "address"35      },36      {37        "indexed": true,38        "internalType": "address",39        "name": "operator",40        "type": "address"41      },42      {43        "indexed": false,44        "internalType": "bool",45        "name": "approved",46        "type": "bool"47      }48    ],49    "name": "ApprovalForAll",50    "type": "event"51  },52  {53    "anonymous": false,54    "inputs": [55      {56        "indexed": true,57        "internalType": "uint256",58        "name": "tokenId",59        "type": "uint256"60      }61    ],62    "name": "TokenChanged",63    "type": "event"64  },65  {66    "anonymous": false,67    "inputs": [68      {69        "indexed": true,70        "internalType": "address",71        "name": "from",72        "type": "address"73      },74      {75        "indexed": true,76        "internalType": "address",77        "name": "to",78        "type": "address"79      },80      {81        "indexed": true,82        "internalType": "uint256",83        "name": "tokenId",84        "type": "uint256"85      }86    ],87    "name": "Transfer",88    "type": "event"89  },90  {91    "inputs": [92      {93        "components": [94          { "internalType": "address", "name": "eth", "type": "address" },95          { "internalType": "uint256", "name": "sub", "type": "uint256" }96        ],97        "internalType": "struct CrossAddress",98        "name": "newAdmin",99        "type": "tuple"100      }101    ],102    "name": "addCollectionAdminCross",103    "outputs": [],104    "stateMutability": "nonpayable",105    "type": "function"106  },107  {108    "inputs": [109      {110        "components": [111          { "internalType": "address", "name": "eth", "type": "address" },112          { "internalType": "uint256", "name": "sub", "type": "uint256" }113        ],114        "internalType": "struct CrossAddress",115        "name": "user",116        "type": "tuple"117      }118    ],119    "name": "addToCollectionAllowListCross",120    "outputs": [],121    "stateMutability": "nonpayable",122    "type": "function"123  },124  {125    "inputs": [126      {127        "components": [128          { "internalType": "address", "name": "eth", "type": "address" },129          { "internalType": "uint256", "name": "sub", "type": "uint256" }130        ],131        "internalType": "struct CrossAddress",132        "name": "user",133        "type": "tuple"134      }135    ],136    "name": "allowlistedCross",137    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],138    "stateMutability": "view",139    "type": "function"140  },141  {142    "inputs": [143      { "internalType": "address", "name": "approved", "type": "address" },144      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }145    ],146    "name": "approve",147    "outputs": [],148    "stateMutability": "nonpayable",149    "type": "function"150  },151  {152    "inputs": [153      { "internalType": "address", "name": "owner", "type": "address" }154    ],155    "name": "balanceOf",156    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],157    "stateMutability": "view",158    "type": "function"159  },160  {161    "inputs": [162      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }163    ],164    "name": "burn",165    "outputs": [],166    "stateMutability": "nonpayable",167    "type": "function"168  },169  {170    "inputs": [171      {172        "components": [173          { "internalType": "address", "name": "eth", "type": "address" },174          { "internalType": "uint256", "name": "sub", "type": "uint256" }175        ],176        "internalType": "struct CrossAddress",177        "name": "from",178        "type": "tuple"179      },180      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }181    ],182    "name": "burnFromCross",183    "outputs": [],184    "stateMutability": "nonpayable",185    "type": "function"186  },187  {188    "inputs": [189      {190        "components": [191          { "internalType": "address", "name": "eth", "type": "address" },192          { "internalType": "uint256", "name": "sub", "type": "uint256" }193        ],194        "internalType": "struct CrossAddress",195        "name": "newOwner",196        "type": "tuple"197      }198    ],199    "name": "changeCollectionOwnerCross",200    "outputs": [],201    "stateMutability": "nonpayable",202    "type": "function"203  },204  {205    "inputs": [],206    "name": "collectionAdmins",207    "outputs": [208      {209        "components": [210          { "internalType": "address", "name": "eth", "type": "address" },211          { "internalType": "uint256", "name": "sub", "type": "uint256" }212        ],213        "internalType": "struct CrossAddress[]",214        "name": "",215        "type": "tuple[]"216      }217    ],218    "stateMutability": "view",219    "type": "function"220  },221  {222    "inputs": [],223    "name": "collectionHelperAddress",224    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],225    "stateMutability": "view",226    "type": "function"227  },228  {229    "inputs": [],230    "name": "collectionLimits",231    "outputs": [232      {233        "components": [234          {235            "internalType": "enum CollectionLimitField",236            "name": "field",237            "type": "uint8"238          },239          {240            "components": [241              { "internalType": "bool", "name": "status", "type": "bool" },242              { "internalType": "uint256", "name": "value", "type": "uint256" }243            ],244            "internalType": "struct OptionUint256",245            "name": "value",246            "type": "tuple"247          }248        ],249        "internalType": "struct CollectionLimit[]",250        "name": "",251        "type": "tuple[]"252      }253    ],254    "stateMutability": "view",255    "type": "function"256  },257  {258    "inputs": [],259    "name": "collectionNestingPermissions",260    "outputs": [261      {262        "components": [263          {264            "internalType": "enum CollectionPermissionField",265            "name": "field",266            "type": "uint8"267          },268          { "internalType": "bool", "name": "value", "type": "bool" }269        ],270        "internalType": "struct CollectionNestingPermission[]",271        "name": "",272        "type": "tuple[]"273      }274    ],275    "stateMutability": "view",276    "type": "function"277  },278  {279    "inputs": [],280    "name": "collectionNestingRestrictedCollectionIds",281    "outputs": [282      {283        "components": [284          { "internalType": "bool", "name": "token_owner", "type": "bool" },285          { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }286        ],287        "internalType": "struct CollectionNesting",288        "name": "",289        "type": "tuple"290      }291    ],292    "stateMutability": "view",293    "type": "function"294  },295  {296    "inputs": [],297    "name": "collectionOwner",298    "outputs": [299      {300        "components": [301          { "internalType": "address", "name": "eth", "type": "address" },302          { "internalType": "uint256", "name": "sub", "type": "uint256" }303        ],304        "internalType": "struct CrossAddress",305        "name": "",306        "type": "tuple"307      }308    ],309    "stateMutability": "view",310    "type": "function"311  },312  {313    "inputs": [314      { "internalType": "string[]", "name": "keys", "type": "string[]" }315    ],316    "name": "collectionProperties",317    "outputs": [318      {319        "components": [320          { "internalType": "string", "name": "key", "type": "string" },321          { "internalType": "bytes", "name": "value", "type": "bytes" }322        ],323        "internalType": "struct Property[]",324        "name": "",325        "type": "tuple[]"326      }327    ],328    "stateMutability": "view",329    "type": "function"330  },331  {332    "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],333    "name": "collectionProperty",334    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],335    "stateMutability": "view",336    "type": "function"337  },338  {339    "inputs": [],340    "name": "collectionSponsor",341    "outputs": [342      {343        "components": [344          { "internalType": "address", "name": "eth", "type": "address" },345          { "internalType": "uint256", "name": "sub", "type": "uint256" }346        ],347        "internalType": "struct CrossAddress",348        "name": "",349        "type": "tuple"350      }351    ],352    "stateMutability": "view",353    "type": "function"354  },355  {356    "inputs": [],357    "name": "confirmCollectionSponsorship",358    "outputs": [],359    "stateMutability": "nonpayable",360    "type": "function"361  },362  {363    "inputs": [],364    "name": "contractAddress",365    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],366    "stateMutability": "view",367    "type": "function"368  },369  {370    "inputs": [371      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }372    ],373    "name": "crossOwnerOf",374    "outputs": [375      {376        "components": [377          { "internalType": "address", "name": "eth", "type": "address" },378          { "internalType": "uint256", "name": "sub", "type": "uint256" }379        ],380        "internalType": "struct CrossAddress",381        "name": "",382        "type": "tuple"383      }384    ],385    "stateMutability": "view",386    "type": "function"387  },388  {389    "inputs": [390      { "internalType": "string[]", "name": "keys", "type": "string[]" }391    ],392    "name": "deleteCollectionProperties",393    "outputs": [],394    "stateMutability": "nonpayable",395    "type": "function"396  },397  {398    "inputs": [399      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },400      { "internalType": "string[]", "name": "keys", "type": "string[]" }401    ],402    "name": "deleteProperties",403    "outputs": [],404    "stateMutability": "nonpayable",405    "type": "function"406  },407  {408    "inputs": [],409    "name": "description",410    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],411    "stateMutability": "view",412    "type": "function"413  },414  {415    "inputs": [416      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }417    ],418    "name": "getApproved",419    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],420    "stateMutability": "view",421    "type": "function"422  },423  {424    "inputs": [],425    "name": "hasCollectionPendingSponsor",426    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],427    "stateMutability": "view",428    "type": "function"429  },430  {431    "inputs": [432      { "internalType": "address", "name": "owner", "type": "address" },433      { "internalType": "address", "name": "operator", "type": "address" }434    ],435    "name": "isApprovedForAll",436    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],437    "stateMutability": "view",438    "type": "function"439  },440  {441    "inputs": [442      {443        "components": [444          { "internalType": "address", "name": "eth", "type": "address" },445          { "internalType": "uint256", "name": "sub", "type": "uint256" }446        ],447        "internalType": "struct CrossAddress",448        "name": "user",449        "type": "tuple"450      }451    ],452    "name": "isOwnerOrAdminCross",453    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],454    "stateMutability": "view",455    "type": "function"456  },457  {458    "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],459    "name": "mint",460    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],461    "stateMutability": "nonpayable",462    "type": "function"463  },464  {465    "inputs": [466      {467        "components": [468          { "internalType": "address", "name": "eth", "type": "address" },469          { "internalType": "uint256", "name": "sub", "type": "uint256" }470        ],471        "internalType": "struct CrossAddress",472        "name": "to",473        "type": "tuple"474      },475      {476        "components": [477          { "internalType": "string", "name": "key", "type": "string" },478          { "internalType": "bytes", "name": "value", "type": "bytes" }479        ],480        "internalType": "struct Property[]",481        "name": "properties",482        "type": "tuple[]"483      }484    ],485    "name": "mintCross",486    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],487    "stateMutability": "nonpayable",488    "type": "function"489  },490  {491    "inputs": [492      { "internalType": "address", "name": "to", "type": "address" },493      { "internalType": "string", "name": "tokenUri", "type": "string" }494    ],495    "name": "mintWithTokenURI",496    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],497    "stateMutability": "nonpayable",498    "type": "function"499  },500  {501    "inputs": [],502    "name": "name",503    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],504    "stateMutability": "view",505    "type": "function"506  },507  {508    "inputs": [],509    "name": "nextTokenId",510    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],511    "stateMutability": "view",512    "type": "function"513  },514  {515    "inputs": [516      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }517    ],518    "name": "ownerOf",519    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],520    "stateMutability": "view",521    "type": "function"522  },523  {524    "inputs": [525      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },526      { "internalType": "string[]", "name": "keys", "type": "string[]" }527    ],528    "name": "properties",529    "outputs": [530      {531        "components": [532          { "internalType": "string", "name": "key", "type": "string" },533          { "internalType": "bytes", "name": "value", "type": "bytes" }534        ],535        "internalType": "struct Property[]",536        "name": "",537        "type": "tuple[]"538      }539    ],540    "stateMutability": "view",541    "type": "function"542  },543  {544    "inputs": [545      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },546      { "internalType": "string", "name": "key", "type": "string" }547    ],548    "name": "property",549    "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],550    "stateMutability": "view",551    "type": "function"552  },553  {554    "inputs": [555      {556        "components": [557          { "internalType": "address", "name": "eth", "type": "address" },558          { "internalType": "uint256", "name": "sub", "type": "uint256" }559        ],560        "internalType": "struct CrossAddress",561        "name": "admin",562        "type": "tuple"563      }564    ],565    "name": "removeCollectionAdminCross",566    "outputs": [],567    "stateMutability": "nonpayable",568    "type": "function"569  },570  {571    "inputs": [],572    "name": "removeCollectionSponsor",573    "outputs": [],574    "stateMutability": "nonpayable",575    "type": "function"576  },577  {578    "inputs": [579      {580        "components": [581          { "internalType": "address", "name": "eth", "type": "address" },582          { "internalType": "uint256", "name": "sub", "type": "uint256" }583        ],584        "internalType": "struct CrossAddress",585        "name": "user",586        "type": "tuple"587      }588    ],589    "name": "removeFromCollectionAllowListCross",590    "outputs": [],591    "stateMutability": "nonpayable",592    "type": "function"593  },594  {595    "inputs": [596      { "internalType": "address", "name": "from", "type": "address" },597      { "internalType": "address", "name": "to", "type": "address" },598      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }599    ],600    "name": "safeTransferFrom",601    "outputs": [],602    "stateMutability": "nonpayable",603    "type": "function"604  },605  {606    "inputs": [607      { "internalType": "address", "name": "from", "type": "address" },608      { "internalType": "address", "name": "to", "type": "address" },609      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },610      { "internalType": "bytes", "name": "data", "type": "bytes" }611    ],612    "name": "safeTransferFrom",613    "outputs": [],614    "stateMutability": "nonpayable",615    "type": "function"616  },617  {618    "inputs": [619      { "internalType": "address", "name": "operator", "type": "address" },620      { "internalType": "bool", "name": "approved", "type": "bool" }621    ],622    "name": "setApprovalForAll",623    "outputs": [],624    "stateMutability": "nonpayable",625    "type": "function"626  },627  {628    "inputs": [629      { "internalType": "enum AccessMode", "name": "mode", "type": "uint8" }630    ],631    "name": "setCollectionAccess",632    "outputs": [],633    "stateMutability": "nonpayable",634    "type": "function"635  },636  {637    "inputs": [638      {639        "components": [640          {641            "internalType": "enum CollectionLimitField",642            "name": "field",643            "type": "uint8"644          },645          {646            "components": [647              { "internalType": "bool", "name": "status", "type": "bool" },648              { "internalType": "uint256", "name": "value", "type": "uint256" }649            ],650            "internalType": "struct OptionUint256",651            "name": "value",652            "type": "tuple"653          }654        ],655        "internalType": "struct CollectionLimit",656        "name": "limit",657        "type": "tuple"658      }659    ],660    "name": "setCollectionLimit",661    "outputs": [],662    "stateMutability": "nonpayable",663    "type": "function"664  },665  {666    "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],667    "name": "setCollectionMintMode",668    "outputs": [],669    "stateMutability": "nonpayable",670    "type": "function"671  },672  {673    "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],674    "name": "setCollectionNesting",675    "outputs": [],676    "stateMutability": "nonpayable",677    "type": "function"678  },679  {680    "inputs": [681      { "internalType": "bool", "name": "enable", "type": "bool" },682      {683        "internalType": "address[]",684        "name": "collections",685        "type": "address[]"686      }687    ],688    "name": "setCollectionNesting",689    "outputs": [],690    "stateMutability": "nonpayable",691    "type": "function"692  },693  {694    "inputs": [695      {696        "components": [697          { "internalType": "string", "name": "key", "type": "string" },698          { "internalType": "bytes", "name": "value", "type": "bytes" }699        ],700        "internalType": "struct Property[]",701        "name": "properties",702        "type": "tuple[]"703      }704    ],705    "name": "setCollectionProperties",706    "outputs": [],707    "stateMutability": "nonpayable",708    "type": "function"709  },710  {711    "inputs": [712      {713        "components": [714          { "internalType": "address", "name": "eth", "type": "address" },715          { "internalType": "uint256", "name": "sub", "type": "uint256" }716        ],717        "internalType": "struct CrossAddress",718        "name": "sponsor",719        "type": "tuple"720      }721    ],722    "name": "setCollectionSponsorCross",723    "outputs": [],724    "stateMutability": "nonpayable",725    "type": "function"726  },727  {728    "inputs": [729      { "internalType": "uint256", "name": "tokenId", "type": "uint256" },730      {731        "components": [732          { "internalType": "string", "name": "key", "type": "string" },733          { "internalType": "bytes", "name": "value", "type": "bytes" }734        ],735        "internalType": "struct Property[]",736        "name": "properties",737        "type": "tuple[]"738      }739    ],740    "name": "setProperties",741    "outputs": [],742    "stateMutability": "nonpayable",743    "type": "function"744  },745  {746    "inputs": [747      {748        "components": [749          { "internalType": "string", "name": "key", "type": "string" },750          {751            "components": [752              {753                "internalType": "enum TokenPermissionField",754                "name": "code",755                "type": "uint8"756              },757              { "internalType": "bool", "name": "value", "type": "bool" }758            ],759            "internalType": "struct PropertyPermission[]",760            "name": "permissions",761            "type": "tuple[]"762          }763        ],764        "internalType": "struct TokenPropertyPermission[]",765        "name": "permissions",766        "type": "tuple[]"767      }768    ],769    "name": "setTokenPropertyPermissions",770    "outputs": [],771    "stateMutability": "nonpayable",772    "type": "function"773  },774  {775    "inputs": [776      { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }777    ],778    "name": "supportsInterface",779    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],780    "stateMutability": "view",781    "type": "function"782  },783  {784    "inputs": [],785    "name": "symbol",786    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],787    "stateMutability": "view",788    "type": "function"789  },790  {791    "inputs": [792      { "internalType": "uint256", "name": "index", "type": "uint256" }793    ],794    "name": "tokenByIndex",795    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],796    "stateMutability": "view",797    "type": "function"798  },799  {800    "inputs": [801      { "internalType": "uint256", "name": "token", "type": "uint256" }802    ],803    "name": "tokenContractAddress",804    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],805    "stateMutability": "view",806    "type": "function"807  },808  {809    "inputs": [810      { "internalType": "address", "name": "owner", "type": "address" },811      { "internalType": "uint256", "name": "index", "type": "uint256" }812    ],813    "name": "tokenOfOwnerByIndex",814    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],815    "stateMutability": "view",816    "type": "function"817  },818  {819    "inputs": [],820    "name": "tokenPropertyPermissions",821    "outputs": [822      {823        "components": [824          { "internalType": "string", "name": "key", "type": "string" },825          {826            "components": [827              {828                "internalType": "enum TokenPermissionField",829                "name": "code",830                "type": "uint8"831              },832              { "internalType": "bool", "name": "value", "type": "bool" }833            ],834            "internalType": "struct PropertyPermission[]",835            "name": "permissions",836            "type": "tuple[]"837          }838        ],839        "internalType": "struct TokenPropertyPermission[]",840        "name": "",841        "type": "tuple[]"842      }843    ],844    "stateMutability": "view",845    "type": "function"846  },847  {848    "inputs": [849      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }850    ],851    "name": "tokenURI",852    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],853    "stateMutability": "view",854    "type": "function"855  },856  {857    "inputs": [],858    "name": "totalSupply",859    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],860    "stateMutability": "view",861    "type": "function"862  },863  {864    "inputs": [865      { "internalType": "address", "name": "to", "type": "address" },866      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }867    ],868    "name": "transfer",869    "outputs": [],870    "stateMutability": "nonpayable",871    "type": "function"872  },873  {874    "inputs": [875      {876        "components": [877          { "internalType": "address", "name": "eth", "type": "address" },878          { "internalType": "uint256", "name": "sub", "type": "uint256" }879        ],880        "internalType": "struct CrossAddress",881        "name": "to",882        "type": "tuple"883      },884      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }885    ],886    "name": "transferCross",887    "outputs": [],888    "stateMutability": "nonpayable",889    "type": "function"890  },891  {892    "inputs": [893      { "internalType": "address", "name": "from", "type": "address" },894      { "internalType": "address", "name": "to", "type": "address" },895      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }896    ],897    "name": "transferFrom",898    "outputs": [],899    "stateMutability": "nonpayable",900    "type": "function"901  },902  {903    "inputs": [904      {905        "components": [906          { "internalType": "address", "name": "eth", "type": "address" },907          { "internalType": "uint256", "name": "sub", "type": "uint256" }908        ],909        "internalType": "struct CrossAddress",910        "name": "from",911        "type": "tuple"912      },913      {914        "components": [915          { "internalType": "address", "name": "eth", "type": "address" },916          { "internalType": "uint256", "name": "sub", "type": "uint256" }917        ],918        "internalType": "struct CrossAddress",919        "name": "to",920        "type": "tuple"921      },922      { "internalType": "uint256", "name": "tokenId", "type": "uint256" }923    ],924    "name": "transferFromCross",925    "outputs": [],926    "stateMutability": "nonpayable",927    "type": "function"928  },929  {930    "inputs": [],931    "name": "uniqueCollectionType",932    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],933    "stateMutability": "view",934    "type": "function"935  }936]
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -14,7 +14,7 @@
 
 /// @dev inlined interface
 interface ERC721TokenEvent {
-	event TokenChanged(address indexed collectionId, uint256 tokenId);
+	event TokenChanged(uint256 indexed tokenId);
 }
 
 /// @title A contract that allows to set and delete token properties and change token property permissions.
modifiedtests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth
--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -14,7 +14,7 @@
 
 /// @dev inlined interface
 interface ERC721TokenEvent {
-	event TokenChanged(address indexed collectionId, uint256 tokenId);
+	event TokenChanged(uint256 indexed tokenId);
 }
 
 /// @title A contract that allows to set and delete token properties and change token property permissions.
modifiedtests/src/eth/events.test.tsdiffbeforeafterboth
--- a/tests/src/eth/events.test.ts
+++ b/tests/src/eth/events.test.ts
@@ -393,7 +393,6 @@
     expect(result.events.TokenChanged).to.be.like({
       event: 'TokenChanged',
       returnValues: {
-        collectionId: collectionAddress,
         tokenId: tokenId,
       },
     });
@@ -406,7 +405,6 @@
     expect(result.events.TokenChanged).to.be.like({
       event: 'TokenChanged',
       returnValues: {
-        collectionId: collectionAddress,
         tokenId: tokenId,
       },
     });