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