{
  "_format": "hh-sol-artifact-1",
  "contractName": "CumulativeMerkleClaimMock",
  "sourceName": "contracts/mocks/payment/CumulativeMerkleClaimMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "claimData",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "AlreadyClaimed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "claimData",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "InvalidProof",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotContractOwner",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotPaused",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Paused",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Distributed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "root",
          "type": "bytes32"
        }
      ],
      "name": "MerkleRootSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Pause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "root",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "claimData",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "PayoutClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Unpause",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "claimData",
          "type": "bytes"
        },
        {
          "internalType": "bytes32[]",
          "name": "proof",
          "type": "bytes32[]"
        }
      ],
      "name": "claimPayout",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "claimed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "nonce",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "root",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "merkleRoot",
          "type": "bytes32"
        }
      ],
      "name": "setMerkleRoot",
      "outputs": [],
      "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": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6080806040523461010657336100a7575b6307f5828d60e41b6000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020526040600020600160ff19825416179055600160ff19600080516020610d2c833981519152541617600080516020610d2c833981519152557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625600080a1610c20908161010c8239f35b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc80546001600160a01b0319163390811790915560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3610010565b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a714610a305780633f4ba83a1461094a5780635c975abb146108ea5780637cb647591461079b5780638456cb59146106855780638da5cb5b14610614578063affed0e0146105d8578063cc3c0f0614610589578063ebf0c7171461054d578063edcdebcc146101b05763f2fde38b1461009557600080fd5b346101ab5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576100cc610aa0565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc9081549173ffffffffffffffffffffffffffffffffffffffff83169182330361017d5773ffffffffffffffffffffffffffffffffffffffff169283830361013057005b7fffffffffffffffffffffffff000000000000000000000000000000000000000016831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f2ef4875e000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b600080fd5b346101ab5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576101e7610aa0565b60243567ffffffffffffffff81116101ab57366023820112156101ab5780600401359067ffffffffffffffff82116101ab576024810191808201923660248501116101ab576044359267ffffffffffffffff84116101ab57366023850112156101ab5783600401359467ffffffffffffffff86116101ab573660248760051b870101116101ab5760ff7f0186a05f63b1553398ad5ea3233c0ce68b8c9eecc47717f123c5c2b42fbd6d9e541661052357600154936000549060405195602087019673ffffffffffffffffffffffffffffffffffffffff8b16977fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008c60601b168152838860348401377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f60348487810187838201520301808552011682019180831067ffffffffffffffff8411176104f457826040525190209081600052600260205260ff604060002054166104bf575060009a815b8b8d101561039e5760408d60019260248e60009360051b01013590818110600014610392578252602052205b9c019b61035e565b9082526020522061038a565b850361048257506024937f6a4408e44c908d501056e1ef88baf30a72467f3a181544a67a30cb14c8e8059888602098957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc98958c9560005260028b52604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905561043f604051938493604085526040850191610ac3565b908b8301520390a3030101126101ab577fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af916040918251918252356020820152a1005b87906104bb84866040519485947f91ebfb3100000000000000000000000000000000000000000000000000000000865260048601610b02565b0390fd5b806104bb84868f8c907f7fbf254700000000000000000000000000000000000000000000000000000000865260048601610b02565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f9e87fac80000000000000000000000000000000000000000000000000000000060005260046000fd5b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576020600054604051908152f35b346101ab5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576004356000526002602052602060ff604060002054166040519015158152f35b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576020600154604051908152f35b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab57602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc54339073ffffffffffffffffffffffffffffffffffffffff16810361076e577f0186a05f63b1553398ad5ea3233c0ce68b8c9eecc47717f123c5c2b42fbd6d9e60ff8154166105235760017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625600080a1005b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346101ab5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5460043590339073ffffffffffffffffffffffffffffffffffffffff16810361076e57507f0186a05f63b1553398ad5ea3233c0ce68b8c9eecc47717f123c5c2b42fbd6d9e9081549060ff8216156108c0577f42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006020931690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33600080a1806000556001805401600155604051908152a1005b7f6cd602010000000000000000000000000000000000000000000000000000000060005260046000fd5b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab57602060ff7f0186a05f63b1553398ad5ea3233c0ce68b8c9eecc47717f123c5c2b42fbd6d9e54166040519015158152f35b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc54339073ffffffffffffffffffffffffffffffffffffffff16810361076e577f0186a05f63b1553398ad5ea3233c0ce68b8c9eecc47717f123c5c2b42fbd6d9e805460ff8116156108c0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33600080a1005b346101ab5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036101ab57610a96602091610b3b565b6040519015158152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101ab57565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b9493929160409273ffffffffffffffffffffffffffffffffffffffff610b3693168752606060208801526060870191610ac3565b930152565b7fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114610be4577f01ffc9a7000000000000000000000000000000000000000000000000000000008114610bde576000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d60205260ff6040600020541690565b50600190565b5060009056fea26469706673582212206a602bb1395603aa60ff4def882b4b85e60ca5f0e942ef074ff0b0355a21828264736f6c634300081e00330186a05f63b1553398ad5ea3233c0ce68b8c9eecc47717f123c5c2b42fbd6d9e",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a714610a305780633f4ba83a1461094a5780635c975abb146108ea5780637cb647591461079b5780638456cb59146106855780638da5cb5b14610614578063affed0e0146105d8578063cc3c0f0614610589578063ebf0c7171461054d578063edcdebcc146101b05763f2fde38b1461009557600080fd5b346101ab5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576100cc610aa0565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc9081549173ffffffffffffffffffffffffffffffffffffffff83169182330361017d5773ffffffffffffffffffffffffffffffffffffffff169283830361013057005b7fffffffffffffffffffffffff000000000000000000000000000000000000000016831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f2ef4875e000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b600080fd5b346101ab5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576101e7610aa0565b60243567ffffffffffffffff81116101ab57366023820112156101ab5780600401359067ffffffffffffffff82116101ab576024810191808201923660248501116101ab576044359267ffffffffffffffff84116101ab57366023850112156101ab5783600401359467ffffffffffffffff86116101ab573660248760051b870101116101ab5760ff7f0186a05f63b1553398ad5ea3233c0ce68b8c9eecc47717f123c5c2b42fbd6d9e541661052357600154936000549060405195602087019673ffffffffffffffffffffffffffffffffffffffff8b16977fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008c60601b168152838860348401377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f60348487810187838201520301808552011682019180831067ffffffffffffffff8411176104f457826040525190209081600052600260205260ff604060002054166104bf575060009a815b8b8d101561039e5760408d60019260248e60009360051b01013590818110600014610392578252602052205b9c019b61035e565b9082526020522061038a565b850361048257506024937f6a4408e44c908d501056e1ef88baf30a72467f3a181544a67a30cb14c8e8059888602098957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc98958c9560005260028b52604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905561043f604051938493604085526040850191610ac3565b908b8301520390a3030101126101ab577fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af916040918251918252356020820152a1005b87906104bb84866040519485947f91ebfb3100000000000000000000000000000000000000000000000000000000865260048601610b02565b0390fd5b806104bb84868f8c907f7fbf254700000000000000000000000000000000000000000000000000000000865260048601610b02565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f9e87fac80000000000000000000000000000000000000000000000000000000060005260046000fd5b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576020600054604051908152f35b346101ab5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576004356000526002602052602060ff604060002054166040519015158152f35b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576020600154604051908152f35b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab57602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc54339073ffffffffffffffffffffffffffffffffffffffff16810361076e577f0186a05f63b1553398ad5ea3233c0ce68b8c9eecc47717f123c5c2b42fbd6d9e60ff8154166105235760017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625600080a1005b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346101ab5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5460043590339073ffffffffffffffffffffffffffffffffffffffff16810361076e57507f0186a05f63b1553398ad5ea3233c0ce68b8c9eecc47717f123c5c2b42fbd6d9e9081549060ff8216156108c0577f42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006020931690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33600080a1806000556001805401600155604051908152a1005b7f6cd602010000000000000000000000000000000000000000000000000000000060005260046000fd5b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab57602060ff7f0186a05f63b1553398ad5ea3233c0ce68b8c9eecc47717f123c5c2b42fbd6d9e54166040519015158152f35b346101ab5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc54339073ffffffffffffffffffffffffffffffffffffffff16810361076e577f0186a05f63b1553398ad5ea3233c0ce68b8c9eecc47717f123c5c2b42fbd6d9e805460ff8116156108c0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33600080a1005b346101ab5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ab576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036101ab57610a96602091610b3b565b6040519015158152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101ab57565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b9493929160409273ffffffffffffffffffffffffffffffffffffffff610b3693168752606060208801526060870191610ac3565b930152565b7fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114610be4577f01ffc9a7000000000000000000000000000000000000000000000000000000008114610bde576000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d60205260ff6040600020541690565b50600190565b5060009056fea26469706673582212206a602bb1395603aa60ff4def882b4b85e60ca5f0e942ef074ff0b0355a21828264736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
