{
  "_format": "hh-sol-artifact-1",
  "contractName": "TRC6909ContentURIUpgradeable",
  "sourceName": "contracts/token/TRC6909/extensions/TRC6909ContentURIUpgradeable.sol",
  "abi": [
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "allowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "TRC6909InsufficientAllowance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "TRC6909InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "approver",
          "type": "address"
        }
      ],
      "name": "TRC6909InvalidApprover",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        }
      ],
      "name": "TRC6909InvalidReceiver",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "TRC6909InvalidSender",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "TRC6909InvalidSpender",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "ContractURIUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "OperatorSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "value",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "URI",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "contractURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "isOperator",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setOperator",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60808060405234601d57d3601d57d2601d576109b990816100228239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8062fdd58e1461067d57806301ffc9a714610603578063095bcdb6146105e1578063426a84931461055b578063558a729714610497578063598af9e714610456578063b6363cf214610400578063c87b56dd146102f1578063e8a3d4851461018e5763fe99049a14610086575f80fd5b3461018a57d361018a57d261018a57608036600319011261018a576100a96106d6565b6100b16106f5565b60643590604435906001600160a01b03841633141580610167575b6100e5575b6100da9361080a565b602060405160018152f35b6100f08233866107e1565b5f1981106100ff575b506100d1565b8381106101395793836100da9561011583610771565b60018060a01b0333165f5260205260405f20855f526020520360405f2055936100f9565b604051630681656b60e51b815233600482015260248101919091526044810193909352506064820152608490fd5b50610171846107a9565b335f908152602091909152604090205460ff16156100cc565b5f80fd5b3461018a57d361018a57d261018a575f36600319011261018a576040515f7ffccaac9e6e0e462e4bce21a44d10ffaac72c19bf1c5aa0a2afc113d70be87c00548060011c906001811680156102e7575b6020831081146102d3578285529081156102b75750600114610243575b50819003601f01601f191681019067ffffffffffffffff82118183101761022f5761022b82918260405282610747565b0390f35b634e487b7160e01b5f52604160045260245ffd5b90507ffccaac9e6e0e462e4bce21a44d10ffaac72c19bf1c5aa0a2afc113d70be87c005f527ffe25d63e54d48386857cb74e235c99935f41b18b8d8eb88962435bd4f33391b15f905b8282106102a1575060209150820101826101fb565b600181602092548385880101520191019061028c565b90506020925060ff191682840152151560051b820101826101fb565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101de565b3461018a57d361018a57d261018a57602036600319011261018a576004355f527ffccaac9e6e0e462e4bce21a44d10ffaac72c19bf1c5aa0a2afc113d70be87c0160205260405f20604051905f908054908160011c916001811680156103f6575b6020841081146102d3578386529081156103d857506001146103a0575b5050819003601f01601f191681019067ffffffffffffffff82118183101761022f5761022b82918260405282610747565b9091505f5260205f205f905b8282106103c2575060209150820101828061036f565b60018160209254838588010152019101906103ac565b9150506020925060ff191682840152151560051b820101828061036f565b92607f1692610352565b3461018a57d361018a57d261018a57604036600319011261018a576104236106d6565b61043461042e6106f5565b916107a9565b9060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461018a57d361018a57d261018a57606036600319011261018a57602061048f61047e6106d6565b6104866106f5565b604435916107e1565b604051908152f35b3461018a57d361018a57d261018a57604036600319011261018a576104ba6106d6565b6024359081151580920361018a573315610548576001600160a01b0316908115610535576104e7336107a9565b825f5260205260405f2060ff1981541660ff83161790556040519081527fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa26760203392a3602060405160018152f35b631c99e77f60e31b5f525f60045260245ffd5b6379ce1f7760e01b5f525f60045260245ffd5b3461018a57d361018a57d261018a5761057336610714565b90913315610548576001600160a01b03169081156105355761059433610771565b825f5260205260405f20835f526020528060405f20556040519081527fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760203392a4602060405160018152f35b3461018a57d361018a57d261018a576100da6105fc36610714565b913361080a565b3461018a57d361018a57d261018a57602036600319011261018a5760043563ffffffff60e01b811680910361018a5760209063041b104b60e31b8114908115610652575b506040519015158152f35b630f632fb360e01b81149150811561066c575b5082610647565b6301ffc9a760e01b14905082610665565b3461018a57d361018a57d261018a57604036600319011261018a576106a06106d6565b60018060a01b03165f525f8051602061095683398151915260205260405f206024355f52602052602060405f2054604051908152f35b6004356001600160a81b038116810361018a576001600160a01b031690565b6024356001600160a81b038116810361018a576001600160a01b031690565b606090600319011261018a576004356001600160a81b038116810361018a576001600160a01b0316906024359060443590565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b6001600160a01b03165f9081527f93cde49003e545345558860c138c88f79bdc58417976f453134e8463dfae31026020526040902090565b6001600160a01b03165f9081527f93cde49003e545345558860c138c88f79bdc58417976f453134e8463dfae31016020526040902090565b6107ea90610771565b9060018060a01b03165f5260205260405f20905f5260205260405f205490565b91926001600160a01b038316918215610942576001600160a01b031692831561092f57825f525f8051602061095683398151915260205260405f20855f5260205260405f2054908282106108f657508190835f525f8051602061095683398151915260205260405f20865f526020520360405f2055825f525f8051602061095683398151915260205260405f20845f5260205260405f208054918083018093116108e2577f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac72885992604092558151903382526020820152a4565b634e487b7160e01b5f52601160045260245ffd5b604051630cc122ef60e11b81526001600160a01b0391909116600482015260248101919091526044810182905260648101859052608490fd5b63102e5fab60e31b5f525f60045260245ffd5b634cdfa10760e11b5f525f60045260245ffdfe93cde49003e545345558860c138c88f79bdc58417976f453134e8463dfae3100a36474726f6e582212209cc0f5d7d37844e6751bc1426e263a976ac8b5ba7701b95534f27f6687dd8d036c6578706572696d656e74616cf564736f6c634300081a0041",
  "deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c8062fdd58e1461067d57806301ffc9a714610603578063095bcdb6146105e1578063426a84931461055b578063558a729714610497578063598af9e714610456578063b6363cf214610400578063c87b56dd146102f1578063e8a3d4851461018e5763fe99049a14610086575f80fd5b3461018a57d361018a57d261018a57608036600319011261018a576100a96106d6565b6100b16106f5565b60643590604435906001600160a01b03841633141580610167575b6100e5575b6100da9361080a565b602060405160018152f35b6100f08233866107e1565b5f1981106100ff575b506100d1565b8381106101395793836100da9561011583610771565b60018060a01b0333165f5260205260405f20855f526020520360405f2055936100f9565b604051630681656b60e51b815233600482015260248101919091526044810193909352506064820152608490fd5b50610171846107a9565b335f908152602091909152604090205460ff16156100cc565b5f80fd5b3461018a57d361018a57d261018a575f36600319011261018a576040515f7ffccaac9e6e0e462e4bce21a44d10ffaac72c19bf1c5aa0a2afc113d70be87c00548060011c906001811680156102e7575b6020831081146102d3578285529081156102b75750600114610243575b50819003601f01601f191681019067ffffffffffffffff82118183101761022f5761022b82918260405282610747565b0390f35b634e487b7160e01b5f52604160045260245ffd5b90507ffccaac9e6e0e462e4bce21a44d10ffaac72c19bf1c5aa0a2afc113d70be87c005f527ffe25d63e54d48386857cb74e235c99935f41b18b8d8eb88962435bd4f33391b15f905b8282106102a1575060209150820101826101fb565b600181602092548385880101520191019061028c565b90506020925060ff191682840152151560051b820101826101fb565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101de565b3461018a57d361018a57d261018a57602036600319011261018a576004355f527ffccaac9e6e0e462e4bce21a44d10ffaac72c19bf1c5aa0a2afc113d70be87c0160205260405f20604051905f908054908160011c916001811680156103f6575b6020841081146102d3578386529081156103d857506001146103a0575b5050819003601f01601f191681019067ffffffffffffffff82118183101761022f5761022b82918260405282610747565b9091505f5260205f205f905b8282106103c2575060209150820101828061036f565b60018160209254838588010152019101906103ac565b9150506020925060ff191682840152151560051b820101828061036f565b92607f1692610352565b3461018a57d361018a57d261018a57604036600319011261018a576104236106d6565b61043461042e6106f5565b916107a9565b9060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461018a57d361018a57d261018a57606036600319011261018a57602061048f61047e6106d6565b6104866106f5565b604435916107e1565b604051908152f35b3461018a57d361018a57d261018a57604036600319011261018a576104ba6106d6565b6024359081151580920361018a573315610548576001600160a01b0316908115610535576104e7336107a9565b825f5260205260405f2060ff1981541660ff83161790556040519081527fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa26760203392a3602060405160018152f35b631c99e77f60e31b5f525f60045260245ffd5b6379ce1f7760e01b5f525f60045260245ffd5b3461018a57d361018a57d261018a5761057336610714565b90913315610548576001600160a01b03169081156105355761059433610771565b825f5260205260405f20835f526020528060405f20556040519081527fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760203392a4602060405160018152f35b3461018a57d361018a57d261018a576100da6105fc36610714565b913361080a565b3461018a57d361018a57d261018a57602036600319011261018a5760043563ffffffff60e01b811680910361018a5760209063041b104b60e31b8114908115610652575b506040519015158152f35b630f632fb360e01b81149150811561066c575b5082610647565b6301ffc9a760e01b14905082610665565b3461018a57d361018a57d261018a57604036600319011261018a576106a06106d6565b60018060a01b03165f525f8051602061095683398151915260205260405f206024355f52602052602060405f2054604051908152f35b6004356001600160a81b038116810361018a576001600160a01b031690565b6024356001600160a81b038116810361018a576001600160a01b031690565b606090600319011261018a576004356001600160a81b038116810361018a576001600160a01b0316906024359060443590565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b6001600160a01b03165f9081527f93cde49003e545345558860c138c88f79bdc58417976f453134e8463dfae31026020526040902090565b6001600160a01b03165f9081527f93cde49003e545345558860c138c88f79bdc58417976f453134e8463dfae31016020526040902090565b6107ea90610771565b9060018060a01b03165f5260205260405f20905f5260205260405f205490565b91926001600160a01b038316918215610942576001600160a01b031692831561092f57825f525f8051602061095683398151915260205260405f20855f5260205260405f2054908282106108f657508190835f525f8051602061095683398151915260205260405f20865f526020520360405f2055825f525f8051602061095683398151915260205260405f20845f5260205260405f208054918083018093116108e2577f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac72885992604092558151903382526020820152a4565b634e487b7160e01b5f52601160045260245ffd5b604051630cc122ef60e11b81526001600160a01b0391909116600482015260248101919091526044810182905260648101859052608490fd5b63102e5fab60e31b5f525f60045260245ffd5b634cdfa10760e11b5f525f60045260245ffdfe93cde49003e545345558860c138c88f79bdc58417976f453134e8463dfae3100a36474726f6e582212209cc0f5d7d37844e6751bc1426e263a976ac8b5ba7701b95534f27f6687dd8d036c6578706572696d656e74616cf564736f6c634300081a0041",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
