Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x2380667a99d3a5c2c082a6ac72f9b941b012efe94857ba0bca4c806e5e5f6be7 | Stake | (pending) | 1 hr ago | IN | 0 ETH | (Pending) | |||
Withdraw | 21151182 | 8 days ago | IN | 0 ETH | 0.00117306 | ||||
Withdraw | 21142015 | 9 days ago | IN | 0 ETH | 0.00107596 | ||||
Emergency Withdr... | 21074679 | 19 days ago | IN | 0 ETH | 0.00081113 | ||||
Emergency Withdr... | 21074302 | 19 days ago | IN | 0 ETH | 0.00096635 | ||||
Withdraw | 21072034 | 19 days ago | IN | 0 ETH | 0.00126461 | ||||
Withdraw | 21069024 | 20 days ago | IN | 0 ETH | 0.00109238 | ||||
Withdraw | 21064800 | 20 days ago | IN | 0 ETH | 0.00151335 | ||||
Withdraw | 21035589 | 24 days ago | IN | 0 ETH | 0.00144169 | ||||
Emergency Withdr... | 21034199 | 24 days ago | IN | 0 ETH | 0.00105606 | ||||
Withdraw | 21033323 | 25 days ago | IN | 0 ETH | 0.00082519 | ||||
Withdraw | 21014570 | 27 days ago | IN | 0 ETH | 0.00134693 | ||||
Withdraw | 20986747 | 31 days ago | IN | 0 ETH | 0.00398506 | ||||
Withdraw | 20980678 | 32 days ago | IN | 0 ETH | 0.00215282 | ||||
Stake | 20909618 | 42 days ago | IN | 0 ETH | 0.00012786 | ||||
Emergency Withdr... | 20908615 | 42 days ago | IN | 0 ETH | 0.00072411 | ||||
Emergency Withdr... | 20891293 | 44 days ago | IN | 0 ETH | 0.00043575 | ||||
Emergency Withdr... | 20890716 | 44 days ago | IN | 0 ETH | 0.00066641 | ||||
Withdraw | 20889495 | 45 days ago | IN | 0 ETH | 0.00053062 | ||||
Emergency Withdr... | 20886148 | 45 days ago | IN | 0 ETH | 0.00156425 | ||||
Emergency Withdr... | 20885761 | 45 days ago | IN | 0 ETH | 0.00157296 | ||||
Withdraw | 20831419 | 53 days ago | IN | 0 ETH | 0.00150034 | ||||
Emergency Withdr... | 20831014 | 53 days ago | IN | 0 ETH | 0.00137924 | ||||
Emergency Withdr... | 20821119 | 54 days ago | IN | 0 ETH | 0.00373695 | ||||
Emergency Withdr... | 20821091 | 54 days ago | IN | 0 ETH | 0.00460066 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
StakeContract
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; contract StakeContract is ReentrancyGuard { // Constants uint256 constant STAKING_PERIOD = 30 days; // Structs struct Stake { uint256 amount; uint256 timestamp; } // Events event Staked(address indexed user, uint256 amount); event Withdrawal(address indexed user, uint256 amount); // State IERC20 public token; address public admin; uint256 public deploymentTime; uint256 public funds; bool public emergency; mapping(address => Stake) public stakes; constructor(address _admin, address _token) { admin = _admin; token = IERC20(_token); deploymentTime = block.timestamp; } modifier onlyAdmin() { require(msg.sender == admin, "Only admin can call this function"); _; } //////////////////////// ADMIN //////////////////////// function load(uint256 amount) external onlyAdmin { // fail if amount is zero require(amount > 0, "Cannot load zero funds"); require( token.transferFrom(msg.sender, address(this), amount), "Transfer failed" ); funds += amount; } function setFunds(uint256 amount) external onlyAdmin { funds = amount; } //////////////////////// EMERGENCY //////////////////////// function setEmergency() external onlyAdmin { emergency = true; } function disableEmergency() external onlyAdmin { emergency = false; } function isEmergency() external view returns (bool) { return emergency; } function emergencyDrainFunds() external onlyAdmin { uint256 balance = token.balanceOf(address(this)); require(token.transfer(admin, balance), "Transfer failed"); funds = 0; } //////////////////////// STAKING //////////////////////// function stake(uint256 amount) external nonReentrant { require(amount > 0, "Cannot stake zero amount"); require(funds > 0, "No rewards available"); Stake storage userStake = stakes[msg.sender]; // Calculate rewards for existing stake, if any // this is an implicit harvest uint256 rewards = 0; if (userStake.amount > 0) { rewards = calculateRewards(msg.sender, block.timestamp); } // Update stake and funds userStake.timestamp = block.timestamp; userStake.amount += amount + rewards; funds -= rewards; // Perform the transfer require( token.transferFrom(msg.sender, address(this), amount), "Transfer failed" ); emit Staked(msg.sender, amount); } function withdraw() external nonReentrant { Stake storage userStake = stakes[msg.sender]; require(userStake.amount > 0, "No stake found"); // check the age of the stake require( stakeIsOlderThanOneCycle(msg.sender), "Minimum lock-in period not met" ); uint256 amount = userStake.amount; userStake.amount = 0; userStake.timestamp = 0; require(token.transfer(msg.sender, amount), "Transfer failed"); emit Withdrawal(msg.sender, userStake.amount); } function emergencyWithdraw() external { Stake storage userStake = stakes[msg.sender]; require(emergency, "No emergency"); require(userStake.amount > 0, "No stake found"); uint256 amount = userStake.amount; userStake.amount = 0; userStake.timestamp = 0; require(token.transfer(msg.sender, amount), "Transfer failed"); } function harvest() external { Stake storage userStake = stakes[msg.sender]; require(userStake.amount > 0, "No stake found"); require(funds > 0, "No reward funds available"); uint256 currentTime = block.timestamp; require( currentTime - userStake.timestamp >= 30 days, "Minimum lock-in period not met" ); uint256 rewards = calculateRewards(msg.sender, currentTime); require(funds >= rewards, "Insufficient rewards"); funds -= rewards; userStake.timestamp = currentTime; require(token.transfer(msg.sender, rewards), "Transfer failed"); } function getStakeCycle(address user) public view returns (uint256) { Stake storage userStake = stakes[user]; if (userStake.timestamp == 0) return 0; return (userStake.timestamp - deploymentTime) / 30 days; } function calculateRewards( address user, uint256 currentTime ) public view returns (uint256) { Stake storage userStake = stakes[user]; uint256 stakedTime = currentTime - userStake.timestamp; uint256 stakedCycle = getStakeCycle(user); uint256 rate = getCycleAPY(stakedCycle); uint256 rewards = (userStake.amount * stakedTime * rate) / (365 days * 10000); return rewards; } function getCycleAPY(uint256 cycle) public pure returns (uint256) { if (cycle == 0) return 3250; // 32.50% // delta 10 if (cycle == 1) return 2000; // 20.00% // delta 5 if (cycle == 2) return 1500; // 15.00% // delta 2.5 if (cycle == 3) return 1250; // 12.50% // delta 1.25 if (cycle == 4) return 1125; // 11.25% // delta 0.625 if (cycle == 5) return 1063; // 10.63% // delta 0.3125 if (cycle == 6) return 1031; // 10.31% return 1000; // 10.00% for cycle 6 and above } // check if the curent time is greater than the deployment time + 30 days function stakeIsOlderThanOneCycle(address user) public view returns (bool) { Stake storage userStake = stakes[user]; uint256 stakeAge = block.timestamp - userStake.timestamp; return stakeAge >= 30 days; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (utils/ReentrancyGuard.sol) pragma solidity ^0.8.20; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant NOT_ENTERED = 1; uint256 private constant ENTERED = 2; uint256 private _status; /** * @dev Unauthorized reentrant call. */ error ReentrancyGuardReentrantCall(); constructor() { _status = NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be NOT_ENTERED if (_status == ENTERED) { revert ReentrancyGuardReentrantCall(); } // Any calls to nonReentrant after this point will fail _status = ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == ENTERED; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawal","type":"event"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"currentTime","type":"uint256"}],"name":"calculateRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deploymentTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableEmergency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergencyDrainFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"funds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cycle","type":"uint256"}],"name":"getCycleAPY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getStakeCycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isEmergency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"load","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setEmergency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"stakeIsOlderThanOneCycle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakes","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161106838038061106883398101604081905261002f91610084565b60016000819055600280546001600160a01b03199081166001600160a01b039586161790915581541691909216179055426003556100b7565b80516001600160a01b038116811461007f57600080fd5b919050565b6000806040838503121561009757600080fd5b6100a083610068565b91506100ae60208401610068565b90509250929050565b610fa2806100c66000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806399d548aa116100ad578063d59b780711610071578063d59b780714610253578063db2e21bc1461025b578063ecda10f514610263578063f851a4401461026c578063fc0c546a1461029757600080fd5b806399d548aa14610204578063a694fc3a14610217578063beb8314c1461022a578063c89f2ce41461023d578063caa6fea41461024657600080fd5b80634641257d116100f45780634641257d146101b757806358afefcc146101bf5780635f9e8f82146101c757806377108214146101de578063822db559146101f157600080fd5b80626cfb6d1461013057806304c1b0411461015657806316934fc414610160578063320806921461019c5780633ccfd60b146101af575b600080fd5b61014361013e366004610dcc565b6102aa565b6040519081526020015b60405180910390f35b61015e6102fd565b005b61018761016e366004610dcc565b6006602052600090815260409020805460019091015482565b6040805192835260208301919091520161014d565b6101436101aa366004610de7565b61043c565b61015e6104be565b61015e61062c565b61015e610819565b60055460ff165b604051901515815260200161014d565b6101ce6101ec366004610dcc565b610852565b61015e6101ff366004610de7565b610889565b61015e610212366004610de7565b6108b8565b61015e610225366004610de7565b6109dc565b610143610238366004610e00565b610bbf565b61014360045481565b6005546101ce9060ff1681565b61015e610c3f565b61015e610c75565b61014360035481565b60025461027f906001600160a01b031681565b6040516001600160a01b03909116815260200161014d565b60015461027f906001600160a01b031681565b6001600160a01b0381166000908152600660205260408120600181015482036102d65750600092915050565b62278d0060035482600101546102ec9190610e40565b6102f69190610e53565b9392505050565b6002546001600160a01b031633146103305760405162461bcd60e51b815260040161032790610e75565b60405180910390fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039d9190610eb6565b60015460025460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af11580156103f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104189190610ecf565b6104345760405162461bcd60e51b815260040161032790610ef1565b506000600455565b60008160000361044f5750610cb2919050565b8160010361046057506107d0919050565b8160020361047157506105dc919050565b8160030361048257506104e2919050565b816004036104935750610465919050565b816005036104a45750610427919050565b816006036104b55750610407919050565b506103e8919050565b6104c6610d86565b33600090815260066020526040902080546104f35760405162461bcd60e51b815260040161032790610f1a565b6104fc33610852565b6105485760405162461bcd60e51b815260206004820152601e60248201527f4d696e696d756d206c6f636b2d696e20706572696f64206e6f74206d657400006044820152606401610327565b805460008083556001808401919091555460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156105a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cb9190610ecf565b6105e75760405162461bcd60e51b815260040161032790610ef1565b815460405190815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a2505061062a6001600055565b565b33600090815260066020526040902080546106595760405162461bcd60e51b815260040161032790610f1a565b6000600454116106ab5760405162461bcd60e51b815260206004820152601960248201527f4e6f207265776172642066756e647320617661696c61626c65000000000000006044820152606401610327565b6001810154429062278d00906106c19083610e40565b101561070f5760405162461bcd60e51b815260206004820152601e60248201527f4d696e696d756d206c6f636b2d696e20706572696f64206e6f74206d657400006044820152606401610327565b600061071b3383610bbf565b90508060045410156107665760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e74207265776172647360601b6044820152606401610327565b80600460008282546107789190610e40565b909155505060018381018390555460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156107d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f89190610ecf565b6108145760405162461bcd60e51b815260040161032790610ef1565b505050565b6002546001600160a01b031633146108435760405162461bcd60e51b815260040161032790610e75565b6005805460ff19166001179055565b6001600160a01b03811660009081526006602052604081206001810154829061087b9042610e40565b62278d001115949350505050565b6002546001600160a01b031633146108b35760405162461bcd60e51b815260040161032790610e75565b600455565b6002546001600160a01b031633146108e25760405162461bcd60e51b815260040161032790610e75565b6000811161092b5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f74206c6f6164207a65726f2066756e647360501b6044820152606401610327565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a69190610ecf565b6109c25760405162461bcd60e51b815260040161032790610ef1565b80600460008282546109d49190610f42565b909155505050565b6109e4610d86565b60008111610a345760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f74207374616b65207a65726f20616d6f756e7400000000000000006044820152606401610327565b600060045411610a7d5760405162461bcd60e51b81526020600482015260146024820152734e6f207265776172647320617661696c61626c6560601b6044820152606401610327565b336000908152600660205260408120805490919015610aa357610aa03342610bbf565b90505b426001830155610ab38184610f42565b826000016000828254610ac69190610f42565b925050819055508060046000828254610adf9190610e40565b90915550506001546040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5f9190610ecf565b610b7b5760405162461bcd60e51b815260040161032790610ef1565b60405183815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a25050610bbc6001600055565b50565b6001600160a01b038216600090815260066020526040812060018101548290610be89085610e40565b90506000610bf5866102aa565b90506000610c028261043c565b9050600064496cebb80082858760000154610c1d9190610f55565b610c279190610f55565b610c319190610e53565b955050505050505b92915050565b6002546001600160a01b03163314610c695760405162461bcd60e51b815260040161032790610e75565b6005805460ff19169055565b33600090815260066020526040902060055460ff16610cc55760405162461bcd60e51b815260206004820152600c60248201526b4e6f20656d657267656e637960a01b6044820152606401610327565b8054610ce35760405162461bcd60e51b815260040161032790610f1a565b805460008083556001808401919091555460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d669190610ecf565b610d825760405162461bcd60e51b815260040161032790610ef1565b5050565b600260005403610da957604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b80356001600160a01b0381168114610dc757600080fd5b919050565b600060208284031215610dde57600080fd5b6102f682610db0565b600060208284031215610df957600080fd5b5035919050565b60008060408385031215610e1357600080fd5b610e1c83610db0565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610c3957610c39610e2a565b600082610e7057634e487b7160e01b600052601260045260246000fd5b500490565b60208082526021908201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6040820152603760f91b606082015260800190565b600060208284031215610ec857600080fd5b5051919050565b600060208284031215610ee157600080fd5b815180151581146102f657600080fd5b6020808252600f908201526e151c985b9cd9995c8819985a5b1959608a1b604082015260600190565b6020808252600e908201526d139bc81cdd185ad948199bdd5b9960921b604082015260600190565b80820180821115610c3957610c39610e2a565b8082028115828204841417610c3957610c39610e2a56fea264697066735822122065d640f13310b15c19f3d85babf4556de6a8b4599758e6b43071dee9cc34863d64736f6c634300081800330000000000000000000000003427dbfeb9ec2a7a2840319a7f1edc8aab77ebef000000000000000000000000e9eccde9d26fcbb5e93f536cfc4510a7f46274f8
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012b5760003560e01c806399d548aa116100ad578063d59b780711610071578063d59b780714610253578063db2e21bc1461025b578063ecda10f514610263578063f851a4401461026c578063fc0c546a1461029757600080fd5b806399d548aa14610204578063a694fc3a14610217578063beb8314c1461022a578063c89f2ce41461023d578063caa6fea41461024657600080fd5b80634641257d116100f45780634641257d146101b757806358afefcc146101bf5780635f9e8f82146101c757806377108214146101de578063822db559146101f157600080fd5b80626cfb6d1461013057806304c1b0411461015657806316934fc414610160578063320806921461019c5780633ccfd60b146101af575b600080fd5b61014361013e366004610dcc565b6102aa565b6040519081526020015b60405180910390f35b61015e6102fd565b005b61018761016e366004610dcc565b6006602052600090815260409020805460019091015482565b6040805192835260208301919091520161014d565b6101436101aa366004610de7565b61043c565b61015e6104be565b61015e61062c565b61015e610819565b60055460ff165b604051901515815260200161014d565b6101ce6101ec366004610dcc565b610852565b61015e6101ff366004610de7565b610889565b61015e610212366004610de7565b6108b8565b61015e610225366004610de7565b6109dc565b610143610238366004610e00565b610bbf565b61014360045481565b6005546101ce9060ff1681565b61015e610c3f565b61015e610c75565b61014360035481565b60025461027f906001600160a01b031681565b6040516001600160a01b03909116815260200161014d565b60015461027f906001600160a01b031681565b6001600160a01b0381166000908152600660205260408120600181015482036102d65750600092915050565b62278d0060035482600101546102ec9190610e40565b6102f69190610e53565b9392505050565b6002546001600160a01b031633146103305760405162461bcd60e51b815260040161032790610e75565b60405180910390fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039d9190610eb6565b60015460025460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af11580156103f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104189190610ecf565b6104345760405162461bcd60e51b815260040161032790610ef1565b506000600455565b60008160000361044f5750610cb2919050565b8160010361046057506107d0919050565b8160020361047157506105dc919050565b8160030361048257506104e2919050565b816004036104935750610465919050565b816005036104a45750610427919050565b816006036104b55750610407919050565b506103e8919050565b6104c6610d86565b33600090815260066020526040902080546104f35760405162461bcd60e51b815260040161032790610f1a565b6104fc33610852565b6105485760405162461bcd60e51b815260206004820152601e60248201527f4d696e696d756d206c6f636b2d696e20706572696f64206e6f74206d657400006044820152606401610327565b805460008083556001808401919091555460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156105a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cb9190610ecf565b6105e75760405162461bcd60e51b815260040161032790610ef1565b815460405190815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a2505061062a6001600055565b565b33600090815260066020526040902080546106595760405162461bcd60e51b815260040161032790610f1a565b6000600454116106ab5760405162461bcd60e51b815260206004820152601960248201527f4e6f207265776172642066756e647320617661696c61626c65000000000000006044820152606401610327565b6001810154429062278d00906106c19083610e40565b101561070f5760405162461bcd60e51b815260206004820152601e60248201527f4d696e696d756d206c6f636b2d696e20706572696f64206e6f74206d657400006044820152606401610327565b600061071b3383610bbf565b90508060045410156107665760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e74207265776172647360601b6044820152606401610327565b80600460008282546107789190610e40565b909155505060018381018390555460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156107d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f89190610ecf565b6108145760405162461bcd60e51b815260040161032790610ef1565b505050565b6002546001600160a01b031633146108435760405162461bcd60e51b815260040161032790610e75565b6005805460ff19166001179055565b6001600160a01b03811660009081526006602052604081206001810154829061087b9042610e40565b62278d001115949350505050565b6002546001600160a01b031633146108b35760405162461bcd60e51b815260040161032790610e75565b600455565b6002546001600160a01b031633146108e25760405162461bcd60e51b815260040161032790610e75565b6000811161092b5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f74206c6f6164207a65726f2066756e647360501b6044820152606401610327565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a69190610ecf565b6109c25760405162461bcd60e51b815260040161032790610ef1565b80600460008282546109d49190610f42565b909155505050565b6109e4610d86565b60008111610a345760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f74207374616b65207a65726f20616d6f756e7400000000000000006044820152606401610327565b600060045411610a7d5760405162461bcd60e51b81526020600482015260146024820152734e6f207265776172647320617661696c61626c6560601b6044820152606401610327565b336000908152600660205260408120805490919015610aa357610aa03342610bbf565b90505b426001830155610ab38184610f42565b826000016000828254610ac69190610f42565b925050819055508060046000828254610adf9190610e40565b90915550506001546040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5f9190610ecf565b610b7b5760405162461bcd60e51b815260040161032790610ef1565b60405183815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a25050610bbc6001600055565b50565b6001600160a01b038216600090815260066020526040812060018101548290610be89085610e40565b90506000610bf5866102aa565b90506000610c028261043c565b9050600064496cebb80082858760000154610c1d9190610f55565b610c279190610f55565b610c319190610e53565b955050505050505b92915050565b6002546001600160a01b03163314610c695760405162461bcd60e51b815260040161032790610e75565b6005805460ff19169055565b33600090815260066020526040902060055460ff16610cc55760405162461bcd60e51b815260206004820152600c60248201526b4e6f20656d657267656e637960a01b6044820152606401610327565b8054610ce35760405162461bcd60e51b815260040161032790610f1a565b805460008083556001808401919091555460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d669190610ecf565b610d825760405162461bcd60e51b815260040161032790610ef1565b5050565b600260005403610da957604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b80356001600160a01b0381168114610dc757600080fd5b919050565b600060208284031215610dde57600080fd5b6102f682610db0565b600060208284031215610df957600080fd5b5035919050565b60008060408385031215610e1357600080fd5b610e1c83610db0565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610c3957610c39610e2a565b600082610e7057634e487b7160e01b600052601260045260246000fd5b500490565b60208082526021908201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6040820152603760f91b606082015260800190565b600060208284031215610ec857600080fd5b5051919050565b600060208284031215610ee157600080fd5b815180151581146102f657600080fd5b6020808252600f908201526e151c985b9cd9995c8819985a5b1959608a1b604082015260600190565b6020808252600e908201526d139bc81cdd185ad948199bdd5b9960921b604082015260600190565b80820180821115610c3957610c39610e2a565b8082028115828204841417610c3957610c39610e2a56fea264697066735822122065d640f13310b15c19f3d85babf4556de6a8b4599758e6b43071dee9cc34863d64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003427dbfeb9ec2a7a2840319a7f1edc8aab77ebef000000000000000000000000e9eccde9d26fcbb5e93f536cfc4510a7f46274f8
-----Decoded View---------------
Arg [0] : _admin (address): 0x3427dbFEb9EC2A7a2840319a7f1eDc8Aab77eBef
Arg [1] : _token (address): 0xe9EccDE9d26FCBB5e93F536CFC4510A7f46274f8
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000003427dbfeb9ec2a7a2840319a7f1edc8aab77ebef
Arg [1] : 000000000000000000000000e9eccde9d26fcbb5e93f536cfc4510a7f46274f8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $13.45 | 13,588.5444 | $182,758.19 |
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.