git.delta.rocks / unique-network / refs/commits / 59a15efbde76

difftreelog

source

js-packages/evm-abi/abi/reFungible.json26.4 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      { "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]