0 txs
22.3k calls
constructor
constructor()
functions
esHMX
viewfunction esHMX() view returns (address)
getUnlockAmount
viewfunction getUnlockAmount(uint256 amount, uint256 duration, uint256 totalVestingDuration) view returns (uint256)
getUnlockAmount
viewfunction getUnlockAmount(uint256 amount, uint256 duration) view returns (uint256)
getVestingPosition
viewfunction getVestingPosition(address user, uint256 _limit, uint256 _offset) view returns (tuple[] itemList)
hmx
viewfunction hmx() view returns (address)
hmxStaking
viewfunction hmxStaking() view returns (address)
isPaused
viewfunction isPaused() view returns (bool)
itemLastIndex
viewfunction itemLastIndex(address) view returns (uint256)
items
viewfunction items(address, uint256) view returns (address owner, bool hasClaimed, bool hasAborted, uint256 amount, uint256 startTime, uint256 endTime, uint256 lastClaimTime, uint256 totalUnlockedAmount)
maxDuration
viewfunction maxDuration() view returns (uint256)
owner
viewfunction owner() view returns (address)
totalVestingEsHmxByUser
viewfunction totalVestingEsHmxByUser(address user) view returns (uint256 amount)
unusedEsHmxDestination
viewfunction unusedEsHmxDestination() view returns (address)
vestedEsHmxDestination
viewfunction vestedEsHmxDestination() view returns (address)
abort
nonpayablefunction abort(uint256 itemIndex)
batchAbort
nonpayablefunction batchAbort(uint256[] itemIndexes)
claim
nonpayablefunction claim(uint256 itemIndex)
claim
nonpayablefunction claim(uint256[] itemIndexes)
initialize
nonpayablefunction initialize(address esHMXAddress, address hmxAddress, address vestedEsHmxDestinationAddress, address unusedEsHmxDestinationAddress)
renounceOwnership
nonpayablefunction renounceOwnership()
setHMXStaking
nonpayablefunction setHMXStaking(address _hmxStaking)
setIsPaused
nonpayablefunction setIsPaused(bool _isPaused)
setMaxDuration
nonpayablefunction setMaxDuration(uint256 _maxDuration)
setUnusedEsHmxDestinationAddress
nonpayablefunction setUnusedEsHmxDestinationAddress(address newUnusedEsHmxDestinationAddress)
setVestedEsHmxDestinationAddress
nonpayablefunction setVestedEsHmxDestinationAddress(address newVestedEsHmxDestinationAddress)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
vestFor
nonpayablefunction vestFor(address account, uint256 amount, uint256 duration)
events
Initialized
event Initialized(uint8 version)
LogAbort
event LogAbort(address indexed owner, uint256 indexed itemIndex, uint256 returnAmount)
LogClaim
event LogClaim(address indexed owner, uint256 indexed itemIndex, uint256 vestedAmount, uint256 unusedAmount)
LogSetHMXStaking
event LogSetHMXStaking(address indexed oldAddress, address indexed newAddress)
LogSetIsPaused
event LogSetIsPaused(bool _isPaused)
LogSetMaxDuration
event LogSetMaxDuration(uint256 maxDuration)
LogSetUnusedEsHmxDestination
event LogSetUnusedEsHmxDestination(address indexed oldAddress, address indexed newAddress)
LogSetVestedEsHmxDestination
event LogSetVestedEsHmxDestination(address indexed oldAddress, address indexed newAddress)
LogUpdateTotalVestingEsHmx
event LogUpdateTotalVestingEsHmx(address indexed user, uint256 amount)
LogVest
event LogVest(address indexed owner, uint256 indexed itemIndex, uint256 amount, uint256 startTime, uint256 endTime, uint256 penaltyAmount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
IVester_Aborted
error IVester_Aborted()
IVester_BadArgument
error IVester_BadArgument()
IVester_Claimed
error IVester_Claimed()
IVester_ExceedMaxDuration
error IVester_ExceedMaxDuration()
IVester_HasCompleted
error IVester_HasCompleted()
IVester_HMXStakingNotSet
error IVester_HMXStakingNotSet()
IVester_InvalidAddress
error IVester_InvalidAddress()
IVester_NotEnoughDPStaked
error IVester_NotEnoughDPStaked()
IVester_Paused
error IVester_Paused()
IVester_PositionNotFound
error IVester_PositionNotFound()
IVester_Unauthorized
error IVester_Unauthorized()
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61209080620000ee6000396000f3fe608060405234801561001057600080fd5b50600436106101495760003560e01c8063072209441461014e578063131e812414610181578063141da063146101ac578063240976bf146101cc57806329b37e3e146101e1578063379607f5146101f45780633901e900146102075780635479fd091461021a5780635c80a4351461022d5780635ce544b0146102e15780636ba4c138146102f45780636db5c8fd14610307578063715018a6146103105780637796f7701461031857806382d8ea001461032b5780638da5cb5b1461033e5780639bb5fb0814610346578063b187bd2614610359578063b5e17b1b14610376578063bb26a16614610389578063c9e104101461039c578063ce61da27146103af578063cf0f34c4146103cf578063db868b2d146103e2578063e50701f4146103f5578063f2fde38b14610408578063f8c8765e1461041b575b600080fd5b61016e61015c366004611b75565b609c6020526000908152604090205481565b6040519081526020015b60405180910390f35b609954610194906001600160a01b031681565b6040516001600160a01b039091168152602001610178565b6101bf6101ba366004611b92565b61042e565b6040516101789190611bc7565b6101df6101da366004611c6f565b6105f1565b005b6101df6101ef366004611b75565b610641565b6101df610202366004611c8c565b6106a5565b61016e610215366004611ca5565b6106c4565b609854610194906001600160a01b031681565b61029661023b366004611cc7565b609b6020908152600092835260408084209091529082529020805460018201546002830154600384015460048501546005909501546001600160a01b0385169560ff600160a01b8704811696600160a81b9004169493929188565b604080516001600160a01b0390991689529615156020890152941515958701959095526060860192909252608085015260a084015260c083019190915260e082015261010001610178565b6101df6102ef366004611d09565b610702565b6101df610302366004611d09565b610750565b61016e60a05481565b6101df61079a565b61016e610326366004611dc6565b6107ae565b6101df610339366004611b92565b6107cd565b610194610ba0565b609754610194906001600160a01b031681565b609f546103669060ff1681565b6040519015158152602001610178565b609d54610194906001600160a01b031681565b609a54610194906001600160a01b031681565b6101df6103aa366004611b75565b610baf565b61016e6103bd366004611b75565b609e6020526000908152604090205481565b6101df6103dd366004611c8c565b610c13565b6101df6103f0366004611b75565b610c50565b6101df610403366004611c8c565b610d2b565b6101df610416366004611b75565b610d3f565b6101df610429366004611df2565b610dba565b6001600160a01b0383166000908152609c602052604081205460609183906104568683611e64565b905082821115610468575050506105ea565b828111156104735750815b61047d8282611e77565b6001600160401b0381111561049457610494611cf3565b60405190808252806020026020018201604052801561051a57816020015b61050760405180610100016040528060006001600160a01b0316815260200160001515815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081525090565b8152602001906001900390816104b25790505b509350815b818110156105e5576001600160a01b038089166000908152609b602090815260408083208584528252918290208251610100810184528154948516815260ff600160a01b86048116151593820193909352600160a81b9094049091161515918301919091526001810154606083015260028101546080830152600381015460a0830152600481015460c08301526005015460e082015280866105c18985611e77565b815181106105d1576105d1611e8a565b60209081029190910101525060010161051f565b505050505b9392505050565b6105f9611006565b609f805460ff19168215159081179091556040519081527f8f89f47cebd69d82d74a9e44c9f5483920bd8c7e20bf53aea405ea58d68ba44b906020015b60405180910390a150565b610649611006565b609a546040516001600160a01b038084169216907f1ec0b00012695dfffc7d9458d5b6644319388992e6b27593d4103198646b434690600090a3609a80546001600160a01b0319166001600160a01b0392909216919091179055565b6106ad611065565b6106b733826110be565b6106c16001606555565b50565b60a054600090156106ed5760a0546106dc8385611ea0565b6106e69190611eb7565b90506106fc565b6301e133806106dc8385611ea0565b92915050565b61070a611065565b805160005b818110156107445761073c3384838151811061072d5761072d611e8a565b60200260200101516001611379565b60010161070f565b50506106c16001606555565b610758611065565b60005b815181101561078f576107873383838151811061077a5761077a611e8a565b60200260200101516110be565b60010161075b565b506106c16001606555565b6107a2611006565b6107ac6000611645565b565b6000816107bb8486611ea0565b6107c59190611eb7565b949350505050565b6107d5611065565b609f5460ff16801561080057506107ea610ba0565b6001600160a01b0316336001600160a01b031614155b1561081e57604051630c25a43960e41b815260040160405180910390fd5b6001600160a01b038316158061083c57506001600160a01b03831630145b1561085a5760405163d5d4c97b60e01b815260040160405180910390fd5b8160000361087b5760405163c56e6d9760e01b815260040160405180910390fd5b6301e1338060a0541115610892575060a054610899565b506301e133805b60006108a583836106c4565b90506000604051806101000160405280866001600160a01b0316815260200160001515815260200160001515815260200185815260200142815260200184426108ee9190611e64565b81524260208083019190915260409182018590526001600160a01b038089166000818152609c8085528582208054609b87528784208185528752878420895181548b8a01519a8c01511515600160a81b0260ff60a81b199b1515600160a01b026001600160a81b031990921692909916919091171798909816959095178755606088015160018801556080880151600288015560a0880151600388015560c0880151600488015560e0880151600590970196909655918152925282549394509291906109b983611ed9565b91905055506301e133808411156109f8576001600160a01b0386166000908152609e6020526040812080548792906109f2908490611e64565b90915550505b6301e1338084118015610afb57506001600160a01b038087166000908152609e6020908152604080832054609d5482516393eb049d60e01b8152925191951693631f1a675d9385936393eb049d93600480830194919283900301908290875af1158015610a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8d9190611ef2565b896040518363ffffffff1660e01b8152600401610aab929190611f0f565b6020604051808303816000875af1158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee9190611f29565b610af9906004611ea0565b105b15610b1957604051630a9c48b760e21b815260040160405180910390fd5b609754610b31906001600160a01b0316333088611697565b815160808084015160a0850151604080518a815260208101939093528201526000606082015283926001600160a01b0316917f4923bb5581b92cd2641059f4de80fcb1cf4e749b24e7120642406d581fb863da910160405180910390a3505050610b9b6001606555565b505050565b6033546001600160a01b031690565b610bb7611006565b6099546040516001600160a01b038084169216907f8a2ae7e0d6e1a1b69603c9a3ecf800265c068b85c0db697e710032d70334193490600090a3609980546001600160a01b0319166001600160a01b0392909216919091179055565b610c1b611006565b60a08190556040518181527f477c2176f40f2276db64077cf83cad93d58cf31cd85b535f1a402e7067523c3190602001610636565b610c58611006565b609d546040516001600160a01b038084169216907f905015becda94903b5502a2e76438b72579c224d0a12f7c58c46ed3d0fadeed990600090a3609d80546001600160a01b0319166001600160a01b038316908117909155604080516393eb049d60e01b815290516393eb049d9160048082019260209290919082900301816000875af1158015610ced573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d119190611ef2565b506097546106c1906001600160a01b0316826000196116ef565b610d33611065565b6106b733826001611379565b610d47611006565b6001600160a01b038116610db15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6106c181611645565b600054610100900460ff1615808015610dda5750600054600160ff909116105b80610dfb5750610de9306117f2565b158015610dfb575060005460ff166001145b610e5e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610da8565b6000805460ff191660011790558015610e81576000805461ff0019166101001790555b610e89611801565b610e91611830565b609780546001600160a01b038088166001600160a01b031992831681179093556098805488831690841617905560998054878316908416179055609a8054918616919092161790556301e1338060a055604080516318160ddd60e01b815290516318160ddd916004808201926020929091908290030181865afa158015610f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f409190611f29565b50609860009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb89190611f29565b508015610fff576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b3361100f610ba0565b6001600160a01b0316146107ac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610da8565b6002606554036110b75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610da8565b6002606555565b609f5460ff1680156110e957506110d3610ba0565b6001600160a01b0316336001600160a01b031614155b1561110757604051630c25a43960e41b815260040160405180910390fd5b6001600160a01b038083166000908152609b6020908152604080832085845282528083208151610100810183528154958616815260ff600160a01b87048116151594820194909452600160a81b90950490921615159084015260018101546060840181905260028201546080850152600382015460a0850152600482015460c085015260059091015460e084015290036111b45760405163f8473add60e01b815260040160405180910390fd5b8060200151156111d757604051633380bcb760e01b815260040160405180910390fd5b8060400151156111fa5760405163e4c1808360e01b815260040160405180910390fd5b60008160a001514210611220578160c001518260a0015161121b9190611e77565b61122f565b60c082015161122f9042611e77565b9050600082608001518360a001516112479190611e77565b9050600061125a846060015184846107ae565b60a08501516001600160a01b0388166000908152609b602090815260408083208a84529091529020805460ff60a01b19164292831015600160a01b021781556004015590506301e133808211156112d9576001600160a01b0386166000908152609e6020526040812080548392906112d3908490611e77565b90915550505b83516098546112f4916001600160a01b03909116908361185f565b609954609754611311916001600160a01b0391821691168361185f565b8484600001516001600160a01b03167f24c74c1d14438a5ca477f564bcc66fd23d5a21e6773a14a0efbbe111b92090f9838488606001516113529190611e77565b6040805192835260208301919091520160405180910390a3505050505050565b6001606555565b609f5460ff1680156113a4575061138e610ba0565b6001600160a01b0316336001600160a01b031614155b156113c257604051630c25a43960e41b815260040160405180910390fd5b6001600160a01b038084166000818152609b60209081526040808320878452825291829020825161010081018452815495861680825260ff600160a01b88048116151594830194909452600160a81b9096049092161515928201929092526001820154606082015260028201546080820152600382015460a0820152600482015460c082015260059091015460e0820152911480159061147b5750611465610ba0565b6001600160a01b0316336001600160a01b031614155b156114a557811561149f5760405163371efd8760e21b815260040160405180910390fd5b50505050565b8060a001514211156114d057811561149f57604051633ba3bf5960e11b815260040160405180910390fd5b8060200151156114f957811561149f57604051633380bcb760e01b815260040160405180910390fd5b80604001511561152257811561149f5760405163e4c1808360e01b815260040160405180910390fd5b61152c84846110be565b600081608001514261153e9190611e77565b9050600082608001518360a001516115569190611e77565b90506000611569846060015184846107ae565b90506000818560e0015161157d9190611e77565b6001600160a01b0389166000908152609b602090815260408083208b84529091529020805460ff60a81b1916600160a81b17905590506301e133808311156115ed576001600160a01b0388166000908152609e6020526040812080548392906115e7908490611e77565b90915550505b6115f7888261187e565b86886001600160a01b03167fd7fdf4cc7f8b52d8dc1bebf9f926d453f223ec27aeec8b5ac8906120768e782b8360405161163391815260200190565b60405180910390a35050505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61149f846323b872dd60e01b8585856040516024016116b893929190611f42565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611916565b8015806117685750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e906117259030908690600401611f0f565b602060405180830381865afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117669190611f29565b155b6117d35760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610da8565b610b9b8363095ea7b360e01b84846040516024016116b8929190611f66565b6001600160a01b03163b151590565b600054610100900460ff166118285760405162461bcd60e51b8152600401610da890611f7f565b6107ac6119e8565b600054610100900460ff166118575760405162461bcd60e51b8152600401610da890611f7f565b6107ac611a18565b610b9b8363a9059cbb60e01b84846040516024016116b8929190611f66565b609d546001600160a01b03166118a757604051631016a80960e31b815260040160405180910390fd5b609d54609754604051638340f54960e01b81526001600160a01b0392831692638340f549926118e0928792909116908690600401611f42565b600060405180830381600087803b1580156118fa57600080fd5b505af115801561190e573d6000803e3d6000fd5b505050505050565b600061196b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611a3f9092919063ffffffff16565b805190915015610b9b57808060200190518101906119899190611fca565b610b9b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610da8565b600054610100900460ff16611a0f5760405162461bcd60e51b8152600401610da890611f7f565b6107ac33611645565b600054610100900460ff166113725760405162461bcd60e51b8152600401610da890611f7f565b60606107c5848460008585600080866001600160a01b03168587604051611a66919061200b565b60006040518083038185875af1925050503d8060008114611aa3576040519150601f19603f3d011682016040523d82523d6000602084013e611aa8565b606091505b5091509150611ab987838387611ac4565b979650505050505050565b60608315611b31578251600003611b2a57611ade856117f2565b611b2a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610da8565b50816107c5565b6107c58383815115611b465781518083602001fd5b8060405162461bcd60e51b8152600401610da89190612027565b6001600160a01b03811681146106c157600080fd5b600060208284031215611b8757600080fd5b81356105ea81611b60565b600080600060608486031215611ba757600080fd5b8335611bb281611b60565b95602085013595506040909401359392505050565b602080825282518282018190526000919060409081850190868401855b82811015611c5457815180516001600160a01b031685528681015115158786015285810151151586860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e090810151908501526101009093019290850190600101611be4565b5091979650505050505050565b80151581146106c157600080fd5b600060208284031215611c8157600080fd5b81356105ea81611c61565b600060208284031215611c9e57600080fd5b5035919050565b60008060408385031215611cb857600080fd5b50508035926020909101359150565b60008060408385031215611cda57600080fd5b8235611ce581611b60565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611d1c57600080fd5b82356001600160401b0380821115611d3357600080fd5b818501915085601f830112611d4757600080fd5b813581811115611d5957611d59611cf3565b8060051b604051601f19603f83011681018181108582111715611d7e57611d7e611cf3565b604052918252848201925083810185019188831115611d9c57600080fd5b938501935b82851015611dba57843584529385019392850192611da1565b98975050505050505050565b600080600060608486031215611ddb57600080fd5b505081359360208301359350604090920135919050565b60008060008060808587031215611e0857600080fd5b8435611e1381611b60565b93506020850135611e2381611b60565b92506040850135611e3381611b60565b91506060850135611e4381611b60565b939692955090935050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106fc576106fc611e4e565b818103818111156106fc576106fc611e4e565b634e487b7160e01b600052603260045260246000fd5b80820281158282048414176106fc576106fc611e4e565b600082611ed457634e487b7160e01b600052601260045260246000fd5b500490565b600060018201611eeb57611eeb611e4e565b5060010190565b600060208284031215611f0457600080fd5b81516105ea81611b60565b6001600160a01b0392831681529116602082015260400190565b600060208284031215611f3b57600080fd5b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215611fdc57600080fd5b81516105ea81611c61565b60005b83811015612002578181015183820152602001611fea565b50506000910152565b6000825161201d818460208701611fe7565b9190910192915050565b6020815260008251806020840152612046816040850160208701611fe7565b601f01601f1916919091016040019291505056fea2646970667358221220bb76831538636ec78b8ca068adca46c4fb3f869fe7186efae8279ce02e5dcc0c64736f6c63430008120033