0 txs
705 calls
constructor
constructor()
functions
getAvailableBalance
viewfunction getAvailableBalance(uint256 vestingId) view returns (uint128 amount)
getAvailableBalanceOf
viewfunction getAvailableBalanceOf(address account) view returns (uint256 amount)
getBalanceOf
viewfunction getBalanceOf(address account) view returns (uint256 amount)
lastVestingId
viewfunction lastVestingId() view returns (uint256)
maintainers
viewfunction maintainers(address) view returns (bool)
owner
viewfunction owner() view returns (address)
vestedToken
viewfunction vestedToken() view returns (address)
vestingBegin
viewfunction vestingBegin() view returns (uint64)
vestingBeginIsLocked
viewfunction vestingBeginIsLocked() view returns (bool)
vestingCountOf
viewfunction vestingCountOf(address account) view returns (uint256)
vestingIds
viewfunction vestingIds(address, uint256) view returns (uint256)
vestingIdsOf
viewfunction vestingIdsOf(address account) view returns (uint256[])
vestings
viewfunction vestings(uint256) view returns (uint128 vestAmount, uint128 instantVestAmount, uint64 lockupPeriod, uint64 vestingPeriod, uint128 claimedAmount)
allocate
nonpayablefunction allocate(tuple[] allocParams)
claim
nonpayablefunction claim(address account)
initialize
nonpayablefunction initialize(address vestedToken_, address owner_)
lockVestingBegin
nonpayablefunction lockVestingBegin()
migrateVestings
nonpayablefunction migrateVestings(address from, address to)
renounceOwnership
nonpayablefunction renounceOwnership()
setVestingBegin
nonpayablefunction setVestingBegin(uint64 vestingBegin_)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateMaintainer
nonpayablefunction updateMaintainer(address account, bool isMaintainer)
withdraw
nonpayablefunction withdraw(address token, address to)
events
Allocated
event Allocated(address indexed allocator, address[] investors, uint256[] ids)
Claimed
event Claimed(address indexed account, uint256 indexed id, uint256 amount)
Initialized
event Initialized(uint64 version)
MaintainerUpdated
event MaintainerUpdated(address indexed account, bool isMaintainer)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
VestingBeginSet
event VestingBeginSet(uint256 vestingBeginTime)
VestingsMigrated
event VestingsMigrated(address from, address to, uint256[] vestingIds)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
BeginIsNotSet
error BeginIsNotSet()
FailedInnerCall
error FailedInnerCall()
IncorrectInstantShare
error IncorrectInstantShare()
IncorrectVestingBegin
error IncorrectVestingBegin()
IncorrectVestingPeriod
error IncorrectVestingPeriod()
InvalidInitialization
error InvalidInitialization()
NotApplicableForVestedToken
error NotApplicableForVestedToken()
NothingChanged
error NothingChanged()
NotInitializing
error NotInitializing()
NoVestings
error NoVestings(address account)
OnlyMaintainer
error OnlyMaintainer()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
TimeChangeIsLocked
error TimeChangeIsLocked()
VestingAlreadyStarted
error VestingAlreadyStarted()
ZeroAmount
error ZeroAmount()
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61240e80620000e06000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80637b3cbecb116100e3578063aabef0db1161008c578063e29bc68b11610066578063e29bc68b1461048e578063f2fde38b146104d4578063f940e385146104e757600080fd5b8063aabef0db14610422578063bbeb606014610456578063ca3f15671461046957600080fd5b80639b96eece116100bd5780639b96eece146103e95780639daba150146103fc578063aa6367db1461040f57600080fd5b80637b3cbecb146102da578063821bee73146102ed5780638da5cb5b146103ac57600080fd5b80633cfe6184116101455780635de297411161011f5780635de297411461027a5780636b379010146102bf578063715018a6146102d257600080fd5b80633cfe61841461024b5780634669621914610254578063485cc9551461026757600080fd5b80631e43ccde116101765780631e43ccde146101d45780631e83409a146101f4578063257341a81461020757600080fd5b806306fc3bd7146101925780630823c5621461019c575b600080fd5b61019a6104fa565b005b6101bf6101aa366004611e80565b60036020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6101e76101e2366004611e80565b6105a2565b6040516101cb9190611ed7565b61019a610202366004611e80565b61061b565b61023d610215366004611e80565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6040519081526020016101cb565b61023d60045481565b61023d610262366004611e80565b610880565b61019a610275366004611eea565b610950565b60005461029a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101cb565b61019a6102cd366004611f1d565b610b10565b61019a610c40565b61019a6102e8366004611eea565b610c54565b6103636102fb366004611f47565b600160208190526000918252604090912080549101546fffffffffffffffffffffffffffffffff808316927001000000000000000000000000000000009081900482169267ffffffffffffffff80821693680100000000000000008304909116929091041685565b604080516fffffffffffffffffffffffffffffffff9687168152948616602086015267ffffffffffffffff9384169085015291166060830152909116608082015260a0016101cb565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff1661029a565b61023d6103f7366004611e80565b610e19565b61019a61040a366004611f60565b610f3e565b61019a61041d366004611fe3565b6114f2565b610435610430366004611f47565b6115eb565b6040516fffffffffffffffffffffffffffffffff90911681526020016101cb565b61023d61046436600461201a565b611751565b6000546101bf9074010000000000000000000000000000000000000000900460ff1681565b6000546104bb907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101cb565b61019a6104e2366004611e80565b611782565b61019a6104f5366004611eea565b6117e6565b610502611920565b600080547501000000000000000000000000000000000000000000900467ffffffffffffffff169003610561576040517f60c187e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561060f57602002820191906000526020600020905b8154815260200190600101908083116105fb575b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080548280805b8381101561079f5784818154811061066057610660612044565b90600052602060002001549250610676836115eb565b91506fffffffffffffffffffffffffffffffff821615610797576106ac6fffffffffffffffffffffffffffffffff8316876120a2565b600084815260016020819052604090912001805491975083916010906106f990849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166120b5565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550828773ffffffffffffffffffffffffffffffffffffffff167f987d620f307ff6b94d58743cb7a7509f24071586a77759b77c2d4e29f75a2f9a8460405161078e91906fffffffffffffffffffffffffffffffff91909116815260200190565b60405180910390a35b600101610646565b50846000036107da576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018890529091169063a9059cbb906044016020604051808303816000875af1158015610853573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087791906120e5565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600260209081526040808320805482518185028101850190935280835284938301828280156108ea57602002820191906000526020600020905b8154815260200190600101908083116108d6575b505083519394506000925050505b818110156109485761092283828151811061091557610915612044565b60200260200101516115eb565b61093e906fffffffffffffffffffffffffffffffff16856120a2565b93506001016108f8565b505050919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561099b5750825b905060008267ffffffffffffffff1660011480156109b85750303b155b9050811580156109c6575080155b156109fd576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610a5e5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b610a67866119ae565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff891617905583156108775784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050505050565b610b18611920565b60005474010000000000000000000000000000000000000000900460ff1615610b6d576040517feb77e18d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b756119bf565b428167ffffffffffffffff1611610bb8576040517f1c3c07fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000067ffffffffffffffff8416908102919091179091556040519081527f7ec90ddc0fe1ff8785a1d08350d1015d927f2b954385b0e085cb416af172790d9060200160405180910390a150565b610c48611920565b610c526000611a50565b565b610c5c611920565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cc1576040517f06923abf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040812080549091819003610d40576040517f6db6e63900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600260205260408120905b82811015610da85781848281548110610d8257610d82612044565b600091825260208083209091015483546001818101865594845291909220015501610d67565b5073ffffffffffffffffffffffffffffffffffffffff85166000908152600260205260408120610dd791611e25565b7fba9c416129c1680f82939401026a4d975abb4c5997c0ac8447f644f27c237a20858583604051610e0a93929190612102565b60405180910390a15050505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020908152604080832080548251818502810185019093528083528493830182828015610e8357602002820191906000526020600020905b815481526020019060010190808311610e6f575b50505050509050600080600090505b82518110156109485760016000848381518110610eb157610eb1612044565b6020908102919091018101518252810191909152604001600020600181015481549193506fffffffffffffffffffffffffffffffff70010000000000000000000000000000000091829004811692610f0e928104821691166120b5565b610f189190612179565b610f34906fffffffffffffffffffffffffffffffff16856120a2565b9350600101610e92565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff163314801590610f9557503360009081526003602052604090205460ff16155b15610fcc576040517f710bcc4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600454600090823683808367ffffffffffffffff811115610fef57610fef6121a2565b604051908082528060200260200182016040528015611018578160200160208202803683370190505b50905060008467ffffffffffffffff811115611036576110366121a2565b60405190808252806020026020018201604052801561105f578160200160208202803683370190505b50905060008060005b87811015611401578b8b8281811061108257611082612044565b905060a00201965086602001602081019061109d91906121d1565b6fffffffffffffffffffffffffffffffff166000036110e8576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110f86080880160608901611f1d565b67ffffffffffffffff1660000361113b576040517fef040e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606461114d60a0890160808a01611f1d565b67ffffffffffffffff16111561118f576040517fc09cc8bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61119f60408801602089016121d1565b6111bb906fffffffffffffffffffffffffffffffff168b6120a2565b9950600160006111ca8b612203565b9a508a815260200190815260200160002095508660800160208101906111f09190611f1d565b67ffffffffffffffff161561124457606461121160a0890160808a01611f1d565b67ffffffffffffffff1661122b60408a0160208b016121d1565b611235919061223b565b61123f919061229e565b611247565b60005b92508261125a6040890160208a016121d1565b6112649190612179565b6fffffffffffffffffffffffffffffffff8481167001000000000000000000000000000000000290821617875591506112a36060880160408901611f1d565b6001870180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff929092169190911790556112ee6080880160608901611f1d565b60018701805467ffffffffffffffff9290921668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff9092169190911790556002600061134760208a018a611e80565b73ffffffffffffffffffffffffffffffffffffffff1681526020808201929092526040016000908120805460018101825590825290829020018a905561138f90880188611e80565b8582815181106113a1576113a1612044565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050888482815181106113ee576113ee612044565b6020908102919091010152600101611068565b50600488905560405133907f1fa5cc2a69d97904cd19ba493ecd201e8e25b249126297404efd95a96bb51fff9061143b90879087906122cd565b60405180910390a26000546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018b905273ffffffffffffffffffffffffffffffffffffffff909116906323b872dd906064016020604051808303816000875af11580156114c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e491906120e5565b505050505050505050505050565b6114fa611920565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205481151560ff909116151503611561576040517f06923abf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526003602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f2098a4098c1f50924be4b44fa1120ec3af0426e0e4fe723666e38659c252385e910160405180910390a25050565b600080547501000000000000000000000000000000000000000000900467ffffffffffffffff16810361162057506000919050565b600082815260016020819052604082209081015482549192916116699167ffffffffffffffff908116917501000000000000000000000000000000000000000000900416612331565b67ffffffffffffffff16905080421015611687575060009392505050565b60018201546000906116af9068010000000000000000900467ffffffffffffffff16836120a2565b835460018501549192506fffffffffffffffffffffffffffffffff70010000000000000000000000000000000080830482169392821692041680834286116116f75783611731565b6117018787612352565b61170b8842612352565b611727906fffffffffffffffffffffffffffffffff8716612365565b611731919061237c565b61173b91906120b5565b6117459190612179565b98975050505050505050565b6002602052816000526040600020818154811061176d57600080fd5b90600052602060002001600091509150505481565b61178a611920565b73ffffffffffffffffffffffffffffffffffffffff81166117da576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610d37565b6117e381611a50565b50565b6117ee611920565b60005473ffffffffffffffffffffffffffffffffffffffff90811690831603611843576040517f14497d1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190602401602060405180830381865afa1580156118b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d49190612390565b905080600003611910576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61191b838383611ae6565b505050565b3361195f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610d37565b6119b6611b73565b6117e381611bda565b6000547501000000000000000000000000000000000000000000900467ffffffffffffffff1615801590611a19575060005442750100000000000000000000000000000000000000000090910467ffffffffffffffff1611155b15610c52576040517f72de7acd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261191b908490611be2565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610c52576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61178a611b73565b6000611c0473ffffffffffffffffffffffffffffffffffffffff841683611c78565b90508051600014158015611c29575080806020019051810190611c2791906120e5565b155b1561191b576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610d37565b6060611c8683836000611c8f565b90505b92915050565b606081471015611ccd576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610d37565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051611cf691906123a9565b60006040518083038185875af1925050503d8060008114611d33576040519150601f19603f3d011682016040523d82523d6000602084013e611d38565b606091505b5091509150611d48868383611d54565b925050505b9392505050565b606082611d6957611d6482611de3565b611d4d565b8151158015611d8d575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611ddc576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610d37565b5080611d4d565b805115611df35780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50805460008255906000526020600020908101906117e391905b80821115611e535760008155600101611e3f565b5090565b803573ffffffffffffffffffffffffffffffffffffffff81168114611e7b57600080fd5b919050565b600060208284031215611e9257600080fd5b611c8682611e57565b60008151808452602080850194506020840160005b83811015611ecc57815187529582019590820190600101611eb0565b509495945050505050565b602081526000611c866020830184611e9b565b60008060408385031215611efd57600080fd5b611f0683611e57565b9150611f1460208401611e57565b90509250929050565b600060208284031215611f2f57600080fd5b813567ffffffffffffffff81168114611d4d57600080fd5b600060208284031215611f5957600080fd5b5035919050565b60008060208385031215611f7357600080fd5b823567ffffffffffffffff80821115611f8b57600080fd5b818501915085601f830112611f9f57600080fd5b813581811115611fae57600080fd5b86602060a083028501011115611fc357600080fd5b60209290920196919550909350505050565b80151581146117e357600080fd5b60008060408385031215611ff657600080fd5b611fff83611e57565b9150602083013561200f81611fd5565b809150509250929050565b6000806040838503121561202d57600080fd5b61203683611e57565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115611c8957611c89612073565b6fffffffffffffffffffffffffffffffff8181168382160190808211156120de576120de612073565b5092915050565b6000602082840312156120f757600080fd5b8151611d4d81611fd5565b60006060820173ffffffffffffffffffffffffffffffffffffffff808716845260208187166020860152606060408601528291508554808452608086019250866000526020600020935060005b8181101561216b5784548452600194850194938301930161214f565b509198975050505050505050565b6fffffffffffffffffffffffffffffffff8281168282160390808211156120de576120de612073565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156121e357600080fd5b81356fffffffffffffffffffffffffffffffff81168114611d4d57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361223457612234612073565b5060010190565b6fffffffffffffffffffffffffffffffff81811683821602808216919082811461226757612267612073565b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006fffffffffffffffffffffffffffffffff808416806122c1576122c161226f565b92169190910492915050565b604080825283519082018190526000906020906060840190828701845b8281101561231c57815173ffffffffffffffffffffffffffffffffffffffff16845292840192908401906001016122ea565b5050508381036020850152611d488186611e9b565b67ffffffffffffffff8181168382160190808211156120de576120de612073565b81810381811115611c8957611c89612073565b8082028115828204841417611c8957611c89612073565b60008261238b5761238b61226f565b500490565b6000602082840312156123a257600080fd5b5051919050565b6000825160005b818110156123ca57602081860181015185830152016123b0565b50600092019182525091905056fea26469706673582212209ffba27ba08a14ebb5a5de093140fd629a58e55eb89fc8c32901c594df5e65e764736f6c63430008180033