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

difftreelog

source

js-packages/evm-abi/abi/nonFungible.json26.2 KiBsourcehistory
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]