{
  "_format": "hh-sol-artifact-1",
  "contractName": "PaymentSplitter",
  "sourceName": "@openzeppelin/contracts/finance/PaymentSplitter.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "payees",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "shares_",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "payable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "ERC20PaymentReleased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "shares",
          "type": "uint256"
        }
      ],
      "name": "PayeeAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "PaymentReceived",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "PaymentReleased",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "payee",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "releasable",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "releasable",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "release",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "release",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "released",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "released",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "shares",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "totalReleased",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalReleased",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalShares",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x6080604052604051620011ab380380620011ab83398101604081905262000026916200042e565b8051825114620000985760405162461bcd60e51b815260206004820152603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b60648201526084015b60405180910390fd5b6000825111620000eb5760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7453706c69747465723a206e6f2070617965657300000000000060448201526064016200008f565b60005b82518110156200015757620001428382815181106200011157620001116200050c565b60200260200101518383815181106200012e576200012e6200050c565b60200260200101516200016060201b60201c565b806200014e8162000538565b915050620000ee565b50505062000570565b6001600160a01b038216620001cd5760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b60648201526084016200008f565b600081116200021f5760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a2073686172657320617265203000000060448201526064016200008f565b6001600160a01b038216600090815260026020526040902054156200029b5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b60648201526084016200008f565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0384169081179091556000908152600260205260408120829055546200030390829062000554565b600055604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200038d576200038d6200034c565b604052919050565b60006001600160401b03821115620003b157620003b16200034c565b5060051b60200190565b600082601f830112620003cd57600080fd5b81516020620003e6620003e08362000395565b62000362565b82815260059290921b840181019181810190868411156200040657600080fd5b8286015b848110156200042357805183529183019183016200040a565b509695505050505050565b600080604083850312156200044257600080fd5b82516001600160401b03808211156200045a57600080fd5b818501915085601f8301126200046f57600080fd5b8151602062000482620003e08362000395565b82815260059290921b84018101918181019089841115620004a257600080fd5b948201945b83861015620004d95785516001600160a01b0381168114620004c95760008081fd5b82529482019490820190620004a7565b91880151919650909350505080821115620004f357600080fd5b506200050285828601620003bb565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016200054d576200054d62000522565b5060010190565b808201808211156200056a576200056a62000522565b92915050565b610c2b80620005806000396000f3fe6080604052600436106100a05760003560e01c80639852595c116100645780639852595c146101ac578063a3f8eace146101e2578063c45ac05014610202578063ce7c2ac214610222578063d79779b214610258578063e33b7de31461028e57600080fd5b806319165587146100ee5780633a98ef3914610110578063406072a91461013457806348b75044146101545780638b83209b1461017457600080fd5b366100e9577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b3480156100fa57600080fd5b5061010e6101093660046109bc565b6102a3565b005b34801561011c57600080fd5b506000545b6040519081526020015b60405180910390f35b34801561014057600080fd5b5061012161014f3660046109d9565b6103a5565b34801561016057600080fd5b5061010e61016f3660046109d9565b6103d2565b34801561018057600080fd5b5061019461018f366004610a12565b6104f5565b6040516001600160a01b03909116815260200161012b565b3480156101b857600080fd5b506101216101c73660046109bc565b6001600160a01b031660009081526003602052604090205490565b3480156101ee57600080fd5b506101216101fd3660046109bc565b610525565b34801561020e57600080fd5b5061012161021d3660046109d9565b61056d565b34801561022e57600080fd5b5061012161023d3660046109bc565b6001600160a01b031660009081526002602052604090205490565b34801561026457600080fd5b506101216102733660046109bc565b6001600160a01b031660009081526005602052604090205490565b34801561029a57600080fd5b50600154610121565b6001600160a01b0381166000908152600260205260409020546102e15760405162461bcd60e51b81526004016102d890610a2b565b60405180910390fd5b60006102ec82610525565b90508060000361030e5760405162461bcd60e51b81526004016102d890610a71565b6001600160a01b03821660009081526003602052604081208054839290610336908490610ad2565b92505081905550806001600082825461034f9190610ad2565b9091555061035f90508282610613565b604080516001600160a01b0384168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a15050565b6001600160a01b038083166000908152600660209081526040808320938516835292905220545b92915050565b6001600160a01b0381166000908152600260205260409020546104075760405162461bcd60e51b81526004016102d890610a2b565b6000610413838361056d565b9050806000036104355760405162461bcd60e51b81526004016102d890610a71565b6001600160a01b0380841660009081526006602090815260408083209386168352929052908120805483929061046c908490610ad2565b90915550506001600160a01b03831660009081526005602052604081208054839290610499908490610ad2565b909155506104aa9050838383610731565b604080516001600160a01b038481168252602082018490528516917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a2505050565b60006004828154811061050a5761050a610ae5565b6000918252602090912001546001600160a01b031692915050565b60008061053160015490565b61053b9047610ad2565b90506105668382610561866001600160a01b031660009081526003602052604090205490565b610783565b9392505050565b6001600160a01b03821660009081526005602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156105cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f09190610afb565b6105fa9190610ad2565b905061060b838261056187876103a5565b949350505050565b804710156106635760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102d8565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106b0576040519150601f19603f3d011682016040523d82523d6000602084013e6106b5565b606091505b505090508061072c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102d8565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261072c9084906107be565b600080546001600160a01b0385168252600260205260408220548391906107aa9086610b14565b6107b49190610b2b565b61060b9190610b4d565b6000610813826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108909092919063ffffffff16565b80519091501561072c57808060200190518101906108319190610b60565b61072c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102d8565b606061060b8484600085856001600160a01b0385163b6108f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102d8565b600080866001600160a01b0316858760405161090e9190610ba6565b60006040518083038185875af1925050503d806000811461094b576040519150601f19603f3d011682016040523d82523d6000602084013e610950565b606091505b509150915061096082828661096b565b979650505050505050565b6060831561097a575081610566565b82511561098a5782518084602001fd5b8160405162461bcd60e51b81526004016102d89190610bc2565b6001600160a01b03811681146109b957600080fd5b50565b6000602082840312156109ce57600080fd5b8135610566816109a4565b600080604083850312156109ec57600080fd5b82356109f7816109a4565b91506020830135610a07816109a4565b809150509250929050565b600060208284031215610a2457600080fd5b5035919050565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156103cc576103cc610abc565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610b0d57600080fd5b5051919050565b80820281158282048414176103cc576103cc610abc565b600082610b4857634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156103cc576103cc610abc565b600060208284031215610b7257600080fd5b8151801515811461056657600080fd5b60005b83811015610b9d578181015183820152602001610b85565b50506000910152565b60008251610bb8818460208701610b82565b9190910192915050565b6020815260008251806020840152610be1816040850160208701610b82565b601f01601f1916919091016040019291505056fea2646970667358221220c40e14710ce83594840df1d73833fff9c06c86bf17fd49b468766955a4bc396a64736f6c63430008110033",
  "deployedBytecode": "0x6080604052600436106100a05760003560e01c80639852595c116100645780639852595c146101ac578063a3f8eace146101e2578063c45ac05014610202578063ce7c2ac214610222578063d79779b214610258578063e33b7de31461028e57600080fd5b806319165587146100ee5780633a98ef3914610110578063406072a91461013457806348b75044146101545780638b83209b1461017457600080fd5b366100e9577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b3480156100fa57600080fd5b5061010e6101093660046109bc565b6102a3565b005b34801561011c57600080fd5b506000545b6040519081526020015b60405180910390f35b34801561014057600080fd5b5061012161014f3660046109d9565b6103a5565b34801561016057600080fd5b5061010e61016f3660046109d9565b6103d2565b34801561018057600080fd5b5061019461018f366004610a12565b6104f5565b6040516001600160a01b03909116815260200161012b565b3480156101b857600080fd5b506101216101c73660046109bc565b6001600160a01b031660009081526003602052604090205490565b3480156101ee57600080fd5b506101216101fd3660046109bc565b610525565b34801561020e57600080fd5b5061012161021d3660046109d9565b61056d565b34801561022e57600080fd5b5061012161023d3660046109bc565b6001600160a01b031660009081526002602052604090205490565b34801561026457600080fd5b506101216102733660046109bc565b6001600160a01b031660009081526005602052604090205490565b34801561029a57600080fd5b50600154610121565b6001600160a01b0381166000908152600260205260409020546102e15760405162461bcd60e51b81526004016102d890610a2b565b60405180910390fd5b60006102ec82610525565b90508060000361030e5760405162461bcd60e51b81526004016102d890610a71565b6001600160a01b03821660009081526003602052604081208054839290610336908490610ad2565b92505081905550806001600082825461034f9190610ad2565b9091555061035f90508282610613565b604080516001600160a01b0384168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a15050565b6001600160a01b038083166000908152600660209081526040808320938516835292905220545b92915050565b6001600160a01b0381166000908152600260205260409020546104075760405162461bcd60e51b81526004016102d890610a2b565b6000610413838361056d565b9050806000036104355760405162461bcd60e51b81526004016102d890610a71565b6001600160a01b0380841660009081526006602090815260408083209386168352929052908120805483929061046c908490610ad2565b90915550506001600160a01b03831660009081526005602052604081208054839290610499908490610ad2565b909155506104aa9050838383610731565b604080516001600160a01b038481168252602082018490528516917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a2505050565b60006004828154811061050a5761050a610ae5565b6000918252602090912001546001600160a01b031692915050565b60008061053160015490565b61053b9047610ad2565b90506105668382610561866001600160a01b031660009081526003602052604090205490565b610783565b9392505050565b6001600160a01b03821660009081526005602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156105cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f09190610afb565b6105fa9190610ad2565b905061060b838261056187876103a5565b949350505050565b804710156106635760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102d8565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106b0576040519150601f19603f3d011682016040523d82523d6000602084013e6106b5565b606091505b505090508061072c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102d8565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261072c9084906107be565b600080546001600160a01b0385168252600260205260408220548391906107aa9086610b14565b6107b49190610b2b565b61060b9190610b4d565b6000610813826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108909092919063ffffffff16565b80519091501561072c57808060200190518101906108319190610b60565b61072c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102d8565b606061060b8484600085856001600160a01b0385163b6108f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102d8565b600080866001600160a01b0316858760405161090e9190610ba6565b60006040518083038185875af1925050503d806000811461094b576040519150601f19603f3d011682016040523d82523d6000602084013e610950565b606091505b509150915061096082828661096b565b979650505050505050565b6060831561097a575081610566565b82511561098a5782518084602001fd5b8160405162461bcd60e51b81526004016102d89190610bc2565b6001600160a01b03811681146109b957600080fd5b50565b6000602082840312156109ce57600080fd5b8135610566816109a4565b600080604083850312156109ec57600080fd5b82356109f7816109a4565b91506020830135610a07816109a4565b809150509250929050565b600060208284031215610a2457600080fd5b5035919050565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156103cc576103cc610abc565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610b0d57600080fd5b5051919050565b80820281158282048414176103cc576103cc610abc565b600082610b4857634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156103cc576103cc610abc565b600060208284031215610b7257600080fd5b8151801515811461056657600080fd5b60005b83811015610b9d578181015183820152602001610b85565b50506000910152565b60008251610bb8818460208701610b82565b9190910192915050565b6020815260008251806020840152610be1816040850160208701610b82565b601f01601f1916919091016040019291505056fea2646970667358221220c40e14710ce83594840df1d73833fff9c06c86bf17fd49b468766955a4bc396a64736f6c63430008110033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
