{
  "_format": "hh-sol-artifact-1",
  "contractName": "CheckpointsFacetMock",
  "sourceName": "contracts/mocks/lifecycle/facets/CheckpointsFacetMock.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": "CheckpointNotReached",
      "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": [],
      "name": "START_CHECKPOINTID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "__msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "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"
        }
      ],
      "name": "enforceCheckpointNotReached",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "checkpointId",
          "type": "bytes32"
        }
      ],
      "name": "enforceCheckpointReached",
      "outputs": [],
      "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": "0x60a034606d57601f610bab38819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606d57516001600160a01b0381168103606d57608052604051610b229081610089823960805181818161087601526109d80152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c8063151bdba61461063b578063244c00be1461059157806331e66e1e1461050e5780633b149369146103c85780634bddd15c146103395780634f410a801461028e5780635b34eba014610225578063b4c6cf76146101cc5763deb4d7461461007f57600080fd5b346101c75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c7576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806100f06109c1565b925416911690810361019a57507f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b61012882826106ed565b61016c57816040917f099ea97db121bdf4a102e67113e27b6bb74713015b32a5f0e1c3ea0d44fb2953936000526020524282600020558151908152426020820152a1005b507f8e54d9090000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346101c75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c75760206040517f53544152540000000000000000000000000000000000000000000000000000008152f35b346101c75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c7577f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b6004356000526020526020604060002054604051908152f35b346101c75760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c7577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806102fc6109c1565b925416911690810361019a576103376024356004357f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b61074e565b005b346101c75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c757600435610395817f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b6106ed565b61039b57005b7f8e54d9090000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346101c75760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c75760043567ffffffffffffffff81116101c7576104179036906004016106bc565b60243567ffffffffffffffff81116101c7576104379036906004016106bc565b907fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806104776109c1565b925416911690810361019a57507f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b908284036104e45760005b8481106104b957005b806104de6104ca600193888a61070f565b356104d683888761070f565b35908661074e565b016104b0565b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b346101c75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c757604061054761085f565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346101c75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c7576004357f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b816000526020526040600020548015159081610630575b501561060357005b7fa7afbc520000000000000000000000000000000000000000000000000000000060005260045260246000fd5b9050421015826105fb565b346101c75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c7577f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b600435600052602052602060406000205480151590816106b1575b506040519015158152f35b9050421015826106a6565b9181601f840112156101c75782359167ffffffffffffffff83116101c7576020808501948460051b0101116101c757565b906000526020526040600020548015159081610707575090565b905042101590565b919081101561071f5760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9080600052816020526040600020546107aa578261076b57505050565b7f099ea97db121bdf4a102e67113e27b6bb74713015b32a5f0e1c3ea0d44fb2953926040928260005260205280836000205582519182526020820152a1565b7f33e962eb0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761081857604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126101c7575180151581036101c75790565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156109af5732331480156109b7575b6109af578033149081156108f2575b506108c1576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116101c75760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156109a357600091610974575b50386108b5565b610996915060203d60201161099c575b61098e81836107d7565b810190610847565b3861096d565b503d610984565b6040513d6000823e3d90fd5b506000903690565b50601836106108a6565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610add573233148015610ae2575b610add577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610a4c575b50610a4957503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156109a357600091610abe575b5038610a3f565b610ad7915060203d60201161099c5761098e81836107d7565b38610ab7565b503390565b5060183610610a0856fea26469706673582212204b08bedcec5147d01dc805d644a8b4e3a40dfeed5bd1cc5161b966b016ab0a8864736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c8063151bdba61461063b578063244c00be1461059157806331e66e1e1461050e5780633b149369146103c85780634bddd15c146103395780634f410a801461028e5780635b34eba014610225578063b4c6cf76146101cc5763deb4d7461461007f57600080fd5b346101c75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c7576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806100f06109c1565b925416911690810361019a57507f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b61012882826106ed565b61016c57816040917f099ea97db121bdf4a102e67113e27b6bb74713015b32a5f0e1c3ea0d44fb2953936000526020524282600020558151908152426020820152a1005b507f8e54d9090000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346101c75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c75760206040517f53544152540000000000000000000000000000000000000000000000000000008152f35b346101c75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c7577f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b6004356000526020526020604060002054604051908152f35b346101c75760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c7577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806102fc6109c1565b925416911690810361019a576103376024356004357f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b61074e565b005b346101c75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c757600435610395817f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b6106ed565b61039b57005b7f8e54d9090000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346101c75760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c75760043567ffffffffffffffff81116101c7576104179036906004016106bc565b60243567ffffffffffffffff81116101c7576104379036906004016106bc565b907fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806104776109c1565b925416911690810361019a57507f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b908284036104e45760005b8481106104b957005b806104de6104ca600193888a61070f565b356104d683888761070f565b35908661074e565b016104b0565b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b346101c75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c757604061054761085f565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346101c75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c7576004357f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b816000526020526040600020548015159081610630575b501561060357005b7fa7afbc520000000000000000000000000000000000000000000000000000000060005260045260246000fd5b9050421015826105fb565b346101c75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c7577f0def758eb96c12015155889b8e63d1cb5c0dbce5585bbdf9d99ea353f56c716b600435600052602052602060406000205480151590816106b1575b506040519015158152f35b9050421015826106a6565b9181601f840112156101c75782359167ffffffffffffffff83116101c7576020808501948460051b0101116101c757565b906000526020526040600020548015159081610707575090565b905042101590565b919081101561071f5760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9080600052816020526040600020546107aa578261076b57505050565b7f099ea97db121bdf4a102e67113e27b6bb74713015b32a5f0e1c3ea0d44fb2953926040928260005260205280836000205582519182526020820152a1565b7f33e962eb0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761081857604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126101c7575180151581036101c75790565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156109af5732331480156109b7575b6109af578033149081156108f2575b506108c1576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116101c75760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156109a357600091610974575b50386108b5565b610996915060203d60201161099c575b61098e81836107d7565b810190610847565b3861096d565b503d610984565b6040513d6000823e3d90fd5b506000903690565b50601836106108a6565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610add573233148015610ae2575b610add577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610a4c575b50610a4957503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156109a357600091610abe575b5038610a3f565b610ad7915060203d60201161099c5761098e81836107d7565b38610ab7565b503390565b5060183610610a0856fea26469706673582212204b08bedcec5147d01dc805d644a8b4e3a40dfeed5bd1cc5161b966b016ab0a8864736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
