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