{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC721MetadataFacet",
  "sourceName": "contracts/token/ERC721/facets/ERC721MetadataFacet.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonExistingToken",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "currentPhase",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "newPhase",
          "type": "uint256"
        }
      ],
      "name": "InitializationPhaseAlreadyReached",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotProxyAdmin",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "symbol",
          "type": "string"
        },
        {
          "internalType": "contract ITokenMetadataResolver",
          "name": "metadataResolver",
          "type": "address"
        }
      ],
      "name": "initERC721MetadataStorage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "metadataResolver",
      "outputs": [
        {
          "internalType": "contract ITokenMetadataResolver",
          "name": "tokenMetadataResolver",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "tokenName",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "tokenSymbol",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a034606657601f610df838819003918201601f19168301916001600160401b03831184841017606b57808492602094604052833981010312606657516001600160a01b0381168103606657608052604051610d769081610082823960805181610b0e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146109c057806395d89b4114610959578063a0c76f62146108e8578063c87b56dd146106bc5763fa6d22ca1461005357600080fd5b346106b75760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106b75760043567ffffffffffffffff81116106b7576100a2903690600401610a88565b60243567ffffffffffffffff81116106b7576100c2903690600401610a88565b90926044359273ffffffffffffffffffffffffffffffffffffffff84168094036106b7576100ee610af7565b73ffffffffffffffffffffffffffffffffffffffff807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035416911690810361068a57507f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4917f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58546001811015610658575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff82116105295781906101be8454610c2b565b601f8111610605575b50600090601f831160011461056357600092610558575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111610529576102497f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554610c2b565b601f81116104a5575b506000601f82116001146103aa5781929360009261039f575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b7fffffffffffffffffffffffff00000000000000000000000000000000000000007f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6557f5b5e139f000000000000000000000000000000000000000000000000000000006000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055600080f35b01359050388061026b565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216937fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b86811061048d5750836001959610610455575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5556102bd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055388080610428565b90926020600181928686013581550194019101610415565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c8101916020841061051f575b601f0160051c01905b8181106105135750610252565b60008155600101610506565b90915081906104fd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0135905038806101de565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b8181106105ed57509084600195949392106105b5575b505050811b019055610210565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690553880806105a8565b91936020600181928787013581550195019201610592565b909150836000526020600020601f840160051c8101916020851061064e575b90601f859493920160051c01905b81811061063f57506101c7565b60008155849350600101610632565b9091508190610624565b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346106b75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106b757600435806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c060205273ffffffffffffffffffffffffffffffffffffffff60406000205416156108bb57600073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416916044604051809481937ff724dad700000000000000000000000000000000000000000000000000000000835230600484015260248301525afa9081156108af576000916107cc575b604051806107c88482610a3e565b0390f35b3d8083833e6107db8183610ab6565b8101906020818303126108a75780519067ffffffffffffffff82116108ab570181601f820112156108a75780519267ffffffffffffffff841161087a576040519261084e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8801160185610ab6565b8484526020858401011161087757506107c8926108719160208085019101610a1b565b906107ba565b80fd5b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526041600452fd5b8280fd5b8380fd5b6040513d6000823e3d90fd5b7fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346106b75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106b757602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346106b75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106b7576107c86109b47f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5610c7e565b60405191829182610a3e565b346106b75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106b7576107c86109b47f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4610c7e565b60005b838110610a2e5750506000910152565b8181015183820152602001610a1e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60409360208452610a818151809281602088015260208888019101610a1b565b0116010190565b9181601f840112156106b75782359167ffffffffffffffff83116106b757602083818601950101116106b757565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761052957604052565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610c1c573233148015610c21575b610c1c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610b82575b50610b7f57503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa9081156108af57600091610bdd575b5038610b75565b6020813d602011610c14575b81610bf660209383610ab6565b81010312610c105751908115158203610877575038610bd6565b5080fd5b3d9150610be9565b503390565b5060183610610b3e565b90600182811c92168015610c74575b6020831014610c4557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691610c3a565b9060405191826000825492610c9284610c2b565b8084529360018116908115610d005750600114610cb9575b50610cb792500383610ab6565b565b90506000929192526020600020906000915b818310610ce4575050906020610cb79282010138610caa565b6020919350806001915483858901015201910190918492610ccb565b60209350610cb79592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138610caa56fea2646970667358221220d8c18d0f8d4bff28bf3a379da0afd0fac0295afce1972d719fd6cea9326e7ff464736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806306fdde03146109c057806395d89b4114610959578063a0c76f62146108e8578063c87b56dd146106bc5763fa6d22ca1461005357600080fd5b346106b75760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106b75760043567ffffffffffffffff81116106b7576100a2903690600401610a88565b60243567ffffffffffffffff81116106b7576100c2903690600401610a88565b90926044359273ffffffffffffffffffffffffffffffffffffffff84168094036106b7576100ee610af7565b73ffffffffffffffffffffffffffffffffffffffff807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035416911690810361068a57507f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4917f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58546001811015610658575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff82116105295781906101be8454610c2b565b601f8111610605575b50600090601f831160011461056357600092610558575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111610529576102497f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554610c2b565b601f81116104a5575b506000601f82116001146103aa5781929360009261039f575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b7fffffffffffffffffffffffff00000000000000000000000000000000000000007f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6557f5b5e139f000000000000000000000000000000000000000000000000000000006000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055600080f35b01359050388061026b565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216937fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b86811061048d5750836001959610610455575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5556102bd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055388080610428565b90926020600181928686013581550194019101610415565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c8101916020841061051f575b601f0160051c01905b8181106105135750610252565b60008155600101610506565b90915081906104fd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0135905038806101de565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b8181106105ed57509084600195949392106105b5575b505050811b019055610210565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690553880806105a8565b91936020600181928787013581550195019201610592565b909150836000526020600020601f840160051c8101916020851061064e575b90601f859493920160051c01905b81811061063f57506101c7565b60008155849350600101610632565b9091508190610624565b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346106b75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106b757600435806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c060205273ffffffffffffffffffffffffffffffffffffffff60406000205416156108bb57600073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416916044604051809481937ff724dad700000000000000000000000000000000000000000000000000000000835230600484015260248301525afa9081156108af576000916107cc575b604051806107c88482610a3e565b0390f35b3d8083833e6107db8183610ab6565b8101906020818303126108a75780519067ffffffffffffffff82116108ab570181601f820112156108a75780519267ffffffffffffffff841161087a576040519261084e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8801160185610ab6565b8484526020858401011161087757506107c8926108719160208085019101610a1b565b906107ba565b80fd5b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526041600452fd5b8280fd5b8380fd5b6040513d6000823e3d90fd5b7fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346106b75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106b757602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346106b75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106b7576107c86109b47f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5610c7e565b60405191829182610a3e565b346106b75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106b7576107c86109b47f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4610c7e565b60005b838110610a2e5750506000910152565b8181015183820152602001610a1e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60409360208452610a818151809281602088015260208888019101610a1b565b0116010190565b9181601f840112156106b75782359167ffffffffffffffff83116106b757602083818601950101116106b757565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761052957604052565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610c1c573233148015610c21575b610c1c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610b82575b50610b7f57503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa9081156108af57600091610bdd575b5038610b75565b6020813d602011610c14575b81610bf660209383610ab6565b81010312610c105751908115158203610877575038610bd6565b5080fd5b3d9150610be9565b503390565b5060183610610b3e565b90600182811c92168015610c74575b6020831014610c4557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691610c3a565b9060405191826000825492610c9284610c2b565b8084529360018116908115610d005750600114610cb9575b50610cb792500383610ab6565b565b90506000929192526020600020906000915b818310610ce4575050906020610cb79282010138610caa565b6020919350806001915483858901015201910190918492610ccb565b60209350610cb79592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138610caa56fea2646970667358221220d8c18d0f8d4bff28bf3a379da0afd0fac0295afce1972d719fd6cea9326e7ff464736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
