Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,736 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 18428552 | 278 days ago | IN | 0 ETH | 0.00201764 | ||||
Claim | 17463437 | 413 days ago | IN | 0 ETH | 0.00173088 | ||||
Claim | 17460624 | 413 days ago | IN | 0 ETH | 0.00235842 | ||||
Claim | 17379900 | 425 days ago | IN | 0 ETH | 0.00359365 | ||||
Claim | 17379297 | 425 days ago | IN | 0 ETH | 0.00388486 | ||||
Claim | 17377797 | 425 days ago | IN | 0 ETH | 0.00235491 | ||||
Claim | 17338672 | 430 days ago | IN | 0 ETH | 0.00238893 | ||||
Claim | 17338159 | 431 days ago | IN | 0 ETH | 0.00421494 | ||||
Claim | 17331300 | 431 days ago | IN | 0 ETH | 0.00329676 | ||||
Claim | 17330972 | 432 days ago | IN | 0 ETH | 0.0038576 | ||||
Claim | 17328467 | 432 days ago | IN | 0 ETH | 0.00282795 | ||||
Claim | 17276968 | 439 days ago | IN | 0 ETH | 0.00436237 | ||||
Claim | 17236181 | 445 days ago | IN | 0 ETH | 0.00759635 | ||||
Claim | 17158954 | 456 days ago | IN | 0 ETH | 0.00293952 | ||||
Claim | 17152302 | 457 days ago | IN | 0 ETH | 0.00362175 | ||||
Claim | 17151187 | 457 days ago | IN | 0 ETH | 0.00284515 | ||||
Claim | 17139582 | 458 days ago | IN | 0 ETH | 0.00321461 | ||||
Claim | 17138045 | 459 days ago | IN | 0 ETH | 0.00440701 | ||||
Claim | 17131996 | 460 days ago | IN | 0 ETH | 0.00324362 | ||||
Claim | 17118569 | 461 days ago | IN | 0 ETH | 0.00426278 | ||||
Claim | 17101617 | 464 days ago | IN | 0 ETH | 0.00258862 | ||||
Claim | 17076032 | 467 days ago | IN | 0 ETH | 0.00494637 | ||||
Claim | 17073960 | 468 days ago | IN | 0 ETH | 0.00448355 | ||||
Claim | 17062936 | 469 days ago | IN | 0 ETH | 0.00207061 | ||||
Claim | 17062491 | 469 days ago | IN | 0 ETH | 0.00204483 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
GROHodler
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: AGPLv3 pragma solidity 0.8.4; import "@openzeppelin/contracts/access/Ownable.sol"; interface IHodler { function totalBonus() external view returns (uint256); function correctionAmount() external view returns (uint256); function claimDelay() external view returns (uint256); function maintainer() external view returns (address); function userClaims(address account) external view returns (uint256); } interface IVester { function vestingBalance(address _account) external view returns (uint256); function totalGroove() external view returns (uint256); function vest( bool vest, address account, uint256 amount ) external; } /// @notice GRP vesting bonus claims contract - Where all unvested GRO are returned if user exits vesting contract early contract GROHodler is Ownable { uint256 public constant DEFAULT_DECIMAL_FACTOR = 1E18; // The main vesting contract address public vester; // Total amount of unvested GRO that has been tossed aside uint256 public totalBonus; // Estimation of total unvested GRO can become unreliable if there is a significant // amount of users who have vesting periods that exceed their vesting end date. // We use a manual correction variable to deal with this issue for now. uint256 public correctionAmount; // How long you have to wait between claims uint256 public claimDelay; // Contract that can help maintain the bonus contract by adjusting variables address public maintainer; // keep track of users last claim mapping(address => uint256) public userClaims; bool public paused = true; IHodler public oldHodler; event LogBonusAdded(uint256 amount); event LogBonusClaimed(address indexed user, bool vest, uint256 amount); event LogNewClaimDelay(uint256 delay); event LogNewCorrectionVariable(uint256 correction); event LogNewMaintainer(address newMaintainer); event LogNewStatus(bool status); constructor(address _vester, IHodler _oldHodler) { vester = _vester; if (address(_oldHodler) != address(0)) { oldHodler = _oldHodler; totalBonus = _oldHodler.totalBonus(); correctionAmount = _oldHodler.correctionAmount(); claimDelay = _oldHodler.claimDelay(); maintainer = _oldHodler.maintainer(); } } /// @notice every time a users exits a vesting position, the penalty gets added to this contract /// @param amount user penealty amount function add(uint256 amount) external { require(msg.sender == vester); totalBonus += amount; emit LogBonusAdded(amount); } function setVester(address _vester) external onlyOwner { vester = _vester; } /// @notice Set a new maintainer /// @param newMaintainer address of new maintainer /// @dev Maintainer will mostly be used to be able to change the correctionValue /// on short notice, as this can change on short notice depending on if users interact with /// their position in the vesting contract function setMaintainer(address newMaintainer) external onlyOwner { maintainer = newMaintainer; emit LogNewMaintainer(newMaintainer); } /// @notice Start or stop the bonus contract /// @param pause Contract Pause state function setStatus(bool pause) external { require(msg.sender == maintainer || msg.sender == owner(), "setCorrectionVariable: !authorized"); paused = pause; emit LogNewStatus(pause); } /// @notice maintainer can correct total amount of vested GRO to adjust for drift of central curve vs user curves /// @param newCorrection a positive number to deduct from the unvested GRO to correct for central drift function setCorrectionVariable(uint256 newCorrection) external { require(msg.sender == maintainer || msg.sender == owner(), "setCorrectionVariable: !authorized"); require(newCorrection <= IVester(vester).totalGroove(), "setCorrectionVariable: correctionAmount to large"); correctionAmount = newCorrection; emit LogNewCorrectionVariable(newCorrection); } /// @notice after every bonus claim, a user has to wait some time before they can claim again /// @param delay time delay until next claim is possible function setClaimDelay(uint256 delay) external onlyOwner { claimDelay = delay; emit LogNewClaimDelay(delay); } /// @notice Ease of use function to get users pending bonus function getPendingBonus() external view returns (uint256) { return getPendingBonus(msg.sender); } /// @notice Get the pending bonus a user can claim /// @param user user to get pending bonus for function getPendingBonus(address user) public view returns (uint256) { uint256 userGroove = IVester(vester).vestingBalance(user); // if the user doesnt have a vesting position, they cannot claim if (userGroove == 0) { return 0; } // if for some reason the user has a larger vesting position than the // current vesting position - correctionAmount, then give them the whole bonus. // This should only happen if: theres only one vesting position, someone forgot to // update the correctionAmount; uint256 globalGroove = IVester(vester).totalGroove() - correctionAmount; if (userGroove >= globalGroove) { return totalBonus; } uint256 userAmount = (userGroove * totalBonus) / globalGroove; return userAmount; } /// @notice User claims available bonus function claim(bool vest) external returns (uint256) { // user cannot claim if they have claimed recently or the contract is paused if (getLastClaimTime(msg.sender) + claimDelay >= block.timestamp || paused) { return 0; } uint256 userAmount = getPendingBonus(msg.sender); if (userAmount > 0) { userClaims[msg.sender] = block.timestamp; totalBonus -= userAmount; IVester(vester).vest(vest, msg.sender, userAmount); emit LogBonusClaimed(msg.sender, vest, userAmount); } return userAmount; } function canClaim() external view returns (bool) { if (getLastClaimTime(msg.sender) + claimDelay >= block.timestamp || paused) { return false; } return true; } function getLastClaimTime(address account) public view returns (uint256 lastClaimTime) { lastClaimTime = userClaims[account]; if (lastClaimTime == 0 && address(oldHodler) != address(0)) { lastClaimTime = oldHodler.userClaims(account); } } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "metadata": { "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_vester","type":"address"},{"internalType":"contract IHodler","name":"_oldHodler","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogBonusAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"vest","type":"bool"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogBonusClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"delay","type":"uint256"}],"name":"LogNewClaimDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"correction","type":"uint256"}],"name":"LogNewCorrectionVariable","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newMaintainer","type":"address"}],"name":"LogNewMaintainer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"LogNewStatus","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":"DEFAULT_DECIMAL_FACTOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"canClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"vest","type":"bool"}],"name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"correctionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getLastClaimTime","outputs":[{"internalType":"uint256","name":"lastClaimTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getPendingBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maintainer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oldHodler","outputs":[{"internalType":"contract IHodler","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"setClaimDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newCorrection","type":"uint256"}],"name":"setCorrectionVariable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMaintainer","type":"address"}],"name":"setMaintainer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"pause","type":"bool"}],"name":"setStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vester","type":"address"}],"name":"setVester","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalBonus","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":"address","name":"","type":"address"}],"name":"userClaims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vester","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526007805460ff191660011790553480156200001e57600080fd5b506040516200107238038062001072833981016040819052620000419162000320565b6200004c33620002aa565b600180546001600160a01b0319166001600160a01b0384811691909117909155811615620002a25780600760016101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b031663a8dd07dc6040518163ffffffff1660e01b815260040160206040518083038186803b158015620000d557600080fd5b505afa158015620000ea573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200011091906200035e565b600281905550806001600160a01b03166308826e216040518163ffffffff1660e01b815260040160206040518083038186803b1580156200015057600080fd5b505afa15801562000165573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018b91906200035e565b600381905550806001600160a01b0316631c8ec2996040518163ffffffff1660e01b815260040160206040518083038186803b158015620001cb57600080fd5b505afa158015620001e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020691906200035e565b600481905550806001600160a01b0316639850d32b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024657600080fd5b505afa1580156200025b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002819190620002fa565b600580546001600160a01b0319166001600160a01b03929092169190911790555b505062000390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200030c578081fd5b8151620003198162000377565b9392505050565b6000806040838503121562000333578081fd5b8251620003408162000377565b6020840151909250620003538162000377565b809150509250929050565b60006020828403121562000370578081fd5b5051919050565b6001600160a01b03811681146200038d57600080fd5b50565b610cd280620003a06000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063a8dd07dc1161007c578063a8dd07dc1461029a578063b8bde9fd146102a3578063dad5fda3146102b2578063f0a3563c146102c5578063f2fde38b146102e5578063fc22833e146102f857600080fd5b8063715018a614610218578063735da138146102205780638da5cb5b14610250578063919f015e146102615780639850d32b14610274578063a680e0bc1461028757600080fd5b80633a1920f7116101155780633a1920f7146101b2578063421c40b6146101c55780635af9fec9146101d85780635c40f6f4146101e05780635c975abb146101f35780636dc7a6271461021057600080fd5b806308826e21146101525780631003e2d21461016e57806313ea5d29146101835780631c8ec299146101965780632d81a78e1461019f575b600080fd5b61015b60035481565b6040519081526020015b60405180910390f35b61018161017c366004610b71565b61030b565b005b610181610191366004610b23565b610370565b61015b60045481565b61015b6101ad366004610b51565b6103f1565b6101816101c0366004610b71565b610512565b6101816101d3366004610b23565b610571565b61015b6105bd565b6101816101ee366004610b51565b6105cd565b6007546102009060ff1681565b6040519015158152602001610165565b61020061064d565b610181610686565b6007546102389061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610165565b6000546001600160a01b0316610238565b61018161026f366004610b71565b6106bc565b600554610238906001600160a01b031681565b61015b610295366004610b23565b61081e565b61015b60025481565b61015b670de0b6b3a764000081565b600154610238906001600160a01b031681565b61015b6102d3366004610b23565b60066020526000908152604090205481565b6101816102f3366004610b23565b6108e4565b61015b610306366004610b23565b61097f565b6001546001600160a01b0316331461032257600080fd5b80600260008282546103349190610c18565b90915550506040518181527f75c27fa4ab8b98fec58533e5dd93874d1d25401a6822c48e2219703f23688f38906020015b60405180910390a150565b6000546001600160a01b031633146103a35760405162461bcd60e51b815260040161039a90610ba1565b60405180910390fd5b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527f28f0f69230c9da82a7c364541a685327c4505bfbc5a1516d54f54ba4d0f4eedb90602001610365565b6000426004546104003361081e565b61040a9190610c18565b101580610419575060075460ff165b1561042657506000919050565b60006104313361097f565b9050801561050c573360009081526006602052604081204290556002805483929061045d908490610c6f565b9091555050600154604051635ef09f2760e01b81528415156004820152336024820152604481018390526001600160a01b0390911690635ef09f2790606401600060405180830381600087803b1580156104b657600080fd5b505af11580156104ca573d6000803e3d6000fd5b5050604080518615158152602081018590523393507f71bfea0e692c49a87eab390d7b7a26e264efcc6c088f5e86366fe0a6e4ffd4b592500160405180910390a25b92915050565b6000546001600160a01b0316331461053c5760405162461bcd60e51b815260040161039a90610ba1565b60048190556040518181527f0fada3ead0e441e2bdf469c12159dc95640fbb2b71e358fdc620d6a76ff7ec7690602001610365565b6000546001600160a01b0316331461059b5760405162461bcd60e51b815260040161039a90610ba1565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006105c83361097f565b905090565b6005546001600160a01b03163314806105f057506000546001600160a01b031633145b61060c5760405162461bcd60e51b815260040161039a90610bd6565b6007805460ff19168215159081179091556040519081527f8ed37d5750d522fcc0f63be53513dca1de3245250790be9afb92a8cc8e9777b190602001610365565b60004260045461065c3361081e565b6106669190610c18565b101580610675575060075460ff165b156106805750600090565b50600190565b6000546001600160a01b031633146106b05760405162461bcd60e51b815260040161039a90610ba1565b6106ba6000610ad3565b565b6005546001600160a01b03163314806106df57506000546001600160a01b031633145b6106fb5760405162461bcd60e51b815260040161039a90610bd6565b600160009054906101000a90046001600160a01b03166001600160a01b031663e01aff4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561074957600080fd5b505afa15801561075d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190610b89565b8111156107e95760405162461bcd60e51b815260206004820152603060248201527f736574436f7272656374696f6e5661726961626c653a20636f7272656374696f60448201526f6e416d6f756e7420746f206c6172676560801b606482015260840161039a565b60038190556040518181527fd6d5ddfb32ef684c983b5cfc8627c874593050ba98a032022e5c72701b0e574290602001610365565b6001600160a01b03811660009081526006602052604090205480158015610854575060075461010090046001600160a01b031615155b156108df57600754604051633c28d58f60e21b81526001600160a01b0384811660048301526101009092049091169063f0a3563c9060240160206040518083038186803b1580156108a457600080fd5b505afa1580156108b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dc9190610b89565b90505b919050565b6000546001600160a01b0316331461090e5760405162461bcd60e51b815260040161039a90610ba1565b6001600160a01b0381166109735760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161039a565b61097c81610ad3565b50565b60015460405163192399d160e01b81526001600160a01b038381166004830152600092839291169063192399d19060240160206040518083038186803b1580156109c857600080fd5b505afa1580156109dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a009190610b89565b905080610a105750600092915050565b6003546001546040805163700d7fa760e11b81529051600093926001600160a01b03169163e01aff4e916004808301926020929190829003018186803b158015610a5957600080fd5b505afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190610b89565b610a9b9190610c6f565b9050808210610aaf57505060025492915050565b60008160025484610ac09190610c50565b610aca9190610c30565b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610b34578081fd5b81356001600160a01b0381168114610b4a578182fd5b9392505050565b600060208284031215610b62578081fd5b81358015158114610b4a578182fd5b600060208284031215610b82578081fd5b5035919050565b600060208284031215610b9a578081fd5b5051919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f736574436f7272656374696f6e5661726961626c653a2021617574686f72697a604082015261195960f21b606082015260800190565b60008219821115610c2b57610c2b610c86565b500190565b600082610c4b57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610c6a57610c6a610c86565b500290565b600082821015610c8157610c81610c86565b500390565b634e487b7160e01b600052601160045260246000fdfea26469706673582212207b857418df2f3598bcfa4f6149d2a4bbf703d44f4ca64c0b41f58cd201c8576564736f6c63430008040033000000000000000000000000748218256afe0a19a88ebeb2e0c5ce86d2178360000000000000000000000000ef10eac205817a88c6d504d02481053e85a8f927
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063a8dd07dc1161007c578063a8dd07dc1461029a578063b8bde9fd146102a3578063dad5fda3146102b2578063f0a3563c146102c5578063f2fde38b146102e5578063fc22833e146102f857600080fd5b8063715018a614610218578063735da138146102205780638da5cb5b14610250578063919f015e146102615780639850d32b14610274578063a680e0bc1461028757600080fd5b80633a1920f7116101155780633a1920f7146101b2578063421c40b6146101c55780635af9fec9146101d85780635c40f6f4146101e05780635c975abb146101f35780636dc7a6271461021057600080fd5b806308826e21146101525780631003e2d21461016e57806313ea5d29146101835780631c8ec299146101965780632d81a78e1461019f575b600080fd5b61015b60035481565b6040519081526020015b60405180910390f35b61018161017c366004610b71565b61030b565b005b610181610191366004610b23565b610370565b61015b60045481565b61015b6101ad366004610b51565b6103f1565b6101816101c0366004610b71565b610512565b6101816101d3366004610b23565b610571565b61015b6105bd565b6101816101ee366004610b51565b6105cd565b6007546102009060ff1681565b6040519015158152602001610165565b61020061064d565b610181610686565b6007546102389061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610165565b6000546001600160a01b0316610238565b61018161026f366004610b71565b6106bc565b600554610238906001600160a01b031681565b61015b610295366004610b23565b61081e565b61015b60025481565b61015b670de0b6b3a764000081565b600154610238906001600160a01b031681565b61015b6102d3366004610b23565b60066020526000908152604090205481565b6101816102f3366004610b23565b6108e4565b61015b610306366004610b23565b61097f565b6001546001600160a01b0316331461032257600080fd5b80600260008282546103349190610c18565b90915550506040518181527f75c27fa4ab8b98fec58533e5dd93874d1d25401a6822c48e2219703f23688f38906020015b60405180910390a150565b6000546001600160a01b031633146103a35760405162461bcd60e51b815260040161039a90610ba1565b60405180910390fd5b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527f28f0f69230c9da82a7c364541a685327c4505bfbc5a1516d54f54ba4d0f4eedb90602001610365565b6000426004546104003361081e565b61040a9190610c18565b101580610419575060075460ff165b1561042657506000919050565b60006104313361097f565b9050801561050c573360009081526006602052604081204290556002805483929061045d908490610c6f565b9091555050600154604051635ef09f2760e01b81528415156004820152336024820152604481018390526001600160a01b0390911690635ef09f2790606401600060405180830381600087803b1580156104b657600080fd5b505af11580156104ca573d6000803e3d6000fd5b5050604080518615158152602081018590523393507f71bfea0e692c49a87eab390d7b7a26e264efcc6c088f5e86366fe0a6e4ffd4b592500160405180910390a25b92915050565b6000546001600160a01b0316331461053c5760405162461bcd60e51b815260040161039a90610ba1565b60048190556040518181527f0fada3ead0e441e2bdf469c12159dc95640fbb2b71e358fdc620d6a76ff7ec7690602001610365565b6000546001600160a01b0316331461059b5760405162461bcd60e51b815260040161039a90610ba1565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006105c83361097f565b905090565b6005546001600160a01b03163314806105f057506000546001600160a01b031633145b61060c5760405162461bcd60e51b815260040161039a90610bd6565b6007805460ff19168215159081179091556040519081527f8ed37d5750d522fcc0f63be53513dca1de3245250790be9afb92a8cc8e9777b190602001610365565b60004260045461065c3361081e565b6106669190610c18565b101580610675575060075460ff165b156106805750600090565b50600190565b6000546001600160a01b031633146106b05760405162461bcd60e51b815260040161039a90610ba1565b6106ba6000610ad3565b565b6005546001600160a01b03163314806106df57506000546001600160a01b031633145b6106fb5760405162461bcd60e51b815260040161039a90610bd6565b600160009054906101000a90046001600160a01b03166001600160a01b031663e01aff4e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561074957600080fd5b505afa15801561075d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190610b89565b8111156107e95760405162461bcd60e51b815260206004820152603060248201527f736574436f7272656374696f6e5661726961626c653a20636f7272656374696f60448201526f6e416d6f756e7420746f206c6172676560801b606482015260840161039a565b60038190556040518181527fd6d5ddfb32ef684c983b5cfc8627c874593050ba98a032022e5c72701b0e574290602001610365565b6001600160a01b03811660009081526006602052604090205480158015610854575060075461010090046001600160a01b031615155b156108df57600754604051633c28d58f60e21b81526001600160a01b0384811660048301526101009092049091169063f0a3563c9060240160206040518083038186803b1580156108a457600080fd5b505afa1580156108b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dc9190610b89565b90505b919050565b6000546001600160a01b0316331461090e5760405162461bcd60e51b815260040161039a90610ba1565b6001600160a01b0381166109735760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161039a565b61097c81610ad3565b50565b60015460405163192399d160e01b81526001600160a01b038381166004830152600092839291169063192399d19060240160206040518083038186803b1580156109c857600080fd5b505afa1580156109dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a009190610b89565b905080610a105750600092915050565b6003546001546040805163700d7fa760e11b81529051600093926001600160a01b03169163e01aff4e916004808301926020929190829003018186803b158015610a5957600080fd5b505afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190610b89565b610a9b9190610c6f565b9050808210610aaf57505060025492915050565b60008160025484610ac09190610c50565b610aca9190610c30565b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610b34578081fd5b81356001600160a01b0381168114610b4a578182fd5b9392505050565b600060208284031215610b62578081fd5b81358015158114610b4a578182fd5b600060208284031215610b82578081fd5b5035919050565b600060208284031215610b9a578081fd5b5051919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f736574436f7272656374696f6e5661726961626c653a2021617574686f72697a604082015261195960f21b606082015260800190565b60008219821115610c2b57610c2b610c86565b500190565b600082610c4b57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610c6a57610c6a610c86565b500290565b600082821015610c8157610c81610c86565b500390565b634e487b7160e01b600052601160045260246000fdfea26469706673582212207b857418df2f3598bcfa4f6149d2a4bbf703d44f4ca64c0b41f58cd201c8576564736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000748218256afe0a19a88ebeb2e0c5ce86d2178360000000000000000000000000ef10eac205817a88c6d504d02481053e85a8f927
-----Decoded View---------------
Arg [0] : _vester (address): 0x748218256AfE0A19a88EBEB2E0C5Ce86d2178360
Arg [1] : _oldHodler (address): 0xEf10eac205817A88C6d504d02481053E85A8F927
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000748218256afe0a19a88ebeb2e0c5ce86d2178360
Arg [1] : 000000000000000000000000ef10eac205817a88c6d504d02481053e85a8f927
Deployed Bytecode Sourcemap
843:5953:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1342:31;;;;;;;;;3996:25:3;;;3984:2;3969:18;1342:31:0;;;;;;;;2567:150;;;;;;:::i;:::-;;:::i;:::-;;3139:154;;;;;;:::i;:::-;;:::i;1427:25::-;;;;;;5697:608;;;;;;:::i;:::-;;:::i;4387:130::-;;;;;;:::i;:::-;;:::i;2723:88::-;;;;;;:::i;:::-;;:::i;4587:110::-;;;:::i;3390:211::-;;;;;;:::i;:::-;;:::i;1660:25::-;;;;;;;;;;;;1390:14:3;;1383:22;1365:41;;1353:2;1338:18;1660:25:0;1320:92:3;6311:199:0;;;:::i;1605:92:1:-;;;:::i;1692:24:0:-;;;;;;;;-1:-1:-1;;;;;1692:24:0;;;;;;-1:-1:-1;;;;;1181:32:3;;;1163:51;;1151:2;1136:18;1692:24:0;1118:102:3;973:85:1;1019:7;1045:6;-1:-1:-1;;;;;1045:6:1;973:85;;3833:389:0;;;;;;:::i;:::-;;:::i;1539:25::-;;;;;-1:-1:-1;;;;;1539:25:0;;;6516:278;;;;;;:::i;:::-;;:::i;1061:25::-;;;;;;879:53;;928:4;879:53;;971:21;;;;;-1:-1:-1;;;;;971:21:0;;;1609:45;;;;;;:::i;:::-;;;;;;;;;;;;;;1846:189:1;;;;;;:::i;:::-;;:::i;4808:839:0:-;;;;;;:::i;:::-;;:::i;2567:150::-;2637:6;;-1:-1:-1;;;;;2637:6:0;2623:10;:20;2615:29;;;;;;2668:6;2654:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;2689:21:0;;3996:25:3;;;2689:21:0;;3984:2:3;3969:18;2689:21:0;;;;;;;;2567:150;:::o;3139:154::-;1019:7:1;1045:6;-1:-1:-1;;;;;1045:6:1;666:10:2;1185:23:1;1177:68;;;;-1:-1:-1;;;1177:68:1;;;;;;;:::i;:::-;;;;;;;;;3214:10:0::1;:26:::0;;-1:-1:-1;;;;;;3214:26:0::1;-1:-1:-1::0;;;;;3214:26:0;::::1;::::0;;::::1;::::0;;;3255:31:::1;::::0;1163:51:3;;;3255:31:0::1;::::0;1151:2:3;1136:18;3255:31:0::1;1118:102:3::0;5697:608:0;5741:7;5894:15;5880:10;;5849:28;5866:10;5849:16;:28::i;:::-;:41;;;;:::i;:::-;:60;;:70;;;-1:-1:-1;5913:6:0;;;;5849:70;5845:109;;;-1:-1:-1;5942:1:0;;5697:608;-1:-1:-1;5697:608:0:o;5845:109::-;5963:18;5984:27;6000:10;5984:15;:27::i;:::-;5963:48;-1:-1:-1;6025:14:0;;6021:251;;6066:10;6055:22;;;;:10;:22;;;;;6080:15;6055:40;;6109:10;:24;;6123:10;;6055:22;6109:24;;6123:10;;6109:24;:::i;:::-;;;;-1:-1:-1;;6155:6:0;;6147:50;;-1:-1:-1;;;6147:50:0;;1638:14:3;;1631:22;6147:50:0;;;1613:41:3;6174:10:0;1670:18:3;;;1663:60;1739:18;;;1732:34;;;-1:-1:-1;;;;;6155:6:0;;;;6147:20;;1586:18:3;;6147:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6216:45:0;;;1970:14:3;;1963:22;1945:41;;2017:2;2002:18;;1995:34;;;6232:10:0;;-1:-1:-1;6216:45:0;;-1:-1:-1;1918:18:3;6216:45:0;;;;;;;6021:251;6288:10;5697:608;-1:-1:-1;;5697:608:0:o;4387:130::-;1019:7:1;1045:6;-1:-1:-1;;;;;1045:6:1;666:10:2;1185:23:1;1177:68;;;;-1:-1:-1;;;1177:68:1;;;;;;;:::i;:::-;4454:10:0::1;:18:::0;;;4487:23:::1;::::0;3996:25:3;;;4487:23:0::1;::::0;3984:2:3;3969:18;4487:23:0::1;3951:76:3::0;2723:88:0;1019:7:1;1045:6;-1:-1:-1;;;;;1045:6:1;666:10:2;1185:23:1;1177:68;;;;-1:-1:-1;;;1177:68:1;;;;;;;:::i;:::-;2788:6:0::1;:16:::0;;-1:-1:-1;;;;;;2788:16:0::1;-1:-1:-1::0;;;;;2788:16:0;;;::::1;::::0;;;::::1;::::0;;2723:88::o;4587:110::-;4637:7;4663:27;4679:10;4663:15;:27::i;:::-;4656:34;;4587:110;:::o;3390:211::-;3462:10;;-1:-1:-1;;;;;3462:10:0;3448;:24;;:49;;-1:-1:-1;1019:7:1;1045:6;-1:-1:-1;;;;;1045:6:1;3476:10:0;:21;3448:49;3440:96;;;;-1:-1:-1;;;3440:96:0;;;;;;;:::i;:::-;3546:6;:14;;-1:-1:-1;;3546:14:0;;;;;;;;;;3575:19;;1365:41:3;;;3575:19:0;;1353:2:3;1338:18;3575:19:0;1320:92:3;6311:199:0;6354:4;6419:15;6405:10;;6374:28;6391:10;6374:16;:28::i;:::-;:41;;;;:::i;:::-;:60;;:70;;;-1:-1:-1;6438:6:0;;;;6374:70;6370:113;;;-1:-1:-1;6467:5:0;;6311:199::o;6370:113::-;-1:-1:-1;6499:4:0;;6311:199::o;1605:92:1:-;1019:7;1045:6;-1:-1:-1;;;;;1045:6:1;666:10:2;1185:23:1;1177:68;;;;-1:-1:-1;;;1177:68:1;;;;;;;:::i;:::-;1669:21:::1;1687:1;1669:9;:21::i;:::-;1605:92::o:0;3833:389:0:-;3928:10;;-1:-1:-1;;;;;3928:10:0;3914;:24;;:49;;-1:-1:-1;1019:7:1;1045:6;-1:-1:-1;;;;;1045:6:1;3942:10:0;:21;3914:49;3906:96;;;;-1:-1:-1;;;3906:96:0;;;;;;;:::i;:::-;4045:6;;;;;;;;;-1:-1:-1;;;;;4045:6:0;-1:-1:-1;;;;;4037:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4020:13;:46;;4012:107;;;;-1:-1:-1;;;4012:107:0;;2871:2:3;4012:107:0;;;2853:21:3;2910:2;2890:18;;;2883:30;2949:34;2929:18;;;2922:62;-1:-1:-1;;;3000:18:3;;;2993:46;3056:19;;4012:107:0;2843:238:3;4012:107:0;4129:16;:32;;;4176:39;;3996:25:3;;;4176:39:0;;3984:2:3;3969:18;4176:39:0;3951:76:3;6516:278:0;-1:-1:-1;;;;;6629:19:0;;6580:21;6629:19;;;:10;:19;;;;;;6662:18;;:54;;;;-1:-1:-1;6692:9:0;;;;;-1:-1:-1;;;;;6692:9:0;6684:32;;6662:54;6658:130;;;6748:9;;:29;;-1:-1:-1;;;6748:29:0;;-1:-1:-1;;;;;1181:32:3;;;6748:29:0;;;1163:51:3;6748:9:0;;;;;;;;:20;;1136:18:3;;6748:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6732:45;;6658:130;6516:278;;;:::o;1846:189:1:-;1019:7;1045:6;-1:-1:-1;;;;;1045:6:1;666:10:2;1185:23:1;1177:68;;;;-1:-1:-1;;;1177:68:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;1934:22:1;::::1;1926:73;;;::::0;-1:-1:-1;;;1926:73:1;;2464:2:3;1926:73:1::1;::::0;::::1;2446:21:3::0;2503:2;2483:18;;;2476:30;2542:34;2522:18;;;2515:62;-1:-1:-1;;;2593:18:3;;;2586:36;2639:19;;1926:73:1::1;2436:228:3::0;1926:73:1::1;2009:19;2019:8;2009:9;:19::i;:::-;1846:189:::0;:::o;4808:839:0:-;4916:6;;4908:36;;-1:-1:-1;;;4908:36:0;;-1:-1:-1;;;;;1181:32:3;;;4908:36:0;;;1163:51:3;4868:7:0;;;;4916:6;;;4908:30;;1136:18:3;;4908:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4887:57;-1:-1:-1;5031:15:0;5027:54;;-1:-1:-1;5069:1:0;;4808:839;-1:-1:-1;;4808:839:0:o;5027:54::-;5443:16;;5419:6;;5411:29;;;-1:-1:-1;;;5411:29:0;;;;5388:20;;5443:16;-1:-1:-1;;;;;5419:6:0;;5411:27;;:29;;;;;;;;;;;;;;5419:6;5411:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;;;:::i;:::-;5388:71;;5487:12;5473:10;:26;5469:74;;-1:-1:-1;;5522:10:0;;;4808:839;-1:-1:-1;;4808:839:0:o;5469:74::-;5552:18;5601:12;5587:10;;5574;:23;;;;:::i;:::-;5573:40;;;;:::i;:::-;5552:61;4808:839;-1:-1:-1;;;;;4808:839:0:o;2041:169:1:-;2096:16;2115:6;;-1:-1:-1;;;;;2131:17:1;;;-1:-1:-1;;;;;;2131:17:1;;;;;;2163:40;;2115:6;;;;;;;2163:40;;2096:16;2163:40;2041:169;;:::o;14:306:3:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;178:23;;-1:-1:-1;;;;;230:31:3;;220:42;;210:2;;281:6;273;266:22;210:2;309:5;84:236;-1:-1:-1;;;84:236:3:o;325:293::-;381:6;434:2;422:9;413:7;409:23;405:32;402:2;;;455:6;447;440:22;402:2;499:9;486:23;552:5;545:13;538:21;531:5;528:32;518:2;;579:6;571;564:22;623:190;682:6;735:2;723:9;714:7;710:23;706:32;703:2;;;756:6;748;741:22;703:2;-1:-1:-1;784:23:3;;693:120;-1:-1:-1;693:120:3:o;818:194::-;888:6;941:2;929:9;920:7;916:23;912:32;909:2;;;962:6;954;947:22;909:2;-1:-1:-1;990:16:3;;899:113;-1:-1:-1;899:113:3:o;3086:356::-;3288:2;3270:21;;;3307:18;;;3300:30;3366:34;3361:2;3346:18;;3339:62;3433:2;3418:18;;3260:182::o;3447:398::-;3649:2;3631:21;;;3688:2;3668:18;;;3661:30;3727:34;3722:2;3707:18;;3700:62;-1:-1:-1;;;3793:2:3;3778:18;;3771:32;3835:3;3820:19;;3621:224::o;4032:128::-;4072:3;4103:1;4099:6;4096:1;4093:13;4090:2;;;4109:18;;:::i;:::-;-1:-1:-1;4145:9:3;;4080:80::o;4165:217::-;4205:1;4231;4221:2;;-1:-1:-1;;;4256:31:3;;4310:4;4307:1;4300:15;4338:4;4263:1;4328:15;4221:2;-1:-1:-1;4367:9:3;;4211:171::o;4387:168::-;4427:7;4493:1;4489;4485:6;4481:14;4478:1;4475:21;4470:1;4463:9;4456:17;4452:45;4449:2;;;4500:18;;:::i;:::-;-1:-1:-1;4540:9:3;;4439:116::o;4560:125::-;4600:4;4628:1;4625;4622:8;4619:2;;;4633:18;;:::i;:::-;-1:-1:-1;4670:9:3;;4609:76::o;4690:127::-;4751:10;4746:3;4742:20;4739:1;4732:31;4782:4;4779:1;4772:15;4806:4;4803:1;4796:15
Swarm Source
ipfs://7b857418df2f3598bcfa4f6149d2a4bbf703d44f4ca64c0b41f58cd201c85765
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.