[
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "collectionId",
        "type": "address"
      }
    ],
    "name": "CollectionChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "collectionId",
        "type": "address"
      }
    ],
    "name": "CollectionCreated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "collectionId",
        "type": "address"
      }
    ],
    "name": "CollectionDestroyed",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "collectionId",
        "type": "uint32"
      }
    ],
    "name": "collectionAddress",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "collectionCreationFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "collectionAddress",
        "type": "address"
      }
    ],
    "name": "collectionId",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "",
        "type": "uint32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "description",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "token_prefix",
            "type": "string"
          },
          {
            "internalType": "enum CollectionMode",
            "name": "mode",
            "type": "uint8"
          },
          {
            "internalType": "uint8",
            "name": "decimals",
            "type": "uint8"
          },
          {
            "components": [
              {
                "internalType": "string",
                "name": "key",
                "type": "string"
              },
              {
                "internalType": "bytes",
                "name": "value",
                "type": "bytes"
              }
            ],
            "internalType": "struct Property[]",
            "name": "properties",
            "type": "tuple[]"
          },
          {
            "components": [
              {
                "internalType": "string",
                "name": "key",
                "type": "string"
              },
              {
                "components": [
                  {
                    "internalType": "enum TokenPermissionField",
                    "name": "code",
                    "type": "uint8"
                  },
                  {
                    "internalType": "bool",
                    "name": "value",
                    "type": "bool"
                  }
                ],
                "internalType": "struct PropertyPermission[]",
                "name": "permissions",
                "type": "tuple[]"
              }
            ],
            "internalType": "struct TokenPropertyPermission[]",
            "name": "token_property_permissions",
            "type": "tuple[]"
          },
          {
            "components": [
              {
                "internalType": "address",
                "name": "eth",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "sub",
                "type": "uint256"
              }
            ],
            "internalType": "struct CrossAddress[]",
            "name": "admin_list",
            "type": "tuple[]"
          },
          {
            "components": [
              {
                "internalType": "bool",
                "name": "token_owner",
                "type": "bool"
              },
              {
                "internalType": "bool",
                "name": "collection_admin",
                "type": "bool"
              },
              {
                "internalType": "address[]",
                "name": "restricted",
                "type": "address[]"
              }
            ],
            "internalType": "struct CollectionNestingAndPermission",
            "name": "nesting_settings",
            "type": "tuple"
          },
          {
            "components": [
              {
                "internalType": "enum CollectionLimitField",
                "name": "field",
                "type": "uint8"
              },
              {
                "internalType": "uint256",
                "name": "value",
                "type": "uint256"
              }
            ],
            "internalType": "struct CollectionLimitValue[]",
            "name": "limits",
            "type": "tuple[]"
          },
          {
            "components": [
              {
                "internalType": "address",
                "name": "eth",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "sub",
                "type": "uint256"
              }
            ],
            "internalType": "struct CrossAddress",
            "name": "pending_sponsor",
            "type": "tuple"
          },
          {
            "internalType": "CollectionFlags",
            "name": "flags",
            "type": "uint8"
          }
        ],
        "internalType": "struct CreateCollectionData",
        "name": "data",
        "type": "tuple"
      }
    ],
    "name": "createCollection",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "uint8",
        "name": "decimals",
        "type": "uint8"
      },
      {
        "internalType": "string",
        "name": "description",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "tokenPrefix",
        "type": "string"
      }
    ],
    "name": "createFTCollection",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "description",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "tokenPrefix",
        "type": "string"
      }
    ],
    "name": "createNFTCollection",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "description",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "tokenPrefix",
        "type": "string"
      }
    ],
    "name": "createRFTCollection",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "collectionAddress",
        "type": "address"
      }
    ],
    "name": "destroyCollection",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "collectionAddress",
        "type": "address"
      }
    ],
    "name": "isCollectionExist",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "collection",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "baseUri",
        "type": "string"
      }
    ],
    "name": "makeCollectionERC721MetadataCompatible",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceID",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  }
]