{
  "_format": "hh-sol-artifact-1",
  "contractName": "PaymentSplitterUpgradeable",
  "sourceName": "contracts/finance/PaymentSplitterUpgradeable.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract IERC20Upgradeable",
          "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": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "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 IERC20Upgradeable",
          "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 IERC20Upgradeable",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "release",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20Upgradeable",
          "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 IERC20Upgradeable",
          "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": "0x608060405234801561001057600080fd5b50610c57806100206000396000f3fe6080604052600436106100a05760003560e01c80639852595c116100645780639852595c146101d2578063a3f8eace14610208578063c45ac05014610228578063ce7c2ac214610248578063d79779b21461027e578063e33b7de3146102b457600080fd5b806319165587146100ee5780633a98ef3914610110578063406072a91461013457806348b750441461017a5780638b83209b1461019a57600080fd5b366100e9577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b3480156100fa57600080fd5b5061010e6101093660046109cb565b6102c9565b005b34801561011c57600080fd5b506033545b6040519081526020015b60405180910390f35b34801561014057600080fd5b5061012161014f3660046109e8565b6001600160a01b03918216600090815260396020908152604080832093909416825291909152205490565b34801561018657600080fd5b5061010e6101953660046109e8565b6103b9565b3480156101a657600080fd5b506101ba6101b5366004610a21565b6104ca565b6040516001600160a01b03909116815260200161012b565b3480156101de57600080fd5b506101216101ed3660046109cb565b6001600160a01b031660009081526036602052604090205490565b34801561021457600080fd5b506101216102233660046109cb565b6104fa565b34801561023457600080fd5b506101216102433660046109e8565b610542565b34801561025457600080fd5b506101216102633660046109cb565b6001600160a01b031660009081526035602052604090205490565b34801561028a57600080fd5b506101216102993660046109cb565b6001600160a01b031660009081526038602052604090205490565b3480156102c057600080fd5b50603454610121565b6001600160a01b0381166000908152603560205260409020546103075760405162461bcd60e51b81526004016102fe90610a3a565b60405180910390fd5b6000610312826104fa565b9050806000036103345760405162461bcd60e51b81526004016102fe90610a80565b80603460008282546103469190610ae1565b90915550506001600160a01b0382166000908152603660205260409020805482019055610373828261060d565b604080516001600160a01b0384168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a15050565b6001600160a01b0381166000908152603560205260409020546103ee5760405162461bcd60e51b81526004016102fe90610a3a565b60006103fa8383610542565b90508060000361041c5760405162461bcd60e51b81526004016102fe90610a80565b6001600160a01b03831660009081526038602052604081208054839290610444908490610ae1565b90915550506001600160a01b03808416600090815260396020908152604080832093861683529290522080548201905561047f83838361072b565b604080516001600160a01b038481168252602082018490528516917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a2505050565b6000603782815481106104df576104df610af9565b6000918252602090912001546001600160a01b031692915050565b60008061050660345490565b6105109047610ae1565b905061053b8382610536866001600160a01b031660009081526036602052604090205490565b61077d565b9392505050565b6001600160a01b03821660009081526038602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156105a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c59190610b0f565b6105cf9190610ae1565b6001600160a01b03808616600090815260396020908152604080832093881683529290522054909150610605908490839061077d565b949350505050565b8047101561065d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102fe565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106aa576040519150601f19603f3d011682016040523d82523d6000602084013e6106af565b606091505b50509050806107265760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102fe565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107269084906107bb565b6033546001600160a01b038416600090815260356020526040812054909183916107a79086610b28565b6107b19190610b47565b6106059190610b69565b6000610810826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108909092919063ffffffff16565b90508051600014806108315750808060200190518101906108319190610b80565b6107265760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102fe565b6060610605848460008585600080866001600160a01b031685876040516108b79190610bd2565b60006040518083038185875af1925050503d80600081146108f4576040519150601f19603f3d011682016040523d82523d6000602084013e6108f9565b606091505b509150915061090a87838387610915565b979650505050505050565b6060831561098457825160000361097d576001600160a01b0385163b61097d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102fe565b5081610605565b61060583838151156109995781518083602001fd5b8060405162461bcd60e51b81526004016102fe9190610bee565b6001600160a01b03811681146109c857600080fd5b50565b6000602082840312156109dd57600080fd5b813561053b816109b3565b600080604083850312156109fb57600080fd5b8235610a06816109b3565b91506020830135610a16816109b3565b809150509250929050565b600060208284031215610a3357600080fd5b5035919050565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008219821115610af457610af4610acb565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610b2157600080fd5b5051919050565b6000816000190483118215151615610b4257610b42610acb565b500290565b600082610b6457634e487b7160e01b600052601260045260246000fd5b500490565b600082821015610b7b57610b7b610acb565b500390565b600060208284031215610b9257600080fd5b8151801515811461053b57600080fd5b60005b83811015610bbd578181015183820152602001610ba5565b83811115610bcc576000848401525b50505050565b60008251610be4818460208701610ba2565b9190910192915050565b6020815260008251806020840152610c0d816040850160208701610ba2565b601f01601f1916919091016040019291505056fea26469706673582212201bdb61907fed831f079155a64e5f4e6b91ab63cd25f388efab93c8a06392561064736f6c634300080d0033",
  "deployedBytecode": "0x6080604052600436106100a05760003560e01c80639852595c116100645780639852595c146101d2578063a3f8eace14610208578063c45ac05014610228578063ce7c2ac214610248578063d79779b21461027e578063e33b7de3146102b457600080fd5b806319165587146100ee5780633a98ef3914610110578063406072a91461013457806348b750441461017a5780638b83209b1461019a57600080fd5b366100e9577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b3480156100fa57600080fd5b5061010e6101093660046109cb565b6102c9565b005b34801561011c57600080fd5b506033545b6040519081526020015b60405180910390f35b34801561014057600080fd5b5061012161014f3660046109e8565b6001600160a01b03918216600090815260396020908152604080832093909416825291909152205490565b34801561018657600080fd5b5061010e6101953660046109e8565b6103b9565b3480156101a657600080fd5b506101ba6101b5366004610a21565b6104ca565b6040516001600160a01b03909116815260200161012b565b3480156101de57600080fd5b506101216101ed3660046109cb565b6001600160a01b031660009081526036602052604090205490565b34801561021457600080fd5b506101216102233660046109cb565b6104fa565b34801561023457600080fd5b506101216102433660046109e8565b610542565b34801561025457600080fd5b506101216102633660046109cb565b6001600160a01b031660009081526035602052604090205490565b34801561028a57600080fd5b506101216102993660046109cb565b6001600160a01b031660009081526038602052604090205490565b3480156102c057600080fd5b50603454610121565b6001600160a01b0381166000908152603560205260409020546103075760405162461bcd60e51b81526004016102fe90610a3a565b60405180910390fd5b6000610312826104fa565b9050806000036103345760405162461bcd60e51b81526004016102fe90610a80565b80603460008282546103469190610ae1565b90915550506001600160a01b0382166000908152603660205260409020805482019055610373828261060d565b604080516001600160a01b0384168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a15050565b6001600160a01b0381166000908152603560205260409020546103ee5760405162461bcd60e51b81526004016102fe90610a3a565b60006103fa8383610542565b90508060000361041c5760405162461bcd60e51b81526004016102fe90610a80565b6001600160a01b03831660009081526038602052604081208054839290610444908490610ae1565b90915550506001600160a01b03808416600090815260396020908152604080832093861683529290522080548201905561047f83838361072b565b604080516001600160a01b038481168252602082018490528516917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a2505050565b6000603782815481106104df576104df610af9565b6000918252602090912001546001600160a01b031692915050565b60008061050660345490565b6105109047610ae1565b905061053b8382610536866001600160a01b031660009081526036602052604090205490565b61077d565b9392505050565b6001600160a01b03821660009081526038602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156105a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c59190610b0f565b6105cf9190610ae1565b6001600160a01b03808616600090815260396020908152604080832093881683529290522054909150610605908490839061077d565b949350505050565b8047101561065d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102fe565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106aa576040519150601f19603f3d011682016040523d82523d6000602084013e6106af565b606091505b50509050806107265760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102fe565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107269084906107bb565b6033546001600160a01b038416600090815260356020526040812054909183916107a79086610b28565b6107b19190610b47565b6106059190610b69565b6000610810826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108909092919063ffffffff16565b90508051600014806108315750808060200190518101906108319190610b80565b6107265760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102fe565b6060610605848460008585600080866001600160a01b031685876040516108b79190610bd2565b60006040518083038185875af1925050503d80600081146108f4576040519150601f19603f3d011682016040523d82523d6000602084013e6108f9565b606091505b509150915061090a87838387610915565b979650505050505050565b6060831561098457825160000361097d576001600160a01b0385163b61097d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102fe565b5081610605565b61060583838151156109995781518083602001fd5b8060405162461bcd60e51b81526004016102fe9190610bee565b6001600160a01b03811681146109c857600080fd5b50565b6000602082840312156109dd57600080fd5b813561053b816109b3565b600080604083850312156109fb57600080fd5b8235610a06816109b3565b91506020830135610a16816109b3565b809150509250929050565b600060208284031215610a3357600080fd5b5035919050565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008219821115610af457610af4610acb565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610b2157600080fd5b5051919050565b6000816000190483118215151615610b4257610b42610acb565b500290565b600082610b6457634e487b7160e01b600052601260045260246000fd5b500490565b600082821015610b7b57610b7b610acb565b500390565b600060208284031215610b9257600080fd5b8151801515811461053b57600080fd5b60005b83811015610bbd578181015183820152602001610ba5565b83811115610bcc576000848401525b50505050565b60008251610be4818460208701610ba2565b9190910192915050565b6020815260008251806020840152610c0d816040850160208701610ba2565b601f01601f1916919091016040019291505056fea26469706673582212201bdb61907fed831f079155a64e5f4e6b91ab63cd25f388efab93c8a06392561064736f6c634300080d0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
