{
  "contractName": "TizmoRegistry",
  "sourceName": "TizmoRegistry.sol",
  "compilerVersion": "0.8.30+commit.73712a01.Emscripten.clang",
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "paris",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "previousId",
          "type": "bytes32"
        }
      ],
      "name": "DifferentRegistrant",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "existingId",
          "type": "bytes32"
        }
      ],
      "name": "DuplicateRecord",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "byteLength",
          "type": "uint256"
        }
      ],
      "name": "MetadataTooLong",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordId",
          "type": "bytes32"
        }
      ],
      "name": "UnknownRecord",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ZeroHash",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "recordId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "registrant",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "fileHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "recipeHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "previousId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "timestamp",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "metadataURI",
          "type": "string"
        }
      ],
      "name": "WorkRegistered",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "MAX_METADATA_URI_BYTES",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "recordId",
          "type": "bytes32"
        }
      ],
      "name": "getRecord",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "fileHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "recipeHash",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "registrant",
              "type": "address"
            },
            {
              "internalType": "uint64",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "previousId",
              "type": "bytes32"
            },
            {
              "internalType": "string",
              "name": "metadataURI",
              "type": "string"
            }
          ],
          "internalType": "struct TizmoRegistry.Record",
          "name": "record",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "recordFor",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "fileHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "recipeHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "previousId",
          "type": "bytes32"
        },
        {
          "internalType": "string",
          "name": "metadataURI",
          "type": "string"
        }
      ],
      "name": "register",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "recordId",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052348015600f57600080fd5b506108328061001f6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063213681cd1461005157806333dff3f01461007a5780634e6b0bbe146100b35780637cb34d2d146100bc575b600080fd5b61006461005f3660046104d2565b6100cf565b60405161007191906104eb565b60405180910390f35b6100a5610088366004610589565b600160209081526000928352604080842090915290825290205481565b604051908152602001610071565b6100a561020081565b6100a56100ca3660046105c1565b610238565b6040805160c0810182526000808252602082018190529181018290526060808201839052608082019290925260a081019190915260008281526020818152604091829020825160c0810184528154815260018201549281019290925260028101546001600160a01b03811693830193909352600160a01b90920467ffffffffffffffff1660608201526003820154608082015260048201805491929160a08401919061017a90610650565b80601f01602080910402602001604051908101604052809291908181526020018280546101a690610650565b80156101f35780601f106101c8576101008083540402835291602001916101f3565b820191906000526020600020905b8154815290600101906020018083116101d657829003601f168201915b5050509190925250505060408101519091506001600160a01b03166102335760405163b21a3f0560e01b8152600481018390526024015b60405180910390fd5b919050565b6000851580610245575084155b156102635760405163f1ae58d560e01b815260040160405180910390fd5b336000908152600160209081526040808320898452909152902054801561029f576040516272955960e81b81526004810182905260240161022a565b826102008111156102c6576040516310940ba160e01b81526004810182905260240161022a565b8515610336576000868152602081905260409020600201546001600160a01b0316806103085760405163b21a3f0560e01b81526004810188905260240161022a565b6001600160a01b038116331461033457604051631e7b380760e11b81526004810188905260240161022a565b505b6040805133602082015290810189905246606082015230608082015260a00160405160208183030381529060405280519060200120925060004290506040518060c001604052808a8152602001898152602001336001600160a01b031681526020018267ffffffffffffffff16815260200188815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505086815260208181526040918290208451815590840151600182015590830151600282018054606086015167ffffffffffffffff16600160a01b026001600160e01b03199091166001600160a01b03909316929092179190911790556080830151600382015560a0830151909150600482019061046290826106ef565b50503360008181526001602090815260408083208e845290915290819020879055518b925086907f05db85b3b7ab9c7d64d036e7f86b61c930892fee54895bc93fdb189c4960d077906104be908d908d9088908e908e906107ae565b60405180910390a450505095945050505050565b6000602082840312156104e457600080fd5b5035919050565b60208152815160208201526020820151604082015260018060a01b03604083015116606082015267ffffffffffffffff6060830151166080820152608082015160a0820152600060a083015160c08084015280518060e085015260005b81811015610566576020818401810151610100878401015201610548565b5060006101008286010152610100601f19601f8301168501019250505092915050565b6000806040838503121561059c57600080fd5b82356001600160a01b03811681146105b357600080fd5b946020939093013593505050565b6000806000806000608086880312156105d957600080fd5b853594506020860135935060408601359250606086013567ffffffffffffffff81111561060557600080fd5b8601601f8101881361061657600080fd5b803567ffffffffffffffff81111561062d57600080fd5b88602082840101111561063f57600080fd5b959894975092955050506020019190565b600181811c9082168061066457607f821691505b60208210810361068457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b601f8211156106ea57806000526020600020601f840160051c810160208510156106c75750805b601f840160051c820191505b818110156106e757600081556001016106d3565b50505b505050565b815167ffffffffffffffff8111156107095761070961068a565b61071d816107178454610650565b846106a0565b6020601f82116001811461075157600083156107395750848201515b600019600385901b1c1916600184901b1784556106e7565b600084815260208120601f198516915b828110156107815787850151825560209485019460019092019101610761565b508482101561079f5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b85815284602082015267ffffffffffffffff8416604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f1916010194935050505056fea2646970667358221220c736ba871716ede02c132b656d450015f408623ba850cfb8468a227abe13670b64736f6c634300081e0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063213681cd1461005157806333dff3f01461007a5780634e6b0bbe146100b35780637cb34d2d146100bc575b600080fd5b61006461005f3660046104d2565b6100cf565b60405161007191906104eb565b60405180910390f35b6100a5610088366004610589565b600160209081526000928352604080842090915290825290205481565b604051908152602001610071565b6100a561020081565b6100a56100ca3660046105c1565b610238565b6040805160c0810182526000808252602082018190529181018290526060808201839052608082019290925260a081019190915260008281526020818152604091829020825160c0810184528154815260018201549281019290925260028101546001600160a01b03811693830193909352600160a01b90920467ffffffffffffffff1660608201526003820154608082015260048201805491929160a08401919061017a90610650565b80601f01602080910402602001604051908101604052809291908181526020018280546101a690610650565b80156101f35780601f106101c8576101008083540402835291602001916101f3565b820191906000526020600020905b8154815290600101906020018083116101d657829003601f168201915b5050509190925250505060408101519091506001600160a01b03166102335760405163b21a3f0560e01b8152600481018390526024015b60405180910390fd5b919050565b6000851580610245575084155b156102635760405163f1ae58d560e01b815260040160405180910390fd5b336000908152600160209081526040808320898452909152902054801561029f576040516272955960e81b81526004810182905260240161022a565b826102008111156102c6576040516310940ba160e01b81526004810182905260240161022a565b8515610336576000868152602081905260409020600201546001600160a01b0316806103085760405163b21a3f0560e01b81526004810188905260240161022a565b6001600160a01b038116331461033457604051631e7b380760e11b81526004810188905260240161022a565b505b6040805133602082015290810189905246606082015230608082015260a00160405160208183030381529060405280519060200120925060004290506040518060c001604052808a8152602001898152602001336001600160a01b031681526020018267ffffffffffffffff16815260200188815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505086815260208181526040918290208451815590840151600182015590830151600282018054606086015167ffffffffffffffff16600160a01b026001600160e01b03199091166001600160a01b03909316929092179190911790556080830151600382015560a0830151909150600482019061046290826106ef565b50503360008181526001602090815260408083208e845290915290819020879055518b925086907f05db85b3b7ab9c7d64d036e7f86b61c930892fee54895bc93fdb189c4960d077906104be908d908d9088908e908e906107ae565b60405180910390a450505095945050505050565b6000602082840312156104e457600080fd5b5035919050565b60208152815160208201526020820151604082015260018060a01b03604083015116606082015267ffffffffffffffff6060830151166080820152608082015160a0820152600060a083015160c08084015280518060e085015260005b81811015610566576020818401810151610100878401015201610548565b5060006101008286010152610100601f19601f8301168501019250505092915050565b6000806040838503121561059c57600080fd5b82356001600160a01b03811681146105b357600080fd5b946020939093013593505050565b6000806000806000608086880312156105d957600080fd5b853594506020860135935060408601359250606086013567ffffffffffffffff81111561060557600080fd5b8601601f8101881361061657600080fd5b803567ffffffffffffffff81111561062d57600080fd5b88602082840101111561063f57600080fd5b959894975092955050506020019190565b600181811c9082168061066457607f821691505b60208210810361068457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b601f8211156106ea57806000526020600020601f840160051c810160208510156106c75750805b601f840160051c820191505b818110156106e757600081556001016106d3565b50505b505050565b815167ffffffffffffffff8111156107095761070961068a565b61071d816107178454610650565b846106a0565b6020601f82116001811461075157600083156107395750848201515b600019600385901b1c1916600184901b1784556106e7565b600084815260208120601f198516915b828110156107815787850151825560209485019460019092019101610761565b508482101561079f5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b85815284602082015267ffffffffffffffff8416604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f1916010194935050505056fea2646970667358221220c736ba871716ede02c132b656d450015f408623ba850cfb8468a227abe13670b64736f6c634300081e0033"
}
