{
  "_format": "hh-sol-artifact-1",
  "contractName": "TokenMetadataResolverWithBaseURI",
  "sourceName": "contracts/token/metadata/TokenMetadataResolverWithBaseURI.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotTargetContractOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        }
      ],
      "name": "TargetIsNotAContract",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "baseMetadataURI",
          "type": "string"
        }
      ],
      "name": "BaseMetadataURISet",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "baseMetadataURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "baseURI",
          "type": "string"
        }
      ],
      "name": "setBaseMetadataURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenMetadataURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "tokenURI",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60808060405234601557610a4f908161001b8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081633fb0a0db14610775575080636169966a146103865763f724dad71461004057600080fd5b346103815760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103815761007761088c565b73ffffffffffffffffffffffffffffffffffffffff6024359116600052600060205260406000208190826000937a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000811015610356575b50806d04ee2d6d415b85acef8100000000600a92101561033b575b662386f26fc10000811015610327575b6305f5e100811015610316575b612710811015610307575b60648110156102f9575b10156102ef575b6001830191600a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6021610168610152876109df565b966101606040519889610902565b8088526109df565b967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020880198013689378601015b01917f30313233343536373839616263646566000000000000000000000000000000008282061a83530480156101f1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a9192610197565b505060405191600091805490610206826108af565b91600181169081156102ac5750600114610270575b61026c856102608187806102338c8a51938491610972565b01037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610902565b60405191829182610995565b0390f35b9091925060005260206000206000905b828210610296575050820160200190838361021b565b6001816020925483858901015201910190610280565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166020808801919091528315159093028601909201935085915084905061021b565b916001019161011c565b606460029104940193610115565b6127106004910494019361010b565b6305f5e10060089104940193610100565b662386f26fc10000601091049401936100f3565b6d04ee2d6d415b85acef8100000000602091049401936100e3565b604094507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000090049050600a6100c8565b600080fd5b346103815760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610381576103bd61088c565b6024359067ffffffffffffffff821161038157366023830112156103815781600401359067ffffffffffffffff821161038157366024838501011161038157803b156107315773ffffffffffffffffffffffffffffffffffffffff16916040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481875afa908115610725576000916106cf575b5073ffffffffffffffffffffffffffffffffffffffff3391160361069d5782600052600060205260406000209260009261049285546108af565b601f8111610658575b508394601f821160011461056b57601f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0926060959488997f88abd97025db503bd9cbc01e09174912e82e0973d1b96c37a3d25d4f7e20f7a3999161055d575b508260011b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8460031b1c19161790555b80602460405197889687526040602088015282604088015201868601378785828601015201168101030190a180f35b60249150880101358a6104fc565b808552602085207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08316865b81811061063d5750927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f927f88abd97025db503bd9cbc01e09174912e82e0973d1b96c37a3d25d4f7e20f7a39899836060989710610602575b5050600182811b01905561052e565b60247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c19918a01013516905589806105f3565b86890160240135835560209889019860019093019201610597565b85855260208520601f830160051c81019160208410610693575b601f0160051c01905b818110610688575061049b565b85815560010161067b565b9091508190610672565b827f29b9b08b000000000000000000000000000000000000000000000000000000006000526004523360245260446000fd5b6020813d60201161071d575b816106e860209383610902565b8101031261071957519073ffffffffffffffffffffffffffffffffffffffff82168203610716575084610458565b80fd5b5080fd5b3d91506106db565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff907f73a5b5e3000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b346103815760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103815773ffffffffffffffffffffffffffffffffffffffff6107c161088c565b16600052600060205260406000206000908054906107de826108af565b80855291600181169081156108475750600114610806575b61026c8461026081860382610902565b600090815260208120939250905b80821061082d57509091508101602001610260826107f6565b919260018160209254838588010152019101909291610814565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208087019190915292151560051b8501909201925061026091508390506107f6565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361038157565b90600182811c921680156108f8575b60208310146108c957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f16916108be565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761094357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b8381106109855750506000910152565b8181015183820152602001610975565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604093602084526109d88151809281602088015260208888019101610972565b0116010190565b67ffffffffffffffff811161094357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020019056fea26469706673582212202257ec53937c8616a4c92b3fb5933427a6fea2ee82f70ec59ebf68a3c74c522464736f6c634300081e0033",
  "deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c9081633fb0a0db14610775575080636169966a146103865763f724dad71461004057600080fd5b346103815760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103815761007761088c565b73ffffffffffffffffffffffffffffffffffffffff6024359116600052600060205260406000208190826000937a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000811015610356575b50806d04ee2d6d415b85acef8100000000600a92101561033b575b662386f26fc10000811015610327575b6305f5e100811015610316575b612710811015610307575b60648110156102f9575b10156102ef575b6001830191600a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6021610168610152876109df565b966101606040519889610902565b8088526109df565b967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020880198013689378601015b01917f30313233343536373839616263646566000000000000000000000000000000008282061a83530480156101f1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a9192610197565b505060405191600091805490610206826108af565b91600181169081156102ac5750600114610270575b61026c856102608187806102338c8a51938491610972565b01037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610902565b60405191829182610995565b0390f35b9091925060005260206000206000905b828210610296575050820160200190838361021b565b6001816020925483858901015201910190610280565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166020808801919091528315159093028601909201935085915084905061021b565b916001019161011c565b606460029104940193610115565b6127106004910494019361010b565b6305f5e10060089104940193610100565b662386f26fc10000601091049401936100f3565b6d04ee2d6d415b85acef8100000000602091049401936100e3565b604094507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000090049050600a6100c8565b600080fd5b346103815760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610381576103bd61088c565b6024359067ffffffffffffffff821161038157366023830112156103815781600401359067ffffffffffffffff821161038157366024838501011161038157803b156107315773ffffffffffffffffffffffffffffffffffffffff16916040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481875afa908115610725576000916106cf575b5073ffffffffffffffffffffffffffffffffffffffff3391160361069d5782600052600060205260406000209260009261049285546108af565b601f8111610658575b508394601f821160011461056b57601f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0926060959488997f88abd97025db503bd9cbc01e09174912e82e0973d1b96c37a3d25d4f7e20f7a3999161055d575b508260011b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8460031b1c19161790555b80602460405197889687526040602088015282604088015201868601378785828601015201168101030190a180f35b60249150880101358a6104fc565b808552602085207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08316865b81811061063d5750927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092601f927f88abd97025db503bd9cbc01e09174912e82e0973d1b96c37a3d25d4f7e20f7a39899836060989710610602575b5050600182811b01905561052e565b60247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c19918a01013516905589806105f3565b86890160240135835560209889019860019093019201610597565b85855260208520601f830160051c81019160208410610693575b601f0160051c01905b818110610688575061049b565b85815560010161067b565b9091508190610672565b827f29b9b08b000000000000000000000000000000000000000000000000000000006000526004523360245260446000fd5b6020813d60201161071d575b816106e860209383610902565b8101031261071957519073ffffffffffffffffffffffffffffffffffffffff82168203610716575084610458565b80fd5b5080fd5b3d91506106db565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff907f73a5b5e3000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b346103815760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103815773ffffffffffffffffffffffffffffffffffffffff6107c161088c565b16600052600060205260406000206000908054906107de826108af565b80855291600181169081156108475750600114610806575b61026c8461026081860382610902565b600090815260208120939250905b80821061082d57509091508101602001610260826107f6565b919260018160209254838588010152019101909291610814565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208087019190915292151560051b8501909201925061026091508390506107f6565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361038157565b90600182811c921680156108f8575b60208310146108c957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f16916108be565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761094357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b8381106109855750506000910152565b8181015183820152602001610975565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604093602084526109d88151809281602088015260208888019101610972565b0116010190565b67ffffffffffffffff811161094357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020019056fea26469706673582212202257ec53937c8616a4c92b3fb5933427a6fea2ee82f70ec59ebf68a3c74c522464736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
