{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TYPEHASH_CLAIM","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TYPEHASH_COMMIT","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TYPEHASH_REFUND","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"checkCommitmentSignature","inputs":[{"name":"preimageHash","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"claimAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"preimage","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"refundAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"preimage","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"claimAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"preimage","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"refundAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"preimage","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"claimAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"preimages","type":"bytes32[]","internalType":"bytes32[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"refundAddresses","type":"address[]","internalType":"address[]"},{"name":"timelocks","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"entries","type":"tuple[]","internalType":"struct EtherSwap.BatchClaimEntry[]","components":[{"name":"preimage","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"refundAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hashValues","inputs":[{"name":"preimageHash","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"claimAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"lock","inputs":[{"name":"preimageHash","type":"bytes32","internalType":"bytes32"},{"name":"claimAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lock","inputs":[{"name":"preimageHash","type":"bytes32","internalType":"bytes32"},{"name":"claimAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lockPrepayMinerfee","inputs":[{"name":"preimageHash","type":"bytes32","internalType":"bytes32"},{"name":"claimAddress","type":"address","internalType":"address payable"},{"name":"timelock","type":"uint256","internalType":"uint256"},{"name":"prepayAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"refund","inputs":[{"name":"preimageHash","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"claimAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"refund","inputs":[{"name":"preimageHash","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"claimAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"refundCooperative","inputs":[{"name":"preimageHash","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"claimAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"refundCooperative","inputs":[{"name":"preimageHash","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"claimAddress","type":"address","internalType":"address"},{"name":"timelock","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swaps","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"event","name":"Claim","inputs":[{"name":"preimageHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"preimage","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Lockup","inputs":[{"name":"preimageHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"claimAddress","type":"address","indexed":true,"internalType":"address"},{"name":"refundAddress","type":"address","indexed":true,"internalType":"address"},{"name":"timelock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Refund","inputs":[{"name":"preimageHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"CommitmentCannotBeClaimedAsSwap","inputs":[]},{"type":"error","name":"EtherTransferFailed","inputs":[]},{"type":"error","name":"InvalidPrepayAmount","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"SwapAlreadyExists","inputs":[]},{"type":"error","name":"SwapNotFound","inputs":[]},{"type":"error","name":"SwapNotTimedOut","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]}],"bytecode":{"object":"0x7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60c09081527f0f435efbd794bc89b372127f0e96dcc927b729642a259c9b4dcbab48b107caec60e0527fe455bf8ea6e7463a1046a0b52804526e119b4bf5136279614e0b1e8e296a4e2d610100524661012052306101405260a08080526101606040529020608052348015610093575f5ffd5b506080516117ff6100c15f395f81816101ea01528181610562015281816106f30152610c0101526117ff5ff3fe60806040526004361061016d575f3560e01c8063a9ab4d5b116100c6578063eb84e7f21161007c578063fb35dd9611610057578063fb35dd9614610467578063fe237d4514610486578063ffa1ad74146104a5575f5ffd5b8063eb84e7f2146103e7578063ebb7af9214610415578063f3382d5714610448575f5ffd5b8063c2c3a8c9116100ac578063c2c3a8c91461038a578063c3c37fbc146103a9578063cd413efa146103c8575f5ffd5b8063a9ab4d5b14610338578063b2b78df81461036b575f5ffd5b806336504721116101265780636fa4ae60116101015780636fa4ae60146102d1578063799f212b146102e45780638b2f8f82146102f7575f5ffd5b8063365047211461025e5780635073c2771461027d57806354fd4d50146102b0575f5ffd5b806335cd4ccb1161015657806335cd4ccb146101ba5780633644e515146101d95780633648a8071461021a575f5ffd5b80630685d21e146101715780630899146b146101a5575b5f5ffd5b34801561017c575f5ffd5b5061019061018b366004611356565b6104b9565b60405190151581526020015b60405180910390f35b6101b86101b33660046113c9565b610665565b005b3480156101c5575f5ffd5b506101b86101d43660046113fe565b610677565b3480156101e4575f5ffd5b5061020c7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161019c565b348015610225575f5ffd5b5061023961023436600461143a565b61068a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019c565b348015610269575f5ffd5b506101b861027836600461149b565b610816565b348015610288575f5ffd5b5061020c7f09a36cedee5cdca9c8804bc3bd501c303082427c9156e7b1f46a65c28e17ce5881565b3480156102bb575f5ffd5b5060065b60405160ff909116815260200161019c565b6101b86102df3660046114e9565b610864565b6101b86102f2366004611523565b6108bd565b348015610302575f5ffd5b5061020c61031136600461149b565b604080519586526020860194909452928401919091526060830152608082015260a0902090565b348015610343575f5ffd5b5061020c7fb58a7c79b5c8052bb2d380096e39f2ed848c68cdd21cb69f6ab5152ade26292681565b348015610376575f5ffd5b506101b8610385366004611356565b6108ca565b348015610395575f5ffd5b506101b86103a43660046115a0565b6108ee565b3480156103b4575f5ffd5b506101b86103c33660046113fe565b61099d565b3480156103d3575f5ffd5b506101b86103e236600461149b565b6109a6565b3480156103f2575f5ffd5b5061019061040136600461166e565b5f6020819052908152604090205460ff1681565b348015610420575f5ffd5b5061020c7fad247288102f13699d9a6cafb9cfb8fce14f10334c0f638ba03889ab655fc6e681565b348015610453575f5ffd5b506101b8610462366004611685565b6109bd565b348015610472575f5ffd5b506101b8610481366004611356565b610b61565b348015610491575f5ffd5b506101b86104a036600461143a565b610d76565b3480156104b0575f5ffd5b506102bf600681565b604080517f09a36cedee5cdca9c8804bc3bd501c303082427c9156e7b1f46a65c28e17ce586020808301919091528183018b9052606082018a905273ffffffffffffffffffffffffffffffffffffffff8981166080840152881660a083015260c08083018890528351808403909101815260e0830190935282519201919091207f19010000000000000000000000000000000000000000000000000000000000006101008301527f00000000000000000000000000000000000000000000000000000000000000006101028301526101228201525f90819060019061014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201205f84529083018083525260ff881690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015610611573d5f5f3e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff908116908916149250505098975050505050505050565b6106728334843385610d8f565b505050565b6106848484843385610816565b50505050565b604080517fad247288102f13699d9a6cafb9cfb8fce14f10334c0f638ba03889ab655fc6e660208201529081018890526060810187905273ffffffffffffffffffffffffffffffffffffffff8616608082015260a081018590523360c08201525f9081906001907f00000000000000000000000000000000000000000000000000000000000000009060e0016040516020818303038152906040528051906020012060405160200161076e9291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201205f84529083018083525260ff881690820152606081018690526080810185905260a0016020604051602081039080840390855afa1580156107e7573d5f5f3e3d5ffd5b5050506020604051035190506108008989838a8a610ecb565b61080a338961102f565b98975050505050505050565b43811115610850576040517f2782367700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61085d85858585856110c5565b5050505050565b80341161089d576040517f8e7f710600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108b3846108ab83346116f6565b853386610d8f565b610684838261102f565b6106848434858585610d8f565b6108da8888888888888888611160565b6108e4868861102f565b5050505050505050565b5f8088815b818110156109855789898281811061090d5761090d611734565b9050602002013592506109798c8c8381811061092b5761092b611734565b9050602002013584338b8b8681811061094657610946611734565b905060200201602081019061095b9190611761565b8a8a8781811061096d5761096d611734565b90506020020135610ecb565b928201926001016108f3565b5050610991338361102f565b50505050505050505050565b61068484843385855b6109b38585858585610ecb565b61085d838561102f565b5f8082815b81811015610b55578585828181106109dc576109dc611734565b905060e002016020013592505f5f1b8686838181106109fd576109fd611734565b905060e0020160a0013514610ade57610ad9868683818110610a2157610a21611734565b905060e002015f01358433898986818110610a3e57610a3e611734565b905060e002016040016020810190610a569190611761565b8a8a87818110610a6857610a68611734565b905060e00201606001358b8b88818110610a8457610a84611734565b905060e002016080016020810190610a9c9190611783565b8c8c89818110610aae57610aae611734565b905060e0020160a001358d8d8a818110610aca57610aca611734565b905060e0020160c00135611160565b610b49565b610b49868683818110610af357610af3611734565b905060e002015f01358433898986818110610b1057610b10611734565b905060e002016040016020810190610b289190611761565b8a8a87818110610b3a57610b3a611734565b905060e0020160600135610ecb565b928201926001016109c2565b5050610684338361102f565b604080517fb58a7c79b5c8052bb2d380096e39f2ed848c68cdd21cb69f6ab5152ade2629266020808301919091528183018b9052606082018a905273ffffffffffffffffffffffffffffffffffffffff8916608083015260a08083018890528351808403909101815260c0830190935282519201919091207f190100000000000000000000000000000000000000000000000000000000000060e08301527f000000000000000000000000000000000000000000000000000000000000000060e28301526101028201525f9060019061012201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610cad573d5f5f3e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590610d2857508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610d5e576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d6b89898989896110c5565b505050505050505050565b610d868787873388888888610b61565b50505050505050565b5f8411610dc8576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518681526020808201879052818301869052606082018590526080820184905260a09091205f818152918290529190205460ff1615610e36576040517f734530ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055815187815290810184905273ffffffffffffffffffffffffffffffffffffffff858116929087169189917f15b4b8206809535e547317cd5cedc86cff6e7d203551f93701786ddaf14fd9f9910160405180910390a4505050505050565b5f600286604051602001610ee191815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610f199161179c565b602060405180830381855afa158015610f34573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610f5791906117b2565b905080610f90576040517f8b8dc8b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805182815260208101879052908101859052606081018490526080810183905260a09020610fbf816112d6565b5f818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055905188815283917f5664142af3dcfc3dc3de45a43f75c746bd1d8c11170a5037fdf98bdb35775137910160405180910390a250505050505050565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114611085576040519150601f19603f3d011682016040523d82523d5f602084013e61108a565b606091505b5050905080610672576040517f6747a28800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805186815260208101869052908101849052606081018390526080810182905260a090206110f4816112d6565b5f8181526020819052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555187917f3fbd469ec3a5ce074f975f76ce27e727ba21c99176917b97ae2e713695582a1291a2611158838661102f565b505050505050565b604080515f815260208101899052908101879052606081018690526080810185905260a0902061118f816112d6565b5f60028a6040516020016111a591815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526111dd9161179c565b602060405180830381855afa1580156111f8573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061121b91906117b2565b905061122d818a8a8a8a8a8a8a6104b9565b611263576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f828152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905590518b815282917f5664142af3dcfc3dc3de45a43f75c746bd1d8c11170a5037fdf98bdb35775137910160405180910390a250505050505050505050565b5f8181526020819052604090205460ff1661131d576040517f5ec69df000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461131d575f5ffd5b803560ff81168114611351575f5ffd5b919050565b5f5f5f5f5f5f5f5f610100898b03121561136e575f5ffd5b8835975060208901359650604089013561138781611320565b9550606089013561139781611320565b9450608089013593506113ac60a08a01611341565b979a969950949793969295929450505060c08201359160e0013590565b5f5f5f606084860312156113db575f5ffd5b8335925060208401356113ed81611320565b929592945050506040919091013590565b5f5f5f5f60808587031215611411575f5ffd5b8435935060208501359250604085013561142a81611320565b9396929550929360600135925050565b5f5f5f5f5f5f5f60e0888a031215611450575f5ffd5b8735965060208801359550604088013561146981611320565b94506060880135935061147e60808901611341565b9699959850939692959460a0840135945060c09093013592915050565b5f5f5f5f5f60a086880312156114af575f5ffd5b853594506020860135935060408601356114c881611320565b925060608601356114d881611320565b949793965091946080013592915050565b5f5f5f5f608085870312156114fc575f5ffd5b84359350602085013561150e81611320565b93969395505050506040820135916060013590565b5f5f5f5f60808587031215611536575f5ffd5b84359350602085013561154881611320565b9250604085013561142a81611320565b5f5f83601f840112611568575f5ffd5b50813567ffffffffffffffff81111561157f575f5ffd5b6020830191508360208260051b8501011115611599575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f6080898b0312156115b7575f5ffd5b883567ffffffffffffffff8111156115cd575f5ffd5b6115d98b828c01611558565b909950975050602089013567ffffffffffffffff8111156115f8575f5ffd5b6116048b828c01611558565b909750955050604089013567ffffffffffffffff811115611623575f5ffd5b61162f8b828c01611558565b909550935050606089013567ffffffffffffffff81111561164e575f5ffd5b61165a8b828c01611558565b999c989b5096995094979396929594505050565b5f6020828403121561167e575f5ffd5b5035919050565b5f5f60208385031215611696575f5ffd5b823567ffffffffffffffff8111156116ac575f5ffd5b8301601f810185136116bc575f5ffd5b803567ffffffffffffffff8111156116d2575f5ffd5b85602060e0830284010111156116e6575f5ffd5b6020919091019590945092505050565b8181038181111561172e577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611771575f5ffd5b813561177c81611320565b9392505050565b5f60208284031215611793575f5ffd5b61177c82611341565b5f82518060208501845e5f920191825250919050565b5f602082840312156117c2575f5ffd5b505191905056fea2646970667358221220af7bdd517125ac0501e499a96e4836a00fafe14dac4517f6312e7c7104189a2b64736f6c63430008210033","sourceMap":"1101:95:3:-:0;1077:247;273:25:57;;;1210:22:3;314:18:57;307:34;1246:14:3;357:18:57;350:34;1274:13:3;400:18:57;393:34;1309:4:3;443:19:57;436:61;156:25311:3;1077:247;;;245:19:57;156:25311:3;1077:247;1058:272;;-1:-1:-1;1014:316:3;156:25311;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061016d575f3560e01c8063a9ab4d5b116100c6578063eb84e7f21161007c578063fb35dd9611610057578063fb35dd9614610467578063fe237d4514610486578063ffa1ad74146104a5575f5ffd5b8063eb84e7f2146103e7578063ebb7af9214610415578063f3382d5714610448575f5ffd5b8063c2c3a8c9116100ac578063c2c3a8c91461038a578063c3c37fbc146103a9578063cd413efa146103c8575f5ffd5b8063a9ab4d5b14610338578063b2b78df81461036b575f5ffd5b806336504721116101265780636fa4ae60116101015780636fa4ae60146102d1578063799f212b146102e45780638b2f8f82146102f7575f5ffd5b8063365047211461025e5780635073c2771461027d57806354fd4d50146102b0575f5ffd5b806335cd4ccb1161015657806335cd4ccb146101ba5780633644e515146101d95780633648a8071461021a575f5ffd5b80630685d21e146101715780630899146b146101a5575b5f5ffd5b34801561017c575f5ffd5b5061019061018b366004611356565b6104b9565b60405190151581526020015b60405180910390f35b6101b86101b33660046113c9565b610665565b005b3480156101c5575f5ffd5b506101b86101d43660046113fe565b610677565b3480156101e4575f5ffd5b5061020c7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161019c565b348015610225575f5ffd5b5061023961023436600461143a565b61068a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019c565b348015610269575f5ffd5b506101b861027836600461149b565b610816565b348015610288575f5ffd5b5061020c7f09a36cedee5cdca9c8804bc3bd501c303082427c9156e7b1f46a65c28e17ce5881565b3480156102bb575f5ffd5b5060065b60405160ff909116815260200161019c565b6101b86102df3660046114e9565b610864565b6101b86102f2366004611523565b6108bd565b348015610302575f5ffd5b5061020c61031136600461149b565b604080519586526020860194909452928401919091526060830152608082015260a0902090565b348015610343575f5ffd5b5061020c7fb58a7c79b5c8052bb2d380096e39f2ed848c68cdd21cb69f6ab5152ade26292681565b348015610376575f5ffd5b506101b8610385366004611356565b6108ca565b348015610395575f5ffd5b506101b86103a43660046115a0565b6108ee565b3480156103b4575f5ffd5b506101b86103c33660046113fe565b61099d565b3480156103d3575f5ffd5b506101b86103e236600461149b565b6109a6565b3480156103f2575f5ffd5b5061019061040136600461166e565b5f6020819052908152604090205460ff1681565b348015610420575f5ffd5b5061020c7fad247288102f13699d9a6cafb9cfb8fce14f10334c0f638ba03889ab655fc6e681565b348015610453575f5ffd5b506101b8610462366004611685565b6109bd565b348015610472575f5ffd5b506101b8610481366004611356565b610b61565b348015610491575f5ffd5b506101b86104a036600461143a565b610d76565b3480156104b0575f5ffd5b506102bf600681565b604080517f09a36cedee5cdca9c8804bc3bd501c303082427c9156e7b1f46a65c28e17ce586020808301919091528183018b9052606082018a905273ffffffffffffffffffffffffffffffffffffffff8981166080840152881660a083015260c08083018890528351808403909101815260e0830190935282519201919091207f19010000000000000000000000000000000000000000000000000000000000006101008301527f00000000000000000000000000000000000000000000000000000000000000006101028301526101228201525f90819060019061014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201205f84529083018083525260ff881690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015610611573d5f5f3e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff908116908916149250505098975050505050505050565b6106728334843385610d8f565b505050565b6106848484843385610816565b50505050565b604080517fad247288102f13699d9a6cafb9cfb8fce14f10334c0f638ba03889ab655fc6e660208201529081018890526060810187905273ffffffffffffffffffffffffffffffffffffffff8616608082015260a081018590523360c08201525f9081906001907f00000000000000000000000000000000000000000000000000000000000000009060e0016040516020818303038152906040528051906020012060405160200161076e9291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201205f84529083018083525260ff881690820152606081018690526080810185905260a0016020604051602081039080840390855afa1580156107e7573d5f5f3e3d5ffd5b5050506020604051035190506108008989838a8a610ecb565b61080a338961102f565b98975050505050505050565b43811115610850576040517f2782367700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61085d85858585856110c5565b5050505050565b80341161089d576040517f8e7f710600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108b3846108ab83346116f6565b853386610d8f565b610684838261102f565b6106848434858585610d8f565b6108da8888888888888888611160565b6108e4868861102f565b5050505050505050565b5f8088815b818110156109855789898281811061090d5761090d611734565b9050602002013592506109798c8c8381811061092b5761092b611734565b9050602002013584338b8b8681811061094657610946611734565b905060200201602081019061095b9190611761565b8a8a8781811061096d5761096d611734565b90506020020135610ecb565b928201926001016108f3565b5050610991338361102f565b50505050505050505050565b61068484843385855b6109b38585858585610ecb565b61085d838561102f565b5f8082815b81811015610b55578585828181106109dc576109dc611734565b905060e002016020013592505f5f1b8686838181106109fd576109fd611734565b905060e0020160a0013514610ade57610ad9868683818110610a2157610a21611734565b905060e002015f01358433898986818110610a3e57610a3e611734565b905060e002016040016020810190610a569190611761565b8a8a87818110610a6857610a68611734565b905060e00201606001358b8b88818110610a8457610a84611734565b905060e002016080016020810190610a9c9190611783565b8c8c89818110610aae57610aae611734565b905060e0020160a001358d8d8a818110610aca57610aca611734565b905060e0020160c00135611160565b610b49565b610b49868683818110610af357610af3611734565b905060e002015f01358433898986818110610b1057610b10611734565b905060e002016040016020810190610b289190611761565b8a8a87818110610b3a57610b3a611734565b905060e0020160600135610ecb565b928201926001016109c2565b5050610684338361102f565b604080517fb58a7c79b5c8052bb2d380096e39f2ed848c68cdd21cb69f6ab5152ade2629266020808301919091528183018b9052606082018a905273ffffffffffffffffffffffffffffffffffffffff8916608083015260a08083018890528351808403909101815260c0830190935282519201919091207f190100000000000000000000000000000000000000000000000000000000000060e08301527f000000000000000000000000000000000000000000000000000000000000000060e28301526101028201525f9060019061012201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610cad573d5f5f3e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590610d2857508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610d5e576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d6b89898989896110c5565b505050505050505050565b610d868787873388888888610b61565b50505050505050565b5f8411610dc8576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518681526020808201879052818301869052606082018590526080820184905260a09091205f818152918290529190205460ff1615610e36576040517f734530ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055815187815290810184905273ffffffffffffffffffffffffffffffffffffffff858116929087169189917f15b4b8206809535e547317cd5cedc86cff6e7d203551f93701786ddaf14fd9f9910160405180910390a4505050505050565b5f600286604051602001610ee191815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610f199161179c565b602060405180830381855afa158015610f34573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610f5791906117b2565b905080610f90576040517f8b8dc8b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805182815260208101879052908101859052606081018490526080810183905260a09020610fbf816112d6565b5f818152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055905188815283917f5664142af3dcfc3dc3de45a43f75c746bd1d8c11170a5037fdf98bdb35775137910160405180910390a250505050505050565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114611085576040519150601f19603f3d011682016040523d82523d5f602084013e61108a565b606091505b5050905080610672576040517f6747a28800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805186815260208101869052908101849052606081018390526080810182905260a090206110f4816112d6565b5f8181526020819052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555187917f3fbd469ec3a5ce074f975f76ce27e727ba21c99176917b97ae2e713695582a1291a2611158838661102f565b505050505050565b604080515f815260208101899052908101879052606081018690526080810185905260a0902061118f816112d6565b5f60028a6040516020016111a591815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526111dd9161179c565b602060405180830381855afa1580156111f8573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061121b91906117b2565b905061122d818a8a8a8a8a8a8a6104b9565b611263576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f828152602081815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905590518b815282917f5664142af3dcfc3dc3de45a43f75c746bd1d8c11170a5037fdf98bdb35775137910160405180910390a250505050505050505050565b5f8181526020819052604090205460ff1661131d576040517f5ec69df000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461131d575f5ffd5b803560ff81168114611351575f5ffd5b919050565b5f5f5f5f5f5f5f5f610100898b03121561136e575f5ffd5b8835975060208901359650604089013561138781611320565b9550606089013561139781611320565b9450608089013593506113ac60a08a01611341565b979a969950949793969295929450505060c08201359160e0013590565b5f5f5f606084860312156113db575f5ffd5b8335925060208401356113ed81611320565b929592945050506040919091013590565b5f5f5f5f60808587031215611411575f5ffd5b8435935060208501359250604085013561142a81611320565b9396929550929360600135925050565b5f5f5f5f5f5f5f60e0888a031215611450575f5ffd5b8735965060208801359550604088013561146981611320565b94506060880135935061147e60808901611341565b9699959850939692959460a0840135945060c09093013592915050565b5f5f5f5f5f60a086880312156114af575f5ffd5b853594506020860135935060408601356114c881611320565b925060608601356114d881611320565b949793965091946080013592915050565b5f5f5f5f608085870312156114fc575f5ffd5b84359350602085013561150e81611320565b93969395505050506040820135916060013590565b5f5f5f5f60808587031215611536575f5ffd5b84359350602085013561154881611320565b9250604085013561142a81611320565b5f5f83601f840112611568575f5ffd5b50813567ffffffffffffffff81111561157f575f5ffd5b6020830191508360208260051b8501011115611599575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f6080898b0312156115b7575f5ffd5b883567ffffffffffffffff8111156115cd575f5ffd5b6115d98b828c01611558565b909950975050602089013567ffffffffffffffff8111156115f8575f5ffd5b6116048b828c01611558565b909750955050604089013567ffffffffffffffff811115611623575f5ffd5b61162f8b828c01611558565b909550935050606089013567ffffffffffffffff81111561164e575f5ffd5b61165a8b828c01611558565b999c989b5096995094979396929594505050565b5f6020828403121561167e575f5ffd5b5035919050565b5f5f60208385031215611696575f5ffd5b823567ffffffffffffffff8111156116ac575f5ffd5b8301601f810185136116bc575f5ffd5b803567ffffffffffffffff8111156116d2575f5ffd5b85602060e0830284010111156116e6575f5ffd5b6020919091019590945092505050565b8181038181111561172e577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611771575f5ffd5b813561177c81611320565b9392505050565b5f60208284031215611793575f5ffd5b61177c82611341565b5f82518060208501845e5f920191825250919050565b5f602082840312156117c2575f5ffd5b505191905056fea2646970667358221220af7bdd517125ac0501e499a96e4836a00fafe14dac4517f6312e7c7104189a2b64736f6c63430008210033","sourceMap":"156:25311:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18120:701;;;;;;;;;;-1:-1:-1;18120:701:3;;;;;:::i;:::-;;:::i;:::-;;;1567:14:57;;1560:22;1542:41;;1530:2;1515:18;18120:701:3;;;;;;;;3223:180;;;;;;:::i;:::-;;:::i;:::-;;11594:184;;;;;;;;;;-1:-1:-1;11594:184:3;;;;;:::i;:::-;;:::i;1014:316::-;;;;;;;;;;;;;;;;;;2845:25:57;;;2833:2;2818:18;1014:316:3;2699:177:57;7366:764:3;;;;;;;;;;-1:-1:-1;7366:764:3;;;;;:::i;:::-;;:::i;:::-;;;3983:42:57;3971:55;;;3953:74;;3941:2;3926:18;7366:764:3;3807:226:57;17060:457:3;;;;;;;;;;-1:-1:-1;17060:457:3;;;;;:::i;:::-;;:::i;835:172::-;;;;;;;;;;;;877:130;835:172;;2653:80;;;;;;;;;;-1:-1:-1;512:1:3;2653:80;;;4965:4:57;4953:17;;;4935:36;;4923:2;4908:18;2653:80:3;4793:184:57;4834:599:3;;;;;;:::i;:::-;;:::i;3907:226::-;;;;;;:::i;:::-;;:::i;19267:559::-;;;;;;;;;;-1:-1:-1;19267:559:3;;;;;:::i;:::-;19537:4;19531:11;;19555:25;;;19609:4;19600:14;;19593:30;;;;19643:14;;;19636:36;;;;19701:4;19692:14;;19685:37;19751:4;19742:14;;19735:32;19805:4;19790:20;;;19267:559;685:144;;;;;;;;;;;;735:94;685:144;;15883:446;;;;;;;;;;-1:-1:-1;15883:446:3;;;;;:::i;:::-;;:::i;8544:846::-;;;;;;;;;;-1:-1:-1;8544:846:3;;;;;:::i;:::-;;:::i;5875:407::-;;;;;;;;;;-1:-1:-1;5875:407:3;;;;;:::i;:::-;;:::i;14957:338::-;;;;;;;;;;-1:-1:-1;14957:338:3;;;;;:::i;:::-;;:::i;1463:37::-;;;;;;;;;;-1:-1:-1;1463:37:3;;;;;:::i;:::-;;;;;;;;;;;;;;;;;520:159;;;;;;;;;;;;569:110;520:159;;9600:1377;;;;;;;;;;-1:-1:-1;9600:1377:3;;;;;:::i;:::-;;:::i;13584:800::-;;;;;;;;;;-1:-1:-1;13584:800:3;;;;;:::i;:::-;;:::i;12567:308::-;;;;;;;;;;-1:-1:-1;12567:308:3;;;;;:::i;:::-;;:::i;480:33::-;;;;;;;;;;;;512:1;480:33;;18120:701;18588:88;;;877:130;18588:88;;;;9216:25:57;;;;9257:18;;;9250:34;;;9300:18;;;9293:34;;;9375:42;9363:55;;;9343:18;;;9336:83;9456:55;;9435:19;;;9428:84;9528:19;;;;9521:35;;;18588:88:3;;;;;;;;;;9188:19:57;;;18588:88:3;;;18578:99;;;;;;;;9837:66:57;18470:225:3;;;9825:79:57;18540:16:3;9920:11:57;;;9913:27;9956:12;;;9949:28;-1:-1:-1;;;;18420:344:3;;9993:12:57;;18470:225:3;;;;;;;;;;;;;18443:266;;18470:225;18443:266;;;;18420:344;;;;;;;;;10243:25:57;10316:4;10304:17;;10284:18;;;10277:45;10338:18;;;10331:34;;;10381:18;;;10374:34;;;10215:19;;18420:344:3;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18420:344:3;;;;;18781:33;;;;;;;;;-1:-1:-1;;;18120:701:3;;;;;;;;;;:::o;3223:180::-;3326:70;3336:12;3350:9;3361:12;3375:10;3387:8;3326:9;:70::i;:::-;3223:180;;;:::o;11594:184::-;11707:64;11714:12;11728:6;11736:12;11750:10;11762:8;11707:6;:64::i;:::-;11594:184;;;;:::o;7366:764::-;7777:81;;;569:110;7777:81;;;10706:25:57;10747:18;;;10740:34;;;10790:18;;;10783:34;;;10865:42;10853:55;;10833:18;;;10826:83;10925:19;;;10918:35;;;7847:10:3;10969:19:57;;;10962:84;7567:7:3;;;;7609:337;;7729:16;;10678:19:57;;7777:81:3;;;;;;;;;;;;7767:92;;;;;;7659:218;;;;;;;;9837:66:57;9825:79;;9929:1;9920:11;;9913:27;;;;9965:2;9956:12;;9949:28;10002:2;9993:12;;9567:444;7659:218:3;;;;;;;;;;;;;;7632:259;;7659:218;7632:259;;;;7609:337;;;;;;;;;10243:25:57;10316:4;10304:17;;10284:18;;;10277:45;10338:18;;;10331:34;;;10381:18;;;10374:34;;;10215:19;;7609:337:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7586:360;;7957:69;7970:8;7980:6;7988:12;8002:13;8017:8;7957:12;:69::i;:::-;8036:57;8073:10;8086:6;8036:28;:57::i;:::-;8111:12;7366:764;-1:-1:-1;;;;;;;;7366:764:3:o;17060:457::-;25446:12;17380:8;:25;;17372:53;;;;;;;;;;;;;;;;;17435:75;17450:12;17464:6;17472:12;17486:13;17501:8;17435:14;:75::i;:::-;17060:457;;;;;:::o;4834:599::-;5088:12;5076:9;:24;5068:56;;;;;;;;;;;;;;;;;5216:85;5226:12;5240:24;5252:12;5240:9;:24;:::i;:::-;5266:12;5280:10;5292:8;5216:9;:85::i;:::-;5370:56;5399:12;5413;5370:28;:56::i;3907:226::-;4053:73;4063:12;4077:9;4088:12;4102:13;4117:8;4053:9;:73::i;15883:446::-;16113:88;16136:8;16146:6;16154:12;16168:13;16183:8;16193:1;16196;16199;16113:22;:88::i;:::-;16263:59;16300:12;16315:6;16263:28;:59::i;:::-;15883:446;;;;;;;;:::o;8544:846::-;8745:14;;8844:9;8745:14;8874:432;8898:3;8894:1;:7;8874:432;;;8939:7;;8947:1;8939:10;;;;;;;:::i;:::-;;;;;;;8926:23;;8967:84;8980:9;;8990:1;8980:12;;;;;;;:::i;:::-;;;;;;;8994:10;9006;9018:15;;9034:1;9018:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9038:9;;9048:1;9038:12;;;;;;;:::i;:::-;;;;;;;8967;:84::i;:::-;9271:20;;;;8903:3;;8874:432;;;;8806:510;9326:57;9363:10;9376:6;9326:28;:57::i;:::-;8735:655;;8544:846;;;;;;;;:::o;5875:407::-;6215:60;6221:8;6231:6;6239:10;6251:13;6266:8;14957:338;15098:69;15111:8;15121:6;15129:12;15143:13;15158:8;15098:12;:69::i;:::-;15229:59;15266:12;15281:6;15229:28;:59::i;9600:1377::-;9675:14;;9774:7;9675:14;9802:1091;9826:3;9822:1;:7;9802:1091;;;9867:7;;9875:1;9867:10;;;;;;;:::i;:::-;;;;;;:17;;;9854:30;;10027:1;10019:10;;10003:7;;10011:1;10003:10;;;;;;;:::i;:::-;;;;;;:12;;;:26;9999:640;;10053:370;10101:7;;10109:1;10101:10;;;;;;;:::i;:::-;;;;;;:19;;;10146:10;10182;10218:7;;10226:1;10218:10;;;;;;;:::i;:::-;;;;;;:24;;;;;;;;;;:::i;:::-;10268:7;;10276:1;10268:10;;;;;;;:::i;:::-;;;;;;:19;;;10313:7;;10321:1;10313:10;;;;;;;:::i;:::-;;;;;;:12;;;;;;;;;;:::i;:::-;10351:7;;10359:1;10351:10;;;;;;;:::i;:::-;;;;;;:12;;;10389:7;;10397:1;10389:10;;;;;;;:::i;:::-;;;;;;:12;;;10053:22;:370::i;:::-;9999:640;;;10470:150;10508:7;;10516:1;10508:10;;;;;;;:::i;:::-;;;;;;:19;;;10529:10;10541;10553:7;;10561:1;10553:10;;;;;;;:::i;:::-;;;;;;:24;;;;;;;;;;:::i;:::-;10579:7;;10587:1;10579:10;;;;;;;:::i;:::-;;;;;;:19;;;10470:12;:150::i;:::-;10858:20;;;;9831:3;;9802:1091;;;;9736:1167;10913:57;10950:10;10963:6;10913:28;:57::i;13584:800::-;14025:73;;;735:94;14025:73;;;;12231:25:57;;;;12272:18;;;12265:34;;;12315:18;;;12308:34;;;12390:42;12378:55;;12358:18;;;12351:83;12450:19;;;;12443:35;;;14025:73:3;;;;;;;;;;12203:19:57;;;14025:73:3;;;14015:84;;;;;;;;9837:66:57;13907:210:3;;;9825:79:57;13977:16:3;9920:11:57;;;9913:27;9956:12;;;9949:28;-1:-1:-1;;13857:329:3;;9993:12:57;;13907:210:3;;;;;;;;;;;;;13880:251;;13907:210;13880:251;;;;13857:329;;;;;;;;;10243:25:57;10316:4;10304:17;;10284:18;;;10277:45;10338:18;;;10331:34;;;10381:18;;;10374:34;;;10215:19;;13857:329:3;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13857:329:3;;;;;;-1:-1:-1;;14204:30:3;;;;;;;:66;;;14258:12;14238:32;;:16;:32;;;14204:66;14196:95;;;;;;;;;;;;;;;;;14302:75;14317:12;14331:6;14339:12;14353:13;14368:8;14302:14;:75::i;:::-;13820:564;13584:800;;;;;;;;:::o;12567:308::-;12784:84;12802:12;12816:6;12824:12;12838:10;12850:8;12860:1;12863;12866;12784:17;:84::i;:::-;12567:308;;;;;;;:::o;23857:744::-;24115:1;24106:6;:10;24098:33;;;;;;;;;;;;;;;;;19537:4;19531:11;;19555:25;;;19609:4;19600:14;;;19593:30;;;19643:14;;;19636:36;;;19701:4;19692:14;;19685:37;;;19751:4;19742:14;;19735:32;;;19805:4;19790:20;;;-1:-1:-1;24348:11:3;;;;;;;;;;;;;24347:12;24339:42;;;;;;;;;;;;;;;;;24458:5;:11;;;;;;;;;;;;:18;;;;24472:4;24458:18;;;24527:67;;12663:25:57;;;12704:18;;;12697:34;;;24527:67:3;;;;;;;;;24534:12;;24527:67;;12636:18:57;24527:67:3;;;;;;;24031:570;23857:744;;;;;:::o;22465:1018::-;22769:20;22792:34;22816:8;22799:26;;;;;;12871:19:57;;12915:2;12906:12;;12742:182;22799:26:3;;;;;;;;;;;;;;;22792:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22769:57;-1:-1:-1;22769:57:3;22916:70;;;;;;;;;;;;;;;;;19537:4;19531:11;;19555:25;;;19609:4;19600:14;;19593:30;;;19643:14;;;19636:36;;;19701:4;19692:14;;19685:37;;;19751:4;19742:14;;19735:32;;;19805:4;19790:20;;23160:23;23178:4;23160:17;:23::i;:::-;23388:5;:11;;;;;;;;;;;;23381:18;;;;;;23447:29;;2845:25:57;;;23453:12:3;;23447:29;;2818:18:57;23447:29:3;;;;;;;22638:845;;22465:1018;;;;;:::o;753:178:7:-;832:12;849:2;:7;;864:6;849:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;831:44;;;893:7;885:39;;;;;;;;;;;;;;;;24607:451:3;19537:4;19531:11;;19555:25;;;19609:4;19600:14;;19593:30;;;19643:14;;;19636:36;;;19701:4;19692:14;;19685:37;;;19751:4;19742:14;;19735:32;;;19805:4;19790:20;;24893:23;24911:4;24893:17;:23::i;:::-;24933:5;:11;;;;;;;;;;;24926:18;;;;;;24960:20;24967:12;;24960:20;;;24991:60;25028:13;25044:6;24991:28;:60::i;:::-;24786:272;24607:451;;;;;:::o;20711:1109::-;19537:4;19531:11;;21000:12;19555:25;;19609:4;19600:14;;19593:30;;;19643:14;;;19636:36;;;19701:4;19692:14;;19685:37;;;19751:4;19742:14;;19735:32;;;19805:4;19790:20;;21167:23;19790:20;21167:17;:23::i;:::-;21296:20;21319:34;21343:8;21326:26;;;;;;12871:19:57;;12915:2;12906:12;;12742:182;21326:26:3;;;;;;;;;;;;;;;21319:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21296:57;;21384:94;21409:12;21423:6;21431:12;21445:13;21460:8;21470:1;21473;21476;21384:24;:94::i;:::-;21363:157;;;;;;;;;;;;;;;;;21725:5;:11;;;;;;;;;;;;21718:18;;;;;;21784:29;;2845:25:57;;;21790:12:3;;21784:29;;2818:18:57;21784:29:3;;;;;;;20949:871;;20711:1109;;;;;;;;:::o;25253:107::-;25325:5;:11;;;;;;;;;;;;;25317:36;;;;;;;;;;;;;;;;;25253:107;:::o;14:154:57:-;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:156;239:20;;299:4;288:16;;278:27;;268:55;;319:1;316;309:12;268:55;173:156;;;:::o;334:1063::-;454:6;462;470;478;486;494;502;510;563:3;551:9;542:7;538:23;534:33;531:53;;;580:1;577;570:12;531:53;625:23;;;-1:-1:-1;745:2:57;730:18;;717:32;;-1:-1:-1;827:2:57;812:18;;799:32;840:33;799:32;840:33;:::i;:::-;892:7;-1:-1:-1;951:2:57;936:18;;923:32;964:33;923:32;964:33;:::i;:::-;1016:7;-1:-1:-1;1096:3:57;1081:19;;1068:33;;-1:-1:-1;1146:37:57;1178:3;1163:19;;1146:37;:::i;:::-;334:1063;;;;-1:-1:-1;334:1063:57;;;;;;1136:47;;-1:-1:-1;;;1256:3:57;1241:19;;1228:33;;1360:3;1345:19;1332:33;;334:1063::o;1594:487::-;1671:6;1679;1687;1740:2;1728:9;1719:7;1715:23;1711:32;1708:52;;;1756:1;1753;1746:12;1708:52;1801:23;;;-1:-1:-1;1900:2:57;1885:18;;1872:32;1913:33;1872:32;1913:33;:::i;:::-;1594:487;;1965:7;;-1:-1:-1;;;2045:2:57;2030:18;;;;2017:32;;1594:487::o;2086:608::-;2172:6;2180;2188;2196;2249:3;2237:9;2228:7;2224:23;2220:33;2217:53;;;2266:1;2263;2256:12;2217:53;2311:23;;;-1:-1:-1;2431:2:57;2416:18;;2403:32;;-1:-1:-1;2513:2:57;2498:18;;2485:32;2526:33;2485:32;2526:33;:::i;:::-;2086:608;;;;-1:-1:-1;2578:7:57;;2658:2;2643:18;2630:32;;-1:-1:-1;;2086:608:57:o;2881:921::-;2992:6;3000;3008;3016;3024;3032;3040;3093:3;3081:9;3072:7;3068:23;3064:33;3061:53;;;3110:1;3107;3100:12;3061:53;3155:23;;;-1:-1:-1;3275:2:57;3260:18;;3247:32;;-1:-1:-1;3357:2:57;3342:18;;3329:32;3370:33;3329:32;3370:33;:::i;:::-;3422:7;-1:-1:-1;3502:2:57;3487:18;;3474:32;;-1:-1:-1;3551:37:57;3583:3;3568:19;;3551:37;:::i;:::-;2881:921;;;;-1:-1:-1;2881:921:57;;;;3541:47;3661:3;3646:19;;3633:33;;-1:-1:-1;3765:3:57;3750:19;;;3737:33;;2881:921;-1:-1:-1;;2881:921:57:o;4038:750::-;4133:6;4141;4149;4157;4165;4218:3;4206:9;4197:7;4193:23;4189:33;4186:53;;;4235:1;4232;4225:12;4186:53;4280:23;;;-1:-1:-1;4400:2:57;4385:18;;4372:32;;-1:-1:-1;4482:2:57;4467:18;;4454:32;4495:33;4454:32;4495:33;:::i;:::-;4547:7;-1:-1:-1;4606:2:57;4591:18;;4578:32;4619:33;4578:32;4619:33;:::i;:::-;4038:750;;;;-1:-1:-1;4038:750:57;;4751:3;4736:19;4723:33;;4038:750;-1:-1:-1;;4038:750:57:o;4982:616::-;5076:6;5084;5092;5100;5153:3;5141:9;5132:7;5128:23;5124:33;5121:53;;;5170:1;5167;5160:12;5121:53;5215:23;;;-1:-1:-1;5314:2:57;5299:18;;5286:32;5327:33;5286:32;5327:33;:::i;:::-;4982:616;;5379:7;;-1:-1:-1;;;;5459:2:57;5444:18;;5431:32;;5562:2;5547:18;5534:32;;4982:616::o;5603:629::-;5689:6;5697;5705;5713;5766:3;5754:9;5745:7;5741:23;5737:33;5734:53;;;5783:1;5780;5773:12;5734:53;5828:23;;;-1:-1:-1;5927:2:57;5912:18;;5899:32;5940:33;5899:32;5940:33;:::i;:::-;5992:7;-1:-1:-1;6051:2:57;6036:18;;6023:32;6064:33;6023:32;6064:33;:::i;6237:367::-;6300:8;6310:6;6364:3;6357:4;6349:6;6345:17;6341:27;6331:55;;6382:1;6379;6372:12;6331:55;-1:-1:-1;6405:20:57;;6448:18;6437:30;;6434:50;;;6480:1;6477;6470:12;6434:50;6517:4;6509:6;6505:17;6493:29;;6577:3;6570:4;6560:6;6557:1;6553:14;6545:6;6541:27;6537:38;6534:47;6531:67;;;6594:1;6591;6584:12;6531:67;6237:367;;;;;:::o;6609:1431::-;6803:6;6811;6819;6827;6835;6843;6851;6859;6912:3;6900:9;6891:7;6887:23;6883:33;6880:53;;;6929:1;6926;6919:12;6880:53;6969:9;6956:23;7002:18;6994:6;6991:30;6988:50;;;7034:1;7031;7024:12;6988:50;7073:70;7135:7;7126:6;7115:9;7111:22;7073:70;:::i;:::-;7162:8;;-1:-1:-1;7047:96:57;-1:-1:-1;;7250:2:57;7235:18;;7222:32;7279:18;7266:32;;7263:52;;;7311:1;7308;7301:12;7263:52;7350:72;7414:7;7403:8;7392:9;7388:24;7350:72;:::i;:::-;7441:8;;-1:-1:-1;7324:98:57;-1:-1:-1;;7529:2:57;7514:18;;7501:32;7558:18;7545:32;;7542:52;;;7590:1;7587;7580:12;7542:52;7629:72;7693:7;7682:8;7671:9;7667:24;7629:72;:::i;:::-;7720:8;;-1:-1:-1;7603:98:57;-1:-1:-1;;7808:2:57;7793:18;;7780:32;7837:18;7824:32;;7821:52;;;7869:1;7866;7859:12;7821:52;7908:72;7972:7;7961:8;7950:9;7946:24;7908:72;:::i;:::-;6609:1431;;;;-1:-1:-1;6609:1431:57;;-1:-1:-1;6609:1431:57;;;;;;7999:8;-1:-1:-1;;;6609:1431:57:o;8045:226::-;8104:6;8157:2;8145:9;8136:7;8132:23;8128:32;8125:52;;;8173:1;8170;8163:12;8125:52;-1:-1:-1;8218:23:57;;8045:226;-1:-1:-1;8045:226:57:o;8276:648::-;8397:6;8405;8458:2;8446:9;8437:7;8433:23;8429:32;8426:52;;;8474:1;8471;8464:12;8426:52;8514:9;8501:23;8547:18;8539:6;8536:30;8533:50;;;8579:1;8576;8569:12;8533:50;8602:22;;8655:4;8647:13;;8643:27;-1:-1:-1;8633:55:57;;8684:1;8681;8674:12;8633:55;8724:2;8711:16;8750:18;8742:6;8739:30;8736:50;;;8782:1;8779;8772:12;8736:50;8838:7;8833:2;8825:4;8817:6;8813:17;8809:2;8805:26;8801:35;8798:48;8795:68;;;8859:1;8856;8849:12;8795:68;8890:2;8882:11;;;;;8912:6;;-1:-1:-1;8276:648:57;-1:-1:-1;;;8276:648:57:o;11057:282::-;11124:9;;;11145:11;;;11142:191;;;11189:77;11186:1;11179:88;11290:4;11287:1;11280:15;11318:4;11315:1;11308:15;11142:191;11057:282;;;;:::o;11344:184::-;11396:77;11393:1;11386:88;11493:4;11490:1;11483:15;11517:4;11514:1;11507:15;11533:247;11592:6;11645:2;11633:9;11624:7;11620:23;11616:32;11613:52;;;11661:1;11658;11651:12;11613:52;11700:9;11687:23;11719:31;11744:5;11719:31;:::i;:::-;11769:5;11533:247;-1:-1:-1;;;11533:247:57:o;11785:182::-;11842:6;11895:2;11883:9;11874:7;11870:23;11866:32;11863:52;;;11911:1;11908;11901:12;11863:52;11934:27;11951:9;11934:27;:::i;12929:301::-;13058:3;13096:6;13090:13;13142:6;13135:4;13127:6;13123:17;13118:3;13112:37;13204:1;13168:16;;13193:13;;;-1:-1:-1;13168:16:57;12929:301;-1:-1:-1;12929:301:57:o;13235:184::-;13305:6;13358:2;13346:9;13337:7;13333:23;13329:32;13326:52;;;13374:1;13371;13364:12;13326:52;-1:-1:-1;13397:16:57;;13235:184;-1:-1:-1;13235:184:57:o","linkReferences":{},"immutableReferences":{"1501":[{"start":490,"length":32},{"start":1378,"length":32},{"start":1779,"length":32},{"start":3073,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","TYPEHASH_CLAIM()":"ebb7af92","TYPEHASH_COMMIT()":"5073c277","TYPEHASH_REFUND()":"a9ab4d5b","VERSION()":"ffa1ad74","checkCommitmentSignature(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)":"0685d21e","claim(bytes32,uint256,address,address,uint256)":"cd413efa","claim(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)":"b2b78df8","claim(bytes32,uint256,address,uint256)":"c3c37fbc","claim(bytes32,uint256,address,uint256,uint8,bytes32,bytes32)":"3648a807","claimBatch((bytes32,uint256,address,uint256,uint8,bytes32,bytes32)[])":"f3382d57","claimBatch(bytes32[],uint256[],address[],uint256[])":"c2c3a8c9","hashValues(bytes32,uint256,address,address,uint256)":"8b2f8f82","lock(bytes32,address,address,uint256)":"799f212b","lock(bytes32,address,uint256)":"0899146b","lockPrepayMinerfee(bytes32,address,uint256,uint256)":"6fa4ae60","refund(bytes32,uint256,address,address,uint256)":"36504721","refund(bytes32,uint256,address,uint256)":"35cd4ccb","refundCooperative(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)":"fb35dd96","refundCooperative(bytes32,uint256,address,uint256,uint8,bytes32,bytes32)":"fe237d45","swaps(bytes32)":"eb84e7f2","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CommitmentCannotBeClaimedAsSwap\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EtherTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPrepayAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapNotTimedOut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"preimage\",\"type\":\"bytes32\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"}],\"name\":\"Lockup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"}],\"name\":\"Refund\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPEHASH_CLAIM\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPEHASH_COMMIT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPEHASH_REFUND\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"checkCommitmentSignature\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimage\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimage\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimage\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimage\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"preimages\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"refundAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"timelocks\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"preimage\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct EtherSwap.BatchClaimEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"name\":\"claimBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"}],\"name\":\"hashValues\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"}],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"}],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prepayAmount\",\"type\":\"uint256\"}],\"name\":\"lockPrepayMinerfee\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"refundCooperative\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preimageHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"refundCooperative\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"swaps\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CommitmentCannotBeClaimedAsSwap()\":[{\"details\":\"Thrown when trying to claim a commitment as a regular swap\"}],\"InvalidPrepayAmount()\":[{\"details\":\"Thrown when the sent Ether amount is not greater than the prepay amount\"}],\"InvalidSignature()\":[{\"details\":\"Thrown when the recovered address from a signature is invalid\"}],\"SwapAlreadyExists()\":[{\"details\":\"Thrown when a swap with the same hash already exists\"}],\"SwapNotFound()\":[{\"details\":\"Thrown when no swap is found for the given hash\"}],\"SwapNotTimedOut()\":[{\"details\":\"Thrown when the swap timelock has not expired yet\"}],\"ZeroAmount()\":[{\"details\":\"Thrown when the locked amount is zero\"}]},\"kind\":\"dev\",\"methods\":{\"checkCommitmentSignature(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)\":{\"params\":{\"amount\":\"Amount the swap has locked in WEI\",\"claimAddress\":\"Address that can claim the locked Ether\",\"preimageHash\":\"Preimage hash of the swap\",\"r\":\"Second 32 bytes of the signature\",\"refundAddress\":\"Address that locked the Ether and can refund them\",\"s\":\"First 32 bytes of the signature\",\"timelock\":\"Block height after which the locked Ether can be refunded\",\"v\":\"Final byte of the signature\"},\"returns\":{\"_0\":\"True if the signature is valid, false otherwise\"}},\"claim(bytes32,uint256,address,address,uint256)\":{\"details\":\"To query the arguments of this function, get the \\\"Lockup\\\" event logs for the SHA256 hash of the preimage\",\"params\":{\"amount\":\"Amount locked in the contract for the swap in WEI\",\"claimAddress\":\"Address to which the claimed funds will be sent\",\"preimage\":\"Preimage of the swap\",\"refundAddress\":\"Address that locked the Ether in the contract\",\"timelock\":\"Block height after which the locked Ether can be refunded\"}},\"claim(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)\":{\"params\":{\"amount\":\"Amount locked in the contract for the swap in WEI\",\"claimAddress\":\"Address to which the claimed funds will be sent\",\"preimage\":\"Preimage of the swap\",\"r\":\"Second 32 bytes of the signature\",\"refundAddress\":\"Address that locked the Ether in the contract\",\"s\":\"First 32 bytes of the signature\",\"timelock\":\"Block height after which the locked Ether can be refunded\",\"v\":\"Final byte of the signature\"}},\"claim(bytes32,uint256,address,uint256)\":{\"details\":\"To query the arguments of this function, get the \\\"Lockup\\\" event logs for the SHA256 hash of the preimage\",\"params\":{\"amount\":\"Amount locked in the contract for the swap in WEI\",\"preimage\":\"Preimage of the swap\",\"refundAddress\":\"Address that locked the Ether in the contract\",\"timelock\":\"Block height after which the locked Ether can be refunded\"}},\"claim(bytes32,uint256,address,uint256,uint8,bytes32,bytes32)\":{\"details\":\"The signature must be created by the claim address over the claim data using EIP-712 standardThe recovered claim address from the signature must match the intended claim address for the swapThe claimed funds are sent to msg.sender (the transaction executor), not the claim address that signed\",\"params\":{\"amount\":\"Amount locked in the contract for the swap in WEI\",\"preimage\":\"Preimage of the swap\",\"r\":\"Second 32 bytes of the signature\",\"refundAddress\":\"Address that locked the Ether in the contract\",\"s\":\"First 32 bytes of the signature\",\"timelock\":\"Block height after which the locked Ether can be refunded\",\"v\":\"Final byte of the signature\"},\"returns\":{\"_0\":\"claimAddress The address that signed the claim message (recovered from signature)\"}},\"claimBatch((bytes32,uint256,address,uint256,uint8,bytes32,bytes32)[])\":{\"details\":\"All swaps that are claimed have to have \\\"msg.sender\\\" as \\\"claimAddress\\\"\",\"params\":{\"entries\":\"Entries to claim\"}},\"claimBatch(bytes32[],uint256[],address[],uint256[])\":{\"details\":\"All swaps that are claimed have to have \\\"msg.sender\\\" as \\\"claimAddress\\\"\",\"params\":{\"amounts\":\"Amounts that are locked in the contract for the swap in WEI\",\"preimages\":\"Preimages of the swaps\",\"refundAddresses\":\"Addresses that locked the Ether in the contract\",\"timelocks\":\"Block heights after which the locked Ether can be refunded\"}},\"hashValues(bytes32,uint256,address,address,uint256)\":{\"params\":{\"amount\":\"Amount the swap has locked in WEI\",\"claimAddress\":\"Address that can claim the locked Ether\",\"preimageHash\":\"Preimage hash of the swap\",\"refundAddress\":\"Address that locked the Ether and can refund them\",\"timelock\":\"Block height after which the locked Ether can be refunded\"},\"returns\":{\"result\":\"Value hash of the swap\"}},\"lock(bytes32,address,address,uint256)\":{\"params\":{\"claimAddress\":\"Address that can claim the locked Ether\",\"preimageHash\":\"Preimage hash of the swap\",\"refundAddress\":\"Address that can refund the locked Ether\",\"timelock\":\"Block height after which the locked Ether can be refunded\"}},\"lock(bytes32,address,uint256)\":{\"params\":{\"claimAddress\":\"Address that can claim the locked Ether\",\"preimageHash\":\"Preimage hash of the swap\",\"timelock\":\"Block height after which the locked Ether can be refunded\"}},\"lockPrepayMinerfee(bytes32,address,uint256,uint256)\":{\"details\":\"Make sure to set a reasonable gas limit for calling this function, else a malicious contract at the claim address could drain your Ether\",\"params\":{\"claimAddress\":\"Address that can claim the locked Ether\",\"preimageHash\":\"Preimage hash of the swap\",\"prepayAmount\":\"Amount that should be forwarded to the claim address\",\"timelock\":\"Block height after which the locked Ether can be refunded\"}},\"refund(bytes32,uint256,address,address,uint256)\":{\"details\":\"To query the arguments of this function, get the \\\"Lockup\\\" event logs for your refund address and the preimage hash if you have itFor further explanations and reasoning behind the statements in this function, check the \\\"claim\\\" function\",\"params\":{\"amount\":\"Amount locked in the contract for the swap in WEI\",\"claimAddress\":\"Address that that was destined to claim the funds\",\"preimageHash\":\"Preimage hash of the swap\",\"refundAddress\":\"Address that locked the Ether in the contract\",\"timelock\":\"Block height after which the locked Ether can be refunded\"}},\"refund(bytes32,uint256,address,uint256)\":{\"details\":\"To query the arguments of this function, get the \\\"Lockup\\\" event logs for your refund address and the preimage hash if you have itFor further explanations and reasoning behind the statements in this function, check the \\\"claim\\\" function\",\"params\":{\"amount\":\"Amount locked in the contract for the swap in WEI\",\"claimAddress\":\"Address that that was destined to claim the funds\",\"preimageHash\":\"Preimage hash of the swap\",\"timelock\":\"Block height after which the locked Ether can be refunded\"}},\"refundCooperative(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)\":{\"details\":\"This function allows cooperative refunds to be executed on someone else's behalf by a sponsor\",\"params\":{\"amount\":\"Amount locked in the contract for the swap in WEI\",\"claimAddress\":\"Address that that was destined to claim the funds\",\"preimageHash\":\"Preimage hash of the swap\",\"r\":\"Second 32 bytes of the signature\",\"refundAddress\":\"Address that locked the Ether in the contract\",\"s\":\"First 32 bytes of the signature\",\"timelock\":\"Block height after which the locked Ether can be refunded\",\"v\":\"Final byte of the signature\"}},\"refundCooperative(bytes32,uint256,address,uint256,uint8,bytes32,bytes32)\":{\"details\":\"To query the arguments of this function, get the \\\"Lockup\\\" event logs for your refund address and the preimage hash if you have itFor further explanations and reasoning behind the statements in this function, check the \\\"claim\\\" function\",\"params\":{\"amount\":\"Amount locked in the contract for the swap in WEI\",\"claimAddress\":\"Address that that was destined to claim the funds\",\"preimageHash\":\"Preimage hash of the swap\",\"r\":\"Second 32 bytes of the signature\",\"s\":\"First 32 bytes of the signature\",\"timelock\":\"Block height after which the locked Ether can be refunded\",\"v\":\"Final byte of the signature\"}},\"version()\":{\"details\":\"Returns the version of the contract\"}},\"stateVariables\":{\"VERSION\":{\"details\":\"Version of the contract used for compatibility checks\"},\"swaps\":{\"details\":\"Mapping between value hashes of swaps and whether they have Ether locked in the contract\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"checkCommitmentSignature(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Checks if a commitment signature is valid\"},\"claim(bytes32,uint256,address,address,uint256)\":{\"notice\":\"Claims Ether locked in the contract for a specified claim address\"},\"claim(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Claims Ether locked in the contract as commitment for a specified claim address\"},\"claim(bytes32,uint256,address,uint256)\":{\"notice\":\"Claims Ether locked in the contract\"},\"claim(bytes32,uint256,address,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Claims Ether locked in the contract using an EIP-712 signature from the claim addressThis function allows anyone to execute a claim on behalf of the intended claim address by providing a valid signature\"},\"claimBatch((bytes32,uint256,address,uint256,uint8,bytes32,bytes32)[])\":{\"notice\":\"Claims multiple swaps Supports both commitment and normal swaps\"},\"claimBatch(bytes32[],uint256[],address[],uint256[])\":{\"notice\":\"Claims multiple swaps\"},\"hashValues(bytes32,uint256,address,address,uint256)\":{\"notice\":\"Hashes all the values of a swap with Keccak256\"},\"lock(bytes32,address,address,uint256)\":{\"notice\":\"Locks Ether for a swap in the contractThe amount locked is the Ether sent in the transactionUse bytes32(0) as preimageHash only for commitment-based swaps to avoid accidental misuse\"},\"lock(bytes32,address,uint256)\":{\"notice\":\"Locks Ether for a swap in the contractThe amount locked is the Ether sent in the transaction and the refund address is the sender of the transactionUse bytes32(0) as preimageHash only for commitment-based swaps to avoid accidental misuse\"},\"lockPrepayMinerfee(bytes32,address,uint256,uint256)\":{\"notice\":\"Locks Ether for a swap in the contract and forwards a specified amount of Ether to the claim addressThe amount locked is the Ether sent in the transaction minus the prepay amount and the refund address is the sender of the transaction\"},\"refund(bytes32,uint256,address,address,uint256)\":{\"notice\":\"Refunds Ether locked in the contract after the timeout for a specified refund address address\"},\"refund(bytes32,uint256,address,uint256)\":{\"notice\":\"Refunds Ether locked in the contract after the timeout\"},\"refundCooperative(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Refunds Ether locked in the contract with an EIP-712 signature of the claimAddress\"},\"refundCooperative(bytes32,uint256,address,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Refunds Ether locked in the contract with an EIP-712 signature of the claimAddress\"},\"version()\":{\"notice\":\"For backwards compatibility\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/EtherSwap.sol\":\"EtherSwap\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000000},\"remappings\":[\":@openzeppelin/contracts/=solidity-lib/openzeppelin-contracts/contracts/\",\":ds-test/=solidity-lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=solidity-lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=solidity-lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=solidity-lib/forge-std/src/\",\":halmos-cheatcodes/=solidity-lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=solidity-lib/openzeppelin-contracts/\",\":permit2/=solidity-lib/permit2/src/\",\":solmate/=solidity-lib/permit2/lib/solmate/\"]},\"sources\":{\"contracts/EtherSwap.sol\":{\"keccak256\":\"0x92b9a4f446a429e9cf4b50115b8fed30c029ae1664ee1066838aa73f3c2965cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f75cdf232aa6b98cda71845ae9c8a10afe53efa35c9e6ccff34934dbb8daa89\",\"dweb:/ipfs/QmPJLaQVKFjLWAim45qCHCeqdVFBxokCbwZbwfpaL1isVo\"]},\"contracts/TransferHelper.sol\":{\"keccak256\":\"0x904b11574cbdeb14418232b69209aee913f21efedfb5a73c7485d5908f7f3cc0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://986e85839e2268d7584a4b294fa8a0313f75d4c720343a1d7f0b1f2453bbef42\",\"dweb:/ipfs/QmWRvDVtrxvBppdyL6UbnziEB8WFJx8THExTXXEnUa7Gvq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CommitmentCannotBeClaimedAsSwap"},{"inputs":[],"type":"error","name":"EtherTransferFailed"},{"inputs":[],"type":"error","name":"InvalidPrepayAmount"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"SwapAlreadyExists"},{"inputs":[],"type":"error","name":"SwapNotFound"},{"inputs":[],"type":"error","name":"SwapNotTimedOut"},{"inputs":[],"type":"error","name":"ZeroAmount"},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"preimage","type":"bytes32","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"claimAddress","type":"address","indexed":true},{"internalType":"address","name":"refundAddress","type":"address","indexed":true},{"internalType":"uint256","name":"timelock","type":"uint256","indexed":false}],"type":"event","name":"Lockup","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32","indexed":true}],"type":"event","name":"Refund","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPEHASH_CLAIM","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPEHASH_COMMIT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPEHASH_REFUND","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VERSION","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"claimAddress","type":"address"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"view","type":"function","name":"checkCommitmentSignature","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"preimage","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"preimage","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"claimAddress","type":"address"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[{"internalType":"bytes32","name":"preimage","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[{"internalType":"bytes32","name":"preimage","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"claimAddress","type":"address"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[{"internalType":"bytes32[]","name":"preimages","type":"bytes32[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"address[]","name":"refundAddresses","type":"address[]"},{"internalType":"uint256[]","name":"timelocks","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch"},{"inputs":[{"internalType":"struct EtherSwap.BatchClaimEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"bytes32","name":"preimage","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"claimBatch"},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"claimAddress","type":"address"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"}],"stateMutability":"pure","type":"function","name":"hashValues","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32"},{"internalType":"address","name":"claimAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"}],"stateMutability":"payable","type":"function","name":"lock"},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32"},{"internalType":"address","name":"claimAddress","type":"address"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"}],"stateMutability":"payable","type":"function","name":"lock"},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32"},{"internalType":"address payable","name":"claimAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"},{"internalType":"uint256","name":"prepayAmount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"lockPrepayMinerfee"},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"claimAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"refund"},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"claimAddress","type":"address"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"refund"},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"claimAddress","type":"address"},{"internalType":"address","name":"refundAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"refundCooperative"},{"inputs":[{"internalType":"bytes32","name":"preimageHash","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"claimAddress","type":"address"},{"internalType":"uint256","name":"timelock","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"refundCooperative"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"swaps","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{"checkCommitmentSignature(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)":{"params":{"amount":"Amount the swap has locked in WEI","claimAddress":"Address that can claim the locked Ether","preimageHash":"Preimage hash of the swap","r":"Second 32 bytes of the signature","refundAddress":"Address that locked the Ether and can refund them","s":"First 32 bytes of the signature","timelock":"Block height after which the locked Ether can be refunded","v":"Final byte of the signature"},"returns":{"_0":"True if the signature is valid, false otherwise"}},"claim(bytes32,uint256,address,address,uint256)":{"details":"To query the arguments of this function, get the \"Lockup\" event logs for the SHA256 hash of the preimage","params":{"amount":"Amount locked in the contract for the swap in WEI","claimAddress":"Address to which the claimed funds will be sent","preimage":"Preimage of the swap","refundAddress":"Address that locked the Ether in the contract","timelock":"Block height after which the locked Ether can be refunded"}},"claim(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)":{"params":{"amount":"Amount locked in the contract for the swap in WEI","claimAddress":"Address to which the claimed funds will be sent","preimage":"Preimage of the swap","r":"Second 32 bytes of the signature","refundAddress":"Address that locked the Ether in the contract","s":"First 32 bytes of the signature","timelock":"Block height after which the locked Ether can be refunded","v":"Final byte of the signature"}},"claim(bytes32,uint256,address,uint256)":{"details":"To query the arguments of this function, get the \"Lockup\" event logs for the SHA256 hash of the preimage","params":{"amount":"Amount locked in the contract for the swap in WEI","preimage":"Preimage of the swap","refundAddress":"Address that locked the Ether in the contract","timelock":"Block height after which the locked Ether can be refunded"}},"claim(bytes32,uint256,address,uint256,uint8,bytes32,bytes32)":{"details":"The signature must be created by the claim address over the claim data using EIP-712 standardThe recovered claim address from the signature must match the intended claim address for the swapThe claimed funds are sent to msg.sender (the transaction executor), not the claim address that signed","params":{"amount":"Amount locked in the contract for the swap in WEI","preimage":"Preimage of the swap","r":"Second 32 bytes of the signature","refundAddress":"Address that locked the Ether in the contract","s":"First 32 bytes of the signature","timelock":"Block height after which the locked Ether can be refunded","v":"Final byte of the signature"},"returns":{"_0":"claimAddress The address that signed the claim message (recovered from signature)"}},"claimBatch((bytes32,uint256,address,uint256,uint8,bytes32,bytes32)[])":{"details":"All swaps that are claimed have to have \"msg.sender\" as \"claimAddress\"","params":{"entries":"Entries to claim"}},"claimBatch(bytes32[],uint256[],address[],uint256[])":{"details":"All swaps that are claimed have to have \"msg.sender\" as \"claimAddress\"","params":{"amounts":"Amounts that are locked in the contract for the swap in WEI","preimages":"Preimages of the swaps","refundAddresses":"Addresses that locked the Ether in the contract","timelocks":"Block heights after which the locked Ether can be refunded"}},"hashValues(bytes32,uint256,address,address,uint256)":{"params":{"amount":"Amount the swap has locked in WEI","claimAddress":"Address that can claim the locked Ether","preimageHash":"Preimage hash of the swap","refundAddress":"Address that locked the Ether and can refund them","timelock":"Block height after which the locked Ether can be refunded"},"returns":{"result":"Value hash of the swap"}},"lock(bytes32,address,address,uint256)":{"params":{"claimAddress":"Address that can claim the locked Ether","preimageHash":"Preimage hash of the swap","refundAddress":"Address that can refund the locked Ether","timelock":"Block height after which the locked Ether can be refunded"}},"lock(bytes32,address,uint256)":{"params":{"claimAddress":"Address that can claim the locked Ether","preimageHash":"Preimage hash of the swap","timelock":"Block height after which the locked Ether can be refunded"}},"lockPrepayMinerfee(bytes32,address,uint256,uint256)":{"details":"Make sure to set a reasonable gas limit for calling this function, else a malicious contract at the claim address could drain your Ether","params":{"claimAddress":"Address that can claim the locked Ether","preimageHash":"Preimage hash of the swap","prepayAmount":"Amount that should be forwarded to the claim address","timelock":"Block height after which the locked Ether can be refunded"}},"refund(bytes32,uint256,address,address,uint256)":{"details":"To query the arguments of this function, get the \"Lockup\" event logs for your refund address and the preimage hash if you have itFor further explanations and reasoning behind the statements in this function, check the \"claim\" function","params":{"amount":"Amount locked in the contract for the swap in WEI","claimAddress":"Address that that was destined to claim the funds","preimageHash":"Preimage hash of the swap","refundAddress":"Address that locked the Ether in the contract","timelock":"Block height after which the locked Ether can be refunded"}},"refund(bytes32,uint256,address,uint256)":{"details":"To query the arguments of this function, get the \"Lockup\" event logs for your refund address and the preimage hash if you have itFor further explanations and reasoning behind the statements in this function, check the \"claim\" function","params":{"amount":"Amount locked in the contract for the swap in WEI","claimAddress":"Address that that was destined to claim the funds","preimageHash":"Preimage hash of the swap","timelock":"Block height after which the locked Ether can be refunded"}},"refundCooperative(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)":{"details":"This function allows cooperative refunds to be executed on someone else's behalf by a sponsor","params":{"amount":"Amount locked in the contract for the swap in WEI","claimAddress":"Address that that was destined to claim the funds","preimageHash":"Preimage hash of the swap","r":"Second 32 bytes of the signature","refundAddress":"Address that locked the Ether in the contract","s":"First 32 bytes of the signature","timelock":"Block height after which the locked Ether can be refunded","v":"Final byte of the signature"}},"refundCooperative(bytes32,uint256,address,uint256,uint8,bytes32,bytes32)":{"details":"To query the arguments of this function, get the \"Lockup\" event logs for your refund address and the preimage hash if you have itFor further explanations and reasoning behind the statements in this function, check the \"claim\" function","params":{"amount":"Amount locked in the contract for the swap in WEI","claimAddress":"Address that that was destined to claim the funds","preimageHash":"Preimage hash of the swap","r":"Second 32 bytes of the signature","s":"First 32 bytes of the signature","timelock":"Block height after which the locked Ether can be refunded","v":"Final byte of the signature"}},"version()":{"details":"Returns the version of the contract"}},"version":1},"userdoc":{"kind":"user","methods":{"checkCommitmentSignature(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)":{"notice":"Checks if a commitment signature is valid"},"claim(bytes32,uint256,address,address,uint256)":{"notice":"Claims Ether locked in the contract for a specified claim address"},"claim(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)":{"notice":"Claims Ether locked in the contract as commitment for a specified claim address"},"claim(bytes32,uint256,address,uint256)":{"notice":"Claims Ether locked in the contract"},"claim(bytes32,uint256,address,uint256,uint8,bytes32,bytes32)":{"notice":"Claims Ether locked in the contract using an EIP-712 signature from the claim addressThis function allows anyone to execute a claim on behalf of the intended claim address by providing a valid signature"},"claimBatch((bytes32,uint256,address,uint256,uint8,bytes32,bytes32)[])":{"notice":"Claims multiple swaps Supports both commitment and normal swaps"},"claimBatch(bytes32[],uint256[],address[],uint256[])":{"notice":"Claims multiple swaps"},"hashValues(bytes32,uint256,address,address,uint256)":{"notice":"Hashes all the values of a swap with Keccak256"},"lock(bytes32,address,address,uint256)":{"notice":"Locks Ether for a swap in the contractThe amount locked is the Ether sent in the transactionUse bytes32(0) as preimageHash only for commitment-based swaps to avoid accidental misuse"},"lock(bytes32,address,uint256)":{"notice":"Locks Ether for a swap in the contractThe amount locked is the Ether sent in the transaction and the refund address is the sender of the transactionUse bytes32(0) as preimageHash only for commitment-based swaps to avoid accidental misuse"},"lockPrepayMinerfee(bytes32,address,uint256,uint256)":{"notice":"Locks Ether for a swap in the contract and forwards a specified amount of Ether to the claim addressThe amount locked is the Ether sent in the transaction minus the prepay amount and the refund address is the sender of the transaction"},"refund(bytes32,uint256,address,address,uint256)":{"notice":"Refunds Ether locked in the contract after the timeout for a specified refund address address"},"refund(bytes32,uint256,address,uint256)":{"notice":"Refunds Ether locked in the contract after the timeout"},"refundCooperative(bytes32,uint256,address,address,uint256,uint8,bytes32,bytes32)":{"notice":"Refunds Ether locked in the contract with an EIP-712 signature of the claimAddress"},"refundCooperative(bytes32,uint256,address,uint256,uint8,bytes32,bytes32)":{"notice":"Refunds Ether locked in the contract with an EIP-712 signature of the claimAddress"},"version()":{"notice":"For backwards compatibility"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=solidity-lib/openzeppelin-contracts/contracts/","ds-test/=solidity-lib/forge-std/lib/ds-test/src/","erc4626-tests/=solidity-lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=solidity-lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=solidity-lib/forge-std/src/","halmos-cheatcodes/=solidity-lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=solidity-lib/openzeppelin-contracts/","permit2/=solidity-lib/permit2/src/","solmate/=solidity-lib/permit2/lib/solmate/"],"optimizer":{"enabled":true,"runs":10000000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/EtherSwap.sol":"EtherSwap"},"evmVersion":"osaka","libraries":{}},"sources":{"contracts/EtherSwap.sol":{"keccak256":"0x92b9a4f446a429e9cf4b50115b8fed30c029ae1664ee1066838aa73f3c2965cd","urls":["bzz-raw://0f75cdf232aa6b98cda71845ae9c8a10afe53efa35c9e6ccff34934dbb8daa89","dweb:/ipfs/QmPJLaQVKFjLWAim45qCHCeqdVFBxokCbwZbwfpaL1isVo"],"license":"MIT"},"contracts/TransferHelper.sol":{"keccak256":"0x904b11574cbdeb14418232b69209aee913f21efedfb5a73c7485d5908f7f3cc0","urls":["bzz-raw://986e85839e2268d7584a4b294fa8a0313f75d4c720343a1d7f0b1f2453bbef42","dweb:/ipfs/QmWRvDVtrxvBppdyL6UbnziEB8WFJx8THExTXXEnUa7Gvq"],"license":"GPL-3.0-or-later"}},"version":1},"id":3}