{
  "_format": "hh-sol-artifact-1",
  "contractName": "TokenMetadataResolverPerToken",
  "sourceName": "contracts/token/metadata/TokenMetadataResolverPerToken.sol",
  "abi": [
    {
      "inputs": [],
      "name": "InconsistentArrayLengths",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotTargetContractRoleHolder",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        }
      ],
      "name": "TargetIsNotAContract",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "MINTER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "tokenURIs",
          "type": "string[]"
        }
      ],
      "name": "batchSetTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "metadataURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "tokenURI",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "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": "0x60808060405234601557610a2f908161001b8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063361953a3146100535780634e5786bf1461041f578063626dc9a814610134578063d5391393146100db5763f724dad71461005357600080fd5b346100d65760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d65773ffffffffffffffffffffffffffffffffffffffff61009f610629565b16600052600060205260406000206024356000526020526100d26100c6604060002061070f565b604051918291826107d1565b0390f35b600080fd5b346100d65760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d65760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b346100d65760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d65761016b610629565b60243567ffffffffffffffff81116100d65761018b903690600401610839565b909160443567ffffffffffffffff81116100d6576101ad903690600401610839565b9290918382036103f5576101c4939193338261086a565b60009173ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1853603019216925b858110156103f357818110156103c4578060051b9081860135848112156100d6578601803567ffffffffffffffff81116100d65780360360208301136100d65786600052600060205260406000206000948b01358552602052604084209161026d835461064c565b601f811161037f575b5084601f83116001146102d3576001959091836102c5575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82861b9260031b1c19161790555b01610205565b602092500101358b8061028e565b919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841685845260208420935b81811061036557509160019695949291838895931061032a575b505050811b0190556102bf565b01602001357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600384901b60f8161c191690558b808061031d565b919360206001819282888801013581550195019201610303565b83865260208620601f840160051c810191602085106103ba575b601f0160051c01905b8181106103af5750610276565b8681556001016103a2565b9091508190610399565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b005b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b346100d65760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d657610456610629565b6044359067ffffffffffffffff82116100d657366023830112156100d65781600401359067ffffffffffffffff82116100d65736602483850101116100d65773ffffffffffffffffffffffffffffffffffffffff906104b5338261086a565b166000526000602052604060002060243560005260205260406000206000916104de825461064c565b601f81116105e4575b5082601f821160011461054157839482939492610533575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c191617905580f35b6024925001013584806104ff565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216948385526020852091855b8781106105c957508360019596971061058e575b505050811b01905580f35b01602401357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600384901b60f8161c19169055848080610583565b9092602060018192602487870101358155019401910161056f565b82845260208420601f830160051c8101916020841061061f575b601f0160051c01905b81811061061457506104e7565b848155600101610607565b90915081906105fe565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100d657565b90600182811c92168015610695575b602083101461066657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161065b565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106e057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90604051918260008254926107238461064c565b8084529360018116908115610791575060011461074a575b506107489250038361069f565b565b90506000929192526020600020906000915b818310610775575050906020610748928201013861073b565b602091935080600191548385890101520191019091849261075c565b602093506107489592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861073b565b9190916020815282519283602083015260005b8481106108235750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b80602080928401015160408286010152016107e4565b9181601f840112156100d65782359167ffffffffffffffff83116100d6576020808501948460051b0101116100d657565b803b156109b55773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff604051927f91d148540000000000000000000000000000000000000000000000000000000084527f6d696e746572000000000000000000000000000000000000000000000000000060048501521691826024820152602081604481855afa9081156109a957600091610967575b5015610913575050565b7f7a436c16000000000000000000000000000000000000000000000000000000006000526004527f6d696e746572000000000000000000000000000000000000000000000000000060245260445260646000fd5b6020813d6020116109a1575b816109806020938361069f565b8101031261099d575190811515820361099a575038610909565b80fd5b5080fd5b3d9150610973565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff907f73a5b5e3000000000000000000000000000000000000000000000000000000006000521660045260246000fdfea26469706673582212201b8585c529f05a762113973b7c8f81b45f3579c3da4d0eec92b3f9988965708664736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c8063361953a3146100535780634e5786bf1461041f578063626dc9a814610134578063d5391393146100db5763f724dad71461005357600080fd5b346100d65760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d65773ffffffffffffffffffffffffffffffffffffffff61009f610629565b16600052600060205260406000206024356000526020526100d26100c6604060002061070f565b604051918291826107d1565b0390f35b600080fd5b346100d65760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d65760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b346100d65760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d65761016b610629565b60243567ffffffffffffffff81116100d65761018b903690600401610839565b909160443567ffffffffffffffff81116100d6576101ad903690600401610839565b9290918382036103f5576101c4939193338261086a565b60009173ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1853603019216925b858110156103f357818110156103c4578060051b9081860135848112156100d6578601803567ffffffffffffffff81116100d65780360360208301136100d65786600052600060205260406000206000948b01358552602052604084209161026d835461064c565b601f811161037f575b5084601f83116001146102d3576001959091836102c5575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82861b9260031b1c19161790555b01610205565b602092500101358b8061028e565b919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841685845260208420935b81811061036557509160019695949291838895931061032a575b505050811b0190556102bf565b01602001357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600384901b60f8161c191690558b808061031d565b919360206001819282888801013581550195019201610303565b83865260208620601f840160051c810191602085106103ba575b601f0160051c01905b8181106103af5750610276565b8681556001016103a2565b9091508190610399565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b005b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b346100d65760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d657610456610629565b6044359067ffffffffffffffff82116100d657366023830112156100d65781600401359067ffffffffffffffff82116100d65736602483850101116100d65773ffffffffffffffffffffffffffffffffffffffff906104b5338261086a565b166000526000602052604060002060243560005260205260406000206000916104de825461064c565b601f81116105e4575b5082601f821160011461054157839482939492610533575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c191617905580f35b6024925001013584806104ff565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216948385526020852091855b8781106105c957508360019596971061058e575b505050811b01905580f35b01602401357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600384901b60f8161c19169055848080610583565b9092602060018192602487870101358155019401910161056f565b82845260208420601f830160051c8101916020841061061f575b601f0160051c01905b81811061061457506104e7565b848155600101610607565b90915081906105fe565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100d657565b90600182811c92168015610695575b602083101461066657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161065b565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106e057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90604051918260008254926107238461064c565b8084529360018116908115610791575060011461074a575b506107489250038361069f565b565b90506000929192526020600020906000915b818310610775575050906020610748928201013861073b565b602091935080600191548385890101520191019091849261075c565b602093506107489592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861073b565b9190916020815282519283602083015260005b8481106108235750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b80602080928401015160408286010152016107e4565b9181601f840112156100d65782359167ffffffffffffffff83116100d6576020808501948460051b0101116100d657565b803b156109b55773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff604051927f91d148540000000000000000000000000000000000000000000000000000000084527f6d696e746572000000000000000000000000000000000000000000000000000060048501521691826024820152602081604481855afa9081156109a957600091610967575b5015610913575050565b7f7a436c16000000000000000000000000000000000000000000000000000000006000526004527f6d696e746572000000000000000000000000000000000000000000000000000060245260445260646000fd5b6020813d6020116109a1575b816109806020938361069f565b8101031261099d575190811515820361099a575038610909565b80fd5b5080fd5b3d9150610973565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff907f73a5b5e3000000000000000000000000000000000000000000000000000000006000521660045260246000fdfea26469706673582212201b8585c529f05a762113973b7c8f81b45f3579c3da4d0eec92b3f9988965708664736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
