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