{
  "_format": "hh-sol-artifact-1",
  "contractName": "CMCDeposit",
  "sourceName": "src.sol/CMCDeposit.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "assetId",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "AliceDeposited",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "assetId",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "depositAlice",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "assetId",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address payable",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "exit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAlice",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getBob",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "assetId",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "getExitableAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "assetId",
          "type": "address"
        }
      ],
      "name": "getTotalDepositsAlice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "assetId",
          "type": "address"
        }
      ],
      "name": "getTotalDepositsBob",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "assetId",
          "type": "address"
        }
      ],
      "name": "getTotalTransferred",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_alice",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_bob",
          "type": "address"
        }
      ],
      "name": "setup",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b5030606081901b60805261122961005d6000398060a5528061025e52806102d952806103ef528061056452806106af528061072b52806107a1528061082a52806108c352506112296000f3fe6080604052600436106100955760003560e01c8063b081e9c811610059578063b081e9c8146101c7578063cefa5122146101e7578063e985256914610207578063eeb30fea14610227578063f83d08ba1461023c57610115565b8063241686a01461011a5780632d34ba79146101455780635bc9d96d14610167578063635ae901146101875780636f33389e1461019a57610115565b3661011557306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156100ec5760405162461bcd60e51b81526004016100e39061116b565b60405180910390fd5b60016000541461010e5760405162461bcd60e51b81526004016100e3906110a4565b6001600055005b600080fd5b34801561012657600080fd5b5061012f610251565b60405161013c9190610e97565b60405180910390f35b34801561015157600080fd5b50610165610160366004610d93565b6102ce565b005b34801561017357600080fd5b50610165610182366004610dcb565b6103e4565b610165610195366004610e15565b610559565b3480156101a657600080fd5b506101ba6101b5366004610d77565b6106a2565b60405161013c91906111a2565b3480156101d357600080fd5b506101ba6101e2366004610d77565b61071e565b3480156101f357600080fd5b506101ba610202366004610d77565b610794565b34801561021357600080fd5b506101ba610222366004610d93565b61081d565b34801561023357600080fd5b5061012f6108b6565b34801561024857600080fd5b506101ba610933565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561029c5760405162461bcd60e51b81526004016100e39061116b565b6001600054146102be5760405162461bcd60e51b81526004016100e3906110a4565b506002546001600160a01b031690565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156103175760405162461bcd60e51b81526004016100e39061116b565b6001546001600160a01b0316156103405760405162461bcd60e51b81526004016100e39061113b565b6001600160a01b0382161580159061036057506001600160a01b03811615155b61037c5760405162461bcd60e51b81526004016100e390610f89565b806001600160a01b0316826001600160a01b031614156103ae5760405162461bcd60e51b81526004016100e390610f1b565b6103b6610939565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561042d5760405162461bcd60e51b81526004016100e39061116b565b60016000541461044f5760405162461bcd60e51b81526004016100e3906110a4565b6002600055336001600160a01b038316148061047c5750806001600160a01b0316826001600160a01b0316145b6104985760405162461bcd60e51b81526004016100e390611104565b6001600160a01b0380841660009081526004602090815260408083209386168352929052908120546104cb908590610940565b9050600081116104ed5760405162461bcd60e51b81526004016100e3906110db565b6001600160a01b0380851660009081526004602090815260408083209387168352929052205461051d908261095b565b6001600160a01b0380861660009081526004602090815260408083209388168352929052205561054e84838361099d565b505060016000555050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156105a25760405162461bcd60e51b81526004016100e39061116b565b6001600054146105c45760405162461bcd60e51b81526004016100e3906110a4565b60026000556105d2826109d3565b156105fb578034146105f65760405162461bcd60e51b81526004016100e390611001565b610641565b34156106195760405162461bcd60e51b81526004016100e390611038565b610625823330846109e0565b6106415760405162461bcd60e51b81526004016100e390610fc0565b6001600160a01b03821660009081526005602052604090819020805483019055517fb52926ac8ed62d53d4b88d81b71c48639bd63aa53950fcf3e1d7676ca7c26140906106919084908490610ecf565b60405180910390a150506001600055565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156106ed5760405162461bcd60e51b81526004016100e39061116b565b60016000541461070f5760405162461bcd60e51b81526004016100e3906110a4565b61071882610a33565b92915050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107695760405162461bcd60e51b81526004016100e39061116b565b60016000541461078b5760405162461bcd60e51b81526004016100e3906110a4565b61071882610a4e565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107df5760405162461bcd60e51b81526004016100e39061116b565b6001600054146108015760405162461bcd60e51b81526004016100e3906110a4565b506001600160a01b031660009081526003602052604090205490565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108685760405162461bcd60e51b81526004016100e39061116b565b60016000541461088a5760405162461bcd60e51b81526004016100e3906110a4565b506001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156109015760405162461bcd60e51b81526004016100e39061116b565b6001600054146109235760405162461bcd60e51b81526004016100e3906110a4565b506001546001600160a01b031690565b60005481565b6001600055565b60006109548261094f85610a83565b610b1a565b9392505050565b600061095483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b30565b6109a78382610b5c565b6109b2838383610b7e565b6109ce5760405162461bcd60e51b81526004016100e390610f52565b505050565b6001600160a01b03161590565b6000610a2a858585856040516024016109fb93929190610eab565b60408051601f198184030181529190526020810180516001600160e01b03166323b872dd60e01b179052610baf565b95945050505050565b6001600160a01b031660009081526005602052604090205490565b6001600160a01b0381166000908152600560209081526040808320546003909252822054610a7b84610a83565b010392915050565b6000610a8e826109d3565b610b13576040516370a0823160e01b81526001600160a01b038316906370a0823190610abe903090600401610e97565b60206040518083038186803b158015610ad657600080fd5b505afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e9190610e60565b610718565b5047919050565b6000818310610b295781610954565b5090919050565b60008184841115610b545760405162461bcd60e51b81526004016100e39190610ee8565b505050900390565b6001600160a01b03909116600090815260036020526040902080549091019055565b6000610b89846109d3565b610b9d57610b98848484610c60565b610ba7565b610ba78383610c6d565b949350505050565b6000610bba83610ce5565b610bd65760405162461bcd60e51b81526004016100e390611079565b60006060846001600160a01b031684604051610bf29190610e78565b6000604051808303816000865af19150503d8060008114610c2f576040519150601f19603f3d011682016040523d82523d6000602084013e610c34565b606091505b5091509150610c438282610d1e565b80511580610a2a575080806020019051810190610a2a9190610e40565b6000610ba7848484610d2f565b6000806060846001600160a01b031684604051610c8990610e94565b60006040518083038185875af1925050503d8060008114610cc6576040519150601f19603f3d011682016040523d82523d6000602084013e610ccb565b606091505b5091509150610cda8282610d1e565b506001949350505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610ba7575050151592915050565b81610d2b57805160208201fd5b5050565b6000610ba7848484604051602401610d48929190610ecf565b60408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052610baf565b600060208284031215610d88578081fd5b8135610954816111db565b60008060408385031215610da5578081fd5b8235610db0816111db565b91506020830135610dc0816111db565b809150509250929050565b600080600060608486031215610ddf578081fd5b8335610dea816111db565b92506020840135610dfa816111db565b91506040840135610e0a816111db565b809150509250925092565b60008060408385031215610e27578182fd5b8235610e32816111db565b946020939093013593505050565b600060208284031215610e51578081fd5b81518015158114610954578182fd5b600060208284031215610e71578081fd5b5051919050565b60008251610e8a8184602087016111ab565b9190910192915050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6000602082528251806020840152610f078160408501602087016111ab565b601f01601f19169190910160400192915050565b6020808252601f908201527f434d43436f72653a204944454e544943414c5f5041525449434950414e545300604082015260600190565b60208082526019908201527f434d4341737365743a205452414e534645525f4641494c454400000000000000604082015260600190565b6020808252601c908201527f434d43436f72653a20494e56414c49445f5041525449434950414e5400000000604082015260600190565b60208082526021908201527f434d434465706f7369743a2045524332305f5452414e534645525f4641494c456040820152601160fa1b606082015260800190565b6020808252601a908201527f434d434465706f7369743a2056414c55455f4d49534d41544348000000000000604082015260600190565b60208082526021908201527f434d434465706f7369743a204554485f574954485f4552435f5452414e5346456040820152602960f91b606082015260800190565b6020808252601190820152704c696245524332303a204e4f5f434f444560781b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a205245454e5452414e545f43414c4c00604082015260600190565b6020808252600f908201526e0434d4341737365743a204e4f5f4f5608c1b604082015260600190565b60208082526018908201527f434d4341737365743a204f574e45525f4d49534d415443480000000000000000604082015260600190565b6020808252601690820152750434d43436f72653a20414c52454144595f53455455560541b604082015260600190565b6020808252601a908201527f4d6173746572636f70793a204f4e4c595f5649415f50524f5859000000000000604082015260600190565b90815260200190565b60005b838110156111c65781810151838201526020016111ae565b838111156111d5576000848401525b50505050565b6001600160a01b03811681146111f057600080fd5b5056fea2646970667358221220c866cb36a443e13a253b872b8a11e2d3b3c1af25170de49dcbf88148f43d86a164736f6c63430007010033",
  "deployedBytecode": "0x6080604052600436106100955760003560e01c8063b081e9c811610059578063b081e9c8146101c7578063cefa5122146101e7578063e985256914610207578063eeb30fea14610227578063f83d08ba1461023c57610115565b8063241686a01461011a5780632d34ba79146101455780635bc9d96d14610167578063635ae901146101875780636f33389e1461019a57610115565b3661011557306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156100ec5760405162461bcd60e51b81526004016100e39061116b565b60405180910390fd5b60016000541461010e5760405162461bcd60e51b81526004016100e3906110a4565b6001600055005b600080fd5b34801561012657600080fd5b5061012f610251565b60405161013c9190610e97565b60405180910390f35b34801561015157600080fd5b50610165610160366004610d93565b6102ce565b005b34801561017357600080fd5b50610165610182366004610dcb565b6103e4565b610165610195366004610e15565b610559565b3480156101a657600080fd5b506101ba6101b5366004610d77565b6106a2565b60405161013c91906111a2565b3480156101d357600080fd5b506101ba6101e2366004610d77565b61071e565b3480156101f357600080fd5b506101ba610202366004610d77565b610794565b34801561021357600080fd5b506101ba610222366004610d93565b61081d565b34801561023357600080fd5b5061012f6108b6565b34801561024857600080fd5b506101ba610933565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561029c5760405162461bcd60e51b81526004016100e39061116b565b6001600054146102be5760405162461bcd60e51b81526004016100e3906110a4565b506002546001600160a01b031690565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156103175760405162461bcd60e51b81526004016100e39061116b565b6001546001600160a01b0316156103405760405162461bcd60e51b81526004016100e39061113b565b6001600160a01b0382161580159061036057506001600160a01b03811615155b61037c5760405162461bcd60e51b81526004016100e390610f89565b806001600160a01b0316826001600160a01b031614156103ae5760405162461bcd60e51b81526004016100e390610f1b565b6103b6610939565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561042d5760405162461bcd60e51b81526004016100e39061116b565b60016000541461044f5760405162461bcd60e51b81526004016100e3906110a4565b6002600055336001600160a01b038316148061047c5750806001600160a01b0316826001600160a01b0316145b6104985760405162461bcd60e51b81526004016100e390611104565b6001600160a01b0380841660009081526004602090815260408083209386168352929052908120546104cb908590610940565b9050600081116104ed5760405162461bcd60e51b81526004016100e3906110db565b6001600160a01b0380851660009081526004602090815260408083209387168352929052205461051d908261095b565b6001600160a01b0380861660009081526004602090815260408083209388168352929052205561054e84838361099d565b505060016000555050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156105a25760405162461bcd60e51b81526004016100e39061116b565b6001600054146105c45760405162461bcd60e51b81526004016100e3906110a4565b60026000556105d2826109d3565b156105fb578034146105f65760405162461bcd60e51b81526004016100e390611001565b610641565b34156106195760405162461bcd60e51b81526004016100e390611038565b610625823330846109e0565b6106415760405162461bcd60e51b81526004016100e390610fc0565b6001600160a01b03821660009081526005602052604090819020805483019055517fb52926ac8ed62d53d4b88d81b71c48639bd63aa53950fcf3e1d7676ca7c26140906106919084908490610ecf565b60405180910390a150506001600055565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156106ed5760405162461bcd60e51b81526004016100e39061116b565b60016000541461070f5760405162461bcd60e51b81526004016100e3906110a4565b61071882610a33565b92915050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107695760405162461bcd60e51b81526004016100e39061116b565b60016000541461078b5760405162461bcd60e51b81526004016100e3906110a4565b61071882610a4e565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107df5760405162461bcd60e51b81526004016100e39061116b565b6001600054146108015760405162461bcd60e51b81526004016100e3906110a4565b506001600160a01b031660009081526003602052604090205490565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108685760405162461bcd60e51b81526004016100e39061116b565b60016000541461088a5760405162461bcd60e51b81526004016100e3906110a4565b506001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156109015760405162461bcd60e51b81526004016100e39061116b565b6001600054146109235760405162461bcd60e51b81526004016100e3906110a4565b506001546001600160a01b031690565b60005481565b6001600055565b60006109548261094f85610a83565b610b1a565b9392505050565b600061095483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b30565b6109a78382610b5c565b6109b2838383610b7e565b6109ce5760405162461bcd60e51b81526004016100e390610f52565b505050565b6001600160a01b03161590565b6000610a2a858585856040516024016109fb93929190610eab565b60408051601f198184030181529190526020810180516001600160e01b03166323b872dd60e01b179052610baf565b95945050505050565b6001600160a01b031660009081526005602052604090205490565b6001600160a01b0381166000908152600560209081526040808320546003909252822054610a7b84610a83565b010392915050565b6000610a8e826109d3565b610b13576040516370a0823160e01b81526001600160a01b038316906370a0823190610abe903090600401610e97565b60206040518083038186803b158015610ad657600080fd5b505afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e9190610e60565b610718565b5047919050565b6000818310610b295781610954565b5090919050565b60008184841115610b545760405162461bcd60e51b81526004016100e39190610ee8565b505050900390565b6001600160a01b03909116600090815260036020526040902080549091019055565b6000610b89846109d3565b610b9d57610b98848484610c60565b610ba7565b610ba78383610c6d565b949350505050565b6000610bba83610ce5565b610bd65760405162461bcd60e51b81526004016100e390611079565b60006060846001600160a01b031684604051610bf29190610e78565b6000604051808303816000865af19150503d8060008114610c2f576040519150601f19603f3d011682016040523d82523d6000602084013e610c34565b606091505b5091509150610c438282610d1e565b80511580610a2a575080806020019051810190610a2a9190610e40565b6000610ba7848484610d2f565b6000806060846001600160a01b031684604051610c8990610e94565b60006040518083038185875af1925050503d8060008114610cc6576040519150601f19603f3d011682016040523d82523d6000602084013e610ccb565b606091505b5091509150610cda8282610d1e565b506001949350505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610ba7575050151592915050565b81610d2b57805160208201fd5b5050565b6000610ba7848484604051602401610d48929190610ecf565b60408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052610baf565b600060208284031215610d88578081fd5b8135610954816111db565b60008060408385031215610da5578081fd5b8235610db0816111db565b91506020830135610dc0816111db565b809150509250929050565b600080600060608486031215610ddf578081fd5b8335610dea816111db565b92506020840135610dfa816111db565b91506040840135610e0a816111db565b809150509250925092565b60008060408385031215610e27578182fd5b8235610e32816111db565b946020939093013593505050565b600060208284031215610e51578081fd5b81518015158114610954578182fd5b600060208284031215610e71578081fd5b5051919050565b60008251610e8a8184602087016111ab565b9190910192915050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6000602082528251806020840152610f078160408501602087016111ab565b601f01601f19169190910160400192915050565b6020808252601f908201527f434d43436f72653a204944454e544943414c5f5041525449434950414e545300604082015260600190565b60208082526019908201527f434d4341737365743a205452414e534645525f4641494c454400000000000000604082015260600190565b6020808252601c908201527f434d43436f72653a20494e56414c49445f5041525449434950414e5400000000604082015260600190565b60208082526021908201527f434d434465706f7369743a2045524332305f5452414e534645525f4641494c456040820152601160fa1b606082015260800190565b6020808252601a908201527f434d434465706f7369743a2056414c55455f4d49534d41544348000000000000604082015260600190565b60208082526021908201527f434d434465706f7369743a204554485f574954485f4552435f5452414e5346456040820152602960f91b606082015260800190565b6020808252601190820152704c696245524332303a204e4f5f434f444560781b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a205245454e5452414e545f43414c4c00604082015260600190565b6020808252600f908201526e0434d4341737365743a204e4f5f4f5608c1b604082015260600190565b60208082526018908201527f434d4341737365743a204f574e45525f4d49534d415443480000000000000000604082015260600190565b6020808252601690820152750434d43436f72653a20414c52454144595f53455455560541b604082015260600190565b6020808252601a908201527f4d6173746572636f70793a204f4e4c595f5649415f50524f5859000000000000604082015260600190565b90815260200190565b60005b838110156111c65781810151838201526020016111ae565b838111156111d5576000848401525b50505050565b6001600160a01b03811681146111f057600080fd5b5056fea2646970667358221220c866cb36a443e13a253b872b8a11e2d3b3c1af25170de49dcbf88148f43d86a164736f6c63430007010033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
