UNPKG

@openzeppelin/contracts-upgradeable

Version:
366 lines (365 loc) 19.9 kB
{ "_format": "hh-sol-artifact-1", "contractName": "VestingWalletUpgradeable", "sourceName": "contracts/finance/VestingWalletUpgradeable.sol", "abi": [ { "inputs": [], "name": "FailedCall", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ERC20Released", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "EtherReleased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [], "name": "duration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "end", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "beneficiary", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "uint64", "name": "durationSeconds", "type": "uint64" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "releasable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "releasable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "release", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "release", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "released", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "released", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "start", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "timestamp", "type": "uint64" } ], "name": "vestedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint64", "name": "timestamp", "type": "uint64" } ], "name": "vestedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x608060405234801561000f575f80fd5b50610c2a8061001d5f395ff3fe6080604052600436106100e7575f3560e01c80639613252111610087578063be9a655511610057578063be9a655514610249578063efbe1c1c1461025d578063f2fde38b14610271578063fbccedae14610290575f80fd5b806396132521146101cc5780639852595c146101ec578063989a83661461020b578063a3f8eace1461022a575f80fd5b8063715018a6116100c2578063715018a614610159578063810ec23b1461016d57806386d1a69f1461018c5780638da5cb5b146101a0575f80fd5b80630a17b06b146100f25780630fb5a6b4146101245780631916558714610138575f80fd5b366100ee57005b5f80fd5b3480156100fd575f80fd5b5061011161010c366004610a94565b6102a4565b6040519081526020015b60405180910390f35b34801561012f575f80fd5b506101116102d3565b348015610143575f80fd5b50610157610152366004610ac3565b610309565b005b348015610164575f80fd5b506101576103a9565b348015610178575f80fd5b50610111610187366004610adc565b6103bc565b348015610197575f80fd5b50610157610440565b3480156101ab575f80fd5b506101b46104b8565b6040516001600160a01b03909116815260200161011b565b3480156101d7575f80fd5b505f80516020610bd583398151915254610111565b3480156101f7575f80fd5b50610111610206366004610ac3565b6104e6565b348015610216575f80fd5b50610157610225366004610b0d565b61051f565b348015610235575f80fd5b50610111610244366004610ac3565b61061c565b348015610254575f80fd5b5061011161063a565b348015610268575f80fd5b50610111610669565b34801561027c575f80fd5b5061015761028b366004610ac3565b610689565b34801561029b575f80fd5b506101116106cb565b5f6102cd6102bd5f80516020610bd58339815191525490565b6102c79047610b61565b836106f4565b92915050565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa390254600160401b900467ffffffffffffffff1690565b5f80516020610bd58339815191525f6103218361061c565b6001600160a01b0384165f90815260018401602052604081208054929350839290919061034f908490610b61565b90915550506040518181526001600160a01b038416907fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b9060200160405180910390a26103a48361039e6104b8565b83610773565b505050565b6103b16107c5565b6103ba5f6107f7565b565b5f6104396103c9846104e6565b6040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa15801561040b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042f9190610b74565b6102c79190610b61565b9392505050565b5f80516020610bd58339815191525f6104576106cb565b905080825f015f82825461046b9190610b61565b90915550506040518181527fda9d4e5f101b8b9b1c5b76d0c5a9f7923571acfc02376aa076b75a8c080c956b9060200160405180910390a16104b46104ae6104b8565b82610867565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03165f9081527fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3901602052604090205490565b5f6105286108f9565b805490915060ff600160401b820416159067ffffffffffffffff165f8115801561054f5750825b90505f8267ffffffffffffffff16600114801561056b5750303b155b905081158015610579575080155b156105975760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105c157845460ff60401b1916600160401b1785555b6105cc888888610921565b831561061257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f610626826104e6565b61063083426103bc565b6102cd9190610b8b565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa39025467ffffffffffffffff1690565b5f6106726102d3565b61067a61063a565b6106849190610b61565b905090565b6106916107c5565b6001600160a01b0381166106bf57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6106c8816107f7565b50565b5f6106e15f80516020610bd58339815191525490565b6106ea426102a4565b6106849190610b8b565b5f6106fd61063a565b8267ffffffffffffffff16101561071557505f6102cd565b61071d610669565b8267ffffffffffffffff16106107345750816102cd565b61073c6102d3565b61074461063a565b6107589067ffffffffffffffff8516610b8b565b6107629085610b9e565b61076c9190610bb5565b90506102cd565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526103a490849061093d565b336107ce6104b8565b6001600160a01b0316146103ba5760405163118cdaa760e01b81523360048201526024016106b6565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b804710156108915760405163cf47918160e01b8152476004820152602481018290526044016106b6565b5f80836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146108db576040519150601f19603f3d011682016040523d82523d5f602084013e6108e0565b606091505b5091509150816108f3576108f3816109a9565b50505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102cd565b6109296109d2565b610932836109f7565b6103a48383836109ff565b5f8060205f8451602086015f885af18061095c576040513d5f823e3d81fd5b50505f513d91508115610973578060011415610980565b6001600160a01b0384163b155b156108f357604051635274afe760e01b81526001600160a01b03851660048201526024016106b6565b8051156109b95780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6109da610a5f565b6103ba57604051631afcd79f60e31b815260040160405180910390fd5b6106916109d2565b610a076109d2565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3902805467ffffffffffffffff928316600160401b026fffffffffffffffffffffffffffffffff19909116939092169290921717905550565b5f610a686108f9565b54600160401b900460ff16919050565b803567ffffffffffffffff81168114610a8f575f80fd5b919050565b5f60208284031215610aa4575f80fd5b61043982610a78565b80356001600160a01b0381168114610a8f575f80fd5b5f60208284031215610ad3575f80fd5b61043982610aad565b5f8060408385031215610aed575f80fd5b610af683610aad565b9150610b0460208401610a78565b90509250929050565b5f805f60608486031215610b1f575f80fd5b610b2884610aad565b9250610b3660208501610a78565b9150610b4460408501610a78565b90509250925092565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102cd576102cd610b4d565b5f60208284031215610b84575f80fd5b5051919050565b818103818111156102cd576102cd610b4d565b80820281158282048414176102cd576102cd610b4d565b5f82610bcf57634e487b7160e01b5f52601260045260245ffd5b50049056fea1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3900a2646970667358221220157389824e63aaf3fe05445c1e8ac04188a703840713fca7ec916dbb157abf2964736f6c63430008180033", "deployedBytecode": "0x6080604052600436106100e7575f3560e01c80639613252111610087578063be9a655511610057578063be9a655514610249578063efbe1c1c1461025d578063f2fde38b14610271578063fbccedae14610290575f80fd5b806396132521146101cc5780639852595c146101ec578063989a83661461020b578063a3f8eace1461022a575f80fd5b8063715018a6116100c2578063715018a614610159578063810ec23b1461016d57806386d1a69f1461018c5780638da5cb5b146101a0575f80fd5b80630a17b06b146100f25780630fb5a6b4146101245780631916558714610138575f80fd5b366100ee57005b5f80fd5b3480156100fd575f80fd5b5061011161010c366004610a94565b6102a4565b6040519081526020015b60405180910390f35b34801561012f575f80fd5b506101116102d3565b348015610143575f80fd5b50610157610152366004610ac3565b610309565b005b348015610164575f80fd5b506101576103a9565b348015610178575f80fd5b50610111610187366004610adc565b6103bc565b348015610197575f80fd5b50610157610440565b3480156101ab575f80fd5b506101b46104b8565b6040516001600160a01b03909116815260200161011b565b3480156101d7575f80fd5b505f80516020610bd583398151915254610111565b3480156101f7575f80fd5b50610111610206366004610ac3565b6104e6565b348015610216575f80fd5b50610157610225366004610b0d565b61051f565b348015610235575f80fd5b50610111610244366004610ac3565b61061c565b348015610254575f80fd5b5061011161063a565b348015610268575f80fd5b50610111610669565b34801561027c575f80fd5b5061015761028b366004610ac3565b610689565b34801561029b575f80fd5b506101116106cb565b5f6102cd6102bd5f80516020610bd58339815191525490565b6102c79047610b61565b836106f4565b92915050565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa390254600160401b900467ffffffffffffffff1690565b5f80516020610bd58339815191525f6103218361061c565b6001600160a01b0384165f90815260018401602052604081208054929350839290919061034f908490610b61565b90915550506040518181526001600160a01b038416907fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b9060200160405180910390a26103a48361039e6104b8565b83610773565b505050565b6103b16107c5565b6103ba5f6107f7565b565b5f6104396103c9846104e6565b6040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa15801561040b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042f9190610b74565b6102c79190610b61565b9392505050565b5f80516020610bd58339815191525f6104576106cb565b905080825f015f82825461046b9190610b61565b90915550506040518181527fda9d4e5f101b8b9b1c5b76d0c5a9f7923571acfc02376aa076b75a8c080c956b9060200160405180910390a16104b46104ae6104b8565b82610867565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03165f9081527fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3901602052604090205490565b5f6105286108f9565b805490915060ff600160401b820416159067ffffffffffffffff165f8115801561054f5750825b90505f8267ffffffffffffffff16600114801561056b5750303b155b905081158015610579575080155b156105975760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105c157845460ff60401b1916600160401b1785555b6105cc888888610921565b831561061257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f610626826104e6565b61063083426103bc565b6102cd9190610b8b565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa39025467ffffffffffffffff1690565b5f6106726102d3565b61067a61063a565b6106849190610b61565b905090565b6106916107c5565b6001600160a01b0381166106bf57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6106c8816107f7565b50565b5f6106e15f80516020610bd58339815191525490565b6106ea426102a4565b6106849190610b8b565b5f6106fd61063a565b8267ffffffffffffffff16101561071557505f6102cd565b61071d610669565b8267ffffffffffffffff16106107345750816102cd565b61073c6102d3565b61074461063a565b6107589067ffffffffffffffff8516610b8b565b6107629085610b9e565b61076c9190610bb5565b90506102cd565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526103a490849061093d565b336107ce6104b8565b6001600160a01b0316146103ba5760405163118cdaa760e01b81523360048201526024016106b6565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b804710156108915760405163cf47918160e01b8152476004820152602481018290526044016106b6565b5f80836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146108db576040519150601f19603f3d011682016040523d82523d5f602084013e6108e0565b606091505b5091509150816108f3576108f3816109a9565b50505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102cd565b6109296109d2565b610932836109f7565b6103a48383836109ff565b5f8060205f8451602086015f885af18061095c576040513d5f823e3d81fd5b50505f513d91508115610973578060011415610980565b6001600160a01b0384163b155b156108f357604051635274afe760e01b81526001600160a01b03851660048201526024016106b6565b8051156109b95780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6109da610a5f565b6103ba57604051631afcd79f60e31b815260040160405180910390fd5b6106916109d2565b610a076109d2565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3902805467ffffffffffffffff928316600160401b026fffffffffffffffffffffffffffffffff19909116939092169290921717905550565b5f610a686108f9565b54600160401b900460ff16919050565b803567ffffffffffffffff81168114610a8f575f80fd5b919050565b5f60208284031215610aa4575f80fd5b61043982610a78565b80356001600160a01b0381168114610a8f575f80fd5b5f60208284031215610ad3575f80fd5b61043982610aad565b5f8060408385031215610aed575f80fd5b610af683610aad565b9150610b0460208401610a78565b90509250929050565b5f805f60608486031215610b1f575f80fd5b610b2884610aad565b9250610b3660208501610a78565b9150610b4460408501610a78565b90509250925092565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102cd576102cd610b4d565b5f60208284031215610b84575f80fd5b5051919050565b818103818111156102cd576102cd610b4d565b80820281158282048414176102cd576102cd610b4d565b5f82610bcf57634e487b7160e01b5f52601260045260245ffd5b50049056fea1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3900a2646970667358221220157389824e63aaf3fe05445c1e8ac04188a703840713fca7ec916dbb157abf2964736f6c63430008180033", "linkReferences": {}, "deployedLinkReferences": {} }