{
  "_format": "hh-sol-artifact-1",
  "contractName": "CheckpointsFacet",
  "sourceName": "contracts/lifecycle/facets/CheckpointsFacet.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "checkpointId",
          "type": "bytes32"
        }
      ],
      "name": "CheckpointAlreadySet",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "checkpointId",
          "type": "bytes32"
        }
      ],
      "name": "CheckpointReached",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InconsistentArrayLengths",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotContractOwner",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "checkpointId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "CheckpointSet",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "checkpointIds",
          "type": "bytes32[]"
        },
        {
          "internalType": "uint256[]",
          "name": "timestamps",
          "type": "uint256[]"
        }
      ],
      "name": "batchSetCheckpoint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "checkpointId",
          "type": "bytes32"
        }
      ],
      "name": "checkpoint",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "checkpointId",
          "type": "bytes32"
        }
      ],
      "name": "checkpointReached",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "checkpointId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "setCheckpoint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "checkpointId",
          "type": "bytes32"
        }
      ],
      "name": "triggerCheckpoint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a034606657601f6107ea38819003918201601f19168301916001600160401b03831184841017606b57808492602094604052833981010312606657516001600160a01b038116810360665760805260405161076890816100828239608051816105a50152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c8063151bdba6146104145780633b149369146102ce5780634f410a80146102235780635b34eba0146101ba5763deb4d7461461005357600080fd5b346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806100c461058e565b925416911690810361018857507f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b8160005280602052604060002054801515908161017d575b5061014f57816040917f099ea97db121bdf4a102e67113e27b6bb74713015b32a5f0e1c3ea0d44fb2953936000526020524282600020558151908152426020820152a1005b507f8e54d9090000000000000000000000000000000000000000000000000000000060005260045260246000fd5b90504210153861010a565b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5577f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b6004356000526020526020604060002054604051908152f35b346101b55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061029161058e565b9254169116908103610188576102cc6024356004357f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b610505565b005b346101b55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b55760043567ffffffffffffffff81116101b55761031d903690600401610495565b60243567ffffffffffffffff81116101b55761033d903690600401610495565b907fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061037d61058e565b925416911690810361018857507f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b908284036103ea5760005b8481106103bf57005b806103e46103d0600193888a6104c6565b356103dc8388876104c6565b359086610505565b016103b6565b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5577f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b6004356000526020526020604060002054801515908161048a575b506040519015158152f35b90504210158261047f565b9181601f840112156101b55782359167ffffffffffffffff83116101b5576020808501948460051b0101116101b557565b91908110156104d65760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b908060005281602052604060002054610561578261052257505050565b7f099ea97db121bdf4a102e67113e27b6bb74713015b32a5f0e1c3ea0d44fb2953926040928260005260205280836000205582519182526020820152a1565b7f33e962eb0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610723573233148015610728575b610723577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610619575b5061061657503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa90811561071757600091610674575b503861060c565b60203d602011610710575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f820116820182811067ffffffffffffffff8211176106e3576020918391604052810103126106df57519081151582036106dc57503861066d565b80fd5b5080fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b503d61067f565b6040513d6000823e3d90fd5b503390565b50601836106105d556fea26469706673582212202420c784ccea8090cccb0008efca8b0c9d5a457342c94a4cea09b9b4071daaee64736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c8063151bdba6146104145780633b149369146102ce5780634f410a80146102235780635b34eba0146101ba5763deb4d7461461005357600080fd5b346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806100c461058e565b925416911690810361018857507f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b8160005280602052604060002054801515908161017d575b5061014f57816040917f099ea97db121bdf4a102e67113e27b6bb74713015b32a5f0e1c3ea0d44fb2953936000526020524282600020558151908152426020820152a1005b507f8e54d9090000000000000000000000000000000000000000000000000000000060005260045260246000fd5b90504210153861010a565b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5577f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b6004356000526020526020604060002054604051908152f35b346101b55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061029161058e565b9254169116908103610188576102cc6024356004357f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b610505565b005b346101b55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b55760043567ffffffffffffffff81116101b55761031d903690600401610495565b60243567ffffffffffffffff81116101b55761033d903690600401610495565b907fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061037d61058e565b925416911690810361018857507f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b908284036103ea5760005b8481106103bf57005b806103e46103d0600193888a6104c6565b356103dc8388876104c6565b359086610505565b016103b6565b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b5577f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b6004356000526020526020604060002054801515908161048a575b506040519015158152f35b90504210158261047f565b9181601f840112156101b55782359167ffffffffffffffff83116101b5576020808501948460051b0101116101b557565b91908110156104d65760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b908060005281602052604060002054610561578261052257505050565b7f099ea97db121bdf4a102e67113e27b6bb74713015b32a5f0e1c3ea0d44fb2953926040928260005260205280836000205582519182526020820152a1565b7f33e962eb0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610723573233148015610728575b610723577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610619575b5061061657503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa90811561071757600091610674575b503861060c565b60203d602011610710575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f820116820182811067ffffffffffffffff8211176106e3576020918391604052810103126106df57519081151582036106dc57503861066d565b80fd5b5080fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b503d61067f565b6040513d6000823e3d90fd5b503390565b50601836106105d556fea26469706673582212202420c784ccea8090cccb0008efca8b0c9d5a457342c94a4cea09b9b4071daaee64736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
