UNPKG

openzeppelin-contracts

Version:

Secure Smart Contract library for Solidity

183 lines (182 loc) 19.9 kB
{ "contractName": "PaymentSplitter", "abi": [ { "inputs": [ { "internalType": "address[]", "name": "payees", "type": "address[]" }, { "internalType": "uint256[]", "name": "shares_", "type": "uint256[]" } ], "stateMutability": "payable", "type": "constructor" }, { "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 payable", "name": "account", "type": "address" } ], "name": "release", "outputs": [], "stateMutability": "nonpayable", "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": [], "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": "0x60806040526040516200151238038062001512833981810160405281019062000029919062000523565b805182511462000070576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200006790620007c3565b60405180910390fd5b6000825111620000b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ae9062000807565b60405180910390fd5b60005b82518110156200016e576200015883828151811062000102577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015183838151811062000144577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516200017760201b60201c565b8080620001659062000989565b915050620000ba565b50505062000a69565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001ea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e190620007a1565b60405180910390fd5b6000811162000230576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002279062000829565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414620002b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ac90620007e5565b60405180910390fd5b6004829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000546200036c9190620008ee565b6000819055507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac8282604051620003a592919062000774565b60405180910390a15050565b6000620003c8620003c2846200087f565b6200084b565b90508083825260208201905082856020860282011115620003e857600080fd5b60005b858110156200041c57816200040188826200049b565b845260208401935060208301925050600181019050620003eb565b5050509392505050565b60006200043d6200043784620008ae565b6200084b565b905080838252602082019050828560208602820111156200045d57600080fd5b60005b858110156200049157816200047688826200050c565b84526020840193506020830192505060018101905062000460565b5050509392505050565b600081519050620004ac8162000a35565b92915050565b600082601f830112620004c457600080fd5b8151620004d6848260208601620003b1565b91505092915050565b600082601f830112620004f157600080fd5b81516200050384826020860162000426565b91505092915050565b6000815190506200051d8162000a4f565b92915050565b600080604083850312156200053757600080fd5b600083015167ffffffffffffffff8111156200055257600080fd5b6200056085828601620004b2565b925050602083015167ffffffffffffffff8111156200057e57600080fd5b6200058c85828601620004df565b9150509250929050565b620005a1816200094b565b82525050565b6000620005b6602c83620008dd565b91507f5061796d656e7453706c69747465723a206163636f756e74206973207468652060008301527f7a65726f206164647265737300000000000000000000000000000000000000006020830152604082019050919050565b60006200061e603283620008dd565b91507f5061796d656e7453706c69747465723a2070617965657320616e64207368617260008301527f6573206c656e677468206d69736d6174636800000000000000000000000000006020830152604082019050919050565b600062000686602b83620008dd565b91507f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960008301527f20686173207368617265730000000000000000000000000000000000000000006020830152604082019050919050565b6000620006ee601a83620008dd565b91507f5061796d656e7453706c69747465723a206e6f207061796565730000000000006000830152602082019050919050565b600062000730601d83620008dd565b91507f5061796d656e7453706c69747465723a207368617265732061726520300000006000830152602082019050919050565b6200076e816200097f565b82525050565b60006040820190506200078b600083018562000596565b6200079a602083018462000763565b9392505050565b60006020820190508181036000830152620007bc81620005a7565b9050919050565b60006020820190508181036000830152620007de816200060f565b9050919050565b60006020820190508181036000830152620008008162000677565b9050919050565b600060208201905081810360008301526200082281620006df565b9050919050565b60006020820190508181036000830152620008448162000721565b9050919050565b6000604051905081810181811067ffffffffffffffff8211171562000875576200087462000a06565b5b8060405250919050565b600067ffffffffffffffff8211156200089d576200089c62000a06565b5b602082029050602081019050919050565b600067ffffffffffffffff821115620008cc57620008cb62000a06565b5b602082029050602081019050919050565b600082825260208201905092915050565b6000620008fb826200097f565b915062000908836200097f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000940576200093f620009d7565b5b828201905092915050565b600062000958826200095f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000996826200097f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620009cc57620009cb620009d7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000a40816200094b565b811462000a4c57600080fd5b50565b62000a5a816200097f565b811462000a6657600080fd5b50565b610a998062000a796000396000f3fe6080604052600436106100595760003560e01c806319165587146100a55780633a98ef39146100ce5780638b83209b146100f95780639852595c14610136578063ce7c2ac214610173578063e33b7de3146101b0576100a0565b366100a0577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706100876101db565b34604051610096929190610792565b60405180910390a1005b600080fd5b3480156100b157600080fd5b506100cc60048036038101906100c79190610603565b6101e3565b005b3480156100da57600080fd5b506100e3610488565b6040516100f091906107fb565b60405180910390f35b34801561010557600080fd5b50610120600480360381019061011b919061062c565b610491565b60405161012d919061074e565b60405180910390f35b34801561014257600080fd5b5061015d600480360381019061015891906105da565b6104ff565b60405161016a91906107fb565b60405180910390f35b34801561017f57600080fd5b5061019a600480360381019061019591906105da565b610548565b6040516101a791906107fb565b60405180910390f35b3480156101bc57600080fd5b506101c5610591565b6040516101d291906107fb565b60405180910390f35b600033905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025c906107bb565b60405180910390fd5b6000600154476102759190610827565b90506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600054600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461030791906108ae565b610311919061087d565b61031b9190610908565b90506000811415610361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610358906107db565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103ac9190610827565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806001546103fd9190610827565b6001819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610449573d6000803e3d6000fd5b507fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056838260405161047b929190610769565b60405180910390a1505050565b60008054905090565b6000600482815481106104cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600154905090565b6000813590506105aa81610a1e565b92915050565b6000813590506105bf81610a35565b92915050565b6000813590506105d481610a4c565b92915050565b6000602082840312156105ec57600080fd5b60006105fa8482850161059b565b91505092915050565b60006020828403121561061557600080fd5b6000610623848285016105b0565b91505092915050565b60006020828403121561063e57600080fd5b600061064c848285016105c5565b91505092915050565b61065e8161098a565b82525050565b61066d8161093c565b82525050565b6000610680602683610816565b91507f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060008301527f73686172657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006106e6602b83610816565b91507f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060008301527f647565207061796d656e740000000000000000000000000000000000000000006020830152604082019050919050565b61074881610980565b82525050565b60006020820190506107636000830184610664565b92915050565b600060408201905061077e6000830185610655565b61078b602083018461073f565b9392505050565b60006040820190506107a76000830185610664565b6107b4602083018461073f565b9392505050565b600060208201905081810360008301526107d481610673565b9050919050565b600060208201905081810360008301526107f4816106d9565b9050919050565b6000602082019050610810600083018461073f565b92915050565b600082825260208201905092915050565b600061083282610980565b915061083d83610980565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610872576108716109c0565b5b828201905092915050565b600061088882610980565b915061089383610980565b9250826108a3576108a26109ef565b5b828204905092915050565b60006108b982610980565b91506108c483610980565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156108fd576108fc6109c0565b5b828202905092915050565b600061091382610980565b915061091e83610980565b925082821015610931576109306109c0565b5b828203905092915050565b600061094782610960565b9050919050565b600061095982610960565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006109958261099c565b9050919050565b60006109a7826109ae565b9050919050565b60006109b982610960565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b610a278161093c565b8114610a3257600080fd5b50565b610a3e8161094e565b8114610a4957600080fd5b50565b610a5581610980565b8114610a6057600080fd5b5056fea26469706673582212208f92e1d8a27e63c9c680d90ef6296d38558e2a121ba10559e1973c90df03b0b564736f6c63430008000033", "deployedBytecode": "0x6080604052600436106100595760003560e01c806319165587146100a55780633a98ef39146100ce5780638b83209b146100f95780639852595c14610136578063ce7c2ac214610173578063e33b7de3146101b0576100a0565b366100a0577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706100876101db565b34604051610096929190610792565b60405180910390a1005b600080fd5b3480156100b157600080fd5b506100cc60048036038101906100c79190610603565b6101e3565b005b3480156100da57600080fd5b506100e3610488565b6040516100f091906107fb565b60405180910390f35b34801561010557600080fd5b50610120600480360381019061011b919061062c565b610491565b60405161012d919061074e565b60405180910390f35b34801561014257600080fd5b5061015d600480360381019061015891906105da565b6104ff565b60405161016a91906107fb565b60405180910390f35b34801561017f57600080fd5b5061019a600480360381019061019591906105da565b610548565b6040516101a791906107fb565b60405180910390f35b3480156101bc57600080fd5b506101c5610591565b6040516101d291906107fb565b60405180910390f35b600033905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025c906107bb565b60405180910390fd5b6000600154476102759190610827565b90506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600054600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461030791906108ae565b610311919061087d565b61031b9190610908565b90506000811415610361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610358906107db565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103ac9190610827565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806001546103fd9190610827565b6001819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610449573d6000803e3d6000fd5b507fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056838260405161047b929190610769565b60405180910390a1505050565b60008054905090565b6000600482815481106104cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600154905090565b6000813590506105aa81610a1e565b92915050565b6000813590506105bf81610a35565b92915050565b6000813590506105d481610a4c565b92915050565b6000602082840312156105ec57600080fd5b60006105fa8482850161059b565b91505092915050565b60006020828403121561061557600080fd5b6000610623848285016105b0565b91505092915050565b60006020828403121561063e57600080fd5b600061064c848285016105c5565b91505092915050565b61065e8161098a565b82525050565b61066d8161093c565b82525050565b6000610680602683610816565b91507f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060008301527f73686172657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006106e6602b83610816565b91507f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060008301527f647565207061796d656e740000000000000000000000000000000000000000006020830152604082019050919050565b61074881610980565b82525050565b60006020820190506107636000830184610664565b92915050565b600060408201905061077e6000830185610655565b61078b602083018461073f565b9392505050565b60006040820190506107a76000830185610664565b6107b4602083018461073f565b9392505050565b600060208201905081810360008301526107d481610673565b9050919050565b600060208201905081810360008301526107f4816106d9565b9050919050565b6000602082019050610810600083018461073f565b92915050565b600082825260208201905092915050565b600061083282610980565b915061083d83610980565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610872576108716109c0565b5b828201905092915050565b600061088882610980565b915061089383610980565b9250826108a3576108a26109ef565b5b828204905092915050565b60006108b982610980565b91506108c483610980565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156108fd576108fc6109c0565b5b828202905092915050565b600061091382610980565b915061091e83610980565b925082821015610931576109306109c0565b5b828203905092915050565b600061094782610960565b9050919050565b600061095982610960565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006109958261099c565b9050919050565b60006109a7826109ae565b9050919050565b60006109b982610960565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b610a278161093c565b8114610a3257600080fd5b50565b610a3e8161094e565b8114610a4957600080fd5b50565b610a5581610980565b8114610a6057600080fd5b5056fea26469706673582212208f92e1d8a27e63c9c680d90ef6296d38558e2a121ba10559e1973c90df03b0b564736f6c63430008000033", "linkReferences": {}, "deployedLinkReferences": {} }