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": "0x608060405234801561000f575f80fd5b50610c228061001d5f395ff3fe6080604052600436106100e7575f3560e01c80639613252111610087578063be9a655511610057578063be9a655514610249578063efbe1c1c1461025d578063f2fde38b14610271578063fbccedae14610290575f80fd5b806396132521146101cc5780639852595c146101ec578063989a83661461020b578063a3f8eace1461022a575f80fd5b8063715018a6116100c2578063715018a614610159578063810ec23b1461016d57806386d1a69f1461018c5780638da5cb5b146101a0575f80fd5b80630a17b06b146100f25780630fb5a6b4146101245780631916558714610138575f80fd5b366100ee57005b5f80fd5b3480156100fd575f80fd5b5061011161010c366004610a8c565b6102a4565b6040519081526020015b60405180910390f35b34801561012f575f80fd5b506101116102d3565b348015610143575f80fd5b50610157610152366004610abb565b610309565b005b348015610164575f80fd5b506101576103a9565b348015610178575f80fd5b50610111610187366004610ad4565b6103bc565b348015610197575f80fd5b50610157610440565b3480156101ab575f80fd5b506101b46104b8565b6040516001600160a01b03909116815260200161011b565b3480156101d7575f80fd5b505f80516020610bcd83398151915254610111565b3480156101f7575f80fd5b50610111610206366004610abb565b6104e6565b348015610216575f80fd5b50610157610225366004610b05565b61051f565b348015610235575f80fd5b50610111610244366004610abb565b610631565b348015610254575f80fd5b5061011161064f565b348015610268575f80fd5b5061011161067e565b34801561027c575f80fd5b5061015761028b366004610abb565b61069e565b34801561029b575f80fd5b506101116106e0565b5f6102cd6102bd5f80516020610bcd8339815191525490565b6102c79047610b59565b83610709565b92915050565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa390254600160401b900467ffffffffffffffff1690565b5f80516020610bcd8339815191525f61032183610631565b6001600160a01b0384165f90815260018401602052604081208054929350839290919061034f908490610b59565b90915550506040518181526001600160a01b038416907fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b9060200160405180910390a26103a48361039e6104b8565b83610788565b505050565b6103b16107da565b6103ba5f61080c565b565b5f6104396103c9846104e6565b6040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa15801561040b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042f9190610b6c565b6102c79190610b59565b9392505050565b5f80516020610bcd8339815191525f6104576106e0565b905080825f015f82825461046b9190610b59565b90915550506040518181527fda9d4e5f101b8b9b1c5b76d0c5a9f7923571acfc02376aa076b75a8c080c956b9060200160405180910390a16104b46104ae6104b8565b8261087c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03165f9081527fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3901602052604090205490565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156105645750825b90505f8267ffffffffffffffff1660011480156105805750303b155b90508115801561058e575080155b156105ac5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105d657845460ff60401b1916600160401b1785555b6105e188888861090e565b831561062757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f61063b826104e6565b61064583426103bc565b6102cd9190610b83565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa39025467ffffffffffffffff1690565b5f6106876102d3565b61068f61064f565b6106999190610b59565b905090565b6106a66107da565b6001600160a01b0381166106d457604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6106dd8161080c565b50565b5f6106f65f80516020610bcd8339815191525490565b6106ff426102a4565b6106999190610b83565b5f61071261064f565b8267ffffffffffffffff16101561072a57505f6102cd565b61073261067e565b8267ffffffffffffffff16106107495750816102cd565b6107516102d3565b61075961064f565b61076d9067ffffffffffffffff8516610b83565b6107779085610b96565b6107819190610bad565b90506102cd565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526103a490849061092a565b336107e36104b8565b6001600160a01b0316146103ba5760405163118cdaa760e01b81523360048201526024016106cb565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b804710156108a65760405163cf47918160e01b8152476004820152602481018290526044016106cb565b5f80836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146108f0576040519150601f19603f3d011682016040523d82523d5f602084013e6108f5565b606091505b5091509150816109085761090881610996565b50505050565b6109166109bf565b61091f83610a08565b6103a4838383610a10565b5f8060205f8451602086015f885af180610949576040513d5f823e3d81fd5b50505f513d9150811561096057806001141561096d565b6001600160a01b0384163b155b1561090857604051635274afe760e01b81526001600160a01b03851660048201526024016106cb565b8051156109a65780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166103ba57604051631afcd79f60e31b815260040160405180910390fd5b6106a66109bf565b610a186109bf565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3902805467ffffffffffffffff928316600160401b026fffffffffffffffffffffffffffffffff19909116939092169290921717905550565b803567ffffffffffffffff81168114610a87575f80fd5b919050565b5f60208284031215610a9c575f80fd5b61043982610a70565b80356001600160a01b0381168114610a87575f80fd5b5f60208284031215610acb575f80fd5b61043982610aa5565b5f8060408385031215610ae5575f80fd5b610aee83610aa5565b9150610afc60208401610a70565b90509250929050565b5f805f60608486031215610b17575f80fd5b610b2084610aa5565b9250610b2e60208501610a70565b9150610b3c60408501610a70565b90509250925092565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102cd576102cd610b45565b5f60208284031215610b7c575f80fd5b5051919050565b818103818111156102cd576102cd610b45565b80820281158282048414176102cd576102cd610b45565b5f82610bc757634e487b7160e01b5f52601260045260245ffd5b50049056fea1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3900a264697066735822122097c393d043e298bf800ec393a87bc14f673a8700a42f750a33c22ae1696daa8064736f6c63430008180033", "deployedBytecode": "0x6080604052600436106100e7575f3560e01c80639613252111610087578063be9a655511610057578063be9a655514610249578063efbe1c1c1461025d578063f2fde38b14610271578063fbccedae14610290575f80fd5b806396132521146101cc5780639852595c146101ec578063989a83661461020b578063a3f8eace1461022a575f80fd5b8063715018a6116100c2578063715018a614610159578063810ec23b1461016d57806386d1a69f1461018c5780638da5cb5b146101a0575f80fd5b80630a17b06b146100f25780630fb5a6b4146101245780631916558714610138575f80fd5b366100ee57005b5f80fd5b3480156100fd575f80fd5b5061011161010c366004610a8c565b6102a4565b6040519081526020015b60405180910390f35b34801561012f575f80fd5b506101116102d3565b348015610143575f80fd5b50610157610152366004610abb565b610309565b005b348015610164575f80fd5b506101576103a9565b348015610178575f80fd5b50610111610187366004610ad4565b6103bc565b348015610197575f80fd5b50610157610440565b3480156101ab575f80fd5b506101b46104b8565b6040516001600160a01b03909116815260200161011b565b3480156101d7575f80fd5b505f80516020610bcd83398151915254610111565b3480156101f7575f80fd5b50610111610206366004610abb565b6104e6565b348015610216575f80fd5b50610157610225366004610b05565b61051f565b348015610235575f80fd5b50610111610244366004610abb565b610631565b348015610254575f80fd5b5061011161064f565b348015610268575f80fd5b5061011161067e565b34801561027c575f80fd5b5061015761028b366004610abb565b61069e565b34801561029b575f80fd5b506101116106e0565b5f6102cd6102bd5f80516020610bcd8339815191525490565b6102c79047610b59565b83610709565b92915050565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa390254600160401b900467ffffffffffffffff1690565b5f80516020610bcd8339815191525f61032183610631565b6001600160a01b0384165f90815260018401602052604081208054929350839290919061034f908490610b59565b90915550506040518181526001600160a01b038416907fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b9060200160405180910390a26103a48361039e6104b8565b83610788565b505050565b6103b16107da565b6103ba5f61080c565b565b5f6104396103c9846104e6565b6040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa15801561040b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042f9190610b6c565b6102c79190610b59565b9392505050565b5f80516020610bcd8339815191525f6104576106e0565b905080825f015f82825461046b9190610b59565b90915550506040518181527fda9d4e5f101b8b9b1c5b76d0c5a9f7923571acfc02376aa076b75a8c080c956b9060200160405180910390a16104b46104ae6104b8565b8261087c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03165f9081527fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3901602052604090205490565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156105645750825b90505f8267ffffffffffffffff1660011480156105805750303b155b90508115801561058e575080155b156105ac5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105d657845460ff60401b1916600160401b1785555b6105e188888861090e565b831561062757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f61063b826104e6565b61064583426103bc565b6102cd9190610b83565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa39025467ffffffffffffffff1690565b5f6106876102d3565b61068f61064f565b6106999190610b59565b905090565b6106a66107da565b6001600160a01b0381166106d457604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6106dd8161080c565b50565b5f6106f65f80516020610bcd8339815191525490565b6106ff426102a4565b6106999190610b83565b5f61071261064f565b8267ffffffffffffffff16101561072a57505f6102cd565b61073261067e565b8267ffffffffffffffff16106107495750816102cd565b6107516102d3565b61075961064f565b61076d9067ffffffffffffffff8516610b83565b6107779085610b96565b6107819190610bad565b90506102cd565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526103a490849061092a565b336107e36104b8565b6001600160a01b0316146103ba5760405163118cdaa760e01b81523360048201526024016106cb565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b804710156108a65760405163cf47918160e01b8152476004820152602481018290526044016106cb565b5f80836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146108f0576040519150601f19603f3d011682016040523d82523d5f602084013e6108f5565b606091505b5091509150816109085761090881610996565b50505050565b6109166109bf565b61091f83610a08565b6103a4838383610a10565b5f8060205f8451602086015f885af180610949576040513d5f823e3d81fd5b50505f513d9150811561096057806001141561096d565b6001600160a01b0384163b155b1561090857604051635274afe760e01b81526001600160a01b03851660048201526024016106cb565b8051156109a65780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166103ba57604051631afcd79f60e31b815260040160405180910390fd5b6106a66109bf565b610a186109bf565b7fa1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3902805467ffffffffffffffff928316600160401b026fffffffffffffffffffffffffffffffff19909116939092169290921717905550565b803567ffffffffffffffff81168114610a87575f80fd5b919050565b5f60208284031215610a9c575f80fd5b61043982610a70565b80356001600160a01b0381168114610a87575f80fd5b5f60208284031215610acb575f80fd5b61043982610aa5565b5f8060408385031215610ae5575f80fd5b610aee83610aa5565b9150610afc60208401610a70565b90509250929050565b5f805f60608486031215610b17575f80fd5b610b2084610aa5565b9250610b2e60208501610a70565b9150610b3c60408501610a70565b90509250925092565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102cd576102cd610b45565b5f60208284031215610b7c575f80fd5b5051919050565b818103818111156102cd576102cd610b45565b80820281158282048414176102cd576102cd610b45565b5f82610bc757634e487b7160e01b5f52601260045260245ffd5b50049056fea1eac494560f7591e4da38ed031587f09556afdfc4399dd2e205b935fdfa3900a264697066735822122097c393d043e298bf800ec393a87bc14f673a8700a42f750a33c22ae1696daa8064736f6c63430008180033", "linkReferences": {}, "deployedLinkReferences": {} }