{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "updatedBy",
          "type": "address"
        }
      ],
      "name": "LogChainRegistryObjectDataUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        },
        {
          "indexed": false,
          "internalType": "ChainId",
          "name": "chain",
          "type": "bytes5"
        },
        {
          "indexed": false,
          "internalType": "ObjectType",
          "name": "objectType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "enum IChainRegistry.ObjectState",
          "name": "state",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "LogChainRegistryObjectRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        },
        {
          "indexed": false,
          "internalType": "enum IChainRegistry.ObjectState",
          "name": "stateNew",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "enum IChainRegistry.ObjectState",
          "name": "stateOld",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "setBy",
          "type": "address"
        }
      ],
      "name": "LogChainRegistryObjectStateSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Version",
          "name": "version",
          "type": "uint48"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "activatedBy",
          "type": "address"
        }
      ],
      "name": "LogVersionableActivated",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "activatedBy",
          "type": "address"
        }
      ],
      "name": "activate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "blockNumber",
      "outputs": [
        {
          "internalType": "Blocknumber",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "chains",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfChains",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "name": "decodeBundleData",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "instanceId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "displayName",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "expiryAt",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "name": "decodeComponentData",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "instanceId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "name": "decodeInstanceData",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "instanceId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "registry",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "displayName",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "name": "decodeRegistryData",
      "outputs": [
        {
          "internalType": "address",
          "name": "registry",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "name": "decodeStakeData",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "target",
          "type": "uint96"
        },
        {
          "internalType": "ObjectType",
          "name": "targetType",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "name": "decodeTokenData",
      "outputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "name": "exists",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        },
        {
          "internalType": "uint256",
          "name": "lifetimeExtension",
          "type": "uint256"
        }
      ],
      "name": "extendBundleLifetime",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "instanceId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        }
      ],
      "name": "getBundleNftId",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "getChainId",
      "outputs": [
        {
          "internalType": "ChainId",
          "name": "chain",
          "type": "bytes5"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "ChainId",
          "name": "chain",
          "type": "bytes5"
        }
      ],
      "name": "getChainNftId",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "instanceId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        }
      ],
      "name": "getComponentNftId",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "instanceId",
          "type": "bytes32"
        }
      ],
      "name": "getInstanceNftId",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "instanceId",
          "type": "bytes32"
        }
      ],
      "name": "getInstanceServiceFacade",
      "outputs": [
        {
          "internalType": "contract IInstanceServiceFacade",
          "name": "instanceService",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getNft",
      "outputs": [
        {
          "internalType": "contract IChainNft",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "ChainId",
          "name": "chain",
          "type": "bytes5"
        },
        {
          "internalType": "ObjectType",
          "name": "t",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "getNftId",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "name": "getNftInfo",
      "outputs": [
        {
          "components": [
            {
              "internalType": "NftId",
              "name": "id",
              "type": "uint96"
            },
            {
              "internalType": "ChainId",
              "name": "chain",
              "type": "bytes5"
            },
            {
              "internalType": "ObjectType",
              "name": "objectType",
              "type": "uint8"
            },
            {
              "internalType": "enum IChainRegistry.ObjectState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "string",
              "name": "uri",
              "type": "string"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "Blocknumber",
              "name": "mintedIn",
              "type": "uint32"
            },
            {
              "internalType": "Blocknumber",
              "name": "updatedIn",
              "type": "uint32"
            },
            {
              "internalType": "Version",
              "name": "version",
              "type": "uint48"
            }
          ],
          "internalType": "struct IChainRegistry.NftInfo",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "ChainId",
          "name": "chain",
          "type": "bytes5"
        }
      ],
      "name": "getRegistryNftId",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getStaking",
      "outputs": [
        {
          "internalType": "contract IStaking",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "ChainId",
          "name": "chain",
          "type": "bytes5"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "getTokenNftId",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "getVersion",
      "outputs": [
        {
          "internalType": "Version",
          "name": "",
          "type": "uint48"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Version",
          "name": "_version",
          "type": "uint48"
        }
      ],
      "name": "getVersionInfo",
      "outputs": [
        {
          "components": [
            {
              "internalType": "Version",
              "name": "version",
              "type": "uint48"
            },
            {
              "internalType": "address",
              "name": "implementation",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "activatedBy",
              "type": "address"
            },
            {
              "internalType": "Blocknumber",
              "name": "activatedIn",
              "type": "uint32"
            },
            {
              "internalType": "Timestamp",
              "name": "activatedAt",
              "type": "uint40"
            }
          ],
          "internalType": "struct IVersionable.VersionInfo",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "implementsIChainRegistry",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "x",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "shift",
          "type": "uint8"
        }
      ],
      "name": "intToBytes",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Version",
          "name": "_version",
          "type": "uint48"
        }
      ],
      "name": "isActivated",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "ChainId",
          "name": "chain",
          "type": "bytes5"
        },
        {
          "internalType": "ObjectType",
          "name": "t",
          "type": "uint8"
        }
      ],
      "name": "objects",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfObjects",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "name": "ownerOf",
      "outputs": [
        {
          "internalType": "address",
          "name": "nftOwner",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "registry",
          "type": "address"
        }
      ],
      "name": "probeInstance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "isContract",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "contractSize",
          "type": "uint256"
        },
        {
          "internalType": "ChainId",
          "name": "chain",
          "type": "bytes5"
        },
        {
          "internalType": "bytes32",
          "name": "istanceId",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "isValidId",
          "type": "bool"
        },
        {
          "internalType": "contract IInstanceServiceFacade",
          "name": "instanceService",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "instanceId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "displayName",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "expiryAt",
          "type": "uint256"
        }
      ],
      "name": "registerBundle",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "ChainId",
          "name": "chain",
          "type": "bytes5"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "registerChain",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "instanceId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "registerComponent",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "instanceRegistry",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "displayName",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "registerInstance",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "ChainId",
          "name": "chain",
          "type": "bytes5"
        },
        {
          "internalType": "address",
          "name": "registry",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "registerRegistry",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "target",
          "type": "uint96"
        },
        {
          "internalType": "address",
          "name": "staker",
          "type": "address"
        }
      ],
      "name": "registerStake",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "ChainId",
          "name": "chain",
          "type": "bytes5"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "registerToken",
      "outputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "id",
          "type": "uint96"
        },
        {
          "internalType": "enum IChainRegistry.ObjectState",
          "name": "state",
          "type": "uint8"
        }
      ],
      "name": "setObjectState",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        }
      ],
      "name": "toChain",
      "outputs": [
        {
          "internalType": "ChainId",
          "name": "",
          "type": "bytes5"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "ChainId",
          "name": "x",
          "type": "bytes5"
        }
      ],
      "name": "toInt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Blocknumber",
          "name": "x",
          "type": "uint32"
        }
      ],
      "name": "toInt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Timestamp",
          "name": "x",
          "type": "uint40"
        }
      ],
      "name": "toInt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Version",
          "name": "_version",
          "type": "uint48"
        }
      ],
      "name": "toVersionParts",
      "outputs": [
        {
          "internalType": "VersionPart",
          "name": "major",
          "type": "uint16"
        },
        {
          "internalType": "VersionPart",
          "name": "minor",
          "type": "uint16"
        },
        {
          "internalType": "VersionPart",
          "name": "patch",
          "type": "uint16"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "Version",
          "name": "",
          "type": "uint48"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "versionParts",
      "outputs": [
        {
          "internalType": "VersionPart",
          "name": "major",
          "type": "uint16"
        },
        {
          "internalType": "VersionPart",
          "name": "minor",
          "type": "uint16"
        },
        {
          "internalType": "VersionPart",
          "name": "patch",
          "type": "uint16"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "versions",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "14": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/IERC20.sol",
    "15": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/extensions/IERC20Metadata.sol",
    "17": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/IERC721.sol",
    "20": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/extensions/IERC721Enumerable.sol",
    "29": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/introspection/IERC165.sol",
    "34": "contracts/registry/IChainNft.sol",
    "36": "contracts/registry/IChainRegistry.sol",
    "39": "contracts/registry/IInstanceServiceFacade.sol",
    "43": "contracts/shared/IBaseTypes.sol",
    "44": "contracts/shared/IVersionType.sol",
    "45": "contracts/shared/IVersionable.sol",
    "47": "contracts/shared/UFixedMath.sol",
    "50": "contracts/staking/IStaking.sol"
  },
  "ast": {
    "absolutePath": "contracts/registry/IChainRegistry.sol",
    "exportedSymbols": {
      "Blocknumber": [
        4713
      ],
      "ChainId": [
        4447
      ],
      "IBaseTypes": [
        4753
      ],
      "IChainNft": [
        3494
      ],
      "IChainRegistry": [
        4025
      ],
      "IInstanceServiceFacade": [
        4295
      ],
      "IStaking": [
        6479
      ],
      "IVersionable": [
        4856
      ],
      "NftId": [
        3353
      ],
      "ObjectType": [
        3555
      ],
      "Version": [
        12269
      ],
      "eqObjectType": [
        3582
      ],
      "neObjectType": [
        3604
      ]
    },
    "id": 4026,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3538,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:24:36"
      },
      {
        "absolutePath": "contracts/shared/IBaseTypes.sol",
        "file": "../shared/IBaseTypes.sol",
        "id": 3542,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 4026,
        "sourceUnit": 4754,
        "src": "65:74:36",
        "symbolAliases": [
          {
            "foreign": {
              "id": 3539,
              "name": "IBaseTypes",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4753,
              "src": "73:10:36",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 3540,
              "name": "ChainId",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4447,
              "src": "85:7:36",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 3541,
              "name": "Blocknumber",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4713,
              "src": "94:11:36",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/shared/IVersionType.sol",
        "file": "../shared/IVersionType.sol",
        "id": 3544,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 4026,
        "sourceUnit": 12455,
        "src": "140:51:36",
        "symbolAliases": [
          {
            "foreign": {
              "id": 3543,
              "name": "Version",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 12269,
              "src": "148:7:36",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/shared/IVersionable.sol",
        "file": "../shared/IVersionable.sol",
        "id": 3546,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 4026,
        "sourceUnit": 4857,
        "src": "192:56:36",
        "symbolAliases": [
          {
            "foreign": {
              "id": 3545,
              "name": "IVersionable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4856,
              "src": "200:12:36",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/staking/IStaking.sol",
        "file": "../staking/IStaking.sol",
        "id": 3548,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 4026,
        "sourceUnit": 6480,
        "src": "250:49:36",
        "symbolAliases": [
          {
            "foreign": {
              "id": 3547,
              "name": "IStaking",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 6479,
              "src": "258:8:36",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/registry/IChainNft.sol",
        "file": "./IChainNft.sol",
        "id": 3551,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 4026,
        "sourceUnit": 3495,
        "src": "301:49:36",
        "symbolAliases": [
          {
            "foreign": {
              "id": 3549,
              "name": "IChainNft",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 3494,
              "src": "309:9:36",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 3550,
              "name": "NftId",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 3353,
              "src": "320:5:36",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/registry/IInstanceServiceFacade.sol",
        "file": "./IInstanceServiceFacade.sol",
        "id": 3553,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 4026,
        "sourceUnit": 4296,
        "src": "351:68:36",
        "symbolAliases": [
          {
            "foreign": {
              "id": 3552,
              "name": "IInstanceServiceFacade",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4295,
              "src": "359:22:36",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "canonicalName": "ObjectType",
        "id": 3555,
        "name": "ObjectType",
        "nameLocation": "426:10:36",
        "nodeType": "UserDefinedValueTypeDefinition",
        "src": "421:25:36",
        "underlyingType": {
          "id": 3554,
          "name": "uint8",
          "nodeType": "ElementaryTypeName",
          "src": "440:5:36",
          "typeDescriptions": {
            "typeIdentifier": "t_uint8",
            "typeString": "uint8"
          }
        }
      },
      {
        "functionList": [
          {
            "definition": {
              "id": 3556,
              "name": "eqObjectType",
              "nameLocations": [
                "460:12:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 3582,
              "src": "460:12:36"
            },
            "operator": "=="
          },
          {
            "definition": {
              "id": 3557,
              "name": "neObjectType",
              "nameLocations": [
                "484:12:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 3604,
              "src": "484:12:36"
            },
            "operator": "!="
          }
        ],
        "global": true,
        "id": 3560,
        "nodeType": "UsingForDirective",
        "src": "448:83:36",
        "typeName": {
          "id": 3559,
          "nodeType": "UserDefinedTypeName",
          "pathNode": {
            "id": 3558,
            "name": "ObjectType",
            "nameLocations": [
              "513:10:36"
            ],
            "nodeType": "IdentifierPath",
            "referencedDeclaration": 3555,
            "src": "513:10:36"
          },
          "referencedDeclaration": 3555,
          "src": "513:10:36",
          "typeDescriptions": {
            "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
            "typeString": "ObjectType"
          }
        }
      },
      {
        "body": {
          "id": 3581,
          "nodeType": "Block",
          "src": "609:56:36",
          "statements": [
            {
              "expression": {
                "commonType": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "id": 3579,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftExpression": {
                  "arguments": [
                    {
                      "id": 3573,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3563,
                      "src": "636:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                        "typeString": "ObjectType"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                        "typeString": "ObjectType"
                      }
                    ],
                    "expression": {
                      "id": 3571,
                      "name": "ObjectType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3555,
                      "src": "618:10:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_userDefinedValueType$_ObjectType_$3555_$",
                        "typeString": "type(ObjectType)"
                      }
                    },
                    "id": 3572,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "629:6:36",
                    "memberName": "unwrap",
                    "nodeType": "MemberAccess",
                    "src": "618:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_ObjectType_$3555_$returns$_t_uint8_$",
                      "typeString": "function (ObjectType) pure returns (uint8)"
                    }
                  },
                  "id": 3574,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "618:20:36",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "nodeType": "BinaryOperation",
                "operator": "==",
                "rightExpression": {
                  "arguments": [
                    {
                      "id": 3577,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3566,
                      "src": "660:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                        "typeString": "ObjectType"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                        "typeString": "ObjectType"
                      }
                    ],
                    "expression": {
                      "id": 3575,
                      "name": "ObjectType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3555,
                      "src": "642:10:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_userDefinedValueType$_ObjectType_$3555_$",
                        "typeString": "type(ObjectType)"
                      }
                    },
                    "id": 3576,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "653:6:36",
                    "memberName": "unwrap",
                    "nodeType": "MemberAccess",
                    "src": "642:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_ObjectType_$3555_$returns$_t_uint8_$",
                      "typeString": "function (ObjectType) pure returns (uint8)"
                    }
                  },
                  "id": 3578,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "642:20:36",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "src": "618:44:36",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              },
              "functionReturnParameters": 3570,
              "id": 3580,
              "nodeType": "Return",
              "src": "611:51:36"
            }
          ]
        },
        "id": 3582,
        "implemented": true,
        "kind": "freeFunction",
        "modifiers": [],
        "name": "eqObjectType",
        "nameLocation": "542:12:36",
        "nodeType": "FunctionDefinition",
        "parameters": {
          "id": 3567,
          "nodeType": "ParameterList",
          "parameters": [
            {
              "constant": false,
              "id": 3563,
              "mutability": "mutable",
              "name": "a",
              "nameLocation": "566:1:36",
              "nodeType": "VariableDeclaration",
              "scope": 3582,
              "src": "555:12:36",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
                "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                "typeString": "ObjectType"
              },
              "typeName": {
                "id": 3562,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 3561,
                  "name": "ObjectType",
                  "nameLocations": [
                    "555:10:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 3555,
                  "src": "555:10:36"
                },
                "referencedDeclaration": 3555,
                "src": "555:10:36",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                  "typeString": "ObjectType"
                }
              },
              "visibility": "internal"
            },
            {
              "constant": false,
              "id": 3566,
              "mutability": "mutable",
              "name": "b",
              "nameLocation": "580:1:36",
              "nodeType": "VariableDeclaration",
              "scope": 3582,
              "src": "569:12:36",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
                "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                "typeString": "ObjectType"
              },
              "typeName": {
                "id": 3565,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 3564,
                  "name": "ObjectType",
                  "nameLocations": [
                    "569:10:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 3555,
                  "src": "569:10:36"
                },
                "referencedDeclaration": 3555,
                "src": "569:10:36",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                  "typeString": "ObjectType"
                }
              },
              "visibility": "internal"
            }
          ],
          "src": "554:28:36"
        },
        "returnParameters": {
          "id": 3570,
          "nodeType": "ParameterList",
          "parameters": [
            {
              "constant": false,
              "id": 3569,
              "mutability": "mutable",
              "name": "isSame",
              "nameLocation": "601:6:36",
              "nodeType": "VariableDeclaration",
              "scope": 3582,
              "src": "596:11:36",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              },
              "typeName": {
                "id": 3568,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "596:4:36",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              },
              "visibility": "internal"
            }
          ],
          "src": "595:13:36"
        },
        "scope": 4026,
        "src": "533:132:36",
        "stateMutability": "pure",
        "virtual": false,
        "visibility": "internal"
      },
      {
        "body": {
          "id": 3603,
          "nodeType": "Block",
          "src": "747:56:36",
          "statements": [
            {
              "expression": {
                "commonType": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "id": 3601,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftExpression": {
                  "arguments": [
                    {
                      "id": 3595,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3585,
                      "src": "774:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                        "typeString": "ObjectType"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                        "typeString": "ObjectType"
                      }
                    ],
                    "expression": {
                      "id": 3593,
                      "name": "ObjectType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3555,
                      "src": "756:10:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_userDefinedValueType$_ObjectType_$3555_$",
                        "typeString": "type(ObjectType)"
                      }
                    },
                    "id": 3594,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "767:6:36",
                    "memberName": "unwrap",
                    "nodeType": "MemberAccess",
                    "src": "756:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_ObjectType_$3555_$returns$_t_uint8_$",
                      "typeString": "function (ObjectType) pure returns (uint8)"
                    }
                  },
                  "id": 3596,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "756:20:36",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "nodeType": "BinaryOperation",
                "operator": "!=",
                "rightExpression": {
                  "arguments": [
                    {
                      "id": 3599,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3588,
                      "src": "798:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                        "typeString": "ObjectType"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                        "typeString": "ObjectType"
                      }
                    ],
                    "expression": {
                      "id": 3597,
                      "name": "ObjectType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3555,
                      "src": "780:10:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_userDefinedValueType$_ObjectType_$3555_$",
                        "typeString": "type(ObjectType)"
                      }
                    },
                    "id": 3598,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "791:6:36",
                    "memberName": "unwrap",
                    "nodeType": "MemberAccess",
                    "src": "780:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_ObjectType_$3555_$returns$_t_uint8_$",
                      "typeString": "function (ObjectType) pure returns (uint8)"
                    }
                  },
                  "id": 3600,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "780:20:36",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "src": "756:44:36",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              },
              "functionReturnParameters": 3592,
              "id": 3602,
              "nodeType": "Return",
              "src": "749:51:36"
            }
          ]
        },
        "id": 3604,
        "implemented": true,
        "kind": "freeFunction",
        "modifiers": [],
        "name": "neObjectType",
        "nameLocation": "675:12:36",
        "nodeType": "FunctionDefinition",
        "parameters": {
          "id": 3589,
          "nodeType": "ParameterList",
          "parameters": [
            {
              "constant": false,
              "id": 3585,
              "mutability": "mutable",
              "name": "a",
              "nameLocation": "699:1:36",
              "nodeType": "VariableDeclaration",
              "scope": 3604,
              "src": "688:12:36",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
                "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                "typeString": "ObjectType"
              },
              "typeName": {
                "id": 3584,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 3583,
                  "name": "ObjectType",
                  "nameLocations": [
                    "688:10:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 3555,
                  "src": "688:10:36"
                },
                "referencedDeclaration": 3555,
                "src": "688:10:36",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                  "typeString": "ObjectType"
                }
              },
              "visibility": "internal"
            },
            {
              "constant": false,
              "id": 3588,
              "mutability": "mutable",
              "name": "b",
              "nameLocation": "713:1:36",
              "nodeType": "VariableDeclaration",
              "scope": 3604,
              "src": "702:12:36",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
                "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                "typeString": "ObjectType"
              },
              "typeName": {
                "id": 3587,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 3586,
                  "name": "ObjectType",
                  "nameLocations": [
                    "702:10:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 3555,
                  "src": "702:10:36"
                },
                "referencedDeclaration": 3555,
                "src": "702:10:36",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                  "typeString": "ObjectType"
                }
              },
              "visibility": "internal"
            }
          ],
          "src": "687:28:36"
        },
        "returnParameters": {
          "id": 3592,
          "nodeType": "ParameterList",
          "parameters": [
            {
              "constant": false,
              "id": 3591,
              "mutability": "mutable",
              "name": "isDifferent",
              "nameLocation": "734:11:36",
              "nodeType": "VariableDeclaration",
              "scope": 3604,
              "src": "729:16:36",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              },
              "typeName": {
                "id": 3590,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "729:4:36",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              },
              "visibility": "internal"
            }
          ],
          "src": "728:18:36"
        },
        "scope": 4026,
        "src": "666:137:36",
        "stateMutability": "pure",
        "virtual": false,
        "visibility": "internal"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 3605,
              "name": "IBaseTypes",
              "nameLocations": [
                "839:10:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 4753,
              "src": "839:10:36"
            },
            "id": 3606,
            "nodeType": "InheritanceSpecifier",
            "src": "839:10:36"
          },
          {
            "baseName": {
              "id": 3607,
              "name": "IVersionable",
              "nameLocations": [
                "855:12:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 4856,
              "src": "855:12:36"
            },
            "id": 3608,
            "nodeType": "InheritanceSpecifier",
            "src": "855:12:36"
          }
        ],
        "canonicalName": "IChainRegistry",
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 4025,
        "linearizedBaseContracts": [
          4025,
          4856,
          4753
        ],
        "name": "IChainRegistry",
        "nameLocation": "816:14:36",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "IChainRegistry.ObjectState",
            "id": 3615,
            "members": [
              {
                "id": 3609,
                "name": "Undefined",
                "nameLocation": "902:9:36",
                "nodeType": "EnumValue",
                "src": "902:9:36"
              },
              {
                "id": 3610,
                "name": "Proposed",
                "nameLocation": "921:8:36",
                "nodeType": "EnumValue",
                "src": "921:8:36"
              },
              {
                "id": 3611,
                "name": "Approved",
                "nameLocation": "939:8:36",
                "nodeType": "EnumValue",
                "src": "939:8:36"
              },
              {
                "id": 3612,
                "name": "Suspended",
                "nameLocation": "957:9:36",
                "nodeType": "EnumValue",
                "src": "957:9:36"
              },
              {
                "id": 3613,
                "name": "Archived",
                "nameLocation": "976:8:36",
                "nodeType": "EnumValue",
                "src": "976:8:36"
              },
              {
                "id": 3614,
                "name": "Burned",
                "nameLocation": "994:6:36",
                "nodeType": "EnumValue",
                "src": "994:6:36"
              }
            ],
            "name": "ObjectState",
            "nameLocation": "880:11:36",
            "nodeType": "EnumDefinition",
            "src": "875:131:36"
          },
          {
            "canonicalName": "IChainRegistry.NftInfo",
            "id": 3641,
            "members": [
              {
                "constant": false,
                "id": 3618,
                "mutability": "mutable",
                "name": "id",
                "nameLocation": "1044:2:36",
                "nodeType": "VariableDeclaration",
                "scope": 3641,
                "src": "1038:8:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                  "typeString": "NftId"
                },
                "typeName": {
                  "id": 3617,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3616,
                    "name": "NftId",
                    "nameLocations": [
                      "1038:5:36"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 3353,
                    "src": "1038:5:36"
                  },
                  "referencedDeclaration": 3353,
                  "src": "1038:5:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3621,
                "mutability": "mutable",
                "name": "chain",
                "nameLocation": "1064:5:36",
                "nodeType": "VariableDeclaration",
                "scope": 3641,
                "src": "1056:13:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                  "typeString": "ChainId"
                },
                "typeName": {
                  "id": 3620,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3619,
                    "name": "ChainId",
                    "nameLocations": [
                      "1056:7:36"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 4447,
                    "src": "1056:7:36"
                  },
                  "referencedDeclaration": 4447,
                  "src": "1056:7:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3624,
                "mutability": "mutable",
                "name": "objectType",
                "nameLocation": "1090:10:36",
                "nodeType": "VariableDeclaration",
                "scope": 3641,
                "src": "1079:21:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                  "typeString": "ObjectType"
                },
                "typeName": {
                  "id": 3623,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3622,
                    "name": "ObjectType",
                    "nameLocations": [
                      "1079:10:36"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 3555,
                    "src": "1079:10:36"
                  },
                  "referencedDeclaration": 3555,
                  "src": "1079:10:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                    "typeString": "ObjectType"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3627,
                "mutability": "mutable",
                "name": "state",
                "nameLocation": "1122:5:36",
                "nodeType": "VariableDeclaration",
                "scope": 3641,
                "src": "1110:17:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_ObjectState_$3615",
                  "typeString": "enum IChainRegistry.ObjectState"
                },
                "typeName": {
                  "id": 3626,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3625,
                    "name": "ObjectState",
                    "nameLocations": [
                      "1110:11:36"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 3615,
                    "src": "1110:11:36"
                  },
                  "referencedDeclaration": 3615,
                  "src": "1110:11:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ObjectState_$3615",
                    "typeString": "enum IChainRegistry.ObjectState"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3629,
                "mutability": "mutable",
                "name": "uri",
                "nameLocation": "1144:3:36",
                "nodeType": "VariableDeclaration",
                "scope": 3641,
                "src": "1137:10:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 3628,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "1137:6:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3631,
                "mutability": "mutable",
                "name": "data",
                "nameLocation": "1163:4:36",
                "nodeType": "VariableDeclaration",
                "scope": 3641,
                "src": "1157:10:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 3630,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "1157:5:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3634,
                "mutability": "mutable",
                "name": "mintedIn",
                "nameLocation": "1189:8:36",
                "nodeType": "VariableDeclaration",
                "scope": 3641,
                "src": "1177:20:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713",
                  "typeString": "Blocknumber"
                },
                "typeName": {
                  "id": 3633,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3632,
                    "name": "Blocknumber",
                    "nameLocations": [
                      "1177:11:36"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 4713,
                    "src": "1177:11:36"
                  },
                  "referencedDeclaration": 4713,
                  "src": "1177:11:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713",
                    "typeString": "Blocknumber"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3637,
                "mutability": "mutable",
                "name": "updatedIn",
                "nameLocation": "1219:9:36",
                "nodeType": "VariableDeclaration",
                "scope": 3641,
                "src": "1207:21:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713",
                  "typeString": "Blocknumber"
                },
                "typeName": {
                  "id": 3636,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3635,
                    "name": "Blocknumber",
                    "nameLocations": [
                      "1207:11:36"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 4713,
                    "src": "1207:11:36"
                  },
                  "referencedDeclaration": 4713,
                  "src": "1207:11:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713",
                    "typeString": "Blocknumber"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3640,
                "mutability": "mutable",
                "name": "version",
                "nameLocation": "1246:7:36",
                "nodeType": "VariableDeclaration",
                "scope": 3641,
                "src": "1238:15:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_userDefinedValueType$_Version_$12269",
                  "typeString": "Version"
                },
                "typeName": {
                  "id": 3639,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3638,
                    "name": "Version",
                    "nameLocations": [
                      "1238:7:36"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 12269,
                    "src": "1238:7:36"
                  },
                  "referencedDeclaration": 12269,
                  "src": "1238:7:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Version_$12269",
                    "typeString": "Version"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "NftInfo",
            "nameLocation": "1020:7:36",
            "nodeType": "StructDefinition",
            "scope": 4025,
            "src": "1013:247:36",
            "visibility": "public"
          },
          {
            "anonymous": false,
            "eventSelector": "d2b595f4b7b2737b1a3e623402986bbcd0d952a3974a6179eef07b39c7b86cf7",
            "id": 3657,
            "name": "LogChainRegistryObjectRegistered",
            "nameLocation": "1273:32:36",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3656,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3644,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "1312:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3657,
                  "src": "1306:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3643,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3642,
                      "name": "NftId",
                      "nameLocations": [
                        "1306:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "1306:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "1306:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3647,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "1324:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3657,
                  "src": "1316:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 3646,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3645,
                      "name": "ChainId",
                      "nameLocations": [
                        "1316:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "1316:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "1316:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3650,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "objectType",
                  "nameLocation": "1342:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3657,
                  "src": "1331:21:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                    "typeString": "ObjectType"
                  },
                  "typeName": {
                    "id": 3649,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3648,
                      "name": "ObjectType",
                      "nameLocations": [
                        "1331:10:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3555,
                      "src": "1331:10:36"
                    },
                    "referencedDeclaration": 3555,
                    "src": "1331:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                      "typeString": "ObjectType"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3653,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "state",
                  "nameLocation": "1366:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3657,
                  "src": "1354:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ObjectState_$3615",
                    "typeString": "enum IChainRegistry.ObjectState"
                  },
                  "typeName": {
                    "id": 3652,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3651,
                      "name": "ObjectState",
                      "nameLocations": [
                        "1354:11:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3615,
                      "src": "1354:11:36"
                    },
                    "referencedDeclaration": 3615,
                    "src": "1354:11:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ObjectState_$3615",
                      "typeString": "enum IChainRegistry.ObjectState"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3655,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1381:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3657,
                  "src": "1373:10:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3654,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1373:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1305:79:36"
            },
            "src": "1267:118:36"
          },
          {
            "anonymous": false,
            "eventSelector": "7afeca41b8bb9c4ee4da7af02f25df0864c01629d2609750f99c9d421e0bb899",
            "id": 3670,
            "name": "LogChainRegistryObjectStateSet",
            "nameLocation": "1396:30:36",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3669,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3660,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "1433:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3670,
                  "src": "1427:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3659,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3658,
                      "name": "NftId",
                      "nameLocations": [
                        "1427:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "1427:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "1427:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3663,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "stateNew",
                  "nameLocation": "1449:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3670,
                  "src": "1437:20:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ObjectState_$3615",
                    "typeString": "enum IChainRegistry.ObjectState"
                  },
                  "typeName": {
                    "id": 3662,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3661,
                      "name": "ObjectState",
                      "nameLocations": [
                        "1437:11:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3615,
                      "src": "1437:11:36"
                    },
                    "referencedDeclaration": 3615,
                    "src": "1437:11:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ObjectState_$3615",
                      "typeString": "enum IChainRegistry.ObjectState"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3666,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "stateOld",
                  "nameLocation": "1471:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3670,
                  "src": "1459:20:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ObjectState_$3615",
                    "typeString": "enum IChainRegistry.ObjectState"
                  },
                  "typeName": {
                    "id": 3665,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3664,
                      "name": "ObjectState",
                      "nameLocations": [
                        "1459:11:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3615,
                      "src": "1459:11:36"
                    },
                    "referencedDeclaration": 3615,
                    "src": "1459:11:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ObjectState_$3615",
                      "typeString": "enum IChainRegistry.ObjectState"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3668,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "setBy",
                  "nameLocation": "1489:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3670,
                  "src": "1481:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3667,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1481:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1426:69:36"
            },
            "src": "1390:106:36"
          },
          {
            "anonymous": false,
            "eventSelector": "be351e9f01c5c493c1523a90fe997fa0c3ea6b11ba051cd0fd23543f7f67a075",
            "id": 3677,
            "name": "LogChainRegistryObjectDataUpdated",
            "nameLocation": "1507:33:36",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3676,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3673,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "1547:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3677,
                  "src": "1541:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3672,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3671,
                      "name": "NftId",
                      "nameLocations": [
                        "1541:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "1541:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "1541:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3675,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "updatedBy",
                  "nameLocation": "1559:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3677,
                  "src": "1551:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3674,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1551:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1540:29:36"
            },
            "src": "1501:69:36"
          },
          {
            "functionSelector": "34a0e76b",
            "id": 3688,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "registerChain",
            "nameLocation": "1642:13:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3680,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "1664:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3688,
                  "src": "1656:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 3679,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3678,
                      "name": "ChainId",
                      "nameLocations": [
                        "1656:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "1656:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "1656:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3682,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "1685:3:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3688,
                  "src": "1671:17:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3681,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1671:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1655:34:36"
            },
            "returnParameters": {
              "id": 3687,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3686,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "1713:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3688,
                  "src": "1707:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3685,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3684,
                      "name": "NftId",
                      "nameLocations": [
                        "1707:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "1707:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "1707:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1706:10:36"
            },
            "scope": 4025,
            "src": "1633:84:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "447fae61",
            "id": 3701,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "registerRegistry",
            "nameLocation": "1731:16:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3691,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "1756:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3701,
                  "src": "1748:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 3690,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3689,
                      "name": "ChainId",
                      "nameLocations": [
                        "1748:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "1748:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "1748:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3693,
                  "mutability": "mutable",
                  "name": "registry",
                  "nameLocation": "1771:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3701,
                  "src": "1763:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3692,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1763:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3695,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "1795:3:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3701,
                  "src": "1781:17:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3694,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1781:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1747:52:36"
            },
            "returnParameters": {
              "id": 3700,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3699,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "1823:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3701,
                  "src": "1817:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3698,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3697,
                      "name": "NftId",
                      "nameLocations": [
                        "1817:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "1817:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "1817:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1816:10:36"
            },
            "scope": 4025,
            "src": "1722:105:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "63f9c095",
            "id": 3714,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "registerToken",
            "nameLocation": "1841:13:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3709,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3704,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "1863:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3714,
                  "src": "1855:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 3703,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3702,
                      "name": "ChainId",
                      "nameLocations": [
                        "1855:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "1855:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "1855:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3706,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "1877:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3714,
                  "src": "1869:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3705,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1869:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3708,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "1898:3:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3714,
                  "src": "1884:17:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3707,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1884:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1854:48:36"
            },
            "returnParameters": {
              "id": 3713,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3712,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "1926:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3714,
                  "src": "1920:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3711,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3710,
                      "name": "NftId",
                      "nameLocations": [
                        "1920:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "1920:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "1920:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1919:10:36"
            },
            "scope": 4025,
            "src": "1832:98:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "73d4aaad",
            "id": 3725,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "registerStake",
            "nameLocation": "1953:13:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3720,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3717,
                  "mutability": "mutable",
                  "name": "target",
                  "nameLocation": "1982:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3725,
                  "src": "1976:12:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3716,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3715,
                      "name": "NftId",
                      "nameLocations": [
                        "1976:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "1976:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "1976:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3719,
                  "mutability": "mutable",
                  "name": "staker",
                  "nameLocation": "2007:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3725,
                  "src": "1999:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3718,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1999:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1966:53:36"
            },
            "returnParameters": {
              "id": 3724,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3723,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "2059:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3725,
                  "src": "2053:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3722,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3721,
                      "name": "NftId",
                      "nameLocations": [
                        "2053:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "2053:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "2053:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2052:10:36"
            },
            "scope": 4025,
            "src": "1944:119:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "ab5af78e",
            "id": 3737,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "registerInstance",
            "nameLocation": "2079:16:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3732,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3727,
                  "mutability": "mutable",
                  "name": "instanceRegistry",
                  "nameLocation": "2113:16:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3737,
                  "src": "2105:24:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3726,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2105:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3729,
                  "mutability": "mutable",
                  "name": "displayName",
                  "nameLocation": "2153:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3737,
                  "src": "2139:25:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3728,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2139:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3731,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "2188:3:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3737,
                  "src": "2174:17:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3730,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2174:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2095:102:36"
            },
            "returnParameters": {
              "id": 3736,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3735,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "2237:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3737,
                  "src": "2231:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3734,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3733,
                      "name": "NftId",
                      "nameLocations": [
                        "2231:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "2231:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "2231:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2230:10:36"
            },
            "scope": 4025,
            "src": "2070:171:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "86ae3c7d",
            "id": 3749,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "registerComponent",
            "nameLocation": "2257:17:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3744,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3739,
                  "mutability": "mutable",
                  "name": "instanceId",
                  "nameLocation": "2292:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3749,
                  "src": "2284:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3738,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2284:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3741,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2320:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3749,
                  "src": "2312:19:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3740,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2312:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3743,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "2355:3:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3749,
                  "src": "2341:17:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3742,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2341:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2274:90:36"
            },
            "returnParameters": {
              "id": 3748,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3747,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "2404:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3749,
                  "src": "2398:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3746,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3745,
                      "name": "NftId",
                      "nameLocations": [
                        "2398:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "2398:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "2398:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2397:10:36"
            },
            "scope": 4025,
            "src": "2248:160:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5b1cfdbd",
            "id": 3765,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "registerBundle",
            "nameLocation": "2424:14:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3760,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3751,
                  "mutability": "mutable",
                  "name": "instanceId",
                  "nameLocation": "2456:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3765,
                  "src": "2448:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3750,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2448:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3753,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "2484:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3765,
                  "src": "2476:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3752,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2476:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3755,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "2512:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3765,
                  "src": "2504:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3754,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2504:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3757,
                  "mutability": "mutable",
                  "name": "displayName",
                  "nameLocation": "2544:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3765,
                  "src": "2530:25:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3756,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2530:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3759,
                  "mutability": "mutable",
                  "name": "expiryAt",
                  "nameLocation": "2573:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3765,
                  "src": "2565:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3758,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2565:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2438:149:36"
            },
            "returnParameters": {
              "id": 3764,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3763,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "2627:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3765,
                  "src": "2621:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3762,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3761,
                      "name": "NftId",
                      "nameLocations": [
                        "2621:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "2621:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "2621:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2620:10:36"
            },
            "scope": 4025,
            "src": "2415:216:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "16f48f62",
            "id": 3773,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "extendBundleLifetime",
            "nameLocation": "2647:20:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3771,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3768,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "2674:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3773,
                  "src": "2668:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3767,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3766,
                      "name": "NftId",
                      "nameLocations": [
                        "2668:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "2668:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "2668:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3770,
                  "mutability": "mutable",
                  "name": "lifetimeExtension",
                  "nameLocation": "2686:17:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3773,
                  "src": "2678:25:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3769,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2678:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2667:37:36"
            },
            "returnParameters": {
              "id": 3772,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2713:0:36"
            },
            "scope": 4025,
            "src": "2638:76:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "e4f59baa",
            "id": 3782,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setObjectState",
            "nameLocation": "2730:14:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3780,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3776,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "2751:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3782,
                  "src": "2745:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3775,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3774,
                      "name": "NftId",
                      "nameLocations": [
                        "2745:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "2745:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "2745:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3779,
                  "mutability": "mutable",
                  "name": "state",
                  "nameLocation": "2767:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3782,
                  "src": "2755:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ObjectState_$3615",
                    "typeString": "enum IChainRegistry.ObjectState"
                  },
                  "typeName": {
                    "id": 3778,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3777,
                      "name": "ObjectState",
                      "nameLocations": [
                        "2755:11:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3615,
                      "src": "2755:11:36"
                    },
                    "referencedDeclaration": 3615,
                    "src": "2755:11:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ObjectState_$3615",
                      "typeString": "enum IChainRegistry.ObjectState"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2744:29:36"
            },
            "returnParameters": {
              "id": 3781,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2782:0:36"
            },
            "scope": 4025,
            "src": "2721:62:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "ac513fb8",
            "id": 3788,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getNft",
            "nameLocation": "2855:6:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3783,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2861:2:36"
            },
            "returnParameters": {
              "id": 3787,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3786,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3788,
                  "src": "2886:9:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IChainNft_$3494",
                    "typeString": "contract IChainNft"
                  },
                  "typeName": {
                    "id": 3785,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3784,
                      "name": "IChainNft",
                      "nameLocations": [
                        "2886:9:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3494,
                      "src": "2886:9:36"
                    },
                    "referencedDeclaration": 3494,
                    "src": "2886:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IChainNft_$3494",
                      "typeString": "contract IChainNft"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2885:11:36"
            },
            "scope": 4025,
            "src": "2846:51:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "7b1391a6",
            "id": 3794,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getStaking",
            "nameLocation": "2911:10:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3789,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2921:2:36"
            },
            "returnParameters": {
              "id": 3793,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3792,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3794,
                  "src": "2946:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IStaking_$6479",
                    "typeString": "contract IStaking"
                  },
                  "typeName": {
                    "id": 3791,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3790,
                      "name": "IStaking",
                      "nameLocations": [
                        "2946:8:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 6479,
                      "src": "2946:8:36"
                    },
                    "referencedDeclaration": 6479,
                    "src": "2946:8:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IStaking_$6479",
                      "typeString": "contract IStaking"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2945:10:36"
            },
            "scope": 4025,
            "src": "2902:54:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4f9c1c09",
            "id": 3802,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "exists",
            "nameLocation": "2971:6:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3798,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3797,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "2984:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3802,
                  "src": "2978:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3796,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3795,
                      "name": "NftId",
                      "nameLocations": [
                        "2978:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "2978:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "2978:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2977:10:36"
            },
            "returnParameters": {
              "id": 3801,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3800,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3802,
                  "src": "3010:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3799,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3010:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3009:6:36"
            },
            "scope": 4025,
            "src": "2962:54:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d044a1ed",
            "id": 3813,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "objects",
            "nameLocation": "3056:7:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3809,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3805,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "3072:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3813,
                  "src": "3064:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 3804,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3803,
                      "name": "ChainId",
                      "nameLocations": [
                        "3064:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "3064:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "3064:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3808,
                  "mutability": "mutable",
                  "name": "t",
                  "nameLocation": "3090:1:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3813,
                  "src": "3079:12:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                    "typeString": "ObjectType"
                  },
                  "typeName": {
                    "id": 3807,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3806,
                      "name": "ObjectType",
                      "nameLocations": [
                        "3079:10:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3555,
                      "src": "3079:10:36"
                    },
                    "referencedDeclaration": 3555,
                    "src": "3079:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                      "typeString": "ObjectType"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3063:29:36"
            },
            "returnParameters": {
              "id": 3812,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3811,
                  "mutability": "mutable",
                  "name": "numberOfObjects",
                  "nameLocation": "3123:15:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3813,
                  "src": "3115:23:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3810,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3115:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3114:25:36"
            },
            "scope": 4025,
            "src": "3047:93:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "2b52487a",
            "id": 3827,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getNftId",
            "nameLocation": "3154:8:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3822,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3816,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "3171:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3827,
                  "src": "3163:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 3815,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3814,
                      "name": "ChainId",
                      "nameLocations": [
                        "3163:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "3163:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "3163:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3819,
                  "mutability": "mutable",
                  "name": "t",
                  "nameLocation": "3189:1:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3827,
                  "src": "3178:12:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                    "typeString": "ObjectType"
                  },
                  "typeName": {
                    "id": 3818,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3817,
                      "name": "ObjectType",
                      "nameLocations": [
                        "3178:10:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3555,
                      "src": "3178:10:36"
                    },
                    "referencedDeclaration": 3555,
                    "src": "3178:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                      "typeString": "ObjectType"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3821,
                  "mutability": "mutable",
                  "name": "idx",
                  "nameLocation": "3200:3:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3827,
                  "src": "3192:11:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3820,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3192:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3162:42:36"
            },
            "returnParameters": {
              "id": 3826,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3825,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "3233:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3827,
                  "src": "3227:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3824,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3823,
                      "name": "NftId",
                      "nameLocations": [
                        "3227:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "3227:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "3227:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3226:10:36"
            },
            "scope": 4025,
            "src": "3145:92:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fb8bec0c",
            "id": 3836,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getNftInfo",
            "nameLocation": "3251:10:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3831,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3830,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "3268:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3836,
                  "src": "3262:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3829,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3828,
                      "name": "NftId",
                      "nameLocations": [
                        "3262:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "3262:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "3262:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3261:10:36"
            },
            "returnParameters": {
              "id": 3835,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3834,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3836,
                  "src": "3294:14:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_NftInfo_$3641_memory_ptr",
                    "typeString": "struct IChainRegistry.NftInfo"
                  },
                  "typeName": {
                    "id": 3833,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3832,
                      "name": "NftInfo",
                      "nameLocations": [
                        "3294:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3641,
                      "src": "3294:7:36"
                    },
                    "referencedDeclaration": 3641,
                    "src": "3294:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_NftInfo_$3641_storage_ptr",
                      "typeString": "struct IChainRegistry.NftInfo"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3293:16:36"
            },
            "scope": 4025,
            "src": "3242:68:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "38bb429a",
            "id": 3844,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "ownerOf",
            "nameLocation": "3324:7:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3840,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3839,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "3338:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3844,
                  "src": "3332:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3838,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3837,
                      "name": "NftId",
                      "nameLocations": [
                        "3332:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "3332:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "3332:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3331:10:36"
            },
            "returnParameters": {
              "id": 3843,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3842,
                  "mutability": "mutable",
                  "name": "nftOwner",
                  "nameLocation": "3372:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3844,
                  "src": "3364:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3841,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3364:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3363:18:36"
            },
            "scope": 4025,
            "src": "3315:67:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "58a8b85f",
            "id": 3849,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "chains",
            "nameLocation": "3429:6:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3845,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3435:2:36"
            },
            "returnParameters": {
              "id": 3848,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3847,
                  "mutability": "mutable",
                  "name": "numberOfChains",
                  "nameLocation": "3468:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3849,
                  "src": "3460:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3846,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3460:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3459:24:36"
            },
            "scope": 4025,
            "src": "3420:64:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "01f6b5a2",
            "id": 3857,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getChainId",
            "nameLocation": "3498:10:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3852,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3851,
                  "mutability": "mutable",
                  "name": "idx",
                  "nameLocation": "3517:3:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3857,
                  "src": "3509:11:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3850,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3509:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3508:13:36"
            },
            "returnParameters": {
              "id": 3856,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3855,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "3552:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3857,
                  "src": "3544:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 3854,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3853,
                      "name": "ChainId",
                      "nameLocations": [
                        "3544:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "3544:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "3544:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3543:15:36"
            },
            "scope": 4025,
            "src": "3489:70:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "2095ace1",
            "id": 3866,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getChainNftId",
            "nameLocation": "3573:13:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3861,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3860,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "3595:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3866,
                  "src": "3587:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 3859,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3858,
                      "name": "ChainId",
                      "nameLocations": [
                        "3587:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "3587:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "3587:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3586:15:36"
            },
            "returnParameters": {
              "id": 3865,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3864,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "3630:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3866,
                  "src": "3624:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3863,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3862,
                      "name": "NftId",
                      "nameLocations": [
                        "3624:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "3624:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "3624:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3623:10:36"
            },
            "scope": 4025,
            "src": "3564:70:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "806415de",
            "id": 3875,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRegistryNftId",
            "nameLocation": "3680:16:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3870,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3869,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "3705:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3875,
                  "src": "3697:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 3868,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3867,
                      "name": "ChainId",
                      "nameLocations": [
                        "3697:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "3697:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "3697:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3696:15:36"
            },
            "returnParameters": {
              "id": 3874,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3873,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "3740:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3875,
                  "src": "3734:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3872,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3871,
                      "name": "NftId",
                      "nameLocations": [
                        "3734:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "3734:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "3734:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3733:10:36"
            },
            "scope": 4025,
            "src": "3671:73:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "17005ce9",
            "id": 3886,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getTokenNftId",
            "nameLocation": "3758:13:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3881,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3878,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "3780:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3886,
                  "src": "3772:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 3877,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3876,
                      "name": "ChainId",
                      "nameLocations": [
                        "3772:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "3772:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "3772:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3880,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "3795:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3886,
                  "src": "3787:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3879,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3787:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3771:30:36"
            },
            "returnParameters": {
              "id": 3885,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3884,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "3830:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3886,
                  "src": "3824:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3883,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3882,
                      "name": "NftId",
                      "nameLocations": [
                        "3824:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "3824:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "3824:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3823:10:36"
            },
            "scope": 4025,
            "src": "3749:85:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "c0759d0d",
            "id": 3894,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceNftId",
            "nameLocation": "3848:16:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3889,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3888,
                  "mutability": "mutable",
                  "name": "instanceId",
                  "nameLocation": "3873:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3894,
                  "src": "3865:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3887,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3865:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3864:20:36"
            },
            "returnParameters": {
              "id": 3893,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3892,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "3913:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3894,
                  "src": "3907:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3891,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3890,
                      "name": "NftId",
                      "nameLocations": [
                        "3907:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "3907:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "3907:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3906:10:36"
            },
            "scope": 4025,
            "src": "3839:78:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d91fc8c7",
            "id": 3904,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentNftId",
            "nameLocation": "3931:17:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3899,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3896,
                  "mutability": "mutable",
                  "name": "instanceId",
                  "nameLocation": "3957:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3904,
                  "src": "3949:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3895,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3949:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3898,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "3977:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3904,
                  "src": "3969:19:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3897,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3969:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3948:41:36"
            },
            "returnParameters": {
              "id": 3903,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3902,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "4018:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3904,
                  "src": "4012:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3901,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3900,
                      "name": "NftId",
                      "nameLocations": [
                        "4012:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "4012:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "4012:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4011:10:36"
            },
            "scope": 4025,
            "src": "3922:100:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "afb9128e",
            "id": 3914,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getBundleNftId",
            "nameLocation": "4036:14:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3909,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3906,
                  "mutability": "mutable",
                  "name": "instanceId",
                  "nameLocation": "4059:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3914,
                  "src": "4051:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3905,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4051:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3908,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "4079:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3914,
                  "src": "4071:19:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3907,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4071:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4050:41:36"
            },
            "returnParameters": {
              "id": 3913,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3912,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "4120:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3914,
                  "src": "4114:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3911,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3910,
                      "name": "NftId",
                      "nameLocations": [
                        "4114:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "4114:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "4114:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4113:10:36"
            },
            "scope": 4025,
            "src": "4027:97:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "396fe612",
            "id": 3922,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decodeRegistryData",
            "nameLocation": "4140:18:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3918,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3917,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "4165:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3922,
                  "src": "4159:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3916,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3915,
                      "name": "NftId",
                      "nameLocations": [
                        "4159:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "4159:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "4159:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4158:10:36"
            },
            "returnParameters": {
              "id": 3921,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3920,
                  "mutability": "mutable",
                  "name": "registry",
                  "nameLocation": "4223:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3922,
                  "src": "4215:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3919,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4215:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4214:18:36"
            },
            "scope": 4025,
            "src": "4131:102:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "513516a8",
            "id": 3930,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decodeTokenData",
            "nameLocation": "4249:15:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3926,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3925,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "4271:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3930,
                  "src": "4265:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3924,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3923,
                      "name": "NftId",
                      "nameLocations": [
                        "4265:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "4265:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "4265:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4264:10:36"
            },
            "returnParameters": {
              "id": 3929,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3928,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "4329:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3930,
                  "src": "4321:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3927,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4321:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4320:15:36"
            },
            "scope": 4025,
            "src": "4240:96:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "f8ce2d04",
            "id": 3942,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decodeInstanceData",
            "nameLocation": "4352:18:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3934,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3933,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "4377:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3942,
                  "src": "4371:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3932,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3931,
                      "name": "NftId",
                      "nameLocations": [
                        "4371:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "4371:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "4371:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4370:10:36"
            },
            "returnParameters": {
              "id": 3941,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3936,
                  "mutability": "mutable",
                  "name": "instanceId",
                  "nameLocation": "4448:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3942,
                  "src": "4440:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3935,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4440:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3938,
                  "mutability": "mutable",
                  "name": "registry",
                  "nameLocation": "4480:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3942,
                  "src": "4472:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3937,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4472:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3940,
                  "mutability": "mutable",
                  "name": "displayName",
                  "nameLocation": "4516:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3942,
                  "src": "4502:25:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3939,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4502:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4426:102:36"
            },
            "scope": 4025,
            "src": "4343:186:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "0082d973",
            "id": 3954,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decodeComponentData",
            "nameLocation": "4545:19:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3946,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3945,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "4571:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3954,
                  "src": "4565:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3944,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3943,
                      "name": "NftId",
                      "nameLocations": [
                        "4565:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "4565:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "4565:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4564:10:36"
            },
            "returnParameters": {
              "id": 3953,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3948,
                  "mutability": "mutable",
                  "name": "instanceId",
                  "nameLocation": "4642:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3954,
                  "src": "4634:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3947,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4634:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3950,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "4674:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3954,
                  "src": "4666:19:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3949,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4666:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3952,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "4707:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3954,
                  "src": "4699:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3951,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4699:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4620:93:36"
            },
            "scope": 4025,
            "src": "4536:178:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "7cf6b414",
            "id": 3972,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decodeBundleData",
            "nameLocation": "4730:16:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3958,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3957,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "4753:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "4747:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3956,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3955,
                      "name": "NftId",
                      "nameLocations": [
                        "4747:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "4747:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "4747:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4746:10:36"
            },
            "returnParameters": {
              "id": 3971,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3960,
                  "mutability": "mutable",
                  "name": "instanceId",
                  "nameLocation": "4824:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "4816:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3959,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4816:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3962,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "4856:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "4848:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3961,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4848:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3964,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "4888:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "4880:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3963,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4880:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3966,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "4918:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "4910:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3965,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4910:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3968,
                  "mutability": "mutable",
                  "name": "displayName",
                  "nameLocation": "4951:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "4937:25:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3967,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4937:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3970,
                  "mutability": "mutable",
                  "name": "expiryAt",
                  "nameLocation": "4984:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "4976:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3969,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4976:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4802:191:36"
            },
            "scope": 4025,
            "src": "4721:273:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "e089bc7d",
            "id": 3984,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decodeStakeData",
            "nameLocation": "5010:15:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3976,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3975,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "5032:2:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3984,
                  "src": "5026:8:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3974,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3973,
                      "name": "NftId",
                      "nameLocations": [
                        "5026:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "5026:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "5026:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5025:10:36"
            },
            "returnParameters": {
              "id": 3983,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3979,
                  "mutability": "mutable",
                  "name": "target",
                  "nameLocation": "5101:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3984,
                  "src": "5095:12:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 3978,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3977,
                      "name": "NftId",
                      "nameLocations": [
                        "5095:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "5095:5:36"
                    },
                    "referencedDeclaration": 3353,
                    "src": "5095:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3982,
                  "mutability": "mutable",
                  "name": "targetType",
                  "nameLocation": "5132:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3984,
                  "src": "5121:21:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                    "typeString": "ObjectType"
                  },
                  "typeName": {
                    "id": 3981,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3980,
                      "name": "ObjectType",
                      "nameLocations": [
                        "5121:10:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3555,
                      "src": "5121:10:36"
                    },
                    "referencedDeclaration": 3555,
                    "src": "5121:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ObjectType_$3555",
                      "typeString": "ObjectType"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5081:62:36"
            },
            "scope": 4025,
            "src": "5001:143:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "178156ca",
            "id": 3992,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "toChain",
            "nameLocation": "5160:7:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3987,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3986,
                  "mutability": "mutable",
                  "name": "chainId",
                  "nameLocation": "5176:7:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 3992,
                  "src": "5168:15:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3985,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5168:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5167:17:36"
            },
            "returnParameters": {
              "id": 3991,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3990,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3992,
                  "src": "5232:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 3989,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3988,
                      "name": "ChainId",
                      "nameLocations": [
                        "5232:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "5232:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "5232:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5231:9:36"
            },
            "scope": 4025,
            "src": "5151:90:36",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a3b452ba",
            "id": 4000,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceServiceFacade",
            "nameLocation": "5351:24:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3995,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3994,
                  "mutability": "mutable",
                  "name": "instanceId",
                  "nameLocation": "5384:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4000,
                  "src": "5376:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3993,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5376:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5375:20:36"
            },
            "returnParameters": {
              "id": 3999,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3998,
                  "mutability": "mutable",
                  "name": "instanceService",
                  "nameLocation": "5466:15:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4000,
                  "src": "5443:38:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IInstanceServiceFacade_$4295",
                    "typeString": "contract IInstanceServiceFacade"
                  },
                  "typeName": {
                    "id": 3997,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3996,
                      "name": "IInstanceServiceFacade",
                      "nameLocations": [
                        "5443:22:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4295,
                      "src": "5443:22:36"
                    },
                    "referencedDeclaration": 4295,
                    "src": "5443:22:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IInstanceServiceFacade_$4295",
                      "typeString": "contract IInstanceServiceFacade"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5442:40:36"
            },
            "scope": 4025,
            "src": "5342:141:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "b23c748d",
            "id": 4019,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "probeInstance",
            "nameLocation": "5589:13:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4003,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4002,
                  "mutability": "mutable",
                  "name": "registry",
                  "nameLocation": "5611:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4019,
                  "src": "5603:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4001,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5603:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5602:18:36"
            },
            "returnParameters": {
              "id": 4018,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4005,
                  "mutability": "mutable",
                  "name": "isContract",
                  "nameLocation": "5687:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4019,
                  "src": "5682:15:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4004,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5682:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4007,
                  "mutability": "mutable",
                  "name": "contractSize",
                  "nameLocation": "5720:12:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4019,
                  "src": "5712:20:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4006,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5712:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4010,
                  "mutability": "mutable",
                  "name": "chain",
                  "nameLocation": "5755:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4019,
                  "src": "5747:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                    "typeString": "ChainId"
                  },
                  "typeName": {
                    "id": 4009,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4008,
                      "name": "ChainId",
                      "nameLocations": [
                        "5747:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4447,
                      "src": "5747:7:36"
                    },
                    "referencedDeclaration": 4447,
                    "src": "5747:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ChainId_$4447",
                      "typeString": "ChainId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4012,
                  "mutability": "mutable",
                  "name": "istanceId",
                  "nameLocation": "5782:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4019,
                  "src": "5774:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4011,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5774:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4014,
                  "mutability": "mutable",
                  "name": "isValidId",
                  "nameLocation": "5811:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4019,
                  "src": "5806:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4013,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5806:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4017,
                  "mutability": "mutable",
                  "name": "instanceService",
                  "nameLocation": "5858:15:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4019,
                  "src": "5835:38:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IInstanceServiceFacade_$4295",
                    "typeString": "contract IInstanceServiceFacade"
                  },
                  "typeName": {
                    "id": 4016,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4015,
                      "name": "IInstanceServiceFacade",
                      "nameLocations": [
                        "5835:22:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4295,
                      "src": "5835:22:36"
                    },
                    "referencedDeclaration": 4295,
                    "src": "5835:22:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IInstanceServiceFacade_$4295",
                      "typeString": "contract IInstanceServiceFacade"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5668:206:36"
            },
            "scope": 4025,
            "src": "5580:295:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a0e2ad0c",
            "id": 4024,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "implementsIChainRegistry",
            "nameLocation": "5890:24:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4020,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5914:2:36"
            },
            "returnParameters": {
              "id": 4023,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4022,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4024,
                  "src": "5939:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4021,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5939:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5938:6:36"
            },
            "scope": 4025,
            "src": "5881:64:36",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 4026,
        "src": "806:5141:36",
        "usedErrors": []
      }
    ],
    "src": "39:5909:36"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.19+commit.7dd6d404"
  },
  "contractName": "IChainRegistry",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [
    "IBaseTypes",
    "IChainNft",
    "IComponent",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/IERC165",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/IERC20",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/IERC20Metadata",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/IERC721",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/IERC721Enumerable",
    "IInstanceServiceFacade",
    "IStaking",
    "IVersionable"
  ],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {
      "activate(address,address)": {
        "details": "IMPORTANT this function needs to be implemented by each new version any such activate implementation needs to call internal function call _activate()  any new version needs to inherit from previous version"
      }
    },
    "version": 1
  },
  "offset": [
    806,
    5947
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "59c6c17d8b5ccdce20b988e5ff021ba7c1162639",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.19;\n\nimport {IBaseTypes, ChainId, Blocknumber} from \"../shared/IBaseTypes.sol\";\nimport {Version} from \"../shared/IVersionType.sol\";\nimport {IVersionable} from \"../shared/IVersionable.sol\";\n\nimport {IStaking} from \"../staking/IStaking.sol\";\n\nimport {IChainNft, NftId} from \"./IChainNft.sol\";\nimport {IInstanceServiceFacade} from \"./IInstanceServiceFacade.sol\";\n\ntype ObjectType is uint8;\n\nusing {\n    eqObjectType as ==,\n    neObjectType as !=\n}\n    for ObjectType global;\n\nfunction eqObjectType(ObjectType a, ObjectType b) pure returns(bool isSame) { return ObjectType.unwrap(a) == ObjectType.unwrap(b); }\nfunction neObjectType(ObjectType a, ObjectType b) pure returns(bool isDifferent) { return ObjectType.unwrap(a) != ObjectType.unwrap(b); }\n\n\ninterface IChainRegistry is \n    IBaseTypes,\n    IVersionable\n{\n\n    enum ObjectState {\n        Undefined,\n        Proposed,\n        Approved,\n        Suspended,\n        Archived,\n        Burned\n    }\n\n\n    struct NftInfo {\n        NftId id;\n        ChainId chain;\n        ObjectType objectType;\n        ObjectState state;\n        string uri;\n        bytes data;\n        Blocknumber mintedIn;\n        Blocknumber updatedIn;\n        Version version;\n    }\n\n\n    event LogChainRegistryObjectRegistered(NftId id, ChainId chain, ObjectType objectType, ObjectState state, address to);\n    event LogChainRegistryObjectStateSet(NftId id, ObjectState stateNew, ObjectState stateOld, address setBy);\n    event LogChainRegistryObjectDataUpdated(NftId id, address updatedBy);\n\n    //--- state changing functions ------------------//\n\n    function registerChain(ChainId chain, string memory uri) external returns(NftId id);\n    function registerRegistry(ChainId chain, address registry, string memory uri) external returns(NftId id);\n    function registerToken(ChainId chain,address token, string memory uri) external returns(NftId id);       \n\n\n    function registerStake(\n        NftId target, \n        address staker\n    )\n        external\n        returns(NftId id);\n\n\n    function registerInstance(\n        address instanceRegistry,\n        string memory displayName,\n        string memory uri\n    )\n        external\n        returns(NftId id);\n\n\n    function registerComponent(\n        bytes32 instanceId,\n        uint256 componentId,\n        string memory uri\n    )\n        external\n        returns(NftId id);\n\n\n    function registerBundle(\n        bytes32 instanceId,\n        uint256 riskpoolId,\n        uint256 bundleId,\n        string memory displayName,\n        uint256 expiryAt\n    )\n        external\n        returns(NftId id);\n\n\n    function extendBundleLifetime(NftId id, uint256 lifetimeExtension) external;\n\n\n    function setObjectState(NftId id, ObjectState state) external;\n\n\n    //--- view and pure functions ------------------//\n\n    function getNft() external view returns(IChainNft);\n    function getStaking() external view returns(IStaking);\n\n    function exists(NftId id) external view returns(bool);\n\n    // generic accessors\n    function objects(ChainId chain, ObjectType t) external view returns(uint256 numberOfObjects);\n    function getNftId(ChainId chain, ObjectType t, uint256 idx) external view returns(NftId id);\n    function getNftInfo(NftId id) external view returns(NftInfo memory);\n    function ownerOf(NftId id) external view returns(address nftOwner);\n\n    // chain specific accessors\n    function chains() external view returns(uint256 numberOfChains);\n    function getChainId(uint256 idx) external view returns(ChainId chain);\n    function getChainNftId(ChainId chain) external view returns(NftId id);\n\n    // type specific accessors\n    function getRegistryNftId(ChainId chain) external view returns(NftId id);\n    function getTokenNftId(ChainId chain, address token) external view returns(NftId id);\n    function getInstanceNftId(bytes32 instanceId) external view returns(NftId id);\n    function getComponentNftId(bytes32 instanceId, uint256 componentId) external view returns(NftId id);\n    function getBundleNftId(bytes32 instanceId, uint256 componentId) external view returns(NftId id);\n\n\n    function decodeRegistryData(NftId id)\n        external\n        view\n        returns(address registry);\n\n\n    function decodeTokenData(NftId id)\n        external\n        view\n        returns(address token);\n\n\n    function decodeInstanceData(NftId id)\n        external\n        view\n        returns(\n            bytes32 instanceId,\n            address registry,\n            string memory displayName);\n\n\n    function decodeComponentData(NftId id)\n        external\n        view\n        returns(\n            bytes32 instanceId,\n            uint256 componentId,\n            address token);\n\n\n    function decodeBundleData(NftId id)\n        external\n        view\n        returns(\n            bytes32 instanceId,\n            uint256 riskpoolId,\n            uint256 bundleId,\n            address token,\n            string memory displayName,\n            uint256 expiryAt);\n\n\n    function decodeStakeData(NftId id)\n        external\n        view\n        returns(\n            NftId target,\n            ObjectType targetType);\n\n\n    function toChain(uint256 chainId) \n        external\n        pure\n        returns(ChainId);\n\n    // only same chain: utility to get reference to instance service for specified instance id\n    function getInstanceServiceFacade(bytes32 instanceId) \n        external\n        view\n        returns(IInstanceServiceFacade instanceService);\n\n    // only same chain:  utilitiv function to probe an instance given its registry address\n    function probeInstance(address registry)\n        external \n        view \n        returns(\n            bool isContract, \n            uint256 contractSize, \n            ChainId chain,\n            bytes32 istanceId, \n            bool isValidId, \n            IInstanceServiceFacade instanceService);\n\n    function implementsIChainRegistry() external pure returns(bool);\n}\n",
  "sourceMap": "",
  "sourcePath": "contracts/registry/IChainRegistry.sol",
  "type": "interface"
}