{
  "_format": "hh-sol-artifact-1",
  "contractName": "MerkleDistributorTestInterface",
  "sourceName": "src/contracts/test/MerkleDistributorTestInterface.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "merkleRoot",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AlreadyClaimed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ClaimingMoreThanMaximum",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidNativeTokenValue",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidProof",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OnlyOwnerCanClaimPartially",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "enum ClaimingInterface.ClaimType",
          "name": "claimType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "claimant",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimableAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimedAmount",
          "type": "uint256"
        }
      ],
      "name": "Claimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "enum ClaimingInterface.ClaimType",
          "name": "claimType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "payer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "claimant",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "nativeTokenAmount",
          "type": "uint256"
        }
      ],
      "name": "HasClaimed",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        },
        {
          "internalType": "enum ClaimingInterface.ClaimType",
          "name": "claimType",
          "type": "uint8"
        },
        {
          "internalType": "address",
          "name": "claimant",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "claimableAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "claimedAmount",
          "type": "uint256"
        },
        {
          "internalType": "bytes32[]",
          "name": "merkleProof",
          "type": "bytes32[]"
        }
      ],
      "name": "claim",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "indices",
          "type": "uint256[]"
        },
        {
          "internalType": "enum ClaimingInterface.ClaimType[]",
          "name": "claimTypes",
          "type": "uint8[]"
        },
        {
          "internalType": "address[]",
          "name": "claimants",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "claimableAmounts",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "claimedAmounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes32[][]",
          "name": "merkleProofs",
          "type": "bytes32[][]"
        },
        {
          "internalType": "uint256[]",
          "name": "sentNativeTokens",
          "type": "uint256[]"
        }
      ],
      "name": "claimMany",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum ClaimingInterface.ClaimType",
          "name": "claim",
          "type": "uint8"
        }
      ],
      "name": "claimName",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "isClaimed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "merkleRoot",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b5060405161100238038061100283398101604081905261002f91610037565b608052610050565b60006020828403121561004957600080fd5b5051919050565b608051610f9161007160003960008181607101526106450152610f916000f3fe60806040526004361061005a5760003560e01c80639519f828116100435780639519f828146100d35780639e34070f146100e8578063f3507dab1461013857600080fd5b80632eb4a7ab1461005f5780632f82bfe2146100a6575b600080fd5b34801561006b57600080fd5b506100937f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b3480156100b257600080fd5b506100c66100c1366004610833565b61014b565b60405161009d9190610855565b6100e66100e1366004610938565b61037d565b005b3480156100f457600080fd5b506101286101033660046109ba565b600881901c600090815260208190526040902054600160ff9092169190911b16151590565b604051901515815260200161009d565b6100e6610146366004610b42565b610396565b6060600082600581111561016157610161610cad565b14156101a057505060408051808201909152600781527f41697264726f7000000000000000000000000000000000000000000000000000602082015290565b60018260058111156101b4576101b4610cad565b14156101f357505060408051808201909152600981527f476e6f4f7074696f6e0000000000000000000000000000000000000000000000602082015290565b600282600581111561020757610207610cad565b141561024657505060408051808201909152600a81527f557365724f7074696f6e00000000000000000000000000000000000000000000602082015290565b600382600581111561025a5761025a610cad565b141561029957505060408051808201909152600881527f496e766573746f72000000000000000000000000000000000000000000000000602082015290565b60048260058111156102ad576102ad610cad565b14156102ec57505060408051808201909152600481527f5465616d00000000000000000000000000000000000000000000000000000000602082015290565b600582600581111561030057610300610cad565b141561033f57505060408051808201909152600781527f41647669736f7200000000000000000000000000000000000000000000000000602082015290565b505060408051808201909152600781527f696e76616c696400000000000000000000000000000000000000000000000000602082015290565b919050565b61038d87878787878787346104f6565b50505050505050565b6000805b8d518110156104ad578383828181106103b5576103b5610cdc565b90506020020135826103c79190610d3a565b915061049b8e82815181106103de576103de610cdc565b60200260200101518e83815181106103f8576103f8610cdc565b60200260200101518e8e8581811061041257610412610cdc565b90506020020160208101906104279190610d52565b8d8d8681811061043957610439610cdc565b905060200201358c8c8781811061045257610452610cdc565b905060200201358b8b8881811061046b5761046b610cdc565b905060200281019061047d9190610d6d565b8b8b8a81811061048f5761048f610cdc565b905060200201356104f6565b806104a581610dd5565b91505061039a565b503481146104e7576040517f46459bbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050505050505050565b600888901c600090815260208190526040902054600160ff8a161b1615610549576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84841115610583576040517f28de1fc900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84841080156105a857503373ffffffffffffffffffffffffffffffffffffffff871614155b156105df576040517fb052d0e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000888888886040516020016105f89493929190610e0e565b6040516020818303038152906040528051906020012090506106708484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000925085915061071c9050565b6106a6576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600889901c60009081526020819052604090208054600160ff8c161b1790556106d28833898886610732565b7fd436e9973d1e44d40db4d4119e3c773cadb1323b263981968c14d3d191c0e1488989898989604051610709959493929190610ecb565b60405180910390a1505050505050505050565b6000826107298584610778565b14949350505050565b7f4f2901723fe3a47ad38bd02a725714e601bf12e24dc5f858af8c3ba44344a4258585858585604051610769959493929190610f11565b60405180910390a15050505050565b600081815b845181101561081c57600085828151811061079a5761079a610cdc565b602002602001015190508083116107dc576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250610809565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b508061081481610dd5565b91505061077d565b509392505050565b80356006811061037857600080fd5b60006020828403121561084557600080fd5b61084e82610824565b9392505050565b600060208083528351808285015260005b8181101561088257858101830151858201604001528201610866565b81811115610894576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461037857600080fd5b60008083601f8401126108fe57600080fd5b50813567ffffffffffffffff81111561091657600080fd5b6020830191508360208260051b850101111561093157600080fd5b9250929050565b600080600080600080600060c0888a03121561095357600080fd5b8735965061096360208901610824565b9550610971604089016108c8565b9450606088013593506080880135925060a088013567ffffffffffffffff81111561099b57600080fd5b6109a78a828b016108ec565b989b979a50959850939692959293505050565b6000602082840312156109cc57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610a4957610a496109d3565b604052919050565b600067ffffffffffffffff821115610a6b57610a6b6109d3565b5060051b60200190565b600082601f830112610a8657600080fd5b81356020610a9b610a9683610a51565b610a02565b82815260059290921b84018101918181019086841115610aba57600080fd5b8286015b84811015610ad55780358352918301918301610abe565b509695505050505050565b600082601f830112610af157600080fd5b81356020610b01610a9683610a51565b82815260059290921b84018101918181019086841115610b2057600080fd5b8286015b84811015610ad557610b3581610824565b8352918301918301610b24565b60008060008060008060008060008060008060e08d8f031215610b6457600080fd5b67ffffffffffffffff8d351115610b7a57600080fd5b610b878e8e358f01610a75565b9b5067ffffffffffffffff60208e01351115610ba257600080fd5b610bb28e60208f01358f01610ae0565b9a5067ffffffffffffffff60408e01351115610bcd57600080fd5b610bdd8e60408f01358f016108ec565b909a50985067ffffffffffffffff60608e01351115610bfb57600080fd5b610c0b8e60608f01358f016108ec565b909850965067ffffffffffffffff60808e01351115610c2957600080fd5b610c398e60808f01358f016108ec565b909650945067ffffffffffffffff60a08e01351115610c5757600080fd5b610c678e60a08f01358f016108ec565b909450925067ffffffffffffffff60c08e01351115610c8557600080fd5b610c958e60c08f01358f016108ec565b81935080925050509295989b509295989b509295989b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610d4d57610d4d610d0b565b500190565b600060208284031215610d6457600080fd5b61084e826108c8565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610da257600080fd5b83018035915067ffffffffffffffff821115610dbd57600080fd5b6020019150600581901b360382131561093157600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610e0757610e07610d0b565b5060010190565b848152600060068510610e4a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b5060f89390931b602084015260609190911b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660218301526035820152605501919050565b60068110610ec7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b85815260a08101610edf6020830187610e90565b73ffffffffffffffffffffffffffffffffffffffff851660408301528360608301528260808301529695505050505050565b60a08101610f1f8288610e90565b73ffffffffffffffffffffffffffffffffffffffff8087166020840152808616604084015250836060830152826080830152969550505050505056fea264697066735822122047b418da79de8aceb9d73c64bb34901ca7af56a0b80bd2be1e6d745b91babac564736f6c634300080a0033",
  "deployedBytecode": "0x60806040526004361061005a5760003560e01c80639519f828116100435780639519f828146100d35780639e34070f146100e8578063f3507dab1461013857600080fd5b80632eb4a7ab1461005f5780632f82bfe2146100a6575b600080fd5b34801561006b57600080fd5b506100937f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b3480156100b257600080fd5b506100c66100c1366004610833565b61014b565b60405161009d9190610855565b6100e66100e1366004610938565b61037d565b005b3480156100f457600080fd5b506101286101033660046109ba565b600881901c600090815260208190526040902054600160ff9092169190911b16151590565b604051901515815260200161009d565b6100e6610146366004610b42565b610396565b6060600082600581111561016157610161610cad565b14156101a057505060408051808201909152600781527f41697264726f7000000000000000000000000000000000000000000000000000602082015290565b60018260058111156101b4576101b4610cad565b14156101f357505060408051808201909152600981527f476e6f4f7074696f6e0000000000000000000000000000000000000000000000602082015290565b600282600581111561020757610207610cad565b141561024657505060408051808201909152600a81527f557365724f7074696f6e00000000000000000000000000000000000000000000602082015290565b600382600581111561025a5761025a610cad565b141561029957505060408051808201909152600881527f496e766573746f72000000000000000000000000000000000000000000000000602082015290565b60048260058111156102ad576102ad610cad565b14156102ec57505060408051808201909152600481527f5465616d00000000000000000000000000000000000000000000000000000000602082015290565b600582600581111561030057610300610cad565b141561033f57505060408051808201909152600781527f41647669736f7200000000000000000000000000000000000000000000000000602082015290565b505060408051808201909152600781527f696e76616c696400000000000000000000000000000000000000000000000000602082015290565b919050565b61038d87878787878787346104f6565b50505050505050565b6000805b8d518110156104ad578383828181106103b5576103b5610cdc565b90506020020135826103c79190610d3a565b915061049b8e82815181106103de576103de610cdc565b60200260200101518e83815181106103f8576103f8610cdc565b60200260200101518e8e8581811061041257610412610cdc565b90506020020160208101906104279190610d52565b8d8d8681811061043957610439610cdc565b905060200201358c8c8781811061045257610452610cdc565b905060200201358b8b8881811061046b5761046b610cdc565b905060200281019061047d9190610d6d565b8b8b8a81811061048f5761048f610cdc565b905060200201356104f6565b806104a581610dd5565b91505061039a565b503481146104e7576040517f46459bbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050505050505050565b600888901c600090815260208190526040902054600160ff8a161b1615610549576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84841115610583576040517f28de1fc900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84841080156105a857503373ffffffffffffffffffffffffffffffffffffffff871614155b156105df576040517fb052d0e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000888888886040516020016105f89493929190610e0e565b6040516020818303038152906040528051906020012090506106708484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000925085915061071c9050565b6106a6576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600889901c60009081526020819052604090208054600160ff8c161b1790556106d28833898886610732565b7fd436e9973d1e44d40db4d4119e3c773cadb1323b263981968c14d3d191c0e1488989898989604051610709959493929190610ecb565b60405180910390a1505050505050505050565b6000826107298584610778565b14949350505050565b7f4f2901723fe3a47ad38bd02a725714e601bf12e24dc5f858af8c3ba44344a4258585858585604051610769959493929190610f11565b60405180910390a15050505050565b600081815b845181101561081c57600085828151811061079a5761079a610cdc565b602002602001015190508083116107dc576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250610809565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b508061081481610dd5565b91505061077d565b509392505050565b80356006811061037857600080fd5b60006020828403121561084557600080fd5b61084e82610824565b9392505050565b600060208083528351808285015260005b8181101561088257858101830151858201604001528201610866565b81811115610894576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461037857600080fd5b60008083601f8401126108fe57600080fd5b50813567ffffffffffffffff81111561091657600080fd5b6020830191508360208260051b850101111561093157600080fd5b9250929050565b600080600080600080600060c0888a03121561095357600080fd5b8735965061096360208901610824565b9550610971604089016108c8565b9450606088013593506080880135925060a088013567ffffffffffffffff81111561099b57600080fd5b6109a78a828b016108ec565b989b979a50959850939692959293505050565b6000602082840312156109cc57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610a4957610a496109d3565b604052919050565b600067ffffffffffffffff821115610a6b57610a6b6109d3565b5060051b60200190565b600082601f830112610a8657600080fd5b81356020610a9b610a9683610a51565b610a02565b82815260059290921b84018101918181019086841115610aba57600080fd5b8286015b84811015610ad55780358352918301918301610abe565b509695505050505050565b600082601f830112610af157600080fd5b81356020610b01610a9683610a51565b82815260059290921b84018101918181019086841115610b2057600080fd5b8286015b84811015610ad557610b3581610824565b8352918301918301610b24565b60008060008060008060008060008060008060e08d8f031215610b6457600080fd5b67ffffffffffffffff8d351115610b7a57600080fd5b610b878e8e358f01610a75565b9b5067ffffffffffffffff60208e01351115610ba257600080fd5b610bb28e60208f01358f01610ae0565b9a5067ffffffffffffffff60408e01351115610bcd57600080fd5b610bdd8e60408f01358f016108ec565b909a50985067ffffffffffffffff60608e01351115610bfb57600080fd5b610c0b8e60608f01358f016108ec565b909850965067ffffffffffffffff60808e01351115610c2957600080fd5b610c398e60808f01358f016108ec565b909650945067ffffffffffffffff60a08e01351115610c5757600080fd5b610c678e60a08f01358f016108ec565b909450925067ffffffffffffffff60c08e01351115610c8557600080fd5b610c958e60c08f01358f016108ec565b81935080925050509295989b509295989b509295989b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610d4d57610d4d610d0b565b500190565b600060208284031215610d6457600080fd5b61084e826108c8565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610da257600080fd5b83018035915067ffffffffffffffff821115610dbd57600080fd5b6020019150600581901b360382131561093157600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610e0757610e07610d0b565b5060010190565b848152600060068510610e4a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b5060f89390931b602084015260609190911b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660218301526035820152605501919050565b60068110610ec7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b85815260a08101610edf6020830187610e90565b73ffffffffffffffffffffffffffffffffffffffff851660408301528360608301528260808301529695505050505050565b60a08101610f1f8288610e90565b73ffffffffffffffffffffffffffffffffffffffff8087166020840152808616604084015250836060830152826080830152969550505050505056fea264697066735822122047b418da79de8aceb9d73c64bb34901ca7af56a0b80bd2be1e6d745b91babac564736f6c634300080a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
