{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC721MetadataFacetMock",
  "sourceName": "contracts/mocks/token/ERC721/facets/ERC721MetadataFacetMock.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": [],
      "name": "__msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "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": "0x60a034606d57601f610ff238819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606d57516001600160a01b0381168103606d57608052604051610f6990816100898239608051818181610bb40152610d0a0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806306fdde0314610a4e57806331e66e1e146109cb57806395d89b4114610964578063a0c76f62146108f3578063c87b56dd146106c75763fa6d22ca1461005e57600080fd5b346106c25760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c25760043567ffffffffffffffff81116106c2576100ad903690600401610b16565b60243567ffffffffffffffff81116106c2576100cd903690600401610b16565b90926044359273ffffffffffffffffffffffffffffffffffffffff84168094036106c2576100f9610cf3565b73ffffffffffffffffffffffffffffffffffffffff807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035416911690810361069557507f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4917f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58546001811015610663575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff82116105345781906101c98454610e1e565b601f8111610610575b50600090601f831160011461056e57600092610563575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111610534576102547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554610e1e565b601f81116104b0575b506000601f82116001146103b5578192936000926103aa575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b7fffffffffffffffffffffffff00000000000000000000000000000000000000007f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6557f5b5e139f000000000000000000000000000000000000000000000000000000006000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055600080f35b013590503880610276565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216937fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b8681106104985750836001959610610460575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5556102c8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055388080610433565b90926020600181928686013581550194019101610420565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c8101916020841061052a575b601f0160051c01905b81811061051e575061025d565b60008155600101610511565b9091508190610508565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0135905038806101e9565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b8181106105f857509084600195949392106105c0575b505050811b01905561021b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690553880806105b3565b9193602060018192878701358155019501920161059d565b909150836000526020600020601f840160051c81019160208510610659575b90601f859493920160051c01905b81811061064a57506101d2565b6000815584935060010161063d565b909150819061062f565b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346106c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c257600435806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c060205273ffffffffffffffffffffffffffffffffffffffff60406000205416156108c657600073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416916044604051809481937ff724dad700000000000000000000000000000000000000000000000000000000835230600484015260248301525afa9081156108ba576000916107d7575b604051806107d38482610acc565b0390f35b3d8083833e6107e68183610b44565b8101906020818303126108b25780519067ffffffffffffffff82116108b6570181601f820112156108b25780519267ffffffffffffffff8411610885576040519261085960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8801160185610b44565b8484526020858401011161088257506107d39261087c9160208085019101610aa9565b906107c5565b80fd5b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526041600452fd5b8280fd5b8380fd5b6040513d6000823e3d90fd5b7fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346106c25760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c257602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346106c25760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c2576107d36109bf7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5610e71565b60405191829182610acc565b346106c25760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c2576040610a04610b9d565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346106c25760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c2576107d36109bf7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4610e71565b60005b838110610abc5750506000910152565b8181015183820152602001610aac565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60409360208452610b0f8151809281602088015260208888019101610aa9565b0116010190565b9181601f840112156106c25782359167ffffffffffffffff83116106c257602083818601950101116106c257565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761053457604052565b908160209103126106c2575180151581036106c25790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610ce1573233148015610ce9575b610ce157803314908115610c30575b50610bff576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116106c25760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156108ba57600091610cb2575b5038610bf3565b610cd4915060203d602011610cda575b610ccc8183610b44565b810190610b85565b38610cab565b503d610cc2565b506000903690565b5060183610610be4565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610e0f573233148015610e14575b610e0f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610d7e575b50610d7b57503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156108ba57600091610df0575b5038610d71565b610e09915060203d602011610cda57610ccc8183610b44565b38610de9565b503390565b5060183610610d3a565b90600182811c92168015610e67575b6020831014610e3857565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691610e2d565b9060405191826000825492610e8584610e1e565b8084529360018116908115610ef35750600114610eac575b50610eaa92500383610b44565b565b90506000929192526020600020906000915b818310610ed7575050906020610eaa9282010138610e9d565b6020919350806001915483858901015201910190918492610ebe565b60209350610eaa9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138610e9d56fea2646970667358221220c72a26fd9e989311b1c74405d29e0ce3714d9c906ae96670ab8030887af43d3164736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806306fdde0314610a4e57806331e66e1e146109cb57806395d89b4114610964578063a0c76f62146108f3578063c87b56dd146106c75763fa6d22ca1461005e57600080fd5b346106c25760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c25760043567ffffffffffffffff81116106c2576100ad903690600401610b16565b60243567ffffffffffffffff81116106c2576100cd903690600401610b16565b90926044359273ffffffffffffffffffffffffffffffffffffffff84168094036106c2576100f9610cf3565b73ffffffffffffffffffffffffffffffffffffffff807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035416911690810361069557507f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4917f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58546001811015610663575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff82116105345781906101c98454610e1e565b601f8111610610575b50600090601f831160011461056e57600092610563575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111610534576102547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554610e1e565b601f81116104b0575b506000601f82116001146103b5578192936000926103aa575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b7fffffffffffffffffffffffff00000000000000000000000000000000000000007f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6557f5b5e139f000000000000000000000000000000000000000000000000000000006000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055600080f35b013590503880610276565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216937fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b8681106104985750836001959610610460575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5556102c8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055388080610433565b90926020600181928686013581550194019101610420565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c8101916020841061052a575b601f0160051c01905b81811061051e575061025d565b60008155600101610511565b9091508190610508565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0135905038806101e9565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b8181106105f857509084600195949392106105c0575b505050811b01905561021b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690553880806105b3565b9193602060018192878701358155019501920161059d565b909150836000526020600020601f840160051c81019160208510610659575b90601f859493920160051c01905b81811061064a57506101d2565b6000815584935060010161063d565b909150819061062f565b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346106c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c257600435806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c060205273ffffffffffffffffffffffffffffffffffffffff60406000205416156108c657600073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416916044604051809481937ff724dad700000000000000000000000000000000000000000000000000000000835230600484015260248301525afa9081156108ba576000916107d7575b604051806107d38482610acc565b0390f35b3d8083833e6107e68183610b44565b8101906020818303126108b25780519067ffffffffffffffff82116108b6570181601f820112156108b25780519267ffffffffffffffff8411610885576040519261085960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8801160185610b44565b8484526020858401011161088257506107d39261087c9160208085019101610aa9565b906107c5565b80fd5b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526041600452fd5b8280fd5b8380fd5b6040513d6000823e3d90fd5b7fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346106c25760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c257602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346106c25760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c2576107d36109bf7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5610e71565b60405191829182610acc565b346106c25760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c2576040610a04610b9d565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346106c25760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c2576107d36109bf7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4610e71565b60005b838110610abc5750506000910152565b8181015183820152602001610aac565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60409360208452610b0f8151809281602088015260208888019101610aa9565b0116010190565b9181601f840112156106c25782359167ffffffffffffffff83116106c257602083818601950101116106c257565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761053457604052565b908160209103126106c2575180151581036106c25790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610ce1573233148015610ce9575b610ce157803314908115610c30575b50610bff576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116106c25760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156108ba57600091610cb2575b5038610bf3565b610cd4915060203d602011610cda575b610ccc8183610b44565b810190610b85565b38610cab565b503d610cc2565b506000903690565b5060183610610be4565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610e0f573233148015610e14575b610e0f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610d7e575b50610d7b57503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156108ba57600091610df0575b5038610d71565b610e09915060203d602011610cda57610ccc8183610b44565b38610de9565b503390565b5060183610610d3a565b90600182811c92168015610e67575b6020831014610e3857565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691610e2d565b9060405191826000825492610e8584610e1e565b8084529360018116908115610ef35750600114610eac575b50610eaa92500383610b44565b565b90506000929192526020600020906000915b818310610ed7575050906020610eaa9282010138610e9d565b6020919350806001915483858901015201910190918492610ebe565b60209350610eaa9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138610e9d56fea2646970667358221220c72a26fd9e989311b1c74405d29e0ce3714d9c906ae96670ab8030887af43d3164736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
